/*
 * LILT 모바일청첩장 폰트 — 전량 self-host (CDN 미사용).
 *
 * ★ 한글은 아래 4종만 쓴다. 상업적 이용 + 임베딩이 모두 허용된 서체만 남겼다.
 *     고운바탕(Gowun Batang) · 프리텐다드(Pretendard) · 조선굴림체(ChosunGu) · IBM Plex Sans KR
 *   다른 한글 서체(Noto Sans KR · 고운도담 · 나눔명조 · 송명 · 주아 · 도현 · 개구 · 나눔펜)는
 *에 전부 제거했다. 새로 추가하지 말 것.
 *   라틴/숫자 디스플레이 서체는 별개이며 그대로 쓴다.
 * woff2 실제 파일은 /assets/fonts/ 에 위치. latin/korean 서브셋을 unicode-range 로 분리해
 * 필요한 글리프만 내려받도록 한다. font-display:swap 으로 렌더 블로킹 방지.
 */

/* ── unicode-range 정의(참고용 주석) ──
   latin  : 기본 라틴 + 문장부호/기호
   korean : 한글 자모/음절 + 한중일 문장부호/전각기호
*/

/* ===== Cormorant Garamond (라틴 · 디스플레이/숫자) ===== */
@font-face{
  font-family:'Cormorant Garamond'; font-style:normal; font-weight:400; font-display:swap;
  src:url('../fonts/cormorant-garamond-latin-400-normal.woff2') format('woff2');
}
@font-face{
  font-family:'Cormorant Garamond'; font-style:normal; font-weight:500; font-display:swap;
  src:url('../fonts/cormorant-garamond-latin-500-normal.woff2') format('woff2');
}
@font-face{
  font-family:'Cormorant Garamond'; font-style:normal; font-weight:600; font-display:swap;
  src:url('../fonts/cormorant-garamond-latin-600-normal.woff2') format('woff2');
}
@font-face{
  font-family:'Cormorant Garamond'; font-style:italic; font-weight:400; font-display:swap;
  src:url('../fonts/cormorant-garamond-latin-400-italic.woff2') format('woff2');
}

/* ===== Cormorant Garamond Cd (가로 78% 압축 · 11 Sweet Devotion 전용) =====
   시안이 지정한 Garamond Nova Pro Cd 는 상업 서체라 쓸 수 없다. 같은 '좁은 개러몬드' 자리를
   메우려고 Cormorant Garamond 글리프를 가로로 0.78 배 눌러 구웠다 — 대문자 자폭이 시안과 거의 같다.
   숫자는 라이닝(.lf)으로 바꿔 두었다. 기본 글리프는 올드스타일이라 '10.16' 이 들쭉날쭉했다.
   굽는 법: npm i fonteditor-core && node tools/font-condense.mjs 0.78 static/assets/fonts */
@font-face{
  font-family:'Cormorant Garamond Cd'; font-style:normal; font-weight:400; font-display:swap;
  src:url('../fonts/cormorant-garamond-cd-latin-400-normal.woff2') format('woff2');
}
@font-face{
  font-family:'Cormorant Garamond Cd'; font-style:normal; font-weight:500; font-display:swap;
  src:url('../fonts/cormorant-garamond-cd-latin-500-normal.woff2') format('woff2');
}
@font-face{
  font-family:'Cormorant Garamond Cd'; font-style:normal; font-weight:600; font-display:swap;
  src:url('../fonts/cormorant-garamond-cd-latin-600-normal.woff2') format('woff2');
}
@font-face{
  font-family:'Cormorant Garamond Cd'; font-style:italic; font-weight:400; font-display:swap;
  src:url('../fonts/cormorant-garamond-cd-latin-400-italic.woff2') format('woff2');
}


