/* 폰트 자체 호스팅.
   원래는 jsdelivr(Pretendard)와 Google Fonts(IBM Plex Mono)에서 받아 썼습니다.
   외부에 두면 (1) 그쪽이 죽으면 글꼴이 깨지고 (2) 방문자 IP가 제3자에게 가며
   (3) 자사 진단 항목인 '외부 리소스 수'에서 스스로 감점됩니다.

   Pretendard v1.3.9 동적 서브셋 92개 — 한글은 필요한 구간만 내려받습니다.
   본문·제목 전부 Pretendard 입니다. 92개가 한글 영역을 통째로 덮으므로
   글자가 서브셋 밖으로 새는 일이 없습니다.

   Gothic A1(175개, 2.5MB)은 이전 본문 글꼴이었습니다. 지금 사이트로
   바꾸면서 본문을 Pretendard 하나로 모았고, 쓰지 않는 175개를 배포본에서 뺐습니다.
   원본 파일은 src/assets/fonts/gothic-a1-v18/ 에 그대로 있습니다 —
   되살리려면 tools/font-subset/pick.mjs 를 다시 도십시오.
   IBM Plex Mono v20 은 latin·latin-ext 만 씁니다. 이 글꼴은 숫자와 라틴 라벨에만
   쓰이고 한글은 Pretendard 로 넘어가므로 키릴·베트남어 서브셋이 필요 없습니다.

   IBMPlexMono-*-latin.woff2 세 개는 원본에서 한 군데를 고쳤습니다. 이 글꼴의 '0' 은
   가운데에 점이 박힌 모양(윤곽선 3개 — 바깥·안쪽·점)이라 "0원", "22개" 같은 큰 숫자에서
   점이 그대로 보입니다. 점을 끄는 OpenType 기능('zero')이 서브셋에 들어 있지 않아
   CSS 로는 없앨 수 없어, zero·zero.numr·zero.dnom 세 글자에서 점 윤곽선만 지웠습니다.
   폭(600)과 나머지 글자는 건드리지 않았으므로 등폭은 그대로입니다.
   글꼴을 새로 받으면 점이 되살아납니다 — tools/font-zero/strip-zero-dot.py 를 다시 돌리십시오.
   (IBM Plex 는 OFL 이며 예약 글꼴 이름이 없어 수정·재배포가 허용됩니다.)

   빌드가 이 파일을 site.css 앞에 붙여 하나로 내보냅니다.
   파일명에 버전이 들어 있어 immutable 캐시와 함께 써도 안전합니다. */

/* IBM Plex Mono 400 / latin-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/ibm-plex-mono-v20/IBMPlexMono-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* IBM Plex Mono 400 / latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/ibm-plex-mono-v20/IBMPlexMono-400-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* IBM Plex Mono 500 / latin-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/ibm-plex-mono-v20/IBMPlexMono-500-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* IBM Plex Mono 500 / latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/ibm-plex-mono-v20/IBMPlexMono-500-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* IBM Plex Mono 600 / latin-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/ibm-plex-mono-v20/IBMPlexMono-600-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* IBM Plex Mono 600 / latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/ibm-plex-mono-v20/IBMPlexMono-600-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/**
 * Minified by jsDelivr using clean-css v5.3.3.
 * Original file: /gh/orioncactus/pretendard@1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.css
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.0.woff2) format('woff2-variations');unicode-range:U+f9ca-fa0b,U+ff03-ff05,U+ff07,U+ff0a-ff0b,U+ff0d-ff19,U+ff1b,U+ff1d,U+ff20-ff5b,U+ff5d,U+ffe0-ffe3,U+ffe5-ffe6}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.1.woff2) format('woff2-variations');unicode-range:U+d723-d728,U+d72a-d733,U+d735-d748,U+d74a-d74f,U+d752-d753,U+d755-d757,U+d75a-d75f,U+d762-d764,U+d766-d768,U+d76a-d76b,U+d76d-d76f,U+d771-d787,U+d789-d78b,U+d78d-d78f,U+d791-d797,U+d79a,U+d79c,U+d79e-d7a3,U+f900-f909,U+f90b-f92e}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.2.woff2) format('woff2-variations');unicode-range:U+d679-d68b,U+d68e-d69e,U+d6a0,U+d6a2-d6a7,U+d6a9-d6c3,U+d6c6-d6c7,U+d6c9-d6cb,U+d6cd-d6d3,U+d6d5-d6d6,U+d6d8-d6e3,U+d6e5-d6e7,U+d6e9-d6fb,U+d6fd-d717,U+d719-d71f,U+d721-d722}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.3.woff2) format('woff2-variations');unicode-range:U+d5bc-d5c7,U+d5ca-d5cb,U+d5cd-d5cf,U+d5d1-d5d7,U+d5d9-d5da,U+d5dc,U+d5de-d5e3,U+d5e6-d5e7,U+d5e9-d5eb,U+d5ed-d5f6,U+d5f8,U+d5fa-d5ff,U+d602-d603,U+d605-d607,U+d609-d60f,U+d612-d613,U+d616-d61b,U+d61d-d637,U+d63a-d63b,U+d63d-d63f,U+d641-d647,U+d64a-d64c,U+d64e-d653,U+d656-d657,U+d659-d65b,U+d65d-d666,U+d668,U+d66a-d678}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.4.woff2) format('woff2-variations');unicode-range:U+d507,U+d509-d50b,U+d50d-d513,U+d515-d53b,U+d53e-d53f,U+d541-d543,U+d545-d54c,U+d54e,U+d550,U+d552-d557,U+d55a-d55b,U+d55d-d55f,U+d561-d564,U+d566-d567,U+d56a,U+d56c,U+d56e-d573,U+d576-d577,U+d579-d583,U+d585-d586,U+d58a-d5a4,U+d5a6-d5bb}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.5.woff2) format('woff2-variations');unicode-range:U+d464-d477,U+d47a-d47b,U+d47d-d47f,U+d481-d487,U+d489-d48a,U+d48c,U+d48e-d4e7,U+d4e9-d503,U+d505-d506}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.6.woff2) format('woff2-variations');unicode-range:U+d3bf-d3c7,U+d3ca-d3cf,U+d3d1-d3eb,U+d3ee-d3ef,U+d3f1-d3f3,U+d3f5-d3fb,U+d3fd-d400,U+d402-d45b,U+d45d-d463}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.7.woff2) format('woff2-variations');unicode-range:U+d2ff,U+d302-d304,U+d306-d30b,U+d30f,U+d311-d313,U+d315-d31b,U+d31e,U+d322-d324,U+d326-d327,U+d32a-d32b,U+d32d-d32f,U+d331-d337,U+d339-d33c,U+d33e-d37b,U+d37e-d37f,U+d381-d383,U+d385-d38b,U+d38e-d390,U+d392-d397,U+d39a-d39b,U+d39d-d39f,U+d3a1-d3a7,U+d3a9-d3aa,U+d3ac,U+d3ae-d3b3,U+d3b5-d3b7,U+d3b9-d3bb,U+d3bd-d3be}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.8.woff2) format('woff2-variations');unicode-range:U+d257-d27f,U+d281-d29b,U+d29d-d29f,U+d2a1-d2ab,U+d2ad-d2b7,U+d2ba-d2bb,U+d2bd-d2bf,U+d2c1-d2c7,U+d2c9-d2ef,U+d2f2-d2f3,U+d2f5-d2f7,U+d2f9-d2fe}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.9.woff2) format('woff2-variations');unicode-range:U+d1b4,U+d1b6-d1f3,U+d1f5-d22b,U+d22e-d22f,U+d231-d233,U+d235-d23b,U+d23d-d240,U+d242-d256}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.10.woff2) format('woff2-variations');unicode-range:U+d105-d12f,U+d132-d133,U+d135-d137,U+d139-d13f,U+d141-d142,U+d144,U+d146-d14b,U+d14e-d14f,U+d151-d153,U+d155-d15b,U+d15e-d187,U+d189-d19f,U+d1a2-d1a3,U+d1a5-d1a7,U+d1a9-d1af,U+d1b2-d1b3}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.11.woff2) format('woff2-variations');unicode-range:U+d04b-d04f,U+d051-d057,U+d059-d06b,U+d06d-d06f,U+d071-d073,U+d075-d07b,U+d07e-d0a3,U+d0a6-d0a7,U+d0a9-d0ab,U+d0ad-d0b3,U+d0b6,U+d0b8,U+d0ba-d0bf,U+d0c2-d0c3,U+d0c5-d0c7,U+d0c9-d0cf,U+d0d2,U+d0d6-d0db,U+d0de-d0df,U+d0e1-d0e3,U+d0e5-d0eb,U+d0ee-d0f0,U+d0f2-d104}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.12.woff2) format('woff2-variations');unicode-range:U+cfa2-cfc3,U+cfc5-cfdf,U+cfe2-cfe3,U+cfe5-cfe7,U+cfe9-cff4,U+cff6-cffb,U+cffd-cfff,U+d001-d003,U+d005-d017,U+d019-d033,U+d036-d037,U+d039-d03b,U+d03d-d04a}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.13.woff2) format('woff2-variations');unicode-range:U+cef0-cef3,U+cef6,U+cef9-ceff,U+cf01-cf03,U+cf05-cf07,U+cf09-cf0f,U+cf11-cf12,U+cf14-cf1b,U+cf1d-cf1f,U+cf21-cf2f,U+cf31-cf53,U+cf56-cf57,U+cf59-cf5b,U+cf5d-cf63,U+cf66,U+cf68,U+cf6a-cf6f,U+cf71-cf84,U+cf86-cf8b,U+cf8d-cfa1}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.14.woff2) format('woff2-variations');unicode-range:U+ce3c-ce57,U+ce5a-ce5b,U+ce5d-ce5f,U+ce61-ce67,U+ce6a,U+ce6c,U+ce6e-ce73,U+ce76-ce77,U+ce79-ce7b,U+ce7d-ce83,U+ce85-ce88,U+ce8a-ce8f,U+ce91-ce93,U+ce95-ce97,U+ce99-ce9f,U+cea2,U+cea4-ceab,U+cead-cee3,U+cee6-cee7,U+cee9-ceeb,U+ceed-ceef}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.15.woff2) format('woff2-variations');unicode-range:U+cd92-cd93,U+cd96-cd97,U+cd99-cd9b,U+cd9d-cda3,U+cda6-cda8,U+cdaa-cdaf,U+cdb1-cdc3,U+cdc5-cdcb,U+cdcd-cde7,U+cde9-ce03,U+ce05-ce1f,U+ce22-ce34,U+ce36-ce3b}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.16.woff2) format('woff2-variations');unicode-range:U+ccef-cd07,U+cd0a-cd0b,U+cd0d-cd1a,U+cd1c,U+cd1e-cd2b,U+cd2d-cd5b,U+cd5d-cd77,U+cd79-cd91}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.17.woff2) format('woff2-variations');unicode-range:U+cc3f-cc43,U+cc46-cc47,U+cc49-cc4b,U+cc4d-cc53,U+cc55-cc58,U+cc5a-cc5f,U+cc61-cc97,U+cc9a-cc9b,U+cc9d-cc9f,U+cca1-cca7,U+ccaa,U+ccac,U+ccae-ccb3,U+ccb6-ccb7,U+ccb9-ccbb,U+ccbd-cccf,U+ccd1-cce3,U+cce5-ccee}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.18.woff2) format('woff2-variations');unicode-range:U+cb91-cbd3,U+cbd5-cbe3,U+cbe5-cc0b,U+cc0e-cc0f,U+cc11-cc13,U+cc15-cc1b,U+cc1d-cc20,U+cc23-cc27,U+cc2a-cc2b,U+cc2d,U+cc2f,U+cc31-cc37,U+cc3a,U+cc3c}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.19.woff2) format('woff2-variations');unicode-range:U+caf4-cb47,U+cb4a-cb90}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.20.woff2) format('woff2-variations');unicode-range:U+ca4a-ca4b,U+ca4e-ca4f,U+ca51-ca53,U+ca55-ca5b,U+ca5d-ca60,U+ca62-ca83,U+ca85-cabb,U+cabe-cabf,U+cac1-cac3,U+cac5-cacb,U+cacd-cad0,U+cad2,U+cad4-cad8,U+cada-caf3}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.21.woff2) format('woff2-variations');unicode-range:U+c996-c997,U+c99a-c99c,U+c99e-c9bf,U+c9c2-c9c3,U+c9c5-c9c7,U+c9c9-c9cf,U+c9d2,U+c9d4,U+c9d7-c9d8,U+c9db,U+c9de-c9df,U+c9e1-c9e3,U+c9e5-c9e6,U+c9e8-c9eb,U+c9ee-c9f0,U+c9f2-c9f7,U+c9f9-ca0b,U+ca0d-ca28,U+ca2a-ca49}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.22.woff2) format('woff2-variations');unicode-range:U+c8e9-c8f4,U+c8f6-c8fb,U+c8fe-c8ff,U+c901-c903,U+c905-c90b,U+c90e-c910,U+c912-c917,U+c919-c92b,U+c92d-c94f,U+c951-c953,U+c955-c96b,U+c96d-c973,U+c975-c987,U+c98a-c98b,U+c98d-c98f,U+c991-c995}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.23.woff2) format('woff2-variations');unicode-range:U+c841-c84b,U+c84d-c86f,U+c872-c873,U+c875-c877,U+c879-c87f,U+c882-c884,U+c887-c88a,U+c88d-c8c3,U+c8c5-c8df,U+c8e1-c8e8}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.24.woff2) format('woff2-variations');unicode-range:U+c779-c77b,U+c77e-c782,U+c786,U+c78b,U+c78d,U+c78f,U+c792-c793,U+c795,U+c797,U+c799-c79f,U+c7a2,U+c7a7-c7ab,U+c7ae-c7bb,U+c7bd-c7c0,U+c7c2-c7c7,U+c7c9-c7dc,U+c7de-c7ff,U+c802-c803,U+c805-c807,U+c809,U+c80b-c80f,U+c812,U+c814,U+c817-c81b,U+c81e-c81f,U+c821-c823,U+c825-c82e,U+c830-c837,U+c839-c83b,U+c83d-c840}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.25.woff2) format('woff2-variations');unicode-range:U+c6bb-c6bf,U+c6c2,U+c6c4,U+c6c6-c6cb,U+c6ce-c6cf,U+c6d1-c6d3,U+c6d5-c6db,U+c6dd-c6df,U+c6e1-c6e7,U+c6e9-c6eb,U+c6ed-c6ef,U+c6f1-c6f8,U+c6fa-c703,U+c705-c707,U+c709-c70b,U+c70d-c716,U+c718,U+c71a-c71f,U+c722-c723,U+c725-c727,U+c729-c734,U+c736-c73b,U+c73e-c73f,U+c741-c743,U+c745-c74b,U+c74e-c750,U+c752-c757,U+c759-c773,U+c776-c777}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.26.woff2) format('woff2-variations');unicode-range:U+c5f5-c5fb,U+c5fe,U+c602-c605,U+c607,U+c609-c60f,U+c611-c61a,U+c61c-c623,U+c626-c627,U+c629-c62b,U+c62d,U+c62f-c632,U+c636,U+c638,U+c63a-c63f,U+c642-c643,U+c645-c647,U+c649-c652,U+c656-c65b,U+c65d-c65f,U+c661-c663,U+c665-c677,U+c679-c67b,U+c67d-c693,U+c696-c697,U+c699-c69b,U+c69d-c6a3,U+c6a6,U+c6a8,U+c6aa-c6af,U+c6b2-c6b3,U+c6b5-c6b7,U+c6b9-c6ba}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.27.woff2) format('woff2-variations');unicode-range:U+c517-c527,U+c52a-c52b,U+c52d-c52f,U+c531-c538,U+c53a,U+c53c,U+c53e-c543,U+c546-c547,U+c54b,U+c54d-c552,U+c556,U+c55a-c55b,U+c55d,U+c55f,U+c562-c563,U+c565-c567,U+c569-c56f,U+c572,U+c574,U+c576-c57b,U+c57e-c57f,U+c581-c583,U+c585-c586,U+c588-c58b,U+c58e,U+c590,U+c592-c596,U+c599-c5b3,U+c5b6-c5b7,U+c5ba,U+c5be-c5c3,U+c5ca-c5cb,U+c5cd,U+c5cf,U+c5d2-c5d3,U+c5d5-c5d7,U+c5d9-c5df,U+c5e1-c5e2,U+c5e4,U+c5e6-c5eb,U+c5ef,U+c5f1-c5f3}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.28.woff2) format('woff2-variations');unicode-range:U+c475-c4ef,U+c4f2-c4f3,U+c4f5-c4f7,U+c4f9-c4ff,U+c502-c50b,U+c50d-c516}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.29.woff2) format('woff2-variations');unicode-range:U+c3d0-c3d7,U+c3da-c3db,U+c3dd-c3de,U+c3e1-c3ec,U+c3ee-c3f3,U+c3f5-c42b,U+c42d-c463,U+c466-c474}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.30.woff2) format('woff2-variations');unicode-range:U+c32b-c367,U+c36a-c36b,U+c36d-c36f,U+c371-c377,U+c37a-c37b,U+c37e-c383,U+c385-c387,U+c389-c3cf}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.31.woff2) format('woff2-variations');unicode-range:U+c26a-c26b,U+c26d-c26f,U+c271-c273,U+c275-c27b,U+c27e-c287,U+c289-c28f,U+c291-c297,U+c299-c29a,U+c29c-c2a3,U+c2a5-c2a7,U+c2a9-c2ab,U+c2ad-c2b3,U+c2b6,U+c2b8,U+c2ba-c2bb,U+c2bd-c2db,U+c2de-c2df,U+c2e1-c2e2,U+c2e5-c2ea,U+c2ee,U+c2f0,U+c2f2-c2f5,U+c2f7,U+c2fa-c2fb,U+c2fd-c2ff,U+c301-c307,U+c309-c30c,U+c30e-c312,U+c315-c323,U+c325-c328,U+c32a}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.32.woff2) format('woff2-variations');unicode-range:U+c1bc-c1c3,U+c1c5-c1df,U+c1e1-c1fb,U+c1fd-c203,U+c205-c20c,U+c20e,U+c210-c217,U+c21a-c21b,U+c21d-c21e,U+c221-c227,U+c229-c22a,U+c22c,U+c22e,U+c230,U+c233-c24f,U+c251-c257,U+c259-c269}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.33.woff2) format('woff2-variations');unicode-range:U+c101-c11b,U+c11f,U+c121-c123,U+c125-c12b,U+c12e,U+c132-c137,U+c13a-c13b,U+c13d-c13f,U+c141-c147,U+c14a,U+c14c-c153,U+c155-c157,U+c159-c15b,U+c15d-c166,U+c169-c16f,U+c171-c177,U+c179-c18b,U+c18e-c18f,U+c191-c193,U+c195-c19b,U+c19d-c19e,U+c1a0,U+c1a2-c1a4,U+c1a6-c1bb}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.34.woff2) format('woff2-variations');unicode-range:U+c049-c057,U+c059-c05b,U+c05d-c05f,U+c061-c067,U+c069-c08f,U+c091-c0ab,U+c0ae-c0af,U+c0b1-c0b3,U+c0b5,U+c0b7-c0bb,U+c0be,U+c0c2-c0c7,U+c0ca-c0cb,U+c0cd-c0cf,U+c0d1-c0d7,U+c0d9-c0da,U+c0dc,U+c0de-c0e3,U+c0e5-c0eb,U+c0ed-c0f3,U+c0f6,U+c0f8,U+c0fa-c0ff}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.35.woff2) format('woff2-variations');unicode-range:U+bfa7-bfaf,U+bfb1-bfc4,U+bfc6-bfcb,U+bfce-bfcf,U+bfd1-bfd3,U+bfd5-bfdb,U+bfdd-c048}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.36.woff2) format('woff2-variations');unicode-range:U+bf07,U+bf09-bf3f,U+bf41-bf4f,U+bf52-bf54,U+bf56-bfa6}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.37.woff2) format('woff2-variations');unicode-range:U+be56,U+be58,U+be5c-be5f,U+be62-be63,U+be65-be67,U+be69-be74,U+be76-be7b,U+be7e-be7f,U+be81-be8e,U+be90,U+be92-bea7,U+bea9-becf,U+bed2-bed3,U+bed5-bed6,U+bed9-bee3,U+bee6-bf06}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.38.woff2) format('woff2-variations');unicode-range:U+bdb0-bdd3,U+bdd5-bdef,U+bdf1-be0b,U+be0d-be0f,U+be11-be13,U+be15-be43,U+be46-be47,U+be49-be4b,U+be4d-be53}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.39.woff2) format('woff2-variations');unicode-range:U+bd03,U+bd06,U+bd08,U+bd0a-bd0f,U+bd11-bd22,U+bd25-bd47,U+bd49-bd58,U+bd5a-bd7f,U+bd82-bd83,U+bd85-bd87,U+bd8a-bd8f,U+bd91-bd92,U+bd94,U+bd96-bd98,U+bd9a-bdaf}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.40.woff2) format('woff2-variations');unicode-range:U+bc4e-bc83,U+bc86-bc87,U+bc89-bc8b,U+bc8d-bc93,U+bc96,U+bc98,U+bc9b-bc9f,U+bca2-bca3,U+bca5-bca7,U+bca9-bcb2,U+bcb4-bcbb,U+bcbe-bcbf,U+bcc1-bcc3,U+bcc5-bccc,U+bcce-bcd0,U+bcd2-bcd4,U+bcd6-bcf3,U+bcf7,U+bcf9-bcfb,U+bcfd-bd02}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.41.woff2) format('woff2-variations');unicode-range:U+bb90-bba3,U+bba5-bbab,U+bbad-bbbf,U+bbc1-bbf7,U+bbfa-bbfb,U+bbfd-bbfe,U+bc01-bc07,U+bc09-bc0a,U+bc0e,U+bc10,U+bc12-bc13,U+bc17,U+bc19-bc1a,U+bc1e,U+bc20-bc23,U+bc26,U+bc28,U+bc2a-bc2c,U+bc2e-bc2f,U+bc32-bc33,U+bc35-bc37,U+bc39-bc3f,U+bc41-bc42,U+bc44,U+bc46-bc48,U+bc4a-bc4d}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.42.woff2) format('woff2-variations');unicode-range:U+bae6-bafb,U+bafd-bb17,U+bb19-bb33,U+bb37,U+bb39-bb3a,U+bb3d-bb43,U+bb45-bb46,U+bb48,U+bb4a-bb4f,U+bb51-bb53,U+bb55-bb57,U+bb59-bb62,U+bb64-bb8f}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.43.woff2) format('woff2-variations');unicode-range:U+ba30-ba37,U+ba3a-ba3b,U+ba3d-ba3f,U+ba41-ba47,U+ba49-ba4a,U+ba4c,U+ba4e-ba53,U+ba56-ba57,U+ba59-ba5b,U+ba5d-ba63,U+ba65-ba66,U+ba68-ba6f,U+ba71-ba73,U+ba75-ba77,U+ba79-ba84,U+ba86,U+ba88-baa7,U+baaa,U+baad-baaf,U+bab1-bab7,U+baba,U+babc,U+babe-bae5}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.44.woff2) format('woff2-variations');unicode-range:U+b96e-b973,U+b976-b977,U+b979-b97b,U+b97d-b983,U+b986,U+b988,U+b98a-b98d,U+b98f-b9ab,U+b9ae-b9af,U+b9b1-b9b3,U+b9b5-b9bb,U+b9be,U+b9c0,U+b9c2-b9c7,U+b9ca-b9cb,U+b9cd,U+b9d2-b9d7,U+b9da,U+b9dc,U+b9df-b9e0,U+b9e2,U+b9e6-b9e7,U+b9e9-b9f3,U+b9f6,U+b9f8,U+b9fb-ba2f}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.45.woff2) format('woff2-variations');unicode-range:U+b8bf-b8cb,U+b8cd-b8e0,U+b8e2-b8e7,U+b8ea-b8eb,U+b8ed-b8ef,U+b8f1-b8f7,U+b8fa,U+b8fc,U+b8fe-b903,U+b905-b917,U+b919-b91f,U+b921-b93b,U+b93d-b957,U+b95a-b95b,U+b95d-b95f,U+b961-b967,U+b969-b96c}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.46.woff2) format('woff2-variations');unicode-range:U+b80d-b80f,U+b811-b817,U+b81a,U+b81c-b823,U+b826-b827,U+b829-b82b,U+b82d-b833,U+b836,U+b83a-b83f,U+b841-b85b,U+b85e-b85f,U+b861-b863,U+b865-b86b,U+b86e,U+b870,U+b872-b8af,U+b8b1-b8be}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.47.woff2) format('woff2-variations');unicode-range:U+b74d-b75f,U+b761-b763,U+b765-b774,U+b776-b77b,U+b77e-b77f,U+b781-b783,U+b785-b78b,U+b78e,U+b792-b796,U+b79a-b79b,U+b79d-b7a7,U+b7aa,U+b7ae-b7b3,U+b7b6-b7c8,U+b7ca-b7eb,U+b7ee-b7ef,U+b7f1-b7f3,U+b7f5-b7fb,U+b7fe,U+b802-b806,U+b80a-b80b}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.48.woff2) format('woff2-variations');unicode-range:U+b6a7-b6aa,U+b6ac-b6b0,U+b6b2-b6ef,U+b6f1-b727,U+b72a-b72b,U+b72d-b72e,U+b731-b737,U+b739-b73a,U+b73c-b743,U+b745-b74c}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.49.woff2) format('woff2-variations');unicode-range:U+b605-b60f,U+b612-b617,U+b619-b624,U+b626-b69b,U+b69e-b6a3,U+b6a5-b6a6}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.50.woff2) format('woff2-variations');unicode-range:U+b55f,U+b562-b583,U+b585-b59f,U+b5a2-b5a3,U+b5a5-b5a7,U+b5a9-b5b2,U+b5b5-b5ba,U+b5bd-b604}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.51.woff2) format('woff2-variations');unicode-range:U+b4a5-b4b6,U+b4b8-b4bf,U+b4c1-b4c7,U+b4c9-b4db,U+b4de-b4df,U+b4e1-b4e2,U+b4e5-b4eb,U+b4ee,U+b4f0,U+b4f2-b513,U+b516-b517,U+b519-b51a,U+b51d-b523,U+b526,U+b528,U+b52b-b52f,U+b532-b533,U+b535-b537,U+b539-b53f,U+b541-b544,U+b546-b54b,U+b54d-b54f,U+b551-b55b,U+b55d-b55e}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.52.woff2) format('woff2-variations');unicode-range:U+b3f8-b3fb,U+b3fd-b40f,U+b411-b417,U+b419-b41b,U+b41d-b41f,U+b421-b427,U+b42a-b42b,U+b42d-b44f,U+b452-b453,U+b455-b457,U+b459-b45f,U+b462-b464,U+b466-b46b,U+b46d-b47f,U+b481-b4a3}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.53.woff2) format('woff2-variations');unicode-range:U+b342-b353,U+b356-b357,U+b359-b35b,U+b35d-b35e,U+b360-b363,U+b366,U+b368,U+b36a-b36d,U+b36f,U+b372-b373,U+b375-b377,U+b379-b37f,U+b381-b382,U+b384,U+b386-b38b,U+b38d-b3c3,U+b3c6-b3c7,U+b3c9-b3ca,U+b3cd-b3d3,U+b3d6,U+b3d8,U+b3da-b3f7}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.54.woff2) format('woff2-variations');unicode-range:U+b27c-b283,U+b285-b28f,U+b292-b293,U+b295-b297,U+b29a-b29f,U+b2a1-b2a4,U+b2a7-b2a9,U+b2ab,U+b2ad-b2c7,U+b2ca-b2cb,U+b2cd-b2cf,U+b2d1-b2d7,U+b2da,U+b2dc,U+b2de-b2e3,U+b2e7,U+b2e9-b2ea,U+b2ef-b2f3,U+b2f6,U+b2f8,U+b2fa-b2fb,U+b2fd-b2fe,U+b302-b303,U+b305-b307,U+b309-b30f,U+b312,U+b316-b31b,U+b31d-b341}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.55.woff2) format('woff2-variations');unicode-range:U+b1d6-b1e7,U+b1e9-b1fc,U+b1fe-b203,U+b206-b207,U+b209-b20b,U+b20d-b213,U+b216-b21f,U+b221-b257,U+b259-b273,U+b275-b27b}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.56.woff2) format('woff2-variations');unicode-range:U+b120-b122,U+b126-b127,U+b129-b12b,U+b12d-b133,U+b136,U+b138,U+b13a-b13f,U+b142-b143,U+b145-b14f,U+b151-b153,U+b156-b157,U+b159-b177,U+b17a-b17b,U+b17d-b17f,U+b181-b187,U+b189-b18c,U+b18e-b191,U+b195-b1a7,U+b1a9-b1cb,U+b1cd-b1d5}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.57.woff2) format('woff2-variations');unicode-range:U+b05f-b07b,U+b07e-b07f,U+b081-b083,U+b085-b08b,U+b08d-b097,U+b09b,U+b09d-b09f,U+b0a2-b0a7,U+b0aa,U+b0b0,U+b0b2,U+b0b6-b0b7,U+b0b9-b0bb,U+b0bd-b0c3,U+b0c6-b0c7,U+b0ca-b0cf,U+b0d1-b0df,U+b0e1-b0e4,U+b0e6-b107,U+b10a-b10b,U+b10d-b10f,U+b111-b112,U+b114-b117,U+b119-b11a,U+b11c-b11f}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.58.woff2) format('woff2-variations');unicode-range:U+afac-afb7,U+afba-afbb,U+afbd-afbf,U+afc1-afc6,U+afca-afcc,U+afce-afd3,U+afd5-afe7,U+afe9-afef,U+aff1-b00b,U+b00d-b00f,U+b011-b013,U+b015-b01b,U+b01d-b027,U+b029-b043,U+b045-b047,U+b049,U+b04b,U+b04d-b052,U+b055-b056,U+b058-b05c,U+b05e}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.59.woff2) format('woff2-variations');unicode-range:U+af03-af07,U+af09-af2b,U+af2e-af33,U+af35-af3b,U+af3e-af40,U+af44-af47,U+af4a-af5c,U+af5e-af63,U+af65-af7f,U+af81-afab}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.60.woff2) format('woff2-variations');unicode-range:U+ae56-ae5b,U+ae5e-ae60,U+ae62-ae64,U+ae66-ae67,U+ae69-ae6b,U+ae6d-ae83,U+ae85-aebb,U+aebf,U+aec1-aec3,U+aec5-aecb,U+aece,U+aed0,U+aed2-aed7,U+aed9-aef3,U+aef5-af02}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.61.woff2) format('woff2-variations');unicode-range:U+ad9c-ada3,U+ada5-adbf,U+adc1-adc3,U+adc5-adc7,U+adc9-add2,U+add4-addb,U+addd-addf,U+ade1-ade3,U+ade5-adf7,U+adfa-adfb,U+adfd-adff,U+ae02-ae07,U+ae0a,U+ae0c,U+ae0e-ae13,U+ae15-ae2f,U+ae31-ae33,U+ae35-ae37,U+ae39-ae3f,U+ae42,U+ae44,U+ae46-ae49,U+ae4b,U+ae4f,U+ae51-ae53,U+ae55}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.62.woff2) format('woff2-variations');unicode-range:U+ace2-ace3,U+ace5-ace6,U+ace9-acef,U+acf2,U+acf4,U+acf7-acfb,U+acfe-acff,U+ad01-ad03,U+ad05-ad0b,U+ad0d-ad10,U+ad12-ad1b,U+ad1d-ad33,U+ad35-ad48,U+ad4a-ad4f,U+ad51-ad6b,U+ad6e-ad6f,U+ad71-ad72,U+ad77-ad7c,U+ad7e,U+ad80,U+ad82-ad87,U+ad89-ad8b,U+ad8d-ad8f,U+ad91-ad9b}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.63.woff2) format('woff2-variations');unicode-range:U+ac25-ac2c,U+ac2e,U+ac30,U+ac32-ac37,U+ac39-ac3f,U+ac41-ac4c,U+ac4e-ac6f,U+ac72-ac73,U+ac75-ac76,U+ac79-ac7f,U+ac82,U+ac84-ac88,U+ac8a-ac8b,U+ac8d-ac8f,U+ac91-ac93,U+ac95-ac9b,U+ac9d-ac9e,U+aca1-aca7,U+acab,U+acad-acaf,U+acb1-acb7,U+acba-acbb,U+acbe-acc0,U+acc2-acc3,U+acc5-acdf}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.64.woff2) format('woff2-variations');unicode-range:U+99df,U+99ed,U+99f1,U+99ff,U+9a01,U+9a08,U+9a0e-9a0f,U+9a19,U+9a2b,U+9a30,U+9a36-9a37,U+9a40,U+9a43,U+9a45,U+9a4d,U+9a55,U+9a57,U+9a5a-9a5b,U+9a5f,U+9a62,U+9a65,U+9a69-9a6a,U+9aa8,U+9ab8,U+9ad3,U+9ae5,U+9aee,U+9b1a,U+9b27,U+9b2a,U+9b31,U+9b3c,U+9b41-9b45,U+9b4f,U+9b54,U+9b5a,U+9b6f,U+9b8e,U+9b91,U+9b9f,U+9bab,U+9bae,U+9bc9,U+9bd6,U+9be4,U+9be8,U+9c0d,U+9c10,U+9c12,U+9c15,U+9c25,U+9c32,U+9c3b,U+9c47,U+9c49,U+9c57,U+9ce5,U+9ce7,U+9ce9,U+9cf3-9cf4,U+9cf6,U+9d09,U+9d1b,U+9d26,U+9d28,U+9d3b,U+9d51,U+9d5d,U+9d60-9d61,U+9d6c,U+9d72,U+9da9,U+9daf,U+9db4,U+9dc4,U+9dd7,U+9df2,U+9df8-9dfa,U+9e1a,U+9e1e,U+9e75,U+9e79,U+9e7d,U+9e7f,U+9e92-9e93,U+9e97,U+9e9d,U+9e9f,U+9ea5,U+9eb4-9eb5,U+9ebb,U+9ebe,U+9ec3,U+9ecd-9ece,U+9ed4,U+9ed8,U+9edb-9edc,U+9ede,U+9ee8,U+9ef4,U+9f07-9f08,U+9f0e,U+9f13,U+9f20,U+9f3b,U+9f4a-9f4b,U+9f4e,U+9f52,U+9f5f,U+9f61,U+9f67,U+9f6a,U+9f6c,U+9f77,U+9f8d,U+9f90,U+9f95,U+9f9c,U+ac02-ac03,U+ac05-ac06,U+ac09-ac0f,U+ac17-ac18,U+ac1b,U+ac1e-ac1f,U+ac21-ac23}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.65.woff2) format('woff2-variations');unicode-range:U+338c-339c,U+339f-33a0,U+33a2-33cb,U+33cf-33d0,U+33d3,U+33d6,U+33d8,U+33db-33dd,U+4e01,U+4e03,U+4e07-4e08,U+4e11,U+4e14-4e15,U+4e18-4e19,U+4e1e,U+4e32,U+4e38-4e39,U+4e42-4e43,U+4e45,U+4e4d-4e4f,U+4e56,U+4e58-4e59,U+4e5d-4e5e,U+4e6b,U+4e6d,U+4e73,U+4e76-4e77,U+4e7e,U+4e82,U+4e86,U+4e88,U+4e8e,U+4e90-4e92,U+4e94-4e95,U+4e98,U+4e9b,U+4e9e,U+4ea1-4ea2,U+4ea4-4ea6,U+4ea8,U+4eab,U+4ead-4eae,U+4eb6,U+4ec0-4ec1,U+4ec4,U+4ec7,U+4ecb,U+4ecd,U+4ed4-4ed5,U+4ed7-4ed9,U+4edd,U+4edf,U+4ee4,U+4ef0,U+4ef2,U+4ef6-4ef7,U+4efb,U+4f01,U+4f09,U+4f0b,U+4f0d-4f11,U+4f2f,U+4f34,U+4f36,U+4f38,U+4f3a,U+4f3c-4f3d}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.66.woff2) format('woff2-variations');unicode-range:U+3136,U+3138,U+313a-3140,U+3143-3144,U+3150,U+3152,U+3154-3156,U+3158-315b,U+315d-315f,U+3162,U+3164-318c,U+318e,U+3200-321b,U+3231,U+3239,U+3251-325a,U+3260-327b,U+327e-327f,U+328a-3290,U+3294,U+329e,U+32a5,U+3380-3384,U+3388-338b}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.67.woff2) format('woff2-variations');unicode-range:U+2f7d,U+2f7f-2f8b,U+2f8e-2f90,U+2f92-2f97,U+2f99-2fa0,U+2fa2-2fa3,U+2fa5-2fa9,U+2fac-2fb1,U+2fb3-2fbc,U+2fc1-2fca,U+2fcd-2fd4,U+3003,U+3012-3019,U+301c,U+301e-3020,U+3036,U+3041,U+3043,U+3045,U+3047,U+3049,U+304e,U+3050,U+3052,U+3056,U+305a,U+305c,U+305e,U+3062,U+3065,U+306c,U+3070-307d,U+3080,U+3085,U+3087,U+308e,U+3090-3091,U+30a1,U+30a5,U+30a9,U+30ae,U+30b1-30b2,U+30b4,U+30b6,U+30bc-30be,U+30c2,U+30c5,U+30cc,U+30d2,U+30d4,U+30d8-30dd,U+30e4,U+30e6,U+30e8,U+30ee,U+30f0-30f2,U+30f4-30f6,U+3133,U+3135}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.68.woff2) format('woff2-variations');unicode-range:U+2541-254b,U+25a4-25a9,U+25b1,U+25b5,U+25b9,U+25bf,U+25c1,U+25c3,U+25c9-25ca,U+25cc,U+25ce,U+25d0-25d1,U+25e6,U+25ef,U+260f,U+261d,U+261f,U+262f,U+2660,U+2664,U+2667-2669,U+266d,U+266f,U+2716,U+271a,U+273d,U+2756,U+2776-277f,U+278a-2793,U+2963,U+2965,U+2ac5-2ac6,U+2acb-2acc,U+2f00,U+2f04,U+2f06,U+2f08,U+2f0a-2f0b,U+2f11-2f12,U+2f14,U+2f17-2f18,U+2f1c-2f1d,U+2f1f-2f20,U+2f23-2f26,U+2f28-2f29,U+2f2b,U+2f2d,U+2f2f-2f32,U+2f38,U+2f3c-2f40,U+2f42-2f4c,U+2f4f-2f52,U+2f54-2f58,U+2f5a-2f66,U+2f69-2f70,U+2f72-2f76,U+2f78,U+2f7a-2f7c}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.69.woff2) format('woff2-variations');unicode-range:U+2479-2487,U+249c-24d1,U+24d3-24d7,U+24d9-24e9,U+24eb-24f4,U+2500-2501,U+2503,U+250c-2513,U+2515-2516,U+2518-2540}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.70.woff2) format('woff2-variations');unicode-range:U+215b-215e,U+2162-2169,U+2170-2179,U+2195-2199,U+21b0-21b4,U+21bc,U+21c0,U+21c4-21c5,U+21cd,U+21cf-21d4,U+21e0-21e3,U+21e6-21e9,U+2200,U+2202-2203,U+2206-2209,U+220b-220c,U+220f,U+2211,U+2213,U+221a,U+221d-2220,U+2222,U+2225-2227,U+2229-222c,U+222e,U+2234-2237,U+223d,U+2243,U+2245,U+2248,U+2250-2253,U+225a,U+2260-2262,U+2264-2267,U+226a-226b,U+226e-2273,U+2276-2277,U+2279-227b,U+2280-2287,U+228a-228b,U+2295-2297,U+22a3-22a5,U+22bb-22bc,U+22ce-22cf,U+22da-22db,U+22ee-22ef,U+2306,U+2312,U+2314,U+2467-2478}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.71.woff2) format('woff2-variations');unicode-range:U+81-82,U+84,U+a2-a5,U+a7-a8,U+aa,U+ac,U+b1-b3,U+b6,U+b8-ba,U+bc-be,U+c0,U+c2,U+c6-cb,U+ce-d0,U+d4,U+d8-d9,U+db-dc,U+de-df,U+e6,U+eb,U+ee-f0,U+f4,U+f7-f9,U+fb,U+fe-ff,U+111,U+126-127,U+132-133,U+138,U+13f-142,U+149-14b,U+152-153,U+166-167,U+2bc,U+2c7,U+2d0,U+2d8-2d9,U+2db-2dd,U+391-394,U+396-3a1,U+3a3-3a9,U+3b2-3b6,U+3b8,U+3bc,U+3be-3c1,U+3c3-3c9,U+2010,U+2015-2016,U+2018-2019,U+201b,U+201f-2021,U+2025,U+2030,U+2033-2036,U+203c,U+203e,U+2042,U+2074,U+207a-207f,U+2081-2084,U+2109,U+2113,U+2116,U+2121,U+2126,U+212b,U+2153-2154}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.72.woff2) format('woff2-variations');unicode-range:U+e8,U+2da,U+2160,U+2194,U+3054,U+3058,U+306d,U+3086,U+308d,U+30ac,U+30bb,U+30c4,U+30cd-30ce,U+30e2,U+3132,U+3146,U+3149,U+339d,U+4e3b,U+4f0a,U+4fdd,U+4fe1,U+5409,U+540c,U+5834,U+592a-592b,U+5b9a,U+5dde,U+5e0c,U+5e73,U+5f0f,U+60f3,U+653f,U+661f,U+662f,U+667a,U+683c,U+6b4c,U+6c11,U+767c,U+76ee,U+76f4,U+77f3,U+79d1,U+7a7a,U+7b2c,U+7d22,U+8207,U+8a00,U+8a71,U+9280,U+9580,U+958b,U+96c6,U+9762,U+98df,U+9ed1,U+ac2d,U+adc8,U+add3,U+af48,U+b014,U+b134-b135,U+b158,U+b2aa,U+b35f,U+b6a4,U+b9cf,U+bb63,U+bd23,U+be91,U+c29b,U+c3f4,U+c42c,U+c55c,U+c573,U+c58f,U+c78c,U+c7dd,U+c8f5,U+cad1,U+cc48,U+cf10,U+cf20,U+d03c,U+d07d,U+d2a0,U+d30e,U+d38d,U+d3a8,U+d3c8,U+d5e5,U+d5f9,U+d6e4,U+f90a,U+ff02,U+ff1c}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.73.woff2) format('woff2-variations');unicode-range:U+3b1,U+2466,U+25a1,U+25a3,U+261c,U+3008-3009,U+305b,U+305d,U+3069,U+30a7,U+30ba,U+30cf,U+30ef,U+3151,U+3157,U+4e4b,U+4e5f,U+4e8c,U+4eca,U+4ed6,U+4f5b,U+50cf,U+5149,U+5165,U+5171,U+5229,U+529b,U+5316,U+539f,U+53f2,U+571f,U+5728,U+58eb,U+591c,U+5b78,U+5c11,U+5c55,U+5ddd,U+5e02,U+5fb7,U+60c5,U+610f,U+611f,U+6625,U+66f8,U+6797,U+679c,U+682a,U+6d2a,U+706b,U+7406,U+767b,U+76f8,U+77e5,U+7acb,U+898b,U+8a69,U+8def,U+8fd1,U+901a,U+90e8,U+91cd,U+975e,U+ae14,U+ae6c,U+aec0,U+afc7,U+afc9,U+b01c,U+b028,U+b308,U+b311,U+b314,U+b31c,U+b524,U+b560,U+b764,U+b920,U+b9e3,U+bd48,U+be7d,U+c0db,U+c231,U+c270,U+c2e3,U+c37d,U+c3ed,U+c530,U+c6a5,U+c6dc,U+c7a4,U+c954,U+c974,U+d000,U+d565,U+d667,U+d6c5,U+d79d,U+ff1e}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.74.woff2) format('woff2-variations');unicode-range:U+131,U+2032,U+2465,U+2642,U+3048,U+3051,U+3083-3084,U+308f,U+30c0,U+30d1,U+30d3,U+30d6,U+30df,U+30e7,U+3153,U+4e16,U+4e8b,U+4ee5,U+5206,U+52a0,U+52d5,U+53e4,U+53ef,U+54c1,U+57ce,U+597d,U+5b8c,U+5ea6,U+5f8c,U+5f97,U+6210,U+6240,U+624b,U+6728,U+6bd4,U+7236,U+7269,U+7279,U+738b,U+7528,U+7530,U+767e,U+798f,U+8005,U+8a18,U+90fd,U+91cc,U+9577,U+9593,U+98a8,U+ac20,U+acf6,U+ad90,U+af5d,U+af80,U+afcd,U+aff0,U+b0a1,U+b0b5,U+b1fd,U+b2fc,U+b380,U+b51b,U+b584,U+b5b3,U+b8fd,U+b93c,U+b9f4,U+bb44,U+bc08,U+bc27,U+bc49,U+be55,U+be64,U+bfb0,U+bfc5,U+c178,U+c21f,U+c314,U+c4f1,U+c58d,U+c664,U+c698,U+c6a7,U+c6c1,U+c9ed,U+cac0,U+cacc,U+cad9,U+ccb5,U+cdcc,U+d0e4,U+d143,U+d320,U+d330,U+d54d,U+ff06,U+ff1f,U+ff5e}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.75.woff2) format('woff2-variations');unicode-range:U+b4,U+20a9,U+20ac,U+2190,U+24d8,U+2502,U+2514,U+2592,U+25c7-25c8,U+2663,U+3060,U+3064,U+3081,U+3088,U+30a3,U+30a6,U+30aa,U+30b5,U+30c7,U+30ca-30cb,U+30d0,U+30e3,U+30e5,U+339e,U+4e09,U+4eac,U+4f5c,U+5167-5168,U+516c,U+51fa,U+5408,U+540d,U+591a,U+5b57,U+6211,U+65b9,U+660e,U+6642,U+6700,U+6b63,U+6e2f,U+7063,U+7532,U+793e,U+81ea,U+8272,U+82b1,U+897f,U+8eca,U+91ce,U+ac38,U+ad76,U+ae84,U+aecc,U+b07d,U+b0b1,U+b215,U+b2a0,U+b310,U+b3d7,U+b52a,U+b618,U+b775,U+b797,U+bcd5,U+bd59,U+be80,U+bea8,U+bed1,U+bee4-bee5,U+c060,U+c2ef,U+c329,U+c3dc,U+c597,U+c5bd,U+c5e5,U+c69c,U+c9d6,U+ca29,U+ca5c,U+ca84,U+cc39,U+cc3b,U+ce89,U+cee5,U+cf65,U+cf85,U+d058,U+d145,U+d22d,U+d325,U+d37d,U+d3ad,U+d769,U+ff0c}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.76.woff2) format('woff2-variations');unicode-range:U+2161,U+2228,U+2299,U+2464,U+2517,U+2640,U+3042,U+304a,U+3053,U+3061,U+307f,U+3082,U+308c,U+3092,U+30a8,U+30ab,U+30ad,U+30b0,U+30b3,U+30b7,U+30c1,U+30c6,U+30c9,U+30d5,U+30d7,U+30de,U+30e0-30e1,U+30ec-30ed,U+4e0b,U+4e0d,U+4ee3,U+53f0,U+548c,U+5b89,U+5bb6,U+5c0f,U+611b,U+6771,U+6aa2,U+6bcd,U+6c34,U+6cd5,U+6d77,U+767d,U+795e,U+8ecd,U+9999,U+9ad8,U+ac07,U+ac1a,U+ac40,U+ad0c,U+ad88,U+ada4,U+ae01,U+ae65,U+aebd,U+aec4,U+afe8,U+b139,U+b205,U+b383,U+b38c,U+b42c,U+b461,U+b55c,U+b78f,U+b8fb,U+b9f7,U+bafc,U+bc99,U+bed8,U+bfcd,U+c0bf,U+c0f9,U+c167,U+c204,U+c20f,U+c22f,U+c258,U+c298,U+c2bc,U+c388,U+c501,U+c50c,U+c5b9,U+c5ce,U+c641,U+c648,U+c73d,U+ca50,U+ca61,U+cc4c,U+ceac,U+d0d4,U+d5f7,U+d6d7,U+ff1a}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.77.woff2) format('woff2-variations');unicode-range:U+2103,U+2463,U+25c6,U+25cb,U+266c,U+3001,U+300a,U+3046,U+304c-304d,U+304f,U+3055,U+3059,U+3063,U+3066-3068,U+306f,U+3089,U+30b8,U+30bf,U+314f,U+4e0a,U+570b,U+5730,U+5916,U+5929,U+5c71,U+5e74,U+5fc3,U+601d,U+6027,U+63d0,U+6709,U+6734,U+751f,U+7684,U+82f1,U+9053,U+91d1,U+97f3,U+ac2f,U+ac4d,U+adc4,U+ade4,U+ae41,U+ae4d-ae4e,U+aed1,U+afb9,U+b0e0,U+b299,U+b365,U+b46c,U+b480,U+b4c8,U+b7b4,U+b819,U+b918,U+baab,U+bab9,U+be8f,U+bed7,U+c0ec,U+c19f,U+c1a5,U+c3d9,U+c464,U+c53d,U+c553,U+c570,U+c5cc,U+c633,U+c6a4,U+c7a3,U+c7a6,U+c886,U+c9d9-c9da,U+c9ec,U+ca0c,U+cc21,U+cd1b,U+cd78,U+cdc4,U+cef8,U+cfe4,U+d0a5,U+d0b5,U+d0ec,U+d15d,U+d188,U+d23c,U+d2ac,U+d729,U+d79b,U+ff01,U+ff08-ff09,U+ff5c}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.78.woff2) format('woff2-variations');unicode-range:U+2039-203a,U+223c,U+25b3,U+25b7,U+25bd,U+25cf,U+266a,U+3002,U+300b,U+304b,U+3057,U+305f,U+306a-306b,U+307e,U+308a-308b,U+3093,U+30a2,U+30af,U+30b9,U+30c3,U+30c8,U+30e9-30eb,U+33a1,U+4e00,U+524d,U+5357,U+5b50,U+7121,U+884c,U+9751,U+ac94,U+aebe,U+aecd,U+af08,U+af41,U+af49,U+b010,U+b053,U+b109,U+b11b,U+b128,U+b154,U+b291,U+b2e6,U+b301,U+b385,U+b525,U+b5b4,U+b729,U+b72f,U+b738,U+b7ff,U+b837,U+b975,U+ba67,U+bb47,U+bc1f,U+bd90,U+bfd4,U+c27c,U+c324,U+c379,U+c3e0,U+c465,U+c53b,U+c58c,U+c610,U+c653,U+c6cd,U+c813,U+c82f,U+c999,U+c9e0,U+cac4,U+cad3,U+cbd4,U+cc10,U+cc22,U+ccb8,U+ccbc,U+cda5,U+ce84,U+cea3,U+cf67,U+cfe1,U+d241,U+d30d,U+d31c,U+d391,U+d401,U+d479,U+d5c9,U+d5db,U+d649,U+d6d4}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.79.woff2) format('woff2-variations');unicode-range:U+b0,U+e9,U+2193,U+2462,U+260e,U+261e,U+300e-300f,U+3044,U+30a4,U+30fb-30fc,U+314d,U+5973,U+6545,U+6708,U+7537,U+ac89,U+ac9c,U+acc1,U+ad04,U+ad75,U+ad7d,U+ae45,U+ae61,U+af42,U+b0ab,U+b0af,U+b0b3,U+b12c,U+b194,U+b1a8,U+b220,U+b258,U+b284,U+b2ff,U+b315,U+b371,U+b3d4-b3d5,U+b460,U+b527,U+b534,U+b810,U+b818,U+b98e,U+ba55,U+bbac,U+bc0b,U+bc40,U+bca1,U+bccd,U+bd93,U+be54,U+be5a,U+bf08,U+bf50,U+bf55,U+bfdc,U+c0c0,U+c0d0,U+c0f4,U+c100,U+c11e,U+c170,U+c20d,U+c274,U+c290,U+c308,U+c369,U+c539,U+c587,U+c5ff,U+c6ec,U+c70c,U+c7ad,U+c7c8,U+c83c,U+c881,U+cb48,U+cc60,U+ce69,U+ce6b,U+ce75,U+cf04,U+cf08,U+cf55,U+cf70,U+cffc,U+d0b7,U+d1a8,U+d2c8,U+d384,U+d47c,U+d48b,U+d5dd,U+d5e8,U+d720,U+d759,U+f981}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.80.woff2) format('woff2-variations');unicode-range:U+e0,U+e2,U+395,U+3b7,U+3ba,U+2460-2461,U+25a0,U+3010-3011,U+306e,U+30f3,U+314a,U+314c,U+5927,U+65b0,U+7e41,U+97d3,U+9ad4,U+ad49,U+ae0b,U+ae0d,U+ae43,U+ae5d,U+aecf,U+af3c,U+af64,U+afd4,U+b080,U+b084,U+b0c5,U+b10c,U+b1e8,U+b2ac,U+b36e,U+b451,U+b515,U+b540,U+b561,U+b6ab,U+b6b1,U+b72c,U+b730,U+b744,U+b800,U+b8ec,U+b8f0,U+b904,U+b968,U+b96d,U+b987,U+b9d9,U+bb36,U+bb49,U+bc2d,U+bc43,U+bcf6,U+bd89,U+be57,U+be61,U+bed4,U+c090,U+c130,U+c148,U+c19c,U+c2f9,U+c36c,U+c37c,U+c384,U+c3df,U+c575,U+c584,U+c660,U+c719,U+c816,U+ca4d,U+ca54,U+cabc,U+cb49,U+cc14,U+cff5,U+d004,U+d038,U+d0b4,U+d0d3,U+d0e0,U+d0ed,U+d131,U+d1b0,U+d31f,U+d33d,U+d3a0,U+d3ab,U+d514,U+d584,U+d6a1,U+d6cc,U+d749,U+d760,U+d799}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.81.woff2) format('woff2-variations');unicode-range:U+24,U+60,U+3b9,U+3bb,U+3bd,U+2191,U+2606,U+300c-300d,U+3131,U+3134,U+3139,U+3141-3142,U+3148,U+3161,U+3163,U+321c,U+4eba,U+5317,U+ac31,U+ac77,U+ac9f,U+acb9,U+acf0-acf1,U+acfd,U+ad73,U+af3d,U+b00c,U+b04a,U+b057,U+b0c4,U+b188,U+b1cc,U+b214,U+b2db,U+b2ee,U+b304,U+b4ed,U+b518,U+b5bc,U+b625,U+b69c-b69d,U+b7ac,U+b801,U+b86c,U+b959,U+b95c,U+b985,U+ba48,U+bb58,U+bc0c,U+bc38,U+bc85,U+bc9a,U+bf40,U+c068,U+c0bd,U+c0cc,U+c12f,U+c149,U+c1e0,U+c22b,U+c22d,U+c250,U+c2fc,U+c300,U+c313,U+c370,U+c3d8,U+c557,U+c580,U+c5e3,U+c62e,U+c634,U+c6f0,U+c74d,U+c783,U+c78e,U+c796,U+c7bc,U+c92c,U+ca4c,U+cc1c,U+cc54,U+cc59,U+ce04,U+cf30,U+cfc4,U+d140,U+d321,U+d38c,U+d399,U+d54f,U+d587,U+d5d0,U+d6e8,U+d770}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.82.woff2) format('woff2-variations');unicode-range:U+d7,U+ea,U+fc,U+2192,U+25bc,U+3000,U+3137,U+3145,U+315c,U+7f8e,U+ac13,U+ac71,U+ac90,U+acb8,U+ace7,U+ad7f,U+ae50,U+aef4,U+af34,U+afbc,U+b048,U+b09a,U+b0ad,U+b0bc,U+b113,U+b125,U+b141,U+b20c,U+b2d9,U+b2ed,U+b367,U+b369,U+b374,U+b3cb,U+b4ec,U+b611,U+b760,U+b81b,U+b834,U+b8b0,U+b8e1,U+b989,U+b9d1,U+b9e1,U+b9fa,U+ba4d,U+ba78,U+bb35,U+bb54,U+bbf9,U+bc11,U+bcb3,U+bd05,U+bd95,U+bdd4,U+be10,U+bed0,U+bf51,U+c0d8,U+c232,U+c2b7,U+c2eb,U+c378,U+c500,U+c52c,U+c549,U+c568,U+c598,U+c5c9,U+c61b,U+c639,U+c67c,U+c717,U+c78a,U+c80a,U+c90c-c90d,U+c950,U+c9e7,U+cbe4,U+cca9,U+cce4,U+cdb0,U+ce78,U+ce94,U+ce98,U+cf8c,U+d018,U+d034,U+d0f1,U+d1b1,U+d280,U+d2f8,U+d338,U+d380,U+d3b4,U+d610,U+d69f,U+d6fc,U+d758}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.83.woff2) format('woff2-variations');unicode-range:U+e7,U+2022,U+203b,U+25c0,U+2605,U+2661,U+3147,U+318d,U+672c,U+8a9e,U+acaa,U+acbc,U+ad1c,U+ae4a,U+ae5c,U+b044,U+b054,U+b0c8-b0c9,U+b2a6,U+b2d0,U+b35c,U+b364,U+b428,U+b454,U+b465,U+b4b7,U+b4e3,U+b51c,U+b5a1,U+b784,U+b790,U+b7ab,U+b7f4,U+b82c,U+b835,U+b8e9,U+b8f8,U+b9d8,U+b9f9,U+ba5c,U+ba64,U+babd,U+bb18,U+bb3b,U+bbff,U+bc0d,U+bc45,U+bc97,U+bcbc,U+be45,U+be75,U+be7c,U+bfcc,U+c0b6,U+c0f7,U+c14b,U+c2b4,U+c30d,U+c4f8,U+c5bb,U+c5d1,U+c5e0,U+c5ee,U+c5fd,U+c606,U+c6c5,U+c6e0,U+c708,U+c81d,U+c820,U+c824,U+c878,U+c918,U+c96c,U+c9e4,U+c9f1,U+cc2e,U+cd09,U+cea1,U+cef5,U+cef7,U+cf64,U+cf69,U+cfe8,U+d035,U+d0ac,U+d230,U+d234,U+d2f4,U+d31d,U+d575,U+d578,U+d608,U+d614,U+d718,U+d751,U+d761,U+d78c,U+d790}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.84.woff2) format('woff2-variations');unicode-range:U+2665,U+3160,U+4e2d,U+6587,U+65e5,U+ac12,U+ac14,U+ac16,U+ac81,U+ad34,U+ade0,U+ae54,U+aebc,U+af2c,U+afc0,U+afc8,U+b04c,U+b08c,U+b099,U+b0a9,U+b0ac,U+b0ae,U+b0b8,U+b123,U+b179,U+b2e5,U+b2f7,U+b4c0,U+b531,U+b538,U+b545,U+b550,U+b5a8,U+b6f0,U+b728,U+b73b,U+b7ad,U+b7ed,U+b809,U+b864,U+b86d,U+b871,U+b9bf,U+b9f5,U+ba40,U+ba4b,U+ba58,U+ba87,U+baac,U+bbc0,U+bc16,U+bc34,U+bd07,U+bd99,U+be59,U+bfd0,U+c058,U+c0e4,U+c0f5,U+c12d,U+c139,U+c228,U+c529,U+c5c7,U+c635,U+c637,U+c735,U+c77d,U+c787,U+c789,U+c8c4,U+c989,U+c98c,U+c9d0,U+c9d3,U+cc0c,U+cc99,U+cd0c,U+cd2c,U+cd98,U+cda4,U+ce59,U+ce60,U+ce6d,U+cea0,U+d0d0-d0d1,U+d0d5,U+d14d,U+d1a4,U+d29c,U+d2f1,U+d301,U+d39c,U+d3bc,U+d4e8,U+d540,U+d5ec,U+d640,U+d750}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.85.woff2) format('woff2-variations');unicode-range:U+5e,U+25b2,U+25b6,U+314e,U+ac24,U+ace1,U+ace4,U+ae68,U+af2d,U+b0d0,U+b0e5,U+b150,U+b155,U+b193,U+b2c9,U+b2dd,U+b3c8,U+b3fc,U+b410,U+b458,U+b4dd,U+b5a0,U+b5a4,U+b5bb,U+b7b5,U+b838,U+b840,U+b86f,U+b8f9,U+b960,U+b9e5,U+bab8,U+bb50,U+bc1d,U+bc24-bc25,U+bca8,U+bcbd,U+bd04,U+bd10,U+bd24,U+be48,U+be5b,U+be68,U+c05c,U+c12c,U+c140,U+c15c,U+c168,U+c194,U+c219,U+c27d,U+c2a8,U+c2f1,U+c2f8,U+c368,U+c554-c555,U+c559,U+c564,U+c5d8,U+c5fc,U+c625,U+c65c,U+c6b1,U+c728,U+c794,U+c84c,U+c88c,U+c8e0,U+c8fd,U+c998,U+c9dd,U+cc0d,U+cc30,U+ceec,U+cf13,U+cf1c,U+cf5c,U+d050,U+d07c,U+d0a8,U+d134,U+d138,U+d154,U+d1f4,U+d2bc,U+d329,U+d32c,U+d3d0,U+d3f4,U+d3fc,U+d56b,U+d5cc,U+d600-d601,U+d639,U+d6c8,U+d754,U+d765}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.86.woff2) format('woff2-variations');unicode-range:U+3c-3d,U+2026,U+24d2,U+314b,U+ac11,U+acf3,U+ad74,U+ad81,U+adf9,U+ae34,U+af43,U+afb8,U+b05d,U+b07c,U+b110,U+b118,U+b17c,U+b180,U+b18d,U+b192,U+b2cc,U+b355,U+b378,U+b4a4,U+b4ef,U+b78d,U+b799,U+b7a9,U+b7fd,U+b807,U+b80c,U+b839,U+b9b4,U+b9db,U+ba3c,U+bab0,U+bba4,U+bc94,U+be4c,U+c154,U+c1c4,U+c26c,U+c2ac,U+c2ed,U+c4f4,U+c55e,U+c561,U+c571,U+c5b5,U+c5c4,U+c654-c655,U+c695,U+c6e8,U+c6f9,U+c724,U+c751,U+c775,U+c7a0,U+c7c1,U+c874,U+c880,U+c9d5,U+c9f8,U+cabd,U+cc29,U+cc2c,U+cca8,U+ccab,U+ccd0,U+ce21,U+ce35,U+ce7c,U+ce90,U+cee8,U+cef4,U+cfe0,U+d070,U+d0b9,U+d0c1,U+d0c4,U+d0c8,U+d15c,U+d1a1,U+d2c0,U+d300,U+d314,U+d3ed,U+d478,U+d480,U+d48d,U+d508,U+d53d,U+d5e4,U+d611,U+d61c,U+d68d,U+d6a8,U+d798}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.87.woff2) format('woff2-variations');unicode-range:U+23,U+25,U+5f,U+a9,U+ac08,U+ac78,U+aca8,U+acac,U+ace8,U+ad70,U+adc0,U+addc,U+b137,U+b140,U+b208,U+b290,U+b2f5,U+b3c5,U+b3cc,U+b420,U+b429,U+b529,U+b530,U+b77d,U+b79c,U+b7a8,U+b7c9,U+b7f0,U+b7fc,U+b828,U+b860,U+b9ad,U+b9c1,U+b9c9,U+b9dd-b9de,U+b9e8,U+ba38-ba39,U+babb,U+bc00,U+bc8c,U+bca0,U+bca4,U+bcd1,U+bcfc,U+bd09,U+bdf0,U+be60,U+c0ad,U+c0b4,U+c0bc,U+c190,U+c1fc,U+c220,U+c288,U+c2b9,U+c2f6,U+c528,U+c545,U+c558,U+c5bc,U+c5d4,U+c600,U+c644,U+c6c0,U+c6c3,U+c721,U+c798,U+c7a1,U+c811,U+c838,U+c871,U+c904,U+c990,U+c9dc,U+cc38,U+cc44,U+cca0,U+cd1d,U+cd95,U+cda9,U+ce5c,U+cf00,U+cf58,U+d150,U+d22c,U+d305,U+d328,U+d37c,U+d3f0,U+d551,U+d5a5,U+d5c8,U+d5d8,U+d63c,U+d64d,U+d669,U+d734,U+d76c}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.88.woff2) format('woff2-variations');unicode-range:U+26,U+2b,U+3e,U+40,U+7e,U+ac01,U+ac19,U+ac1d,U+aca0,U+aca9,U+acb0,U+ad8c,U+ae09,U+ae38,U+ae40,U+aed8,U+b09c,U+b0a0,U+b108,U+b204,U+b298,U+b2d8,U+b2eb-b2ec,U+b2f4,U+b313,U+b358,U+b450,U+b4e0,U+b54c,U+b610,U+b780,U+b78c,U+b791,U+b8e8,U+b958,U+b974,U+b984,U+b9b0,U+b9bc-b9bd,U+b9ce,U+ba70,U+bbfc,U+bc0f,U+bc15,U+bc1b,U+bc31,U+bc95,U+bcc0,U+bcc4,U+bd81,U+bd88,U+c0c8,U+c11d,U+c13c,U+c158,U+c18d,U+c1a1,U+c21c,U+c4f0,U+c54a,U+c560,U+c5b8,U+c5c8,U+c5f4,U+c628,U+c62c,U+c678,U+c6cc,U+c808,U+c810,U+c885,U+c88b,U+c900,U+c988,U+c99d,U+c9c8,U+cc3d-cc3e,U+cc45,U+cd08,U+ce20,U+cee4,U+d074,U+d0a4,U+d0dd,U+d2b9,U+d3b8,U+d3c9,U+d488,U+d544,U+d559,U+d56d,U+d588,U+d615,U+d648,U+d655,U+d658,U+d65c}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.89.woff2) format('woff2-variations');unicode-range:U+d,U+7c,U+ac10,U+ac15,U+ac74,U+ac80,U+ac83,U+acc4,U+ad11,U+ad50,U+ad6d,U+adfc,U+ae00,U+ae08,U+ae4c,U+b0a8,U+b124,U+b144,U+b178,U+b274,U+b2a5,U+b2e8,U+b2f9,U+b354,U+b370,U+b418,U+b41c,U+b4f1,U+b514,U+b798,U+b808,U+b824-b825,U+b8cc,U+b978,U+b9d0,U+b9e4,U+baa9,U+bb3c,U+bc18,U+bc1c,U+bc30,U+bc84,U+bcf5,U+bcf8,U+bd84,U+be0c,U+be14,U+c0b0,U+c0c9,U+c0dd,U+c124,U+c2dd,U+c2e4,U+c2ec,U+c54c,U+c57c-c57d,U+c591,U+c5c5-c5c6,U+c5ed,U+c608,U+c640,U+c6b8,U+c6d4,U+c784,U+c7ac,U+c800-c801,U+c9c1,U+c9d1,U+cc28,U+cc98,U+cc9c,U+ccad,U+cd5c,U+cd94,U+cd9c,U+cde8,U+ce68,U+cf54,U+d0dc,U+d14c,U+d1a0,U+d1b5,U+d2f0,U+d30c,U+d310,U+d398,U+d45c,U+d50c,U+d53c,U+d560,U+d568,U+d589,U+d604,U+d6c4,U+d788}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.90.woff2) format('woff2-variations');unicode-range:U+ac04,U+ac1c,U+ac70,U+ac8c,U+acbd,U+acf5,U+acfc,U+ad00,U+ad6c,U+adf8,U+b098,U+b0b4,U+b294,U+b2c8,U+b300,U+b3c4,U+b3d9,U+b4dc,U+b4e4,U+b77c,U+b7ec,U+b85d,U+b97c,U+b9c8,U+b9cc,U+ba54,U+ba74,U+ba85,U+baa8,U+bb34,U+bb38,U+bbf8,U+bc14,U+bc29,U+bc88,U+bcf4,U+bd80,U+be44,U+c0c1,U+c11c,U+c120,U+c131,U+c138,U+c18c,U+c218,U+c2b5,U+c2e0,U+c544,U+c548,U+c5b4,U+c5d0,U+c5ec,U+c5f0,U+c601,U+c624,U+c694,U+c6a9,U+c6b0,U+c6b4,U+c6d0,U+c704,U+c720,U+c73c,U+c740,U+c744,U+c74c,U+c758,U+c77c,U+c785,U+c788,U+c790-c791,U+c7a5,U+c804,U+c815,U+c81c,U+c870,U+c8fc,U+c911,U+c9c4,U+ccb4,U+ce58,U+ce74,U+d06c,U+d0c0,U+d130,U+d2b8,U+d3ec,U+d504,U+d55c,U+d569,U+d574,U+d638,U+d654,U+d68c}@font-face{font-family:'Pretendard Variable';font-style:normal;font-display:swap;font-weight:45 920;src:url(fonts/pretendard-v1.3.9/PretendardVariable.subset.91.woff2) format('woff2-variations');unicode-range:U+20-22,U+27-2a,U+2c-39,U+3a-3b,U+3f,U+41-4e,U+4f-5d,U+61-7b,U+7d,U+a0-a1,U+ab,U+ad-ae,U+b7,U+bb,U+bf,U+2013-2014,U+201c-201d,U+2122,U+ac00,U+ace0,U+ae30,U+b2e4,U+b85c,U+b9ac,U+c0ac,U+c2a4,U+c2dc,U+c774,U+c778,U+c9c0,U+d558}
/*# sourceMappingURL=/sm/49af798104dba87a942919357f383e653ce9152ba9bdc9bbfa8ba846a1b04235.map */
/* ─────────────────────────────────────────────────────────────
   Gothic A1 v18 (OFL) 은 이전 본문·제목 글꼴이었습니다.
   요양 사이트로 옮기면서 본문을 Pretendard 하나로 모았고, 여기 있던
   @font-face 175개를 걷어냈습니다 — 배포본에서 2.5MB 가 빠집니다.
   원본 495개 파일은 src/assets/fonts/gothic-a1-v18/ 에 그대로 있으므로,
   되살리려면 tools/font-subset/pick.mjs 를 다시 돌리면 됩니다.

   Pretendard 동적 서브셋 92개는 한글 영역을 통째로 덮습니다 —
   서브셋 밖으로 새는 글자가 없어 따로 골라내는 단계가 필요 없습니다.
   ───────────────────────────────────────────────────────────── */