/* ===== Gowun Batang (본문) — latin 먼저, korean 뒤 ===== */
@font-face{
  font-family:'Gowun Batang'; font-style:normal; font-weight:400; font-display:swap;
  src:url('../fonts/gowun-batang-latin-400-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Gowun Batang'; font-style:normal; font-weight:700; font-display:swap;
  src:url('../fonts/gowun-batang-latin-700-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Gowun Batang'; font-style:normal; font-weight:400; font-display:swap;
  src:url('../fonts/gowun-batang-korean-400-normal.woff2') format('woff2');
  unicode-range:U+1100-11FF,U+3001-3003,U+3008-3011,U+3013-3015,U+301C,U+3131-318E,U+3200-321E,U+3260-327E,U+A960-A97C,U+AC00-D7A3,U+D7B0-D7FB,U+FF01-FF60,U+FFE0-FFE6;
}
@font-face{
  font-family:'Gowun Batang'; font-style:normal; font-weight:700; font-display:swap;
  src:url('../fonts/gowun-batang-korean-700-normal.woff2') format('woff2');
  unicode-range:U+1100-11FF,U+3001-3003,U+3008-3011,U+3013-3015,U+301C,U+3131-318E,U+3200-321E,U+3260-327E,U+A960-A97C,U+AC00-D7A3,U+D7B0-D7FB,U+FF01-FF60,U+FFE0-FFE6;
}

/* Pinyon Script — 히어로 필기체(빈티지 인그레이빙) */
@font-face{ font-family:'Pinyon Script'; font-weight:400; font-style:normal; font-display:swap;
  src:url('../fonts/pinyon-script-latin-400-normal.woff2') format('woff2'); }

/* ===== 추가 고객 선택형 한글 폰트 (모두 OFL·무료 상업이용) ===== */

/* ===== ref1_5 히어로 폰트 ===== */

/* ===== Bodoni Moda — 입력영역/라틴 고정 서체(latin subset, self-host) ===== */
/* 한글 선택 폰트와 무관하게 영문·숫자는 항상 이 서체로 렌더(스택 맨 앞 고정) */
@font-face{ font-family:'Bodoni Moda'; font-weight:400; font-style:normal; font-display:swap;
  src:url('../fonts/bodoni-moda-latin-400-normal.woff2') format('woff2'); }
@font-face{ font-family:'Bodoni Moda'; font-weight:500; font-style:normal; font-display:swap;
  src:url('../fonts/bodoni-moda-latin-500-normal.woff2') format('woff2'); }
@font-face{ font-family:'Bodoni Moda'; font-weight:600; font-style:normal; font-display:swap;
  src:url('../fonts/bodoni-moda-latin-600-normal.woff2') format('woff2'); }
@font-face{ font-family:'Bodoni Moda'; font-weight:400; font-style:italic; font-display:swap;
  src:url('../fonts/bodoni-moda-latin-400-italic.woff2') format('woff2'); }

/* ═══════════════════════════════════════════════════════════
   한글 4종 — 이 목록이 전부다 (상업적 이용 · 임베딩 허용)
   ═══════════════════════════════════════════════════════════ */

/* ===== Pretendard (고딕) — 본문·UI. 라틴 글리프 품질이 좋아 라틴도 함께 받는다 ===== */
@font-face{
  font-family:'Pretendard'; font-style:normal; font-weight:400; font-display:swap;
  src:url('../fonts/pretendard-korean-400-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Pretendard'; font-style:normal; font-weight:700; font-display:swap;
  src:url('../fonts/pretendard-korean-700-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Pretendard'; font-style:normal; font-weight:400; font-display:swap;
  src:url('../fonts/pretendard-korean-400-normal.woff2') format('woff2');
  unicode-range:U+1100-11FF,U+3001-3003,U+3008-3011,U+3013-3015,U+301C,U+3131-318E,U+3200-321E,U+3260-327E,U+A960-A97C,U+AC00-D7A3,U+D7B0-D7FB,U+FF01-FF60,U+FFE0-FFE6;
}
@font-face{
  font-family:'Pretendard'; font-style:normal; font-weight:700; font-display:swap;
  src:url('../fonts/pretendard-korean-700-normal.woff2') format('woff2');
  unicode-range:U+1100-11FF,U+3001-3003,U+3008-3011,U+3013-3015,U+301C,U+3131-318E,U+3200-321E,U+3260-327E,U+A960-A97C,U+AC00-D7A3,U+D7B0-D7FB,U+FF01-FF60,U+FFE0-FFE6;
}

/* ===== 조선굴림체(ChosunGu) — 굴림 계열. Hahmlet 을 대신한다.
   ⚠ 원본 TTF 는 4.97MB 다(한자 4,620 자가 절반을 차지한다). 청첩장은 모바일에서 열리는
     화면이라 그대로 쓰면 글자가 늦게 자리를 잡는다 — 한자를 빼고 한글·라틴만 남겨
     woff2 로 변환해 271KB 로 줄였다(95% 감소). 서브셋 범위는 고운바탕·프리텐다드와 같다.
   ⚠ 굵기는 Regular 한 벌뿐이라 400 만 선언한다. 700 자리에 같은 파일을 다시 걸면
     굵기 차이가 통째로 사라지므로, 굵게 쓰는 자리는 브라우저 합성 볼드에 맡긴다.
   ⚠ 원본 TTF(fonts/ChosunGu.TTF)는 다시 변환할 일이 있을까 남겨 두었을 뿐, 서빙하지 않는다.

   ⚠ 서빙하는 파일은 글자를 세로로 93% 눌러 둔 것이다(-flat- — 원래 글꼴이
     가로로 길쭉해 보인다는 이유). CSS 로는 글자를 누를 방법이 없어(transform:scaleX/Y 는 인라인
     텍스트에서 레이아웃이 깨진다) 글리프 좌표를 눌러 woff2 를 다시 만들었다.
     · 글리프의 y 좌표·yMin/yMax 만 줄이고 ascent/descent/lineGap 은 그대로 두었다 —
       기준선과 줄 높이가 유지돼야 기존 화면이 흔들리지 않는다.
     · 이 파일 하나만 갈면 조선굴림체가 쓰이는 모든 화면(청첩장 6종 + 대시보드 선택 카드)에 함께 먹는다.
     · 되돌리거나 배율을 바꾸려면 아래 src 를 눌리지 않은 chosungu-korean-400-normal.woff2 로
       바꾸면 된다(원본은 지우지 않았다). ===== */
@font-face{
  font-family:'ChosunGu'; font-style:normal; font-weight:400; font-display:swap;
  src:url('../fonts/chosungu-flat-korean-400-normal.woff2') format('woff2');
}

/* ===== IBM Plex Sans KR — 고객이 고를 수 있는 네 번째 한글 서체(키 `plex`).
   08 Our Wedding 핸드오프가 본문 서체로 지정했고, 고객도 다른 템플릿에서 고를 수 있게 열었다.
   ⚠ 굵기 세 벌(300·400·500)을 서빙한다 — 08 은 셋을 다 쓰고, 다른 템플릿은 400·500 만 쓴다.
     700 짜리 파일은 없으니 굵게 쓰는 자리는 500 위의 합성 볼드에 맡긴다.
   ⚠ 한글 서브셋 한 벌이 500KB 안팎이다. 브라우저는 **실제로 쓰인 굵기만** 내려받으므로
     한 화면에서 세 벌이 다 오는 일은 없다 — 굵기를 흩뿌리지 말 것.
   라이선스: SIL OFL 1.1(상업 이용·임베딩 허용). ===== */
@font-face{
  font-family:'IBM Plex Sans KR'; font-style:normal; font-weight:300; font-display:swap;
  src:url('../fonts/ibm-plex-sans-kr-latin-300-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'IBM Plex Sans KR'; font-style:normal; font-weight:400; font-display:swap;
  src:url('../fonts/ibm-plex-sans-kr-latin-400-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'IBM Plex Sans KR'; font-style:normal; font-weight:500; font-display:swap;
  src:url('../fonts/ibm-plex-sans-kr-latin-500-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'IBM Plex Sans KR'; font-style:normal; font-weight:300; font-display:swap;
  src:url('../fonts/ibm-plex-sans-kr-korean-300-normal.woff2') format('woff2');
  unicode-range:U+1100-11FF,U+3001-3003,U+3008-3011,U+3013-3015,U+301C,U+3131-318E,U+3200-321E,U+3260-327E,U+A960-A97C,U+AC00-D7A3,U+D7B0-D7FB,U+FF01-FF60,U+FFE0-FFE6;
}
@font-face{
  font-family:'IBM Plex Sans KR'; font-style:normal; font-weight:400; font-display:swap;
  src:url('../fonts/ibm-plex-sans-kr-korean-400-normal.woff2') format('woff2');
  unicode-range:U+1100-11FF,U+3001-3003,U+3008-3011,U+3013-3015,U+301C,U+3131-318E,U+3200-321E,U+3260-327E,U+A960-A97C,U+AC00-D7A3,U+D7B0-D7FB,U+FF01-FF60,U+FFE0-FFE6;
}
@font-face{
  font-family:'IBM Plex Sans KR'; font-style:normal; font-weight:500; font-display:swap;
  src:url('../fonts/ibm-plex-sans-kr-korean-500-normal.woff2') format('woff2');
  unicode-range:U+1100-11FF,U+3001-3003,U+3008-3011,U+3013-3015,U+301C,U+3131-318E,U+3200-321E,U+3260-327E,U+A960-A97C,U+AC00-D7A3,U+D7B0-D7FB,U+FF01-FF60,U+FFE0-FFE6;
}

/* ═══════════════════════════════════════════════════════════
   08 Our Wedding 전용 라틴 — 핸드오프가 지정한 네 서체
   ⚠ 전부 라틴 전용이다. 한글을 얹으면 시스템 폰트로 떨어지므로 영문만 배치할 것.
   ═══════════════════════════════════════════════════════════ */

/* ⚠ Garamond Nova Pro Cd 는 **걷어냈다**(2026-09-26). 상업 서체라 웹 라이선스를 쓸 수 없어,
   08 의 섹션 제목을 아예 PNG 그림으로 갈았다(`source/08/titles/`). 폰트 파일도 지웠다.
   ⚠ 되살리지 말 것 — 라이선스가 정리되기 전에는 이 이름을 스택에 적기만 해도 안 된다.
   ⚠ 08 의 제목은 이제 전부 PNG 다 — 글자로 서는 영문 제목이 없다. */

/* ===== Archivo Variable — 08 의 라벨·숫자. 굵기(100~900)와 **폭(62~125%)** 두 축을 가진
   가변 서체다. 핸드오프가 font-stretch 로 72% · 110% · 125% 를 쓰므로 폭 축이 반드시 필요하다
   (wght 만 담긴 파일로 바꾸면 글자가 전부 같은 폭으로 서서 조판이 무너진다). ===== */
@font-face{
  font-family:'Archivo'; font-style:normal; font-display:swap;
  font-weight:100 900; font-stretch:62% 125%;
  src:url('../fonts/archivo-latin-standard-normal.woff2') format('woff2-variations');
}

/* ===== DM Serif Display — 08 표지의 글자 동그라미(OUR / WED / DING)에만 쓴다. ===== */
@font-face{
  font-family:'DM Serif Display'; font-style:normal; font-weight:400; font-display:swap;
  src:url('../fonts/dm-serif-display-latin-400-normal.woff2') format('woff2');
}


/* ===== IBM Plex Mono — 라틴 모노. 숫자를 또박또박 세워야 하는 자리에 쓴다.
   ⚠ 허용 목록에 이미 있던 서체인데 여기 선언이 없어 쓰이지 못하고 있었다.
   ⚠ 라틴 전용. 400 과 600 두 벌을 서빙한다 — 합성 볼드는 획이 뭉개져 05 섹션 제목이 흐리게 보였다(2026-09-30). ===== */
@font-face{
  font-family:'IBM Plex Mono'; font-style:normal; font-weight:400; font-display:swap;
  src:url('../fonts/IBMPlexMono-Regular.ttf') format('truetype');
}
@font-face{
  font-family:'IBM Plex Mono'; font-style:normal; font-weight:600; font-display:swap;
  src:url('../fonts/IBMPlexMono-SemiBold.ttf') format('truetype');
}

/* ===== 09 Ever Tender 가 데려온 라틴 세 벌(핸드오프 지정 · 모두 OFL) =====
   Italiana  — 섹션 영문 제목(대문자 세리프)
   Allura    — & 기호와 from(필기체)
   Hanken Grotesk — 커버의 영문 줄글
   ⚠ 셋 다 라틴 전용이다. 한글을 얹으면 시스템 폰트로 떨어진다. ===== */
@font-face{
  font-family:'Italiana'; font-style:normal; font-weight:400; font-display:swap;
  src:url('../fonts/italiana-latin-400-normal.woff2') format('woff2');
}
@font-face{
  font-family:'Allura'; font-style:normal; font-weight:400; font-display:swap;
  src:url('../fonts/allura-latin-400-normal.woff2') format('woff2');
}
@font-face{
  font-family:'Hanken Grotesk'; font-style:normal; font-weight:400; font-display:swap;
  src:url('../fonts/hanken-grotesk-latin-400-normal.woff2') format('woff2');
}
@font-face{
  font-family:'Hanken Grotesk'; font-style:normal; font-weight:500; font-display:swap;
  src:url('../fonts/hanken-grotesk-latin-500-normal.woff2') format('woff2');
}

/* ===== 10 Mellow Morning 이 데려온 라틴 한 벌 =====
   Archive Garamond Pro — 눌린 영문 제목·이름(scaleX .72)에 쓴다.
   ⚠ 지금까지 이 서체는 **첫 화면 샵 카드 이름**에서만 썼다(`bridge.css`). 청첩장 지면으로
     넓히는 것은 10 이 처음이다 — 상업 이용 범위를 넓혀도 되는지 확인이 필요하다(핸드오프 §Assets).
   ⚠ 라틴 전용. 폭 축(font-stretch)이 없어 눌림은 CSS transform + JS 마진 보정으로 만든다. ===== */
@font-face{
  font-family:'Archive Garamond Pro'; font-style:normal; font-weight:400; font-display:swap;
  src:url('../fonts/ArchiveGaramondPro.ttf') format('truetype');
}

/* ===== EB Garamond Italic — 01 신랑·신부 소개 섹션의 라틴 글자(Q1 · groom/bride · 서명 · 슬라이드 숫자)에만 쓴다.
   핸드오프(design_handoff_couple_intro) 지정 · OFL. 라틴 전용이고 기울인 400 한 벌뿐이다.
   ⚠ 01 은 이 글자를 가로 82% 로 눌러 쓴다(scaleX(.82)) — 서체가 아니라 쓰는 쪽에서 누른다. ===== */
@font-face{
  font-family:'EB Garamond'; font-style:italic; font-weight:400; font-display:swap;
  src:url('../fonts/ebgaramond-latin-italic.woff2') format('woff2');
}

/* ===== 고인 표시(국화) - 혼주 이름 앞에 붙는 작은 선화 =====
   마크업은 뷰모델이 만든다(`<lilt-mum>` - 템플릿 CSS 의 i·span 규칙과 부딪히지 않게 커스텀 태그).
   · **꽃잎 속은 흰색, 선은 지면에 맞춘다**(2026-10-10 최종). 선은 밝은 지면에서는 이름 글자색(기본 - 이름과 같은 농도라 균형이 맞는다.
     중간 회색 고정은 이름이 검정에 가까운 템플릿에서 꽃만 흐려 보여 걷었다), 어두운 지면에서는 지면색이다 -
     어두운 템플릿은 각자 CSS 에서 `--mum-line` 으로 준다(11 차콜 `#3c3b39` = 지면색 · 07 은 분홍 띠라도 분홍 선을 쓰지 않고 진한 자두색 `#4a3b41`).
   · 두 겹이다: `::before` = 안쪽을 채운 실루엣(img/late-mum-fill.png), `::after` = 선(img/late-mum.png). 마스크는 요소 자신이 아니라
     가상 요소에 건다 - 요소에 걸면 자식(가상 요소)까지 함께 잘려 두 겹이 안 된다.
   · 높이는 글자 크기에 비례한다(1.1em) - 어느 템플릿에서도 이름과 같은 비례.
   · 그림은 가로를 70% 로 눌러 구웠다. 선 굵기는 구울 때 보정했다 - 다시 굽는다면 두 PNG 와 비율(112/108)을 같이 고칠 것. */
lilt-mum{
  position:relative; display:inline-block; height:1.1em; aspect-ratio:112/108; vertical-align:-.2em; margin-right:.12em;
}
lilt-mum::before, lilt-mum::after{ content:""; position:absolute; inset:0; }
lilt-mum::before{
  background-color:#fff;
  -webkit-mask:url('../img/late-mum-fill.png') center/contain no-repeat;
          mask:url('../img/late-mum-fill.png') center/contain no-repeat;
}
lilt-mum::after{
  background-color:var(--mum-line, currentColor);
  -webkit-mask:url('../img/late-mum.png') center/contain no-repeat;
          mask:url('../img/late-mum.png') center/contain no-repeat;
}

/* ===== 혼주 줄의 위계(한 줄 방식) - 혼주 이름 / 관계 / 신랑·신부 이름의 스타일을 가른다 =====
   · 관계(「의 장남」)는 작고 연하게(.lilt-rel), 신랑·신부 이름은 굵고 조금 크게(.lilt-nm), 혼주 이름은 그대로.
   · 마크업은 뷰모델(parentLineHtml → .lilt-rel)과 템플릿(이름 → b.lilt-nm)이 만든다. 세 칸(.pgrid)은 자기 규칙이 따로 있다.
   · `body b.lilt-nm` 으로 선택자를 올린 건 템플릿마다 `.gre__par b` 같은 규칙이 있어서다 - 같은 점수로 지는 것을 막는다. */
.lilt-rel{ font-size:.86em; opacity:.68; margin-left:.28em; letter-spacing:-.01em; }
body b.lilt-nm{ font-weight:700; font-size:1.1em; margin-left:.2em; }