/* 브릿지 마케팅 — 디자인 시스템.

   그라데이션·글래스모피즘·이모지·패럴랙스를 쓰지 않습니다.
   면은 종이(--bg)와 흰색(--surface) 두 층, 한 단 눕힌 면(--surface-alt) 하나.
   강조는 깊은 초록 하나뿐이고, 주의는 흙빛 하나입니다. 색을 더 늘리지 마십시오 —
   상태를 색으로 나누기 시작하면 표가 신호등이 됩니다.

   그림자는 헤더 한 곳에만 씁니다. 카드와 버튼에는 쓰지 않습니다. 구획은
   1px 보더와 --surface-alt 배경으로만 만듭니다.

   모서리는 8px 이하입니다. 그 위로 올리면 유아 시설처럼 읽히고, 이미지와 표는
   0px 입니다 — 사진 모서리를 깎으면 그 자체가 꾸민 티가 됩니다.

   다크모드에 대응하지 않습니다.

   인라인 style 속성을 쓰지 마십시오 — CSP 가 style-src 'self' 라서 브라우저가
   차단합니다. (자바스크립트의 el.style.x = y 는 CSSOM 이라 차단되지 않습니다.)

   글자 크기는 :root 의 --fs-* 눈금 안에서만 고릅니다. 즉석에서 새 px 값을
   만들면 build.mjs 의 validateScale 이 잡습니다. */

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}

:root{
  /* ── 팔레트 ────────────────────────────────────────────────
     밝되 채도가 낮고 여백이 넓은 방향. 파스텔을 쓰지 않습니다. */
  --bg:#FBFAF7;
  --surface:#FFFFFF;
  --surface-alt:#F3F1EC;
  --table-head:#EBE8E1;     /* 표 머리행. 눕힌 면 위에서도 보이도록 한 톤 더 */
  --border:#E2DED6;
  --text:#1C1F23;
  --text-muted:#5E6672;
  --accent:#2F6F5E;
  --accent-soft:#E7F0EC;
  --warn:#B4632B;

  /* 위 아홉 개에서 파생한 값들. 새 색을 들이는 것이 아니라 같은 색의
     짙기만 바꾼 것입니다. 여기에 새 색상 계열을 더하지 마십시오. */
  --accent-deep:#255949;    /* 링크·버튼 hover */
  --accent-line:#B9D2C7;    /* 강조 면 위의 선 */
  --border-soft:#EDEAE3;    /* 표 안쪽 가로줄 */
  --border-strong:#B9B1A2; /* 시안 카드처럼 경계가 분명해야 하는 자리 */
  --text-soft:#41474F;      /* 카드 본문 — 본문보다 한 톤 낮습니다 */

  /* ── 치수 ── */
  --wrap:1080px;            /* 콘텐츠 최대 폭 */
  --pad:24px;
  --gap-s:14px;             /* 붙여 두는 것 — 보조 문단, 버튼 줄 */
  --gap:22px;               /* 기본 블록 간격 — 표, 카드, 목록, 단계 */
  --gap-l:34px;             /* 섹션 안에서 화제가 바뀔 때 */
  --sec-y:72px;             /* 섹션 상하 여백 */
  --card-pad:22px;

  /* 모서리 — 8px 이하. 이미지와 표는 0 입니다. */
  --r:8px;
  --r-s:6px;
  --r-xs:4px;

  /* ── 글꼴 두 종 ──
     본문·제목은 Pretendard, 숫자와 라틴 라벨은 IBM Plex Mono.
     세 번째 글꼴을 추가하지 마십시오.
     모노 뒤에 Pretendard 를 세워 둡니다 — 글꼴 대체는 글자 단위라 숫자와
     라틴만 Plex Mono 로 나오고 한글은 Pretendard 로 떨어집니다. 이것이 없으면
     한글이 시스템 고정폭으로 떨어져 「약 정  없 음」처럼 벌어집니다. */
  --sans:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,
    "Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;
  --mono:"IBM Plex Mono","Pretendard Variable",Pretendard,ui-monospace,SFMono-Regular,Menlo,monospace;

  /* ── 타입 스케일 ──
     제목은 화면 폭에 따라 움직입니다. 좁은 화면에서 고정값을 쓰면 두 글자마다
     줄이 바뀌어 제목이 덩어리로 읽히지 않습니다. */
  --fs-h1:clamp(28px,4vw,44px);      /* 홈 히어로 */
  --fs-h1s:clamp(26px,3.4vw,38px);   /* 하위 페이지 히어로 */
  --fs-h2:clamp(23px,2.7vw,32px);
  --fs-h3:20px;                      /* 절 안의 소제목 */
  --fs-h4:18px;                      /* 카드 제목 */
  --fs-lede:19px;                    /* 히어로·섹션 리드 문단 */
  --fs-body:17px;                    /* 본문 */
  --fs-sub:16px;                     /* 표 칸, 카드 본문 */
  --fs-note:15px;                    /* 잔글씨·주석 — 본문 계열의 하한입니다 */
  --fs-stat:clamp(36px,3.4vw,44px);  /* 지표 숫자 */
  --fs-label:13px;                   /* 지표 라벨 전용.
                                        본문 계열에는 쓰지 마십시오 — 본문은
                                        --fs-note(15px) 밑으로 내려가지 않습니다. */

  /* 행간 */
  --lh-body:1.75;   /* 본문. 이 값이 이 시스템의 기본 리듬입니다. */
  --lh-sub:1.65;
  --lh-head:1.3;
  --lh-label:1.4;

  --ls-head:-0.015em;
  /* 자간을 벌리는 것은 라틴 대문자 라벨 한 자리뿐입니다(.ba-cell .lb).
     한글에 자간을 주면 어절 사이가 벌어져 두 단어처럼 읽힙니다. */
  --ls-label:0.06em;
}

/* ── 바탕 ───────────────────────────── */
html{-webkit-text-size-adjust:100%}
body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--sans);
  font-size:var(--fs-body);
  line-height:var(--lh-body);
  /* 한국어는 어절 단위로 끊습니다. 그냥 두면 단어 한가운데서 줄이 바뀝니다. */
  word-break:keep-all;
  overflow-wrap:break-word;
}
/* 상속이 닿지 않는 요소(폼 컨트롤·표)까지 같은 글꼴을 겁니다. */
input,textarea,select,button,table{font-family:inherit;font-size:inherit;color:inherit}
img{max-width:100%;height:auto;border-radius:0}
a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;
  text-decoration-thickness:1px;text-decoration-color:var(--accent-line)}
a:hover{color:var(--accent-deep);text-decoration-color:var(--accent)}

/* 화면에는 없고 보조기기와 크롤러에는 있는 텍스트. */
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* 키보드 포커스는 반드시 보여야 합니다. 테두리 색만 바꾸는 방식은 대비를
   확보하지 못하는 경우가 있어 외곽선을 그립니다. */
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* 헤더가 sticky 라 #앵커 로 뛰면 제목이 그 아래에 깔립니다. 헤더 높이(64px)에
   숨 쉴 자리를 더해 밀어 둡니다. 홈의 「만들어 드리는 것 보기」가 이 규칙 위에
   섭니다 — 없으면 눌렀을 때 시안 격자의 제목이 보이지 않습니다. */
:target,[id]{scroll-margin-top:80px}

.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--accent);
  color:#fff;padding:12px 20px;text-decoration:none;border-radius:0 0 var(--r) 0}
.skip:focus{left:0}

/* ── 제목 ───────────────────────────── */
h1,h2,h3,h4{font-weight:800;letter-spacing:var(--ls-head);line-height:var(--lh-head);
  color:var(--text)}
h1{font-size:var(--fs-h1s);max-width:20em}
.hero-lead h1{font-size:var(--fs-h1)}
h2{font-size:var(--fs-h2)}
h3{font-size:var(--fs-h3)}

/* ── 글줄 길이 ────────────────────────
   한 줄이 너무 길면 다음 줄의 시작을 눈이 놓칩니다. 그래서 상한을 둡니다.

   다만 상한을 em 하나로 통일해 두면 안 됩니다. em 은 그 글자의 크기를 따라가는
   단위라, 같은 34em 이라도 리드(19px)는 646px 이고 잔글씨(15px)는 510px 입니다.
   1080px 컨테이너 안에서 잔글씨 한 줄이 510px 이면 오른쪽 절반이 빕니다 —
   실제로 그렇게 나가고 있었습니다(.note 빈칸 570px, 칸의 53%).

   덩어리마다 상한을 따로 두어 오른쪽 끝이 880px 언저리에서 함께 끊기게 합니다.
   눈에는 한 줄로 선 여백으로 보이고, 글줄 길이는 여전히 묶여 있습니다.

     리드 19px  → 46em ≈ 874px
     본문 17px  → 52em ≈ 884px
     잔글씨 15px → 59em ≈ 885px
     인용 19px  → 46em ≈ 874px  (.quote 는 리드 크기입니다)
     CTA 16px   → 44em ≈ 704px  (오른쪽에 버튼이 서므로 여기만 좁습니다)

   ─────────────────────────────── 720 에서 880 으로 옮긴 이유

   처음에는 720px 이었습니다. 글줄 길이로만 보면 그쪽이 교과서에 가깝지만,
   1080px 컨테이너 안에서 두 줄짜리 리드가 720px 에서 끊기면 오른쪽 358px 이
   빈 채로 남아 "칸이 모자라 접혔다" 로 읽힙니다. 실제로 그렇게 읽혔습니다.

   880px 은 17px 기준 52자 언저리입니다. 한글 본문의 편한 범위(40~55자)의
   위쪽이라 더 늘리지 마십시오 — 여기서 더 가면 다음 줄의 시작을 눈이 놓칩니다.

   글자 크기를 바꾸시면 이 값들도 함께 고치십시오. 목표는 em 값이 아니라
   덩어리들의 오른쪽 끝이 같은 자리에서 끊기는 것입니다. */
.sec p,.sec li{max-width:52em}
.sec .note,.sec p.note,.sec .src{max-width:59em}
.sec .lead-p{max-width:46em}
/* .quote 안의 글은 리드 크기(19px)라 본문 눈금을 그대로 쓰면 988px 이 되어
   거의 끝까지 갑니다. 리드와 같은 자리에서 끊습니다. */
.sec .quote p{max-width:46em}
/* 예외는 「글줄이 아닌 것」입니다. 표·격자·카드·단계는 칸이 이미 폭을 정하고
   있어, 여기에 34em 이 겹치면 칸 안에서 글이 왼쪽으로 몰리고 오른쪽에 회색 띠가
   남습니다. .steps 를 빠뜨리고 있었습니다 — 운영 흐름 카드가 그리드 트랙
   1030px 안에서 578px 만 쓰고 있었습니다. */
.sec .tw p,.sec .tw li,.sec .cells p,.sec .card p,.sec .card li,
.sec .steps li,.sec .steps .d,.sec .deliver p,.sec .side-card p{max-width:none}

/* ── 헤더 ───────────────────────────── */
/* 로고 그림을 쓰지 않습니다. 머리는 글자 하나입니다.
   그림자를 쓰는 곳은 이 한 군데뿐입니다. */
.top{position:sticky;top:0;z-index:30;background:var(--surface);
  border-bottom:1px solid var(--border);box-shadow:0 1px 3px rgba(28,31,35,.06)}
.top-in{max-width:var(--wrap);margin:0 auto;padding:0 var(--pad);
  display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:64px}
.brand{text-decoration:none;color:var(--text)}
.brand-name{font-size:var(--fs-h4);font-weight:800;letter-spacing:var(--ls-head)}
.nav{display:flex;align-items:center;gap:4px}
.nav a{padding:9px 13px;border-radius:var(--r-s);text-decoration:none;
  font-size:var(--fs-sub);font-weight:600;color:var(--text-muted);line-height:normal}
.nav a:hover{color:var(--text);background:var(--surface-alt)}
/* 지금 어느 장에 있는지는 글자색과 굵기로만 냅니다. 색면을 깔지 않습니다. */
.nav a.on{color:var(--accent);font-weight:700}
.nav a.nav-cta{background:var(--accent);color:#fff;padding:10px 18px;margin-left:6px}
.nav a.nav-cta:hover{background:var(--accent-deep);color:#fff}

/* 햄버거 여닫이. 넓은 화면에서는 짝이 되는 .navbtn 이 보이지 않으므로
   체크박스도 함께 숨깁니다.

   .top-cta 는 좁은 화면에서만 나오는 상시 전환 자리입니다. 넓은 화면에서는
   메뉴 안의 .nav-cta 가 같은 일을 하므로 둘이 함께 보이면 안 됩니다. */
.navtoggle,.navbtn,.top-cta{display:none}

/* ── 히어로 ─────────────────────────── */
.hero{background:var(--surface-alt);border-bottom:1px solid var(--border)}
.crumb{max-width:var(--wrap);margin:0 auto;padding:20px var(--pad) 0;
  font-size:var(--fs-note);color:var(--text-muted)}
.crumb a{color:var(--text-muted);text-decoration:none}
.crumb a:hover{color:var(--accent)}
.crumb i{font-style:normal;padding:0 8px;color:var(--border)}
.hero-in{max-width:var(--wrap);margin:0 auto;padding:56px var(--pad) 64px}
.crumb+.hero-in{padding-top:28px}
.eb{font-size:var(--fs-note);font-weight:700;color:var(--accent);
  line-height:normal;margin-bottom:14px}
.lede{margin-top:20px;font-size:var(--fs-lede);color:var(--text-soft);
  line-height:var(--lh-sub);max-width:46em}

/* ── 히어로 비교 — 하나 대 넷 ─────────
   첫 화면에서 고르실 것을 눈으로 보여 주는 자리입니다. 문장으로 적으면
   읽어야 하고, 칸으로 놓으면 세면 됩니다.

   「나쁨 → 좋음」이 아니라 「하나 → 넷」입니다. 왼쪽을 회색으로 깎지 마십시오 —
   지금 블로그를 하고 계신 분에게 그것은 지금까지의 일을 지우는 말이 되고,
   이 사이트의 03 절(「블로그를 그만두시라는 말이 아닙니다」)과 어긋납니다.
   그래서 왼쪽도 흰 면에 제대로 된 보더를 두고, 오른쪽만 강조색을 답니다.
   같은 이유로 오른쪽 네 칸 안에 블로그가 들어 있어야 합니다. */
.vs{margin-top:26px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.vs-lb{font-size:var(--fs-label);font-weight:700;letter-spacing:.02em;
  color:var(--text-muted);line-height:normal;margin-bottom:9px}
/* 왼쪽은 칸이 하나뿐이라 라벨을 그 칸 한가운데에 얹습니다. 왼쪽으로 붙여 두면
   「지금」이 칸이 아니라 그 왼쪽 여백을 가리키는 것처럼 보입니다.
   오른쪽은 칸이 넷이라 왼쪽 끝에 맞춥니다 — 가운데로 두면 어느 칸의 라벨인지가
   흐려집니다. */
.vs-side:not(.vs-to) .vs-lb{text-align:center}
.vs-to .vs-lb{color:var(--accent)}
.vs-chips{display:flex;flex-wrap:wrap;gap:7px}
.ch{display:inline-flex;align-items:center;min-height:34px;padding:0 14px;
  border-radius:999px;border:1px solid var(--border);background:var(--surface);
  font-size:var(--fs-note);font-weight:600;color:var(--text-soft);line-height:normal;
  white-space:nowrap}
.ch.on{border-color:var(--accent-line);background:var(--accent-soft);
  font-weight:700;color:var(--accent-deep)}

/* 화살표는 글자가 아니라 도형입니다. 글꼴에 따라 → 의 폭이 달라지면 두 덩어리의
   간격이 흔들려서, 보더로 그립니다. 라벨 줄 높이(약 22px)만큼 내려 칸과
   가운데를 맞춥니다.

   보더색(--border)으로 그려 두었더니 거의 보이지 않았습니다. 이 화살표는
   장식이 아니라 첫 화면의 논지 자체입니다 — 하나에서 넷으로 간다는 말을
   이것 하나가 합니다. 강조색으로 올리고 획을 3px 로 굵힙니다. */
.vs-arrow{flex:none;align-self:center;margin-top:22px;width:30px;height:3px;
  background:var(--accent);border-radius:2px;position:relative}
.vs-arrow::after{content:'';position:absolute;right:0;top:-5px;
  width:13px;height:13px;border-top:3px solid var(--accent);
  border-right:3px solid var(--accent);border-top-right-radius:2px;
  transform:rotate(45deg)}
.hero-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}

/* 히어로가 좌우 두 칸인 화면(작업실의 코드 입력). */
.hero-in.hero-room{display:grid;grid-template-columns:1.1fr .9fr;gap:44px;align-items:start}
.hero-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);
  padding:24px}
.hc-t{font-size:var(--fs-h4);font-weight:800;letter-spacing:var(--ls-head);
  line-height:var(--lh-head);margin-bottom:8px}
.hero-card p{font-size:var(--fs-note);color:var(--text-muted);line-height:var(--lh-sub)}
.hc-alt{margin-top:12px;color:var(--warn);font-weight:600}
.checkrow{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}
.checkrow input{flex:1;min-width:180px;height:46px;padding:0 14px;font-size:var(--fs-sub);
  background:var(--surface);border:1px solid var(--border);border-radius:var(--r-s);
  font-family:var(--mono)}
.checkrow input:focus{border-color:var(--accent);outline:2px solid var(--accent-soft)}

/* ── 섹션 ───────────────────────────── */
.sec{padding:var(--sec-y) 0;border-top:1px solid var(--border)}
.sec.alt{background:var(--surface-alt)}
.sec-in{max-width:var(--wrap);margin:0 auto;padding:0 var(--pad)}
/* 세로 리듬은 flex gap 이 아니라 margin 으로 냅니다 — 형제 요소마다 필요한
   간격이 다르고, gap 은 그것을 하나로 눌러 버립니다. */
.sec-in>*+*{margin-top:var(--gap)}
.eyebrow{font-family:var(--mono);font-size:var(--fs-note);color:var(--text-muted);
  line-height:normal}
.eyebrow+h2{margin-top:12px}
.sec-in>h2+*{margin-top:26px}
.lead-p,.sec-in>h2+.lead-p{margin-top:16px;font-size:var(--fs-lede);color:var(--text-soft);
  line-height:var(--lh-sub);max-width:46em}
.lead-p+*{margin-top:30px}
.sec-h{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.sec-h span{font-size:var(--fs-note);color:var(--text-muted)}
.sec-head{display:flex;justify-content:space-between;gap:30px;align-items:flex-start}
.sec-aside{font-size:var(--fs-note);color:var(--text-muted);max-width:22em;text-align:right}

/* 절 안의 소제목과 그 리드. 표 여러 벌을 한 섹션에 놓을 때 씁니다. */
.blk-h{margin-top:var(--gap-l);font-size:var(--fs-h3)}
.blk-l{margin-top:10px;color:var(--text-soft);line-height:var(--lh-sub)}
.blk-s{margin-top:var(--gap-l);font-size:var(--fs-sub);font-weight:700;
  color:var(--text-muted);line-height:normal}
.rule{border:0;border-top:1px solid var(--border);margin-top:var(--gap-l)}
.mt{margin-top:var(--gap-l)}
.mt-s{margin-top:var(--gap-s)}

/* ── 표 ─────────────────────────────── */
/* 실제 <table> 을 씁니다. AI 인용에도 표가 유리하고, 보조기기가 행과 열을
   읽어 주는 것도 표일 때뿐입니다.
   모서리는 0 입니다 — 표는 격자이지 카드가 아닙니다. */
.tw{border:1px solid var(--border);background:var(--surface);overflow-x:auto}
table{width:100%;border-collapse:collapse;table-layout:fixed}
thead th{background:var(--table-head);text-align:left;font-size:var(--fs-note);
  font-weight:700;color:var(--text-muted);padding:13px 16px;line-height:var(--lh-label);
  border-bottom:1px solid var(--border);vertical-align:bottom}
tbody th,tbody td{padding:16px;font-size:var(--fs-sub);line-height:var(--lh-body);
  border-top:1px solid var(--border-soft);vertical-align:top;text-align:left}
tbody tr:first-child th,tbody tr:first-child td{border-top:0}
/* 첫 열은 행의 이름표라 굵기를 한 단계 올립니다. */
tbody th{font-weight:700;color:var(--text)}
tbody td{color:var(--text-soft)}
/* 한 줄짜리 라벨만 들어가는 표는 행간을 풀지 않습니다. */
.tw.tight tbody th,.tw.tight tbody td{padding:11px 16px;line-height:var(--lh-label)}
.tw.p14 tbody th,.tw.p14 tbody td{padding:14px 16px}
.tw.p18 tbody th,.tw.p18 tbody td{padding:18px 16px}
/* 숫자·금액은 우측 정렬. 자릿수가 세로로 맞아야 크기를 눈으로 견줍니다. */
.ar{text-align:right !important;font-variant-numeric:tabular-nums}
/* 표 안에서 결론에 해당하는 행 하나만 눕히는 자리. */
tbody tr.hi th,tbody tr.hi td{background:var(--surface-alt)}
.mono{font-family:var(--mono)}

/* 넓은 표의 두 벌. 넓은 화면에서는 .tw-lg 만, 좁은 화면에서는 .tw-sm 만
   보입니다 — html.mjs 의 tableSwap() 참조. */
.tw-sm{display:none}
/* 좁은 판에서 유형별 값을 칸 안에 접어 넣는 자리. */
.by-type{display:block;margin-top:9px;padding-top:9px;border-top:1px solid var(--border-soft);
  font-size:var(--fs-note);color:var(--text-muted);line-height:var(--lh-sub)}
.by-type b{color:var(--text-soft);margin-right:6px}

/* ── 격자·카드 ──────────────────────── */
/* 그림자를 쓰지 않습니다. 1px 보더로만 세웁니다. */
.grid{display:grid;gap:16px;grid-template-columns:repeat(3,minmax(0,1fr))}
.grid.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.card{display:block;background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r);padding:var(--card-pad);text-decoration:none;color:inherit}
a.card:hover{border-color:var(--accent);color:inherit}
.card h3{font-size:var(--fs-h4);margin-bottom:10px}
.card p{font-size:var(--fs-sub);color:var(--text-soft);line-height:var(--lh-sub)}
/* 카드 머리에 붙는 짧은 라벨. 왼쪽이 분류, 오른쪽이 조건입니다. */
.card .no{font-family:var(--mono);font-size:var(--fs-note);color:var(--accent);
  font-weight:700}
.card .when{float:right;font-size:var(--fs-note);color:var(--text-muted)}
.card .no+h3,.card .when+h3{margin-top:12px;clear:both}
/* 카드 안의 항목. 카드는 훑는 자리라 산문을 놓으면 통째로 건너뜁니다.
   가운뎃점 대신 짧은 줄표를 씁니다 — 강조색 점을 찍으면 카드마다 초록 점이
   스무 개가 되고, 그때부터는 점이 내용보다 먼저 보입니다. */
.card-li{list-style:none;margin-top:12px;display:grid;gap:8px}
.sec .card-li li{max-width:none;position:relative;padding-left:14px;
  font-size:var(--fs-note);color:var(--text-soft);line-height:var(--lh-sub)}
.card-li li::before{content:'';position:absolute;left:0;top:.62em;
  width:7px;height:1px;background:var(--accent-line)}
.card p+.card-li{margin-top:10px}

.card .more{display:block;margin-top:16px;font-size:var(--fs-note);font-weight:700;
  color:var(--accent)}
/* 아직 열 수 없는 카드. 눌리지 않으므로 강조색을 빼고 회색으로 둡니다 —
   누를 수 있게 보이는데 아무 일도 일어나지 않는 것이 가장 나쁩니다. */
.card .more.soon{color:var(--text-muted)}

/* ── 시안 격자 ──────────────────────── */
/* 홈과 /build/ 에서 「무엇을 받게 되는가」를 그림으로 내는 자리입니다.
   그림은 tools/shots/capture.mjs 가 실제 시안 화면에서 뜬 것이라, 카드와
   눌러서 들어간 곳이 반드시 같습니다.

   그림 모서리는 0 입니다 — 안쪽 모서리를 깎으면 그 자체가 꾸민 티가 됩니다.
   대신 카드가 그림을 8px 모서리 안으로 잘라 넣습니다(overflow:hidden).

   비율을 512x344 로 못 박습니다. 캡처 크기가 바뀌어도 격자가 흔들리지
   않아야 하고, 그림이 늦게 와도 아래 글이 튀어 오르지 않아야 합니다.

   ─────────────────────────────── 그림자를 쓰지 않고 카드를 세우는 법

   이 저장소는 그림자를 헤더 한 곳에만 씁니다. 그래서 카드를 도드라지게 하는
   수단이 보더와 면 두 가지뿐입니다.

     쉴 때  — 그림 아래 글칸을 종이색(--bg)으로 깔아 흰 그림과 층을 만듭니다.
     올릴 때 — 보더가 강조색으로 바뀌고, 글칸이 흰색으로 올라오고,
              그림이 아주 조금(1.04) 커지면서 화살표가 4px 나갑니다.

   네 가지가 한꺼번에 움직이지만 각각은 미세합니다. 하나만 크게 움직이면
   그것이 장식으로 보이고, 넷이 조금씩 움직이면 카드가 "눌리는 것" 으로
   읽힙니다. 크기를 키우지 마십시오. */
.shots{display:grid;gap:18px;grid-template-columns:repeat(3,minmax(0,1fr))}
.shot{display:flex;flex-direction:column;background:var(--bg);
  border:1px solid var(--border-strong);border-radius:var(--r);overflow:hidden;
  text-decoration:none;color:inherit;
  transition:border-color .16s ease,background-color .16s ease}

/* 그림 칸. 잘라 넣는 자리라 여기서 overflow 를 한 번 더 잠급니다 —
   확대가 카드 모서리를 넘어가면 8px 이 사각으로 보입니다. */
/* span 을 씁니다 — <a> 안이라 <div> 를 넣으면 안 되기 때문입니다.
   그래서 display:block 을 직접 켜야 합니다. 켜지 않으면 인라인 상자라
   position:relative 의 기준이 어긋나고, 얹어 둔 쪽수 표가 아래로 잘립니다. */
.shot-t{display:block;position:relative;overflow:hidden;
  border-bottom:1px solid var(--border-strong);background:var(--surface-alt);line-height:0}
.shot img{display:block;width:100%;aspect-ratio:512/344;object-fit:cover;
  object-position:top center;transition:transform .28s ease}

/* 쪽수 표는 그림 위 왼쪽 아래에 얹습니다. 글칸으로 내리면 제목과 같은 줄기에
   서서 제목의 무게를 나눠 가집니다 — 그림 위에서는 라벨로만 읽힙니다. */
.shot-m{position:absolute;left:12px;bottom:12px;
  display:inline-flex;align-items:center;height:26px;padding:0 11px;
  border-radius:999px;background:var(--surface);border:1px solid var(--border);
  font-family:var(--mono);font-size:var(--fs-label);font-weight:700;
  letter-spacing:.02em;color:var(--text);line-height:normal}

.shot-b{padding:18px var(--card-pad) 16px;display:flex;flex-direction:column;flex:1;
  transition:background-color .16s ease}
.shot h3{font-size:var(--fs-h4)}
.sec .shot p{margin-top:9px;max-width:none;font-size:var(--fs-note);
  color:var(--text-soft);line-height:var(--lh-sub)}

/* 「시안 보기 →」는 카드 맨 아래에 붙습니다. 카드마다 설명 길이가 달라도
   화살표 줄이 같은 높이에 서야 격자가 격자로 보입니다.
   위에 실선을 한 줄 그어 설명과 갈라 둡니다 — 없으면 설명의 마지막 줄처럼
   읽혀서 누를 수 있다는 것이 보이지 않습니다. */
.shot .more{margin-top:auto;padding-top:14px;border-top:1px solid var(--border-soft);
  font-size:var(--fs-note);font-weight:700;color:var(--accent)}
.shot .more::after{content:'';display:inline-block;width:0}
.shot .more.soon{color:var(--text-muted)}

a.shot:hover{border-color:var(--accent);background:var(--surface);color:inherit}
a.shot:hover .shot-b{background:var(--surface)}
a.shot:hover img{transform:scale(1.04)}
a.shot:hover .more{color:var(--accent-deep)}
a.shot:focus-visible{border-color:var(--accent)}

/* 움직임을 원치 않는 분에게는 색만 바뀝니다. */
@media(prefers-reduced-motion:reduce){
  .shot,.shot img,.shot-b{transition:none}
  a.shot:hover img{transform:none}
}

/* 이음매 없는 격자 — 숫자 한 칸씩 늘어놓는 자리. */
.cells{display:grid;border:1px solid var(--border);background:var(--border);
  gap:1px;grid-template-columns:repeat(5,minmax(0,1fr))}
.cells.c2{grid-template-columns:repeat(2,minmax(0,1fr))}
.cells.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.cells.c4{grid-template-columns:repeat(4,minmax(0,1fr))}
.cells>div{background:var(--surface);padding:18px 20px}
.cells .t{font-size:var(--fs-h4);font-weight:800;color:var(--text);
  line-height:var(--lh-head);letter-spacing:var(--ls-head)}
.cells .r{font-size:var(--fs-note);color:var(--text-muted)}
.cells .d{margin-top:6px;font-size:var(--fs-note);color:var(--text-muted);
  line-height:var(--lh-label)}
.cells .v{margin-top:6px;font-size:var(--fs-sub);color:var(--text-soft)}

/* ── 지표 스트립 ────────────────────── */
.stats{display:flex;flex-wrap:wrap;gap:36px}
.stat b{display:block;font-family:var(--mono);font-size:var(--fs-stat);font-weight:700;
  font-variant-numeric:tabular-nums;color:var(--text);line-height:var(--lh-head)}
.stat b small{font-size:var(--fs-h4);font-weight:700;margin-left:3px}
.stat>span{display:block;margin-top:6px;font-size:var(--fs-label);color:var(--text-muted);
  line-height:var(--lh-label)}

/* ── 목록 ───────────────────────────── */
ul.notes,ol.rows-simple{list-style:none}
ul.notes li{position:relative;padding-left:18px;margin-top:12px;font-size:var(--fs-sub);
  color:var(--text-soft);line-height:var(--lh-body)}
ul.notes li::before{content:"";position:absolute;left:0;top:.75em;width:7px;height:1px;
  background:var(--accent)}
ul.notes li:first-child{margin-top:0}
/* 두 칸으로 흘리는 목록 — 짧은 항목이 여럿일 때만 씁니다. */
ul.notes.cols2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:30px;row-gap:0}
ol.rows-simple{counter-reset:r}
ol.rows-simple li{counter-increment:r;position:relative;padding:16px 0 16px 42px;
  border-top:1px solid var(--border);font-size:var(--fs-sub);color:var(--text-soft);
  line-height:var(--lh-body)}
ol.rows-simple li::before{content:counter(r);position:absolute;left:0;top:16px;
  font-family:var(--mono);font-size:var(--fs-note);font-weight:700;color:var(--accent)}
ol.rows-simple li b{color:var(--text)}

/* ── 진행 순서 ──────────────────────── */
.steps{list-style:none;display:grid;gap:1px;background:var(--border);
  border:1px solid var(--border);border-radius:var(--r);overflow:hidden}
.steps li{background:var(--surface);padding:20px 22px;display:block}
.steps .hd{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.steps .w{font-family:var(--mono);font-size:var(--fs-note);font-weight:700;
  color:var(--accent)}
.steps .mt-w{font-size:var(--fs-note);color:var(--text-muted)}
.steps .t{display:block;margin-top:8px;font-size:var(--fs-h4);font-weight:700;
  color:var(--text);line-height:var(--lh-head);letter-spacing:var(--ls-head)}
.steps .d{display:block;margin-top:8px;font-size:var(--fs-sub);color:var(--text-soft);
  line-height:var(--lh-sub)}

/* ── 산출물 · 전후 비교 ─────────────── */
.deliver{display:grid;gap:1px;background:var(--border);border:1px solid var(--border)}
.deliver>div{background:var(--surface);padding:18px 20px}
.deliver .t{font-size:var(--fs-sub);font-weight:700;color:var(--text)}
.deliver .d{margin-top:6px;font-size:var(--fs-note);color:var(--text-muted);
  line-height:var(--lh-sub)}
.ba{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);
  padding:var(--card-pad)}
.ba-row{display:grid;grid-template-columns:1fr 1px 1fr;gap:18px;margin-top:14px}
.ba-div{background:var(--border)}
.ba-cell .lb{font-family:var(--mono);font-size:var(--fs-label);color:var(--text-muted);
  letter-spacing:var(--ls-label);line-height:var(--lh-label)}
.ba-cell p{margin-top:8px;font-size:var(--fs-sub);line-height:var(--lh-sub)}
.ba-cell.to p{color:var(--accent)}

/* ── 왜 그 주기인가 — 표 밑에 붙는 해설 덩어리 ── */
.why-blk{border-left:2px solid var(--accent-line);padding-left:18px}
.why-blk+.why-blk{margin-top:var(--gap)}
.why-h{font-size:var(--fs-sub);font-weight:700;color:var(--text);margin-bottom:6px}
.why-blk p{font-size:var(--fs-sub);color:var(--text-soft);line-height:var(--lh-sub)}

/* ── 강조 블록 ──────────────────────── */
.note{font-size:var(--fs-note);color:var(--text-muted);line-height:var(--lh-sub)}
.src{font-size:var(--fs-note);color:var(--text-muted);line-height:var(--lh-label)}
.callout{background:var(--accent-soft);border:1px solid var(--accent-line);
  border-radius:var(--r);padding:20px 22px}
.callout-t{font-size:var(--fs-sub);font-weight:800;color:var(--accent-deep);
  margin-bottom:8px;letter-spacing:var(--ls-head)}
.callout p{font-size:var(--fs-sub);color:var(--text-soft);line-height:var(--lh-sub)}
.quote{border-left:2px solid var(--accent);padding:4px 0 4px 20px}
.quote p{font-size:var(--fs-lede);color:var(--text-soft);line-height:var(--lh-sub)}
/* 아직 채우지 못한 자리. 배포 전에 0이 되어야 합니다(build.mjs 가 셉니다). */
mark.todo{background:#F5E6D6;color:var(--warn);font-weight:700;padding:1px 6px;
  border-radius:var(--r-xs)}

/* ── 접이식 ─────────────────────────── */
.faq details,.fold{border:1px solid var(--border);background:var(--surface);
  border-radius:var(--r)}
.faq details+details,.fold+.fold{margin-top:10px}
.faq summary,.fold summary{list-style:none;cursor:pointer;padding:16px 20px;
  font-size:var(--fs-sub);font-weight:700;color:var(--text)}
.faq summary::-webkit-details-marker,.fold summary::-webkit-details-marker{display:none}
/* 접혀 있다는 것이 보여야 펼칩니다. 삼각형 대신 +/− 한 글자를 오른쪽 끝에
   둡니다 — 자리를 차지하지 않고, 회전 애니메이션도 필요 없습니다. */
.faq summary,.fold summary{display:flex;align-items:baseline;justify-content:space-between;gap:16px}
.faq summary::after,.fold summary::after{content:'+';flex:none;
  font-family:var(--mono);font-size:var(--fs-sub);font-weight:400;color:var(--text-muted)}
.faq details[open]>summary::after,.fold[open]>summary::after{content:'−'}
.faq summary:hover,.fold summary:hover{color:var(--accent)}
.faq summary h3{font-size:var(--fs-sub);display:inline}
.fa,.fold-in{padding:0 20px 18px;font-size:var(--fs-sub);color:var(--text-soft);
  line-height:var(--lh-body)}

/* ── 버튼 ───────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;
  padding:0 22px;border:1px solid transparent;border-radius:var(--r-s);cursor:pointer;
  font-size:var(--fs-sub);font-weight:700;line-height:normal;text-decoration:none}
.btn-solid{background:var(--accent);color:#fff}
.btn-solid:hover{background:var(--accent-deep);color:#fff}
.btn-line{background:var(--surface);color:var(--accent);border-color:var(--border)}
.btn-line:hover{border-color:var(--accent);color:var(--accent-deep)}
/* 강조 면(초록) 위에서 씁니다. */
.btn-invert{background:var(--surface);color:var(--accent-deep)}
.btn-invert:hover{background:var(--accent-soft);color:var(--accent-deep)}
.btn-ghost{background:transparent;color:#fff;border-color:var(--accent-line)}
.btn-ghost:hover{background:rgba(255,255,255,.1);color:#fff}
.btn:disabled{opacity:.55;cursor:default}

/* ── CTA 띠 ─────────────────────────── */
/* 강조색 면 위에 흰 글자. 이 면 위에서는 초록 포커스 링이 보이지 않으므로
   외곽선 색을 바꿉니다. */
.cta{background:var(--accent);color:#fff}
.cta-in{max-width:var(--wrap);margin:0 auto;padding:52px var(--pad);
  display:flex;align-items:center;justify-content:space-between;gap:34px;flex-wrap:wrap}
.cta h2{color:#fff;font-size:var(--fs-h2)}
/* 이 문단만 상한이 낮습니다. 오른쪽에 버튼 줄이 서기 때문입니다 —
   더 늘리면 버튼이 아래로 접히고, 그러면 띠가 두 덩어리로 갈라집니다. */
.cta-t p{margin-top:12px;font-size:var(--fs-sub);color:var(--accent-soft);
  line-height:var(--lh-sub);max-width:44em}
.cta-row{display:flex;gap:12px;flex-wrap:wrap}
.cta :focus-visible{outline-color:#fff}
.cta-inline .cta-in{padding:34px var(--pad)}

/* ── 폼 ─────────────────────────────── */
.form-split{display:grid;grid-template-columns:1.6fr 1fr;gap:40px;align-items:start}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.fl{display:block;margin-bottom:7px;font-size:var(--fs-note);font-weight:700;
  color:var(--text);line-height:var(--lh-label)}
.fl .req{color:var(--warn)}
.fl .hint{margin-left:7px;font-weight:400;color:var(--text-muted)}
input[type=text],input[type=email],input[type=tel],textarea,select{
  width:100%;background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r-s);padding:12px 14px;font-size:var(--fs-sub);
  line-height:var(--lh-sub);color:var(--text)}
input[type=text],input[type=email],input[type=tel],select{height:46px;padding:0 14px}
select{appearance:none;cursor:pointer;padding-right:38px;
  background-image:linear-gradient(45deg,transparent 50%,var(--text-muted) 50%),
    linear-gradient(135deg,var(--text-muted) 50%,transparent 50%);
  background-position:calc(100% - 19px) 21px,calc(100% - 14px) 21px;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat}
input:focus,textarea:focus,select:focus{border-color:var(--accent);outline:2px solid var(--accent-soft)}
input.bad,textarea.bad{border-color:var(--warn)}
textarea{resize:vertical}
/* 진단·주소처럼 한 칸만 눕혀 두는 자리. */
.hilite{margin-top:var(--gap);background:var(--surface-alt);border:1px solid var(--border);
  border-radius:var(--r);padding:18px 20px}
.hilite p{margin-top:9px;font-size:var(--fs-note);color:var(--text-muted);
  line-height:var(--lh-sub)}
.consent{margin-top:var(--gap);border:1px solid var(--border);background:var(--surface);
  border-radius:var(--r)}
.consent summary{list-style:none;cursor:pointer;padding:14px 18px;display:flex;
  justify-content:space-between;gap:14px;font-size:var(--fs-note);font-weight:700;
  flex-wrap:wrap}
.consent summary::-webkit-details-marker{display:none}
.consent .open-h{font-weight:400;color:var(--text-muted)}
.consent-b{padding:0 18px 16px}
.consent-g{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;
  font-size:var(--fs-note);line-height:var(--lh-sub)}
.consent-g b{color:var(--text);white-space:nowrap}
.consent-g span{color:var(--text-soft)}
.consent-b .note{margin-top:12px}
/* 동의 칸. 폼에서 유일하게 40px 아래였고, 하필 그것이 문의를 막는 필수
   동의였습니다 — 입력칸 46px · 고지 여닫이 54px · 보내기 46px 인데 이 줄만
   25px 였습니다. 규칙에서 빠진 것이지 그렇게 두려던 자리가 아닙니다.

   높이는 라벨에 줍니다. 체크박스만 키우면 네모가 커져 폼이 아이 것처럼
   보이고, 정작 손가락이 닿아야 하는 것은 글자를 포함한 줄 전체입니다.
   label 이 input 을 감싸고 있어 줄 아무 데나 누르면 켜집니다. */
.check-inline{display:flex;align-items:center;gap:12px;margin-top:16px;
  min-height:46px;padding:6px 2px;
  font-size:var(--fs-sub);color:var(--text-soft);line-height:var(--lh-sub);cursor:pointer}
.check-inline input{accent-color:var(--accent);flex:none;
  width:22px;height:22px}
.mt-form{margin-top:20px}
/* 스팸 봇 유인용. 사람에게 보이면 안 되지만 display:none 은 봇도 알아봅니다. */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
/* 폼 결과 — apply.js 가 이 클래스로 그립니다. */
.ok-msg{background:var(--accent-soft);border:1px solid var(--accent-line);
  border-radius:var(--r);padding:16px 18px;font-size:var(--fs-sub);
  line-height:var(--lh-sub);color:var(--text-soft)}
.err{background:#F7EFE7;border:1px solid #E3CDB6;border-radius:var(--r);
  padding:16px 18px;font-size:var(--fs-sub);line-height:var(--lh-sub);color:var(--text-soft)}
.field-err{margin-top:7px;font-size:var(--fs-note);color:var(--warn);font-weight:600;
  line-height:var(--lh-label)}

/* 폼 오른쪽에 붙는 보조 카드. */
.aside-col{display:flex;flex-direction:column;gap:16px}
.side-card{background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r);padding:20px}
.side-card.soft{background:var(--surface-alt)}
.side-card h3{font-size:var(--fs-sub)}
.side-card p{margin-top:9px;font-size:var(--fs-note);color:var(--text-muted);
  line-height:var(--lh-sub)}
.go-more{display:inline-block;margin-top:13px;font-size:var(--fs-note);font-weight:700;
  color:var(--accent);text-decoration:none}
.go-more:hover{text-decoration:underline}
.pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:11px}
.pills span{background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r-xs);padding:5px 11px;font-size:var(--fs-note);color:var(--text-soft)}
.side-card.soft .pills span{background:var(--bg)}

/* ── 푸터 ───────────────────────────── */
/* 강조 면이 아니라 종이 한 단 아래입니다 — 고지 문구가 길어서 초록 바탕에
   얹으면 페이지 아래쪽이 통째로 색면이 됩니다. */
.foot{background:var(--surface-alt);border-top:1px solid var(--border);margin-top:0}
.foot-in{max-width:var(--wrap);margin:0 auto;padding:48px var(--pad) 40px}
/* 회사 · 메뉴 · SNS. 회사 칸이 가장 넓습니다 — 상호·번호·주소가 접히면 안 됩니다. */
.foot-cols{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:40px}
.foot-h{font-size:var(--fs-note);font-weight:700;color:var(--text);margin-bottom:12px;
  }
.foot-col a{display:block;font-size:var(--fs-note);color:var(--text-muted);
  text-decoration:none;padding:4px 0}
.foot-col a:hover{color:var(--accent)}
.foot-co p{font-size:var(--fs-note);color:var(--text-muted);line-height:var(--lh-sub)}
.foot-co a{display:inline}
/* 주소 뒤에 붙는 지도 링크. 한 줄 안에 있어야 주소와 한 덩어리로 읽힙니다. */
.foot-co p+p{margin-top:3px}
.foot-legal{margin-top:34px;padding-top:22px;border-top:1px solid var(--border);
  font-size:var(--fs-note);color:var(--text-muted);line-height:var(--lh-sub);max-width:68em}
.foot-legal-l{display:inline-block;margin-top:8px}
.foot-legal-l a{color:var(--text-muted)}

/* ── 줄바꿈 금지 ────────────────────── */
/* 가운뎃점으로 이은 나열이 마디 한가운데서 접히지 않게 합니다. */
/* 마디 단위 줄바꿈. lib/html.mjs 의 clauses() 가 마침표·쉼표 뒤에서만 줄이
   바뀌도록 마디를 이 클래스로 묶습니다. 마디 안에서는 끊기지 않습니다. */
.cl{white-space:nowrap}
/* 좁은 칸 안에서는 풉니다. 마디 하나가 칸보다 길면 nowrap 이 그대로 넘치고,
   넘친 글자는 잘려서 아예 읽히지 않습니다 — 어색한 줄바꿈보다 나쁩니다.
   묶음이 이득인 자리는 글줄이 700px 을 넘는 넓은 자리뿐입니다. */
.card .cl,.shot .cl,.side-card .cl,.cells .cl,.tw .cl,td .cl,th .cl,.steps .cl{white-space:normal}

.nb{white-space:nowrap}

/* ══════════════════════════════════════════════════════════════
   작업실 (/room/)

   로그인 뒤에만 보이는 화면입니다. 마크업을 src/assets/room.js 가 그리므로
   클래스 이름을 바꾸실 때는 그 파일도 함께 고치십시오.
   오래 머무는 화면이라 본문을 한 눈금 키워 씁니다. */
.rm-app{max-width:820px}
.rm-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;
  flex-wrap:wrap;padding-bottom:18px;border-bottom:1px solid var(--border)}
.rm-c{font-size:var(--fs-h3);font-weight:800;letter-spacing:var(--ls-head);
  line-height:var(--lh-head)}
.rm-r{margin-top:5px;font-size:var(--fs-note);color:var(--text-muted)}
/* .btn-ghost 는 초록 면 위에서 쓰라고 만든 것이라 글자가 흽니다.
   밝은 바탕인 여기서는 보이지 않으므로 색을 따로 잡습니다. */
.rm-out{min-height:38px;padding:0 16px;font-size:var(--fs-note);background:var(--surface);
  color:var(--text-soft);border-color:var(--border)}
.rm-out:hover{color:var(--accent-deep);border-color:var(--accent);background:var(--surface)}

.rm-h2{margin-top:var(--gap-l);font-size:var(--fs-h3);font-weight:800;
  letter-spacing:var(--ls-head);line-height:var(--lh-head)}
.rm-sub{margin-top:6px;font-size:var(--fs-note);color:var(--text-muted)}

/* 방향 고르기 — 고르는 즉시 저장됩니다. 저장 버튼을 두지 마십시오. */
.rm-brief{margin-top:16px;display:flex;flex-direction:column;gap:18px}
.rm-q{border:0;padding:0;margin:0;min-width:0}
.rm-q legend{padding:0;font-size:var(--fs-sub);font-weight:700;color:var(--text);
  line-height:var(--lh-head)}
.rm-opts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}
.rm-opt{display:block;border:1px solid var(--border);border-radius:var(--r-s);
  background:var(--surface);padding:13px 15px;cursor:pointer;line-height:normal}
.rm-opt:hover{border-color:var(--accent-line)}
.rm-opt.on{border-color:var(--accent);background:var(--accent-soft)}
.rm-opt input{position:absolute;opacity:0;width:0;height:0}
.rm-opt .t{display:block;font-size:var(--fs-sub);font-weight:700;color:var(--text)}
.rm-opt.on .t{color:var(--accent-deep)}
.rm-opt .d{display:block;margin-top:5px;font-size:var(--fs-note);color:var(--text-muted);
  line-height:var(--lh-sub)}

/* 오간 이야기 */
.rm-log{margin-top:16px;border:1px solid var(--border);border-radius:var(--r);
  background:var(--surface-alt);padding:20px;max-height:520px;overflow-y:auto;
  display:flex;flex-direction:column;gap:14px}
.rm-empty{font-size:var(--fs-sub);color:var(--text-muted);text-align:center;padding:24px 0}
.rm-msg{max-width:82%;background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r-s);padding:13px 15px}
.rm-msg.mine{align-self:flex-end;background:var(--accent-soft);border-color:var(--accent-line)}
.rm-who{font-size:var(--fs-note);color:var(--text-muted);line-height:var(--lh-label);
  display:flex;gap:10px;align-items:baseline}
.rm-who time{font-family:var(--mono)}
.rm-text{margin-top:7px;font-size:var(--fs-sub);color:var(--text);
  line-height:var(--lh-body);white-space:pre-wrap;word-break:break-word}
.rm-photo{margin:9px 0 0}
.rm-photo img{display:block;width:100%;max-width:380px;border:1px solid var(--border)}
.rm-photo figcaption{margin-top:7px;font-size:var(--fs-note);color:var(--text-soft);
  line-height:var(--lh-sub)}
.rm-consent{margin-top:5px;font-size:var(--fs-note);color:var(--text-muted);
  line-height:var(--lh-label)}
.rm-consent.bad{color:var(--warn);font-weight:600}

/* 적는 자리 */
.rm-say{margin-top:16px}
.rm-say textarea{padding:12px 14px}
.rm-tools{display:flex;gap:10px;align-items:center;margin-top:10px;flex-wrap:wrap}
.rm-file{display:inline-flex;align-items:center;min-height:46px;padding:0 18px;
  border:1px solid var(--border);border-radius:var(--r-s);background:var(--surface);
  cursor:pointer;font-size:var(--fs-sub);color:var(--text-soft);line-height:normal}
.rm-file:hover{border-color:var(--accent);color:var(--accent-deep)}
.rm-file input{position:absolute;opacity:0;width:0;height:0}
.rm-tools .btn{margin-left:auto}

/* 사진을 고르면 "무슨 사진인지" 를 반드시 묻는 자리.
   접거나 건너뛰게 만들지 마십시오 — 동의 없는 사진이 발행에 섞이지 않게 하는
   유일한 장치입니다. */
.rm-up{margin-top:14px;border:1px solid var(--border);border-left:3px solid var(--accent);
  border-radius:var(--r-s);background:var(--surface);padding:18px 20px}
.rm-up-n{font-family:var(--mono);font-size:var(--fs-note);color:var(--text-muted);
  word-break:break-all}
.rm-up .fl{margin:14px 0 7px}
.rm-chk{display:flex;align-items:flex-start;gap:9px;min-height:36px;
  font-size:var(--fs-sub);color:var(--text-soft);line-height:var(--lh-sub);
  cursor:pointer;padding:4px 0}
.rm-chk input{margin-top:4px;accent-color:var(--accent);flex:none;width:18px;height:18px}
.rm-note{margin-top:8px;font-size:var(--fs-note);color:var(--text-muted);
  line-height:var(--lh-sub)}
.rm-up .btn{margin-top:14px}

/* ══════════════════════════════════════════════════════════════
   좁은 화면

   데스크톱 값을 그대로 쓰지 않습니다. 눈금 토큰 자체를 다시 정의해,
   개별 규칙에서 font-size 를 덮어쓰지 않고 한 자리에서 조절합니다. */

@media(max-width:980px){
  .form-split{grid-template-columns:1fr;gap:30px}
  .hero-in.hero-room{grid-template-columns:1fr;gap:30px}
  .grid,.grid.g3,.grid.g4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .shots{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cells,.cells.c4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .foot-cols{grid-template-columns:1fr;gap:28px}
  .sec-head{flex-direction:column;gap:14px}
  .sec-aside{text-align:left;max-width:none}
}

@media(max-width:760px){
  :root{
    --fs-lede:17px;
    --fs-body:16px;
    --fs-sub:15px;
    --fs-note:15px;
    --fs-h3:18px;
    --fs-h4:17px;
    --sec-y:52px;
    --gap-l:26px;
    --pad:18px;
  }

  /* 메뉴를 접습니다. 체크박스 하나로 여닫고 자바스크립트를 쓰지 않습니다. */
  .navbtn{display:flex;flex-direction:column;justify-content:center;gap:5px;
    width:44px;height:44px;cursor:pointer;padding:0 10px}
  .navbtn span{display:block;height:2px;background:var(--text);border-radius:1px}
  .nav{position:absolute;top:100%;left:0;right:0;display:none;flex-direction:column;
    align-items:stretch;gap:0;background:var(--surface);
    border-bottom:1px solid var(--border);padding:8px var(--pad) 16px}
  .navtoggle:checked~.nav{display:flex}
  .nav a{padding:13px 4px}
  /* 상시 노출되는 .top-cta 가 이미 헤더에 있습니다. 메뉴 안에 같은 버튼을 한 번
     더 두면 접었을 때 하나, 폈을 때 둘이 됩니다. */
  .nav a.nav-cta{display:none}
  .top-in{position:relative;flex-wrap:wrap;gap:10px}

  /* 카톡·문자로 받은 링크가 주 유입입니다. 전환 자리를 햄버거 안에 넣어 두면
     메뉴가 있다는 것을 먼저 아셔야 누를 수 있습니다. */
  /* 손가락이 닿아야 하는 것이라 44px 아래로 두지 않습니다. 이 버튼 하나가
     좁은 화면에서 유일하게 상시 노출되는 전환 자리입니다. */
  .top-cta{display:inline-flex;align-items:center;margin-left:auto;
    min-height:44px;background:var(--accent);color:#fff;text-decoration:none;
    padding:0 16px;border-radius:var(--r-s);
    font-size:var(--fs-sub);font-weight:700;line-height:normal;white-space:nowrap}
  .top-cta:hover{background:var(--accent-deep);color:#fff}

  .grid,.grid.g2,.grid.g3,.grid.g4{grid-template-columns:1fr}
  .shots{grid-template-columns:1fr}

  /* 하나 대 넷을 위아래로 쌓고 화살표를 아래로 돌립니다. 좁은 화면에서
     가로로 두면 오른쪽 네 칸이 두 줄로 접혀 「넷」이 한눈에 세어지지 않습니다. */
  /* 마디 묶음을 풉니다. 마디 하나가 화면보다 길어 nowrap 이 그대로 넘칩니다 —
     좁은 화면에서는 폭이 모자라 어차피 마디마다 줄이 바뀌므로 잃는 것이 없습니다. */
  .cl{white-space:normal}

  .vs{flex-direction:column;align-items:stretch;gap:12px}
  /* 위아래로 쌓이면 칸이 폭을 다 쓰므로, 가운데 정렬한 라벨이 화면 한가운데로
     밀려 아무것도 가리키지 않게 됩니다. 왼쪽으로 되돌립니다. */
  .vs-side:not(.vs-to) .vs-lb{text-align:left}
  .vs-arrow{margin:4px 0 4px 12px;width:3px;height:26px;align-self:flex-start}
  .vs-arrow::after{top:auto;right:-5px;bottom:0;transform:rotate(135deg)}
  .cells,.cells.c2,.cells.c3,.cells.c4{grid-template-columns:1fr}
  ul.notes.cols2{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
  .stats{gap:24px}
  .rm-opts{grid-template-columns:1fr}
  .rm-msg{max-width:94%}
  .rm-log{max-height:none;padding:14px}
  .rm-tools .btn{margin-left:0;width:100%}
  .rm-file{width:100%;justify-content:center}
  .ba-row{grid-template-columns:1fr;gap:14px}
  .ba-div{height:1px}
  .cta-in{padding:38px var(--pad)}
  .btn{width:100%}
  .hero-row .btn,.cta-row .btn{width:100%}

  /* 열이 넷인 표는 두 열짜리 판으로 통째로 갈아 끼웁니다. */
  .tw-lg{display:none}
  .tw-sm{display:block}

  /* 남은 두세 열짜리 표는 칸을 세로로 쌓습니다.
     가로 스크롤을 만들지 마십시오 — 휴대전화에서 표의 오른쪽 절반은
     있는 줄도 모르고 지나갑니다. */
  .tw{overflow-x:visible}
  table,thead,tbody,tr,th,td{display:block;width:auto}
  thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
  colgroup{display:none}
  tbody tr{border-top:1px solid var(--border);padding:4px 0}
  tbody tr:first-child{border-top:0}
  tbody th,tbody td{border-top:0;padding:8px 16px}
  tbody th{padding-top:16px;font-size:var(--fs-sub)}
  tbody td:last-child{padding-bottom:16px}
  /* 세로로 쌓이면 그 칸이 어느 열이었는지가 사라집니다. 표를 만들 때
     넣어 둔 data-l 이 그것을 되살리는 유일한 자리입니다. */
  tbody td[data-l]::before{content:attr(data-l);display:block;margin-bottom:3px;
    font-size:var(--fs-label);font-weight:700;color:var(--text-muted);
    }
  .ar{text-align:left !important}
}

/* ── 인쇄 ───────────────────────────── */
@media print{
  .top,.foot,.cta,.skip,.crumb{display:none}
  body{background:#fff;font-size:var(--fs-sub)}
  .sec{padding:18px 0;border-top:1px solid var(--border)}
  .hero{background:#fff}
  a{color:var(--text);text-decoration:none}
}

/* 제작 사례 — 시안을 고르는 기준 여섯 줄.
   카드가 아니라 목록입니다. 그림 없이 글만 읽는 자리라 테두리 대신
   위 선 하나로 나눕니다. */
.picks { display: grid; gap: 0; margin-top: 24px; }

.pick {
  display: grid;
  grid-template-columns: 5.5rem minmax(0, 1fr);
  gap: 4px 20px;
  padding: 18px 0;
  border-top: 1px solid var(--border);
}

.pick:last-child { border-bottom: 1px solid var(--border); }

.pick-no {
  grid-row: span 2;
  font-weight: 700;
  color: var(--accent);
}

.pick-name { font-weight: 700; }
.pick-why { color: var(--text-muted); font-size: var(--fs-sub); }

@media (max-width: 640px) {
  .pick { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .pick-no { grid-row: auto; }
}

/* ── 맨 위로 가기 ─────────────────────────────────
   우측 아래 고정. 400px 넘게 내려가야 나타납니다.
   시안 쪽(care-site/portfolio/assets/layout.css)과 같은 모양이고
   색만 이 사이트 변수를 씁니다. */
.to-top {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 190;
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: 50%;
  background: var(--surface);
  color: var(--accent);
  cursor: pointer;

  /* 보이지 않을 때는 탭 순서에서도 빠집니다. */
  visibility: hidden;
  opacity: 0;
  transition: opacity .18s ease, visibility .18s ease;
}

.to-top.is-on { visibility: visible; opacity: 1; }
.to-top:hover { background: var(--accent-soft); color: var(--accent-deep); }
.to-top svg { width: 20px; height: 20px; }

@media (max-width: 640px) {
  .to-top { width: 52px; height: 52px; bottom: calc(20px + var(--sticky-bottom, 0px)); }
}

@media (prefers-reduced-motion: reduce) {
  .to-top { transition: none; }
}


/* 소개 문단. 한 문단 안에서는 줄만 바뀌고, 문단과 문단 사이는 한 숨 띄웁니다 —
   다섯 줄이 같은 간격으로 붙어 있으면 어디서 이야기가 바뀌는지 보이지 않습니다. */
.quote p + p { margin-top: 14px; }

/* 격자 아래 한 줄짜리 링크. 카드가 낱개로 가는 곳이라면 이 줄은 전부 모인
   곳으로 갑니다. */
.more-row { margin-top: 20px; }
