/* 폰트 자체 호스팅.
   원래는 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개는 한글 영역을 통째로 덮습니다 —
   서브셋 밖으로 새는 글자가 없어 따로 골라내는 단계가 필요 없습니다.
   ───────────────────────────────────────────────────────────── */

/* ── Gowun Dodum 서브셋 (자동 생성 — tools/font-subset/gowun-pick.mjs) ── */
@font-face{font-family:'Gowun Dodum';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/gowun-dodum-v11/GowunDodum-2.woff2) format('woff2');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:'Gowun Dodum';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/gowun-dodum-v11/GowunDodum-5.woff2) format('woff2');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:'Gowun Dodum';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/gowun-dodum-v11/GowunDodum-21.woff2) format('woff2');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:'Gowun Dodum';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/gowun-dodum-v11/GowunDodum-24.woff2) format('woff2');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:'Gowun Dodum';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/gowun-dodum-v11/GowunDodum-31.woff2) format('woff2');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:'Gowun Dodum';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/gowun-dodum-v11/GowunDodum-37.woff2) format('woff2');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:'Gowun Dodum';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/gowun-dodum-v11/GowunDodum-41.woff2) format('woff2');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:'Gowun Dodum';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/gowun-dodum-v11/GowunDodum-47.woff2) format('woff2');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:'Gowun Dodum';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/gowun-dodum-v11/GowunDodum-51.woff2) format('woff2');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:'Gowun Dodum';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/gowun-dodum-v11/GowunDodum-55.woff2) format('woff2');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:'Gowun Dodum';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/gowun-dodum-v11/GowunDodum-58.woff2) format('woff2');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:'Gowun Dodum';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/gowun-dodum-v11/GowunDodum-69.woff2) format('woff2');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:'Gowun Dodum';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/gowun-dodum-v11/GowunDodum-71.woff2) format('woff2');unicode-range:U+81-82, U+84, U+a2-a5, U+a7-a8, U+aa, U+ac-ad, 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:'Gowun Dodum';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/gowun-dodum-v11/GowunDodum-72.woff2) format('woff2');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:'Gowun Dodum';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/gowun-dodum-v11/GowunDodum-73.woff2) format('woff2');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:'Gowun Dodum';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/gowun-dodum-v11/GowunDodum-74.woff2) format('woff2');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:'Gowun Dodum';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/gowun-dodum-v11/GowunDodum-75.woff2) format('woff2');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:'Gowun Dodum';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/gowun-dodum-v11/GowunDodum-76.woff2) format('woff2');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:'Gowun Dodum';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/gowun-dodum-v11/GowunDodum-77.woff2) format('woff2');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:'Gowun Dodum';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/gowun-dodum-v11/GowunDodum-78.woff2) format('woff2');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:'Gowun Dodum';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/gowun-dodum-v11/GowunDodum-79.woff2) format('woff2');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:'Gowun Dodum';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/gowun-dodum-v11/GowunDodum-80.woff2) format('woff2');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:'Gowun Dodum';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/gowun-dodum-v11/GowunDodum-81.woff2) format('woff2');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:'Gowun Dodum';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/gowun-dodum-v11/GowunDodum-82.woff2) format('woff2');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:'Gowun Dodum';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/gowun-dodum-v11/GowunDodum-83.woff2) format('woff2');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:'Gowun Dodum';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/gowun-dodum-v11/GowunDodum-84.woff2) format('woff2');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:'Gowun Dodum';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/gowun-dodum-v11/GowunDodum-85.woff2) format('woff2');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:'Gowun Dodum';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/gowun-dodum-v11/GowunDodum-86.woff2) format('woff2');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:'Gowun Dodum';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/gowun-dodum-v11/GowunDodum-87.woff2) format('woff2');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:'Gowun Dodum';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/gowun-dodum-v11/GowunDodum-88.woff2) format('woff2');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:'Gowun Dodum';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/gowun-dodum-v11/GowunDodum-89.woff2) format('woff2');unicode-range:U+d, U+48, 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:'Gowun Dodum';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/gowun-dodum-v11/GowunDodum-90.woff2) format('woff2');unicode-range:U+39, U+49, U+4d-4e, U+a0, 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:'Gowun Dodum';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/gowun-dodum-v11/GowunDodum-91.woff2) format('woff2');unicode-range:U+20-22, U+27-2a, U+2c-38, U+3a-3b, U+3f, U+41-47, U+4a-4c, U+4f-5d, U+61-7b, U+7d, U+a1, U+ab, U+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}
@font-face{font-family:'Gowun Dodum';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/gowun-dodum-v11/GowunDodum-94.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}

/* 브릿지 마케팅 — 디자인 시스템.  (크림 · 벽돌 — 2026-09-28 대표 확정)

   ─────────────────────────────── 앞의 얼굴과 무엇이 달라졌는가

   앞서 이 시스템은 「종이색 바탕 + 깊은 초록 하나 + 1px 보더 + 8px 이하
   모서리 + 그림자 없음」이었습니다. 규칙 자체는 단정했는데, 화면 전체가
   같은 리듬의 흰 카드 격자로 깔려서 「누가 만들어도 이렇게 나오는 화면」으로
   읽혔습니다. 사이트를 만들어 파는 회사의 첫 쪽이 그렇게 읽히면 그것 하나가
   반증이 됩니다.

   그래서 크림 종이 위에 벽돌색 한 색으로 갑니다. 모서리를 풀고, 카드에
   선반 그림자를 한 단 허용하고, 제목에 둥근 글꼴(Gowun Dodum)을 씁니다.
   센터 시안 19(にこり) 계열의 얼굴을 회사 쪽으로 가져온 것입니다.

   ─────────────────────────────── 지키는 규칙

   그라데이션·글래스모피즘·이모지·패럴랙스를 쓰지 않습니다. 이것은 그대로입니다.

   면은 크림(--bg)과 카드(--surface) 두 층, 한 단 눕힌 면(--surface-alt) 하나.
   강조는 벽돌 하나뿐이고, 주의는 팥빛 하나, 「좋다」는 잎색 하나입니다.
   색을 더 늘리지 마십시오 — 상태를 색으로 나누기 시작하면 표가 신호등이 됩니다.

   그림자는 두 가지만 씁니다.
     헤더  — 스크롤한 본문과 머리를 가르는 한 줄.
     카드  — 아래로만 떨어지는 선반(--shelf). 번지지 않습니다(blur 0).
   그 밖의 자리에 그림자를 쓰지 마십시오. 특히 버튼에 쓰면 그때부터
   화면이 「떠 있는 것」 투성이가 됩니다.

   모서리는 --r 눈금 안에서만 고릅니다. 사진과 표는 0 입니다 —
   사진 모서리를 깎으면 그 자체가 꾸민 티가 되고, 표는 격자이지 카드가
   아닙니다. 다만 사진을 담은 카드는 자기 모서리로 사진을 잘라 넣습니다.

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

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

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

   ─────────────────────────────── 글꼴을 둘로 나눠 쓰는 이유

   제목과 리드 문단만 Gowun Dodum(--round)이고, 본문·표·폼·라벨은 그대로
   Pretendard(--sans)입니다. 섞어 쓰는 것이 아니라 역할이 다릅니다.

   Gowun Dodum 은 굵기가 400 한 벌뿐입니다. 굵게 쓰면 브라우저가 가짜 굵게를
   그려 한글이 뭉갭니다. 그래서 이 글꼴이 닿는 자리는 전부 font-weight:400 이고,
   굵기로 무게를 내던 자리(표 머리, 라벨, 버튼, 폼)는 Pretendard 에 남겼습니다.

   --round 를 본문까지 넓히지 마십시오. 위의 가짜 굵게 문제가 127군데에서
   한꺼번에 터지고, 글줄 길이 상한(아래 「글줄 길이」 절의 em 값들)이 전부
   Pretendard 의 글자폭으로 맞춰져 있어 오른쪽 끝이 어긋납니다. */

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

:root{
  /* ── 팔레트 ────────────────────────────────────────────────
     크림 종이 위에 벽돌 한 색. 파스텔을 쓰지 않습니다. */
  --bg:#FAF4EA;             /* 크림 종이 */
  --surface:#FFFCF7;        /* 카드 */
  --surface-alt:#F0E3D1;    /* 한 단 눕힌 면 */
  --table-head:#E9D8C0;     /* 표 머리행. 눕힌 면 위에서도 보이도록 한 톤 더 */
  --border:#E2D5C1;
  --text:#3A2A18;
  --text-muted:#9C8871;
  --accent:#C2521B;         /* 벽돌 */
  --accent-soft:#F6DDC9;
  --warn:#8C3A3A;           /* 팥빛. 강조와 섞이지 않을 만큼 붉고 어둡습니다 */
  --leaf:#4F7A3E;           /* 「좋다」 한 색. 값 카드의 초기 조건 하나뿐입니다 */

  /* 위 열 개에서 파생한 값들. 새 색을 들이는 것이 아니라 같은 색의
     짙기만 바꾼 것입니다. 여기에 새 색상 계열을 더하지 마십시오. */
  --accent-deep:#8C3A0D;    /* 링크·버튼 hover, 강조 위의 흰 글이 서는 짙은 단 */
  --accent-line:#E9B695;    /* 강조 면 위의 선 */
  --border-soft:#EDE2D2;    /* 표 안쪽 가로줄 */
  --border-strong:#C4B196;  /* 경계가 분명해야 하는 자리 */
  --border-shot:#E0A578;    /* 시안 카드 테두리 — hover 의 --accent 보다 한 단 연함 */
  --text-soft:#6B5640;      /* 카드 본문 — 본문보다 한 톤 낮습니다 */

  /* 그림자 두 벌. 머리 한 줄과 카드 선반. 이 둘 말고는 쓰지 않습니다. */
  --shelf:0 3px 0 var(--border);
  --shelf-h:0 5px 0 var(--accent-line);

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

  /* 모서리 — 사진과 표는 0, 카드는 크게, 버튼은 알약.
     앞서 8px 이하였습니다(그 위로 가면 유아 시설처럼 읽힌다고 보았습니다).
     크림 얼굴에서는 반대입니다 — 각진 모서리가 크림 위에서 더 차갑게 읽힙니다.
     대신 「둥글되 크게」로 갑니다. 12px 짜리 어중간한 모서리를 만들지 마십시오. */
  --r:20px;                 /* 카드·블록 */
  --r-s:14px;               /* 입력칸·작은 상자 */
  --r-xs:10px;              /* 칩·꼬리표 */
  --r-pill:999px;           /* 버튼과 알약 라벨 */

  /* ── 글꼴 세 종 ──
     제목과 리드는 Gowun Dodum(400 한 벌), 본문·표·폼·라벨은 Pretendard,
     숫자와 라틴 라벨은 IBM Plex Mono.
     네 번째 글꼴을 추가하지 마십시오.
     --round 를 쓰는 자리는 반드시 font-weight:400 입니다 — 위 머리말 참조.
     모노 뒤에 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;
  /* 뒤에 Pretendard 를 세워 둡니다 — 서브셋 밖의 글자가 시스템 글꼴로 떨어지면
     같은 줄 안에서 글자 모양이 갈립니다. */
  --round:"Gowun Dodum","Pretendard Variable",Pretendard,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;

  /* ── 타입 스케일 ──
     제목은 화면 폭에 따라 움직입니다. 좁은 화면에서 고정값을 쓰면 두 글자마다
     줄이 바뀌어 제목이 덩어리로 읽히지 않습니다. */
  --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);  /* 지표 숫자 */
  /* 값 카드(/marketing/#terms)의 숫자와 단위. 지표(--fs-stat)보다 큽니다 —
     이 쪽에서 가장 먼저 읽히는 것이 값이기 때문입니다. 다른 자리에 쓰지
     마십시오. */
  --fs-plan:52px;
  --fs-plan-u:22px;
  /* 신청 폼(.af) 전용 눈금 — 네 단계뿐입니다(2026-09-21 표기 규칙).
     섹션 제목 20 · 본문/입력값 15 · 라벨 13 · 보조설명 12. 굵기는 600/400 둘.
     색은 본문 --af-text · 보조 --af-muted · 포인트(--accent) 셋. 폼 안에서 이 밖의
     크기·회색을 쓰지 마십시오. */
  --fs-afh:20px;
  --fs-afbody:15px;
  --fs-aflabel:13px;
  --fs-afnote:12px;
  --af-text:#3A2A18;    /* --text 와 같습니다. 폼만 찬 회색이면 그 칸만 파랗게 뜹니다 */
  --af-muted:#7E6A52;
  --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%;touch-action:manipulation}
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}

/* ── 제목 ───────────────────────────── */
/* 둥근 글꼴이 닿는 자리는 여기와 리드 문단뿐입니다. 굵기는 반드시 400 —
   Gowun Dodum 에 굵기를 주면 브라우저가 가짜 굵게를 그려 한글이 뭉갭니다.
   무게는 굵기가 아니라 크기와 여백으로 냅니다. */
h1,h2,h3,h4{font-family:var(--round);font-weight:400;
  letter-spacing:var(--ls-head);line-height:var(--lh-head);color:var(--text)}
/* 카드·표 안의 제목까지 이 글꼴이 들어가면 칸이 작아 글자가 흐려 보입니다.
   h4 크기 아래로 내려가는 자리는 Pretendard 로 되돌리고 굵기를 되살립니다. */
.tw h3,.tw h4,.af h3,.af h4,.side-card h3,.consent h3,
thead th,tbody th{font-family:var(--sans)}
.side-card h3{font-weight:700}
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}

/* ── 헤더 ───────────────────────────── */
/* 두 줄입니다. 위는 벽돌 띠에 고지 한 줄, 아래가 상호와 메뉴입니다.
   로고 그림은 여전히 쓰지 않습니다 — 상호 옆의 동그라미는 CSS 로 그린
   도형 하나이고, 파일로 만들어 넣지 마십시오. */
.top{position:sticky;top:0;z-index:30;background:var(--bg);
  border-bottom:1px solid var(--border);box-shadow:0 1px 3px rgba(58,42,24,.07)}
.top-strip{background:var(--accent);color:#fff}
.top-strip-in{max-width:var(--wrap);margin:0 auto;padding:7px var(--pad);
  display:flex;align-items:center;gap:16px;
  font-size:var(--fs-label);line-height:var(--lh-label)}
.top-strip b{font-weight:700}
.top-strip span{margin-left:auto;color:rgba(255,255,255,.92)}
.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);display:flex;align-items:center;gap:10px}
/* 상호 앞의 동그라미. 안쪽의 호는 「ㅂ」이 아니라 웃는 입입니다 —
   글자를 그려 넣으면 상호를 두 번 읽게 됩니다. */
.brand-mark{position:relative;flex:none;width:30px;height:30px;border-radius:50%;
  background:var(--accent)}
.brand-mark::after{content:"";position:absolute;left:8px;top:10px;width:14px;height:10px;
  border-bottom:2.5px solid #fff;border-radius:0 0 10px 10px}
.brand-name{font-family:var(--round);font-size:var(--fs-h4);font-weight:400;
  letter-spacing:var(--ls-head)}
.nav{display:flex;align-items:center;gap:4px}
.nav a{padding:9px 14px;border-radius:var(--r-pill);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 20px;margin-left:6px;box-shadow:0 2px 0 var(--accent-deep)}
.nav a.nav-cta:hover{background:var(--accent-deep);color:#fff}
.nav a.nav-login{margin-left:4px;color:var(--text-muted);font-size:var(--fs-note)}
.nav a.nav-login:hover{color:var(--accent-deep)}
/* 지금 이 쪽에 있다는 표시. 메뉴 셋(.nav a.on)과 같은 규칙입니다 —
   색면을 깔지 않고 글자색과 굵기로만 냅니다. */
.nav a.nav-login.on{color:var(--accent);font-weight:700}

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

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

/* ── 히어로 ─────────────────────────── */
/* 앞서 히어로에 눕힌 면을 깔았습니다. 바탕 자체가 크림이 된 뒤로는 그 면이
   한 번 더 깔린 것으로 보여 첫 화면이 탁해집니다 — 선 하나만 남깁니다. */
.hero{background:var(--bg);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{display:inline-block;font-size:var(--fs-note);font-weight:700;
  color:var(--accent-deep);background:var(--accent-soft);
  border-radius:var(--r-pill);padding:5px 15px;
  line-height:normal;margin-bottom:16px}
.lede{margin-top:20px;font-family:var(--round);font-size:var(--fs-lede);
  color:var(--text-soft);line-height:var(--lh-sub);max-width:46em}

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

   「나쁨 → 좋음」이 아니라 「하나 → 넷」입니다. 왼쪽을 회색으로 깎지 마십시오 —
   지금 블로그를 하고 계신 분에게 그것은 지금까지의 일을 지우는 말이 되고,
   이 사이트의 03 절(「블로그를 그만두시라는 말이 아닙니다」)과 어긋납니다.
   그래서 왼쪽도 흰 면에 제대로 된 보더를 두고, 오른쪽만 강조색을 답니다.
   같은 이유로 오른쪽 네 칸 안에 블로그가 들어 있어야 합니다. */
/* 크림 바탕 위에서는 칩만 떠 있어 한 덩어리로 읽히지 않았습니다.
   눕힌 면 하나에 얹어 「이 비교는 한 덩어리」임을 면으로 말합니다. */
/* 위아래 두 줄입니다. 「지금」과 「브릿지 마케팅과 함께」가 같은 자리에서
   시작해야 두 줄이 견줘집니다 — 한쪽을 가운데로 두면 무엇과 무엇을
   비교하는지가 흐려집니다. */
.vs{margin-top:26px;display:flex;flex-direction:column;align-items:stretch;gap:14px;
  background:var(--surface-alt);border-radius:var(--r);padding:20px 24px}
.vs-lb{font-size:var(--fs-label);font-weight:700;letter-spacing:.02em;
  color:var(--text-muted);line-height:normal;margin-bottom:9px}
.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)}

/* 앞서 두 덩어리 사이에 화살표 도형이 서 있었습니다(2026-09-28 걷음).
   위아래로 쌓고 나면 화살표가 할 일이 없습니다 — 「지금」과 「함께」가
   같은 자리에서 시작하고 아래로 읽히면, 순서가 곧 화살표입니다.
   되살리지 마십시오. 되살리면 두 줄 사이가 벌어져 한 덩어리로 읽히지 않습니다. */
.hero-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}

/* ── 홈 첫 화면의 오른쪽 그림 (2026-09-28) ──────────────
   시안 썸네일 세 장을 기울여 겹칩니다. 사진이 아니라 우리가 파는 물건입니다
   — 왜 스톡 사진을 두지 않는지는 src/pages/bm-home.mjs 의 heroArt 주석에
   적어 두었습니다.

   좁은 화면에서는 통째로 숨습니다. 겹쳐 놓은 그림은 폭이 줄면 서로를 가려
   세 장 다 알아볼 수 없게 되고, 바로 아래 절이 같은 그림을 제대로 보여 주고
   있어 여기서 억지로 세울 이유가 없습니다. */
.hero-lead{display:grid;grid-template-columns:1.06fr .94fr;gap:52px;align-items:center}
.hero-art{position:relative;height:400px}
.hero-art img{position:absolute;border-radius:var(--r);object-fit:cover;
  object-position:top center;border:6px solid var(--surface);box-shadow:var(--shelf)}
.hero-art .ha-1{width:70%;height:58%;left:0;top:0;transform:rotate(-2.5deg)}
.hero-art .ha-2{width:50%;height:42%;right:0;top:16%;transform:rotate(3deg)}
.hero-art .ha-3{width:58%;height:44%;left:16%;bottom:0;transform:rotate(1.5deg)}
/* 값이 아니라 걸리는 시간입니다. 원장님이 첫 화면에서 가장 먼저 물으시는 것이
   「얼마나 걸리느냐」입니다 — 값은 아래 비용 절이 맡습니다. */
.hero-art-dot{position:absolute;right:4%;bottom:2%;width:82px;height:82px;
  border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;
  text-align:center;font-size:var(--fs-label);font-weight:700;line-height:var(--lh-label)}
@media (max-width:900px){
  .hero-lead{grid-template-columns:1fr;gap:0}
  .hero-art{display:none}
}

/* 히어로가 좌우 두 칸인 화면(작업실의 코드 입력). */
/* 왼쪽 글과 오른쪽 카드가 같은 높이로 섭니다(2026-09-28 대표).
   앞서 align-items:start 라 카드가 위에 붙고 아래가 비었습니다 — 두 칸의
   아래 끝이 어긋나면 첫 화면이 한 덩어리로 보이지 않습니다.
   stretch 로 늘리고, 카드 안은 위·아래로 나눠 놓습니다. */
/* 첫 줄은 아이브로우 한 칸, 둘째 줄이 글과 카드입니다. 아이브로우를 왼쪽
   칸 안에 두면 카드 위가 그 알약에 맞춰져 「작업실」보다 한 줄 높이 섭니다. */
.hero-in.hero-room{display:grid;grid-template-columns:1.1fr .9fr;
  column-gap:44px;row-gap:0;align-items:stretch}
/* 격자 칸이 되면 inline-block 이 풀려 칸 폭만큼 늘어납니다. 붙여 둡니다. */
.hero-room .rm-eb{grid-column:1/-1;grid-row:1;justify-self:start}
.hero-room>div{grid-column:1;grid-row:2}
.hero-room .hero-card{grid-column:2;grid-row:2}
.hero-room .hero-card{display:flex;flex-direction:column}
/* 로그인 줄을 카드 가운데에 두고, 「비밀번호 찾기」가 바닥에 앉습니다. */
.hero-room .hero-card .rm-login-g{margin-top:auto}
.hero-room .hero-card .hc-help{margin-top:auto}
.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)}

/* 작업실 로그인 — 연락처와 비밀번호 두 칸 (2026-09-28).
   좁은 화면에서는 한 줄씩 쌓입니다. 두 칸을 나란히 두면 각 칸이 좁아져
   010-0000-0000 이 잘립니다. */
.rm-login-g{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end;margin-top:16px}
.rm-login-g input{width:100%;height:46px;padding:0 14px;font-size:var(--fs-sub);
  background:var(--surface);border:1px solid var(--border);border-radius:var(--r-s)}
.rm-login-g input:focus{border-color:var(--accent);outline:2px solid var(--accent-soft)}
.rm-login-g .fl{margin-bottom:6px}
/* 작업실 히어로의 걸음 넷과 「아직 신청 전이시라면」. 로그인 칸 옆에 서는
   글이라 본문보다 한 단 작습니다 — 여기서 읽으실 것은 차례이지 본문이
   아닙니다. */
.rm-flow{margin-top:20px}
.hero .rm-flow li{font-size:var(--fs-note);color:var(--text-soft);line-height:var(--lh-sub)}
.hero .rm-flow li b{color:var(--text)}
/* 이름난 문 둘 — 신청하기 · 비밀번호 찾기. 로그인 못 하시는 분이 찾는 것은
   설명이 아니라 누를 것입니다. */
.rm-doors{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px;padding-top:16px;
  border-top:1px solid var(--border)}
.rm-doors a{display:inline-flex;align-items:center;min-height:40px;padding:0 18px;
  border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface);
  font-size:var(--fs-note);font-weight:700;color:var(--text);text-decoration:none}
.rm-doors a:hover{border-color:var(--accent);color:var(--accent-deep)}

/* 「비밀번호 찾기」 한 줄. 카드 바닥에 앉습니다. */
.hc-help{margin-top:16px;padding-top:12px;border-top:1px solid var(--border-soft);
  font-size:var(--fs-note);color:var(--text-muted);line-height:var(--lh-sub)}
.hc-help b{color:var(--text);margin-right:6px}
@media (max-width:640px){.rm-login-g{grid-template-columns:1fr}}

/* ── 섹션 ───────────────────────────── */
.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-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-family:var(--round);
  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 입니다 — 표는 격자이지 카드가 아닙니다. */
/* 표 자체의 칸은 0 입니다. 바깥 상자만 카드와 같은 모서리로 잘라 두면
   크림 위에서 표 혼자 각져 보이지 않습니다. */
.tw{border:1px solid var(--border);background:var(--surface);overflow-x:auto;
  border-radius:var(--r);box-shadow:var(--shelf)}
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}

/* ── 격자·카드 ──────────────────────── */
/* 아래로만 떨어지는 선반(--shelf)으로 세웁니다. 번지는 그림자가 아니라
   종이가 한 장 깔린 것처럼 보이는 단 하나입니다. 보더는 그대로 둡니다 —
   크림 위에서 보더를 빼면 카드와 바탕의 경계가 사라집니다. */
.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);box-shadow:var(--shelf);padding:var(--card-pad);
  text-decoration:none;color:inherit;transition:box-shadow .16s ease,border-color .16s ease}
a.card:hover{border-color:var(--accent);box-shadow:var(--shelf-h);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-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:2px;border-radius:2px;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 나갑니다.

   네 가지가 한꺼번에 움직이지만 각각은 미세합니다. 하나만 크게 움직이면
   그것이 장식으로 보이고, 넷이 조금씩 움직이면 카드가 "눌리는 것" 으로
   읽힙니다. 크기를 키우지 마십시오. */
/* 넘기는 띠(2026-09-18). 격자 대신 가로로 미는 띠 — 홈은 세 장, /build/ 는 한 장씩.
   화살표는 shots.js 가 움직이고, 없어도 손으로 밀립니다. */
.shots-c{position:relative}
.shots{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;
  scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-padding:0;margin:0 -2px;padding:2px}
.shots::-webkit-scrollbar{display:none}
.shots .shot{flex:0 0 calc((100% - 36px) / 3);scroll-snap-align:start}
.shots-c--1 .shots .shot{flex-basis:100%}
/* 큰 카드는 한 화면에 들어오게 — 폭을 줄여 그림 높이가 화면 높이 안에 서도록 */
.shots-c--1{max-width:760px;margin-inline:auto}
.shots-arr{position:absolute;top:calc(50% - 24px);z-index:2;width:48px;height:48px;border-radius:50%;
  border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-size:26px;
  line-height:1;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.12);display:grid;place-items:center}
.shots-arr--prev{left:-24px}.shots-arr--next{right:-24px}
.shots-arr:hover{border-color:var(--accent);color:var(--accent)}
.shots-arr:disabled{opacity:.35;cursor:default}
.shots-c.is-single .shots-arr{display:none}
.shots-pos{position:absolute;right:12px;top:12px;z-index:2;padding:4px 10px;border-radius:999px;
  background:rgba(0,0,0,.55);color:#fff;font-family:var(--mono);font-size:var(--fs-label);font-weight:700;line-height:normal}
.shots-pos:empty{display:none}
/* 「전체 보기」 — 띠 아래 체크박스 하나로 그 종류의 카드 전부를 격자로 폅니다. */
.shots-allin{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.shots-allbtn{display:inline-flex;margin-top:14px}
.shots-allbtn .off{display:none}
.shots-allin:checked~.shots-allbtn .on{display:none}.shots-allin:checked~.shots-allbtn .off{display:inline}
.shots-allgrid{display:none;margin-top:18px}
.shots-allin:checked~.shots-allgrid{display:block}
.shots--grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible;scroll-snap-type:none;margin:0;padding:0}
.shots--grid .shot{flex:none}
.shot{display:flex;flex-direction:column;background:var(--surface);
  border:2px solid var(--border-shot);border-radius:var(--r);overflow:hidden;
  box-shadow:var(--shelf);text-decoration:none;color:inherit;
  transition:border-color .16s ease,background-color .16s ease,box-shadow .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:1280/860;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:14px;display:inline-flex;align-items:center;justify-content:center;width:100%;
  padding:12px 18px;border-radius:999px;background:var(--accent);color:#fff;
  font-size:var(--fs-note);font-weight:700;line-height:normal}
.shots-c--1 .shot .more{width:auto;align-self:flex-start;padding:14px 28px}
.shots-c--1 .shot h3{font-size:var(--fs-h3)}
.shots-c--1 .shot-b{flex-direction:row;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.shots-c--1 .shot .more{margin-top:0}
.shot .more::after{content:'';display:inline-block;width:0}
.shot .more.soon{color:var(--text-muted);background:var(--surface-alt)}

a.shot:hover{border-color:var(--accent);background:var(--surface);box-shadow:var(--shelf-h);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));
  border-radius:var(--r);overflow:hidden;box-shadow:var(--shelf)}
.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-family:var(--sans);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)}
.founder-facts .cells>div{text-align:center}

/* ── 지표 스트립 ────────────────────── */
.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-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)}
/* 절 안에 홀로 놓이는 주석. 위 덩어리(표·격자·카드)가 칸을 다 쓰는데 이
   줄만 글줄 상한에서 끊겨, 오른쪽이 비어 「칸이 모자라 접혔다」로 보였습니다.
   상자는 칸 끝까지 깔고, 글은 그 안에서 읽기 좋은 길이로 접습니다. */
/* 상자가 되는 것은 note() 가 낸 <div class="note"> 뿐입니다. 손으로 적은
   <p class="note">(폼 보조설명·가이드 앞뒤 링크)는 잔글씨 그대로 둡니다. */
.sec-in>div.note{background:var(--surface-alt);border-radius:var(--r);padding:16px 20px}
/* 눕힌 면 위의 절에서는 상자가 바탕과 같은 색이 되어 사라집니다. 뒤집습니다. */
.sec.alt .sec-in>div.note{background:var(--surface)}
.sec .sec-in>div.note>p{max-width:59em}
.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:4px solid var(--accent-line);border-radius:0 var(--r) var(--r) 0;
  padding:4px 0 4px 22px}
.quote p{font-family:var(--round);font-size:var(--fs-lede);color:var(--text-soft);line-height:var(--lh-sub)}
/* 아직 채우지 못한 자리. 배포 전에 0이 되어야 합니다(build.mjs 가 셉니다). */
mark.todo{background:var(--accent-soft);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);box-shadow:var(--shelf)}
.faq details+details,.fold+.fold{margin-top:12px}
.faq summary,.fold summary{list-style:none;cursor:pointer;padding:18px 22px;
  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:center;justify-content:space-between;gap:16px}
.faq summary::after,.fold summary::after{content:'+';flex:none;
  display:grid;place-items:center;width:28px;height:28px;border-radius:50%;
  background:var(--accent-soft);
  font-family:var(--mono);font-size:var(--fs-sub);font-weight:400;color:var(--accent-deep)}
.faq details[open]>summary::after,.fold[open]>summary::after{content:'−';
  background:var(--accent);color:#fff}
.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:48px;
  padding:0 26px;border:1px solid transparent;border-radius:var(--r-pill);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-deep);border-color:var(--accent);border-width:2px}
.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],input[type=password],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],input[type=password],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}
/* 진단·주소처럼 한 칸만 눕혀 두는 자리. */
/* 표 안의 작은 표 — 「추천」처럼 한 낱말. */
.tag{display:inline-block;margin-left:6px;padding:2px 8px;border-radius:999px;
  background:var(--accent-soft);color:var(--accent-deep);font-size:var(--fs-label);font-weight:700;
  vertical-align:middle;line-height:normal}
.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);padding:0 18px 6px}
.consent .check-inline{margin-top:4px;border-top:1px solid var(--border-soft);padding-top:12px}
.consent summary{list-style:none;cursor:pointer;padding:14px 0;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 0 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:#F7E9E6;border:1px solid #E0C3BD;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}
/* 위 세 칸이 끝나는 자리에 맞춥니다. 앞서 68em(약 1020px) 상한이 걸려 있어
   칸(1032px)보다 12px 짧게 끊겼고, 그 12px 이 어긋난 것으로 보였습니다.
   이 문단은 읽을거리가 아니라 의무 게시물이라 글줄 상한을 둘 자리가 아닙니다. */
.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)}
.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}

/* ══════════════════════════════════════════════════════════════
   들어와 계신 동안의 남색 (html.rm-in)

   로그인하면 쪽 전체가 남색으로 바뀝니다(2026-09-28 대표). 바깥 쪽은
   크림에 벽돌이고 안쪽은 남색이라, 지금 보고 있는 것이 회사 소개가 아니라
   내 작업실이라는 것이 한눈에 읽힙니다.

   :root 의 토큰만 덮습니다. 개별 규칙을 여기서 다시 쓰지 마십시오 — 화면의
   모든 색이 var() 로 되어 있어, 토큰만 갈면 머리 띠부터 푸터까지 따라옵니다.
   규칙을 하나씩 덮기 시작하면 두 벌의 CSS 를 갖게 됩니다.

   클래스는 room.js 가 붙였다 뗍니다. 여기 이름을 바꾸시면 그 파일도 함께
   고치십시오. */
html.rm-in{
  --bg:#F4F6FA;             /* 찬 종이 */
  --surface:#FFFFFF;
  --surface-alt:#E7EDF6;
  --table-head:#DCE5F1;
  --border:#D6DEEA;
  --text:#1B2A44;           /* 남색 먹 */
  --text-muted:#7A879C;
  --accent:#1F3A5F;         /* 남색 */
  --accent-soft:#DEE7F3;
  --warn:#8C3A3A;
  --leaf:#2F6B52;

  --accent-deep:#12263F;
  --accent-line:#A9BDD8;
  --border-soft:#E7EDF5;
  --border-strong:#A9B6C9;
  --border-shot:#7E9BC0;
  --text-soft:#43526B;

  --shelf:0 3px 0 var(--border);
  --shelf-h:0 5px 0 var(--accent-line);
}
/* 들어오시기 전 마지막 한 걸음. 응답을 기다리는 동안 빈 화면 대신 둡니다. */
.rm-boot{font-size:var(--fs-note);color:var(--text-muted)}

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

   로그인 뒤에만 보이는 화면입니다. 마크업을 src/assets/room.js 가 그리므로
   클래스 이름을 바꾸실 때는 그 파일도 함께 고치십시오.
   오래 머무는 화면이라 본문을 한 눈금 키워 씁니다. */
/* 칸을 다 씁니다(2026-09-28 대표). 앞서 820px 상한이 있었는데, 그 값은
   글줄 길이를 잡으려던 것입니다. 이 화면은 글이 아니라 사진 격자와 표가
   대부분이라, 상한이 글줄이 아니라 화면 전체를 212px 좁히고 있었습니다.
   머리(.top-in)와 같은 자리에서 끝나야 한 쪽으로 보입니다.

   글줄이 필요한 덩어리는 아래에서 따로 묶습니다 — 상한을 여기로 되돌리지
   마십시오. */
.rm-app{max-width:none}
/* 산문이 들어가는 자리만 글줄 길이를 잡습니다. 사진 격자·표·단계는 칸이
   폭을 정하므로 대상이 아닙니다. */
.rm-app .rm-sub,.rm-app .rm-lead,.rm-app .rm-note{max-width:59em}
.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}

/* ── 작업실 · 주차 사진 (2026-09-11) ──────────────
   원장님 폰이 첫째 화면입니다. 글자와 버튼을 한 단 키우고 단계는 셋뿐입니다 —
   고르기 → 설명·동의 → 올리기. */
.wk-card{margin-top:16px;background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:var(--r);padding:20px 22px}
.wk-k{font-size:var(--fs-label);font-weight:700;color:var(--accent);letter-spacing:0}
.wk-v{margin-top:6px;font-size:var(--fs-h2);font-weight:800;letter-spacing:-.03em;line-height:1.2}
.wk-v span{font-size:var(--fs-sub);font-weight:700;color:var(--text-soft);margin-left:6px;letter-spacing:0}
.wk-s{margin-top:8px;font-size:var(--fs-body);color:var(--text-soft);line-height:1.5}
.wk-n{margin-top:12px;padding-top:12px;border-top:1px dashed var(--accent-line);font-size:var(--fs-body);color:var(--text-muted)}
.wk-n.on{color:var(--accent-deep)}
.wk-see{margin-left:8px;min-height:32px;padding:0 12px;border:1px solid var(--accent-line);border-radius:999px;background:var(--surface);font:inherit;font-size:var(--fs-note);font-weight:700;color:var(--accent-deep);cursor:pointer}
.wk-card .wk-photos{margin-top:12px;border:1px solid var(--accent-line);border-radius:var(--r-s);background:var(--surface)}
.ch-links{display:grid;gap:10px;margin-top:12px}
.ch-links .btn{min-height:56px;font-size:var(--fs-body);justify-content:space-between}
.up-one{display:flex;width:100%;margin-top:14px}
.up-btn{min-height:56px;font-size:var(--fs-body);cursor:pointer;position:relative}
.up-btn input{position:absolute;opacity:0;width:0;height:0}
.up-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:14px}
.up-grid:empty{display:none}
.up-thumb{position:relative;margin:0;aspect-ratio:1/1;border-radius:var(--r-s);overflow:hidden;border:1px solid var(--border);background:var(--surface-alt)}
.up-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.up-x{position:absolute;top:4px;right:4px;width:32px;height:32px;border-radius:50%;border:0;background:rgba(0,0,0,.6);color:#fff;font-size:20px;line-height:1;cursor:pointer}
.up-form{margin-top:16px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);padding:18px 20px}
.up-form .fl{font-size:var(--fs-body)}
.up-form input[type=text]{height:52px;font-size:var(--fs-body)}
.rm-chk.big{margin-top:14px;font-size:var(--fs-body);color:var(--text);line-height:1.5;align-items:center}
.rm-chk.big input{width:24px;height:24px;margin-top:0}
.up-go{width:100%;min-height:56px;font-size:var(--fs-body);margin-top:14px}
.up-prog{margin-top:12px}
.up-prog progress{width:100%;height:12px;accent-color:var(--accent)}
.up-prog p{margin-top:6px;font-size:var(--fs-sub);color:var(--text-soft)}
.up-done{margin-top:16px;background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:var(--r);padding:18px 20px;font-size:var(--fs-body);color:var(--text)}
.up-done-t{font-weight:800;font-size:var(--fs-h4)}
.wk-list{margin-top:12px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);overflow:hidden}
.wk-row{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:56px;padding:0 18px;border:0;border-top:1px solid var(--border-soft);background:transparent;font:inherit;font-size:var(--fs-body);color:var(--text);cursor:pointer;text-align:left}
.wk-list .wk-row:first-child{border-top:0}
.wk-row.on{background:var(--surface-alt)}
.wk-row-t em{font-style:normal;margin-left:8px;padding:2px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent-deep);font-size:var(--fs-label);font-weight:700}
.wk-row-n{font-weight:800;color:var(--accent-deep);white-space:nowrap}
.wk-photos{padding:12px 14px 16px;border-top:1px solid var(--border-soft);background:var(--surface-alt)}
.ph-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.ph{margin:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-s);overflow:hidden}
.ph img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover}
.ph figcaption{padding:8px 10px 10px;font-size:var(--fs-note);color:var(--text-soft);line-height:1.4}
.ph figcaption time{display:block;margin-top:3px;font-family:var(--mono);font-size:var(--fs-label);color:var(--text-muted)}
.rm-more{margin-top:var(--gap-l);border:1px solid var(--border);border-radius:var(--r);background:var(--surface)}
.rm-more summary{cursor:pointer;padding:16px 20px;font-size:var(--fs-sub);font-weight:700;list-style:none}
.rm-more summary::-webkit-details-marker{display:none}
.rm-more summary::after{content:'+';float:right;color:var(--text-muted)}
.rm-more[open] summary::after{content:'\2212'}
.rm-more>div{padding:0 20px 20px}
/* 관리자 */
.ad-bar{margin-top:16px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}
.ad-bar .fl{margin:0}
.ad-bar select{width:auto;min-width:220px}
.ad-miss{margin-top:16px;background:#FBF1E9;border:1px solid #E8C9B0;border-radius:var(--r);padding:14px 18px;font-size:var(--fs-sub);color:var(--text-soft)}
.ad-miss-t{font-weight:800;color:var(--warn);margin-bottom:4px}
.ad-list{margin-top:16px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);overflow:hidden}
.ad-row{border-top:1px solid var(--border-soft);position:relative}
.ad-list .ad-row:first-child{border-top:0}
.ad-row.none .ad-c{color:var(--text-muted)}
.ad-row-b{display:grid;grid-template-columns:1.2fr .6fr 1fr;gap:12px;align-items:center;width:100%;min-height:56px;padding:10px 150px 10px 18px;border:0;background:transparent;font:inherit;text-align:left;cursor:pointer}
.ad-c{font-weight:800;font-size:var(--fs-sub)}
.ad-n{font-size:var(--fs-sub)}
.ad-n em{font-style:normal;color:var(--warn);font-weight:700;font-size:var(--fs-label)}
.ad-u{font-size:var(--fs-label);color:var(--text-muted)}
.ad-zip{position:absolute;right:14px;top:10px;min-height:36px;padding:0 12px;font-size:var(--fs-note)}
.ad-photos{padding:12px 14px 16px;border-top:1px solid var(--border-soft);background:var(--surface-alt)}
.ph-grid.ad{grid-template-columns:repeat(4,minmax(0,1fr))}
.ph.nc{border-color:#E8C9B0}
.ph-nc{display:block;margin-top:4px;color:var(--warn);font-size:var(--fs-label)}
.ph-use{display:flex;gap:6px;padding:0 8px 10px;flex-wrap:wrap}
.ph-use label{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-label);color:var(--text-soft);cursor:pointer}
.ph-use input{accent-color:var(--accent);width:16px;height:16px}

/* ── 신청 폼 표기 규칙 (.af) — 크기 4 · 색 3 · 굵기 2 ─────────────── */
.af{color:var(--af-text);font-size:var(--fs-afbody);font-weight:400;line-height:1.5}
.af *{font-weight:400}
.af b,.af .fl,.af .af-h,.af .intent-o .t,.af .field-err,.af .btn,.af .af-more summary{font-weight:600}
.af-rule{margin-bottom:14px;font-size:var(--fs-afnote);color:var(--af-muted)}
.af .fl{margin-bottom:6px;font-size:var(--fs-aflabel);color:var(--af-text);line-height:1.5}
.af .af-opt{margin-left:5px;font-size:var(--fs-afnote);font-weight:400;color:var(--af-muted)}
.af input[type=text],.af input[type=email],.af input[type=tel],.af input[type=password],.af textarea,.af select{
  font-size:var(--fs-afbody);color:var(--af-text);line-height:1.5}
.af ::placeholder{color:var(--af-muted);opacity:1}
.af .note,.af .field-err,.af .consent-b .note{font-size:var(--fs-afnote);color:var(--af-muted);line-height:1.5}
.af .note a,.af .consent-b a{color:var(--accent)}
.af .field-err{color:var(--af-text)}
.af .af-h{font-size:var(--fs-afh);color:var(--af-text);line-height:1.5}
.af .req{color:var(--accent);font-weight:600}
.af .af-sub{display:block;font-size:var(--fs-afnote);color:var(--af-muted);line-height:1.5}
/* 2열 — 보조설명 자리를 두 줄(12px × 1.5 × 2)로 고정해 좌우 입력창 밑선을 맞춥니다. */
.af .form-grid>div{display:flex;flex-direction:column}
.af .form-grid .note{min-height:36px;margin-top:6px}
.af .af-lab{display:flex;align-items:center;gap:6px;margin-bottom:6px}
.af .af-lab .fl{margin-bottom:0}
/* 라벨 옆 물음표 툴팁 */
.af .af-tip{position:relative;display:inline-flex;margin-bottom:0;cursor:help;outline:0}
.af .af-tip-i{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border:1px solid var(--af-muted);border-radius:50%;font-size:var(--fs-afnote);line-height:1;color:var(--af-muted)}
.af .af-tip-b{display:none;position:absolute;left:0;top:calc(100% + 6px);z-index:3;width:max-content;max-width:260px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--r-s);background:var(--surface);box-shadow:0 4px 14px rgba(0,0,0,.08);font-size:var(--fs-afnote);color:var(--af-text);line-height:1.5}
.af .af-tip:hover .af-tip-b,.af .af-tip:focus .af-tip-b,.af .af-tip:focus-visible .af-tip-b{display:block}
/* 신청 / 질문 */
.af .intent legend{padding:0;margin-bottom:6px}
.af .intent-o .t{font-size:var(--fs-afbody);color:var(--af-text)}
.af .intent-o.on .t{color:var(--accent-deep)}
.af .intent-o .d{font-size:var(--fs-afnote);color:var(--af-muted)}
/* 동의 블록 — 제목 아래 줄에 부연, 항목은 한 줄 요약 + 접기 */
.af .consent summary{display:block;padding:14px 0}
.af .consent .open-h{display:none}
.af .consent-g{font-size:var(--fs-afbody);line-height:1.5;gap:10px 16px}
.af .consent-g b{color:var(--af-text)}
.af .consent-g span{color:var(--af-text)}
.af .af-term{display:block}
.af .af-one{display:block}
.af .af-more{margin-top:2px}
.af .af-more summary{display:inline;cursor:pointer;list-style:none;font-size:var(--fs-afnote);color:var(--accent)}
.af .af-more summary::-webkit-details-marker{display:none}
.af .af-more summary::after{content:' +'}
.af .af-more[open] summary::after{content:' \2212'}
.af .af-more p{margin-top:4px;font-size:var(--fs-afnote);color:var(--af-muted);line-height:1.5}
.af .check-inline{font-size:var(--fs-afbody);color:var(--af-text)}
.af .btn{font-size:var(--fs-afbody)}
.af .ok-msg,.af .err{font-size:var(--fs-afbody);color:var(--af-text)}
.af .ok-msg small,.af .err small{font-size:var(--fs-afnote);color:var(--af-muted)}
/* 브라우저 자동완성의 연파랑 배경을 카드색으로 고정 */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus{
  -webkit-box-shadow:0 0 0 1000px var(--surface) inset;
  -webkit-text-fill-color:var(--af-text);
  transition:background-color 9999s ease-in-out 0s}

/* ── 신청 폼 — 신청 / 질문 고르기 (/contact/) */
.intent{border:0;padding:0;margin:0;min-width:0}
.intent legend{padding:0}
.intent-o{display:block;position:relative;margin-top:10px;border:1px solid var(--border);border-radius:var(--r-s);background:var(--surface);padding:14px 16px 14px 46px;cursor:pointer;line-height:var(--lh-sub)}
.intent-o:hover{border-color:var(--accent-line)}
.intent-o.on{border-color:var(--accent);background:var(--accent-soft)}
.intent-o input{position:absolute;left:16px;top:17px;width:20px;height:20px;accent-color:var(--accent)}
.intent-o .t{display:block;font-size:var(--fs-sub);font-weight:700;color:var(--text)}
/* 보기 이름 뒤의 단서 한 마디. 이름과 같은 크기로 두면 이름이 길어 보여
   셋을 훑기 어렵습니다 — 한 단 낮춥니다. */
.intent-o .t em{font-style:normal;font-weight:400;font-size:var(--fs-note);color:var(--text-muted)}
.intent-o.on .t{color:var(--accent-deep)}
.intent-o .d{display:block;margin-top:4px;font-size:var(--fs-note);color:var(--text-muted)}

/* ── 신청 접수 화면 — 코드와 계좌. /room/ 의 입금 대기 화면도 .done-bank 를 씁니다 */
.done{background:var(--surface);border:1px solid var(--accent-line);border-radius:var(--r);padding:24px 26px}
.done-t{font-size:var(--fs-h3);font-weight:800;letter-spacing:var(--ls-head);color:var(--accent-deep)}
.done-l{margin-top:8px;font-size:var(--fs-sub);color:var(--text-soft);line-height:var(--lh-sub)}
.done-code{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px}
.done-code code{font-family:var(--mono);font-size:var(--fs-h2);font-weight:700;letter-spacing:.08em;padding:12px 18px;border:1px dashed var(--accent);border-radius:var(--r-s);background:var(--accent-soft);color:var(--accent-deep);user-select:all}
.done-code .btn{min-height:46px}
.done-bank{margin-top:18px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface-alt);padding:16px 18px}
.done-bank .k{font-size:var(--fs-label);font-weight:700;color:var(--accent);letter-spacing:0}
.done-bank .v{margin-top:4px;font-size:var(--fs-h2);font-weight:800;letter-spacing:-.02em;line-height:1.2}
.done-bank .v small{margin-left:8px;font-size:var(--fs-note);font-weight:600;color:var(--text-muted);letter-spacing:0}
.done-bank .a{margin-top:8px;font-size:var(--fs-body);color:var(--text);line-height:var(--lh-sub)}
.done-bank .a b{margin-right:6px}
.done-bank .a span{font-family:var(--mono);font-weight:700;user-select:all}
.done-bank .a em{font-style:normal;margin-left:8px;color:var(--text-soft)}
.done-bank .n{margin-top:10px;font-size:var(--fs-note);color:var(--text-muted);line-height:var(--lh-sub)}
/* 계좌 아래에 붙는 한 줄 — 3개월 약정의 나눠 내기 안내. */
.done-bank .a-sub{margin-top:8px;font-size:var(--fs-note);color:var(--text-soft);line-height:var(--lh-sub)}
/* 6개월 약정은 입금할 제작비가 없습니다. 0원을 강조색으로 두면 「받을 돈」으로
   읽히므로 잎색으로 냅니다 — 값 카드의 초기 조건 칩과 같은 뜻의 색입니다. */
.done-free{background:#EEF4EA;border-color:#CBDCC2}
.done-free .k{color:var(--leaf)}
.done-free .v{color:var(--leaf)}
.done-next{margin-top:16px;font-size:var(--fs-sub);color:var(--text-soft);line-height:var(--lh-sub)}
.done>.btn{margin-top:16px}
.done-warn{margin-top:14px;font-size:var(--fs-note);color:var(--warn);line-height:var(--lh-sub)}
/* 입금자명 한 줄은 계좌 안내에서 가장 자주 틀리는 것이라 굵게 냅니다. */
.done-bank .pay-who{font-weight:800;color:var(--text)}

/* ── 신청 내용 보기 — /contact/ 「신청 뒤에는」 절 아래. 단계 띠는 작업실의 .rm-stages 를 씁니다 */
.ap-look{margin-top:28px}
.ap-box{margin-top:16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:22px 24px}
.ap-box[hidden],.ap-box [hidden]{display:none}
.ap-t{font-size:var(--fs-sub);font-weight:700;color:var(--text)}
.ap-box .note{margin-top:10px}
.ap-c{font-size:var(--fs-h4);font-weight:800;color:var(--accent-deep)}
.ap-dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:8px 18px;margin-top:18px;font-size:var(--fs-sub);line-height:normal}
.ap-dl dt{font-weight:700;color:var(--text-muted)}
.ap-dl dd{color:var(--text);overflow-wrap:anywhere}
.ap-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
@media (max-width:640px){.ap-box{padding:18px 16px}.ap-box .rm-stages{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ── 작업실 · 제작 단계 */
.rm-stages{list-style:none;margin:16px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;counter-reset:st}
.rm-stages li{counter-increment:st;border:1px solid var(--border);border-radius:var(--r-s);background:var(--surface);padding:12px 14px;font-size:var(--fs-note);color:var(--text-muted);line-height:var(--lh-sub)}
.rm-stages li b{display:block;font-size:var(--fs-sub);color:var(--text-soft)}
.rm-stages li b::before{content:counter(st) '. ';color:var(--text-muted)}
.rm-stages li span{display:block;margin-top:4px}
.rm-stages li.done{opacity:.6}
.rm-stages li.done b::before{content:'✓ ';color:var(--accent)}
.rm-stages li.on{border-color:var(--accent);background:var(--accent-soft);color:var(--text-soft)}
.rm-stages li.on b{color:var(--accent-deep)}
.rm-bank{margin-top:16px}
.up-left{margin-left:8px;font-size:var(--fs-note);font-weight:600;opacity:.85}
.rm-saved{margin-left:8px;font-family:var(--mono);font-size:var(--fs-label);color:var(--text-muted)}
.pg-kinds{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.pg-kind{min-height:40px;padding:0 16px;border:1px solid var(--border);border-radius:999px;background:var(--surface);font:inherit;font-size:var(--fs-note);font-weight:700;color:var(--text-soft);cursor:pointer}
.pg-kind.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-deep)}
.pg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:12px}
.pg-col{border:1px solid var(--border);border-radius:var(--r);background:var(--surface);padding:16px 18px}
.pg-h{font-size:var(--fs-sub);font-weight:800;color:var(--accent-deep)}
.pg-list{margin:10px 0 0;padding-left:22px;font-size:var(--fs-note);line-height:var(--lh-sub)}
.pg-list li{margin-top:6px}
.pg-list b{color:var(--text)}
.pg-list span{display:block;color:var(--text-muted)}
.pg-tips{margin:12px 0 0;padding-left:20px;font-size:var(--fs-note);color:var(--text-soft);line-height:var(--lh-sub)}
.pg-tips li{margin-top:4px}
.rm-info{margin-top:12px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);padding:18px 20px}
.rm-info .form-grid>div.wide{grid-column:1/-1}
.rm-info .fl{font-size:var(--fs-note)}
.rm-info textarea{padding:12px 14px}
.rm-info-foot{display:flex;align-items:center;gap:14px;margin-top:16px;flex-wrap:wrap}
.rm-info-foot p{font-size:var(--fs-note);color:var(--text-muted)}
/* 제작 단계 안의 두 걸음 — 기관 정보 → 사진 */
.rm-steps{list-style:none;display:flex;gap:8px;margin:18px 0 0;padding:0;flex-wrap:wrap}
.rm-steps li{display:flex;align-items:center;gap:8px;min-height:40px;padding:0 16px 0 6px;border:1px solid var(--border);border-radius:999px;background:var(--surface);font-size:var(--fs-note);font-weight:700;color:var(--text-muted)}
.rm-steps li b{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--border-soft);color:var(--text-soft);font-size:var(--fs-label)}
.rm-steps li.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-deep)}
.rm-steps li.on b{background:var(--accent);color:#fff}
.rm-steps li.done b{background:var(--accent-soft);color:var(--accent)}
.rm-back{margin-top:12px}
.rm-link{padding:0;border:0;background:none;font:inherit;font-size:var(--fs-note);font-weight:700;color:var(--accent-deep);text-decoration:underline;text-underline-offset:3px;cursor:pointer;min-height:32px}
/* 사진 번호 — 원장님 화면과 관리자 화면이 같은 번호입니다 */
.ph{position:relative}
.ph-no{position:absolute;top:8px;left:8px;z-index:1;min-width:34px;padding:3px 9px;border-radius:999px;background:var(--accent-deep);color:#fff;font-size:var(--fs-label);font-weight:800;text-align:center;line-height:normal}
.rm-submit{margin-top:24px;border:2px solid var(--accent);border-radius:var(--r);background:var(--accent-soft);padding:20px 22px}
.rm-submit-t{font-size:var(--fs-sub);font-weight:800;color:var(--accent-deep)}
.rm-submit-s{margin:6px 0 14px;font-size:var(--fs-note);color:var(--text-soft);line-height:var(--lh-sub)}
.rm-submit-m{margin-top:10px;font-size:var(--fs-note);color:var(--warn)}
.rm-submit-m:empty{display:none}
/* 다 내신 뒤의 공지 */
.rm-built{margin-top:20px;border:1px solid var(--accent-line);border-radius:var(--r);background:var(--accent-soft);padding:24px 26px}
.rm-built-k{font-size:var(--fs-label);font-weight:700;color:var(--accent)}
.rm-built-t{margin-top:6px;font-size:var(--fs-h3);font-weight:800;letter-spacing:var(--ls-head);line-height:var(--lh-head);color:var(--text)}
.rm-built-got{margin-top:8px;font-size:var(--fs-body);color:var(--text-soft)}
.rm-built .notes{margin-top:16px}
/* 오픈 뒤 활동 올리기 — 1 활동 · 2 내용 · 3 사진 */
.up-act{margin-top:14px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);padding:18px 20px}
.up-act .fl{display:flex;align-items:center;gap:8px;margin-top:16px}
.up-act .fl:first-child{margin-top:0}
.up-act textarea{width:100%}
.up-n{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--accent-deep);color:#fff;font-size:var(--fs-label)}
.up-act .up-btn{margin-top:8px}
.up-acts{margin-top:8px;font-size:var(--fs-note);color:var(--text-soft)}
.up-acts b{color:var(--accent-deep)}
.up-full{color:var(--accent-deep);font-weight:700}
/* 이번 주 활동을 다 채우셨을 때 — 여기서 끝이라는 것을 분명히 */
.up-fin{margin-top:14px;border:2px solid var(--accent);border-radius:var(--r);background:var(--accent-soft);padding:18px 20px}
.up-fin-t{font-size:var(--fs-sub);font-weight:800;color:var(--accent-deep)}
.up-fin p+p{margin-top:6px;font-size:var(--fs-note);color:var(--text-soft);line-height:var(--lh-sub)}
.up-fin .rm-link{margin-top:10px}
.ph-act{margin-top:14px;padding:0 2px}
/* 활동 칩 — 이름 · 장수 · 「+」(그 활동에 사진만 더하기) */
.act-chips{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 0;padding:0}
.act-chips li{display:flex;align-items:center;gap:8px;min-height:40px;padding:0 6px 0 14px;border:1px solid var(--accent-line);border-radius:999px;background:var(--surface);font-size:var(--fs-note)}
.act-chips li:not(:has(.act-plus)){padding-right:14px}
.act-t{font-weight:700;color:var(--text)}
.act-chips em,.ph-act-h em{font-style:normal;font-family:var(--mono);font-size:var(--fs-label);color:var(--text-muted)}
.act-plus{display:inline-grid;place-items:center;width:30px;height:30px;padding:0;border:0;border-radius:50%;background:var(--accent-deep);color:#fff;font:inherit;font-size:20px;font-weight:700;line-height:1;cursor:pointer}
.act-plus:hover{background:var(--accent)}
.ph-act-h{display:flex;align-items:center;gap:10px}
.ph-grp+.ph-grp{margin-top:22px;padding-top:4px;border-top:1px solid var(--border-soft)}
.act-add{margin-top:10px;border:1px solid var(--accent-line);border-radius:var(--r-s);background:var(--surface);padding:14px 16px}
.act-add-t{font-size:var(--fs-sub);font-weight:800;color:var(--accent-deep)}
.act-add .up-grid{margin-top:10px}
.act-add-b{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.act-add .up-prog p{margin-top:6px;font-size:var(--fs-note);color:var(--text-soft)}
/* 뺀 사진은 그 자리에서 흐려지며 빠집니다 */
.ph{transition:opacity .2s ease,transform .2s ease}
.ph.ph-out{opacity:0;transform:scale(.92)}
/* 사진 삭제 — 오른쪽 위 ×. 누르면 확인 창(.rm-dlg) */
.ph-x{position:absolute;top:6px;right:6px;z-index:1;display:grid;place-items:center;width:30px;height:30px;padding:0;border:0;border-radius:50%;background:rgba(20,24,36,.62);color:#fff;font:inherit;font-size:20px;line-height:1;cursor:pointer}
.ph-x:hover{background:var(--warn)}
.ph-x:focus-visible{outline:2px solid #fff;outline-offset:1px}
/* 사이트 공통 초기화가 margin 을 0 으로 두어 dialog 가 왼쪽 위에 붙습니다. 가운데로 되돌립니다. */
.rm-dlg{position:fixed;inset:0;margin:auto;height:fit-content;max-height:calc(100vh - 32px);width:min(340px,calc(100vw - 32px));border:0;border-radius:var(--r);padding:22px 22px 18px;background:var(--surface);color:var(--text);box-shadow:0 18px 50px rgba(0,0,0,.25);text-align:center}
.rm-dlg::backdrop{background:rgba(15,20,30,.45)}
.rm-dlg-img{display:block;width:96px;height:96px;margin:0 auto 14px;border-radius:var(--r-s);object-fit:cover}
.rm-dlg-t{font-size:var(--fs-sub);font-weight:800}
.rm-dlg-s{margin-top:6px;font-size:var(--fs-note);color:var(--text-muted)}
.rm-dlg-b{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.rm-dlg-b .btn{min-height:44px;width:100%}
.rm-dlg-del{background:var(--warn);border-color:var(--warn)}
.rm-dlg-del:hover{background:var(--warn);border-color:var(--warn);filter:brightness(.92)}
@media (prefers-reduced-motion:reduce){.ph{transition:none}}
.ph-act:first-child{margin-top:4px}
.ph-act b{font-size:var(--fs-sub);color:var(--text)}
.ph-act p{margin-top:4px;font-size:var(--fs-note);color:var(--text-soft);line-height:var(--lh-sub);white-space:pre-line}
.ph-act+.ph-grid{margin-top:8px}
/* 이번 주 활동 보기 — 한 줄에 네 장. 활동마다 8장까지라 두 줄에 끝납니다 */
.wk-photos .ph-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.wk-photos .ph figcaption{padding:5px 8px 6px}

@media (max-width:760px){
  .wk-photos .ph-x{top:3px;right:3px;width:22px;height:22px;font-size:15px}
  .wk-photos .ph-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
  .wk-photos .ph figcaption{display:none}

}
.ph-note{display:block;margin-top:3px;color:var(--text-muted);white-space:pre-line}
/* 체험 방 — 단계 옮겨 보기 막대. 실제 화면과 섞여 보이지 않게 점선 테두리 */
.rm-demo{margin-bottom:18px;border:2px dashed var(--warn);border-radius:var(--r-s);padding:12px 14px;background:var(--surface)}
.rm-demo-t{font-size:var(--fs-label);font-weight:800;color:var(--warn)}
.rm-demo-b{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.rm-demo-b button{min-height:36px;padding:0 14px;border:1px solid var(--border);border-radius:999px;background:var(--surface);font:inherit;font-size:var(--fs-note);font-weight:700;color:var(--text-soft);cursor:pointer}
.rm-demo-b button.on{border-color:var(--accent);background:var(--accent-deep);color:#fff;cursor:default}
.rm-demo-b button:disabled:not(.on){opacity:.5}
/* 뚝딱뚝딱 캐릭터 — 공지 카드 오른쪽(폰에서는 위). 망치가 1.1초에 한 번
   화면을 두드리고, 두드릴 때 몸이 살짝 눌리고 불꽃이 튀고 화면의 줄이 한 칸씩 찹니다. */
.rm-built{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:8px 28px;align-items:center}
.rm-built-txt{grid-column:1;grid-row:1}
.rm-maker{grid-column:2;grid-row:1;width:100%;height:auto;overflow:visible}
.mk-shadow{fill:var(--accent-line);opacity:.6}
.mk-frame{fill:var(--surface);stroke:var(--accent-deep);stroke-width:2.5}
.mk-bar{fill:var(--accent-deep)}
.mk-dot{fill:var(--surface)}
.mk-img{fill:var(--accent-line)}
.mk-line{fill:var(--accent)}
.mk-skin{fill:#ffe2c6;stroke:var(--accent-deep);stroke-width:2.5}
.mk-hat{fill:#f5b82e;stroke:#c98a0c;stroke-width:1.5}
.mk-hat-band{fill:#ffd66b}
.mk-eye{fill:#2b2b33}
.mk-cheek{fill:#ff9f9f;opacity:.7}
.mk-mouth{fill:none;stroke:#2b2b33;stroke-width:2.2;stroke-linecap:round}
.mk-arm-l{fill:none;stroke:var(--accent-deep);stroke-width:5;stroke-linecap:round}
.mk-handle{fill:#a86b3c}
.mk-head{fill:#6b7280;stroke:#3f4550;stroke-width:1.2}
.mk-spark path{fill:none;stroke:#f5b82e;stroke-width:2.5;stroke-linecap:round}
.mk-arm{transform-box:view-box;transform-origin:74px 92px;animation:mk-hit 1.1s ease-in-out infinite}
.mk-body{transform-box:view-box;transform-origin:52px 112px;animation:mk-bob 1.1s ease-in-out infinite}
.mk-spark{opacity:0;animation:mk-spark 1.1s ease-out infinite}
.mk-l1,.mk-l2,.mk-l3{transform-box:fill-box;transform-origin:left center;animation:mk-fill 6.6s steps(1,end) infinite}
.mk-l2{animation-name:mk-fill2}
.mk-l3{animation-name:mk-fill3}
@keyframes mk-hit{0%,100%{transform:rotate(-38deg)}45%{transform:rotate(-38deg)}62%{transform:rotate(8deg)}70%{transform:rotate(0deg)}}
@keyframes mk-bob{0%,55%,100%{transform:scale(1,1)}64%{transform:scale(1.04,.95)}76%{transform:scale(1,1)}}
@keyframes mk-spark{0%,58%{opacity:0;transform:scale(.6)}64%{opacity:1;transform:scale(1)}80%,100%{opacity:0;transform:scale(1.2)}}
@keyframes mk-fill{0%{transform:scaleX(.15)}17%{transform:scaleX(.55)}33%,100%{transform:scaleX(1)}}
@keyframes mk-fill2{0%,33%{transform:scaleX(.1)}50%{transform:scaleX(.5)}67%,100%{transform:scaleX(1)}}
@keyframes mk-fill3{0%,67%{transform:scaleX(.1)}83%{transform:scaleX(.6)}100%{transform:scaleX(1)}}
.mk-spark{transform-box:view-box;transform-origin:98px 60px}
@media (prefers-reduced-motion:reduce){
  .mk-arm,.mk-body,.mk-spark,.mk-l1,.mk-l2,.mk-l3{animation:none}
  .mk-spark{opacity:1}
}
@media (max-width:640px){
  .rm-built{grid-template-columns:1fr;padding:20px 18px}
  .rm-maker{grid-column:1;grid-row:1;width:150px;justify-self:center}
  .rm-built-txt{grid-row:2}
}
/* 관리자 — 신청·제작 목록 */
.ad-row.st-pay .ad-c::before{content:'₩ ';color:var(--warn)}
.ad-n .st{font-style:normal;padding:2px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent-deep);font-size:var(--fs-label);font-weight:700}
.ad-row.st-pay .ad-n .st{background:#FBF1E9;color:var(--warn)}
.ad-app{font-size:var(--fs-note)}
.ad-dl{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0;line-height:var(--lh-sub)}
.ad-dl dt{color:var(--text-muted);white-space:nowrap}
.ad-dl dd{margin:0;color:var(--text);white-space:pre-wrap}
.ad-h{margin-top:14px;font-weight:800;color:var(--text);display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ad-h time{font-family:var(--mono);font-size:var(--fs-label);font-weight:400;color:var(--text-muted)}
.ad-zip-in{min-height:34px;padding:0 12px;font-size:var(--fs-label)}
.ad-app .ph-grid{margin-top:10px}

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

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

@media(max-width:980px){
  .form-split{grid-template-columns:1fr;gap:30px}
  /* 한 줄로 쌓입니다. 격자 자리를 못 박아 둔 것을 풀어야 순서대로 섭니다. */
  .hero-in.hero-room{grid-template-columns:1fr;gap:30px}
  .hero-room .rm-eb,.hero-room>div,.hero-room .hero-card{grid-column:1;grid-row:auto}
  .grid,.grid.g3,.grid.g4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .shots .shot{flex-basis:calc((100% - 18px) / 2)}.shots--grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .shots-arr--prev{left:-12px}.shots-arr--next{right:-12px}
  .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){
  .up-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ph-grid,.ph-grid.ad{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ad-row-b{grid-template-columns:1fr;gap:2px;padding-right:18px}
  .ad-zip{position:static;margin:0 18px 12px}
  .rm-stages,.pg{grid-template-columns:1fr}
  /* 신청 폼 계약 조건 — 폰에서는 항목 이름이 한 줄을 차지하고 설명이 그 아래로. 두 열이면 긴 이름이 설명을 좁힙니다. */
  .af .consent-g{grid-template-columns:1fr;gap:4px 0}
  .af .consent-g b{margin-top:8px}
  .af .consent-g b:first-child{margin-top:0}
  .rm-stages{grid-template-columns:repeat(2,minmax(0,1fr))}
  .done-code code{font-size:var(--fs-h3)}
  :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:24px;
  }

  /* 메뉴를 접습니다. 체크박스 하나로 여닫고 자바스크립트를 쓰지 않습니다. */
  .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}
  .nav a.nav-login{margin:6px 0 0;padding-top:14px;border-top:1px solid var(--border-soft);font-size:var(--fs-sub)}
  .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 18px;border-radius:var(--r-pill);
    font-size:var(--fs-sub);font-weight:700;line-height:normal;white-space:nowrap}
  .top-cta:hover{background:var(--accent-deep);color:#fff}

  /* 머리 위의 띠는 왼쪽 한 마디만 남깁니다. 두 마디가 다 들어가려면 글자를
     줄여야 하는데, 이 줄은 읽히라고 둔 것이지 채우라고 둔 것이 아닙니다. */
  .top-strip span{display:none}

  .grid,.grid.g2,.grid.g3,.grid.g4{grid-template-columns:1fr}
  .shots .shot{flex-basis:100%}.shots--grid{grid-template-columns:1fr}

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

  .vs{padding:16px 18px}
  .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}
}

/* ── 층위를 나눈 뒤의 부품 (2026-09-11) ─────────────
   글을 형식으로 바꾼 자리들입니다. 채널·논거·가격·걸음이 각각 표와
   글 덩어리에서 이 부품으로 옮겨 왔습니다. 본문은 /guide/ 로 갔습니다. */

/* 사진 + 글. 사진은 4:5 세로, 글은 오른쪽. */
.split{display:grid;grid-template-columns:5fr 7fr;gap:40px;align-items:center}
.split img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--r)}
.split .lead-p{margin-top:12px}

/* 아이콘 카드 넷 — 채널. */
.ch4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.ch4>div{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:22px 22px 20px}
.ch4 svg{width:30px;height:30px;stroke:var(--accent);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.ch4 .n{margin-top:14px;font-size:var(--fs-h4);font-weight:800;line-height:normal}
.sec .ch4 .l{margin-top:6px;max-width:none;font-size:var(--fs-sub);color:var(--text-soft);line-height:normal}

/* 허브 — 사이트가 위, 셋이 아래. 사이는 SVG 곡선 셋으로 잇습니다. */
.hub{display:grid;gap:0}
/* 허브 칸만 강조면입니다 — 세 채널이 여기로 모인다는 말을 색 하나가 합니다. */
.hub-top{display:flex;gap:18px;align-items:flex-start;background:var(--accent);color:#fff;border:0;border-radius:var(--r);padding:24px 26px;max-width:560px;margin:0 auto;width:100%;position:relative;z-index:1}
.hub-top svg,.hub-row svg{flex:none;width:30px;height:30px;stroke:var(--accent);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.hub-top svg{stroke:#fff}
.hub-top .n,.hub-row .n{font-family:var(--round);font-size:var(--fs-h4);font-weight:400;line-height:normal}
.hub-row .n{color:var(--accent-deep)}
.sec .hub-top .l,.sec .hub-row .l{margin-top:6px;max-width:none;font-size:var(--fs-sub);color:var(--text-soft);line-height:1.55}
/* 강조면 위라 본문색으로 두면 읽히지 않습니다. 위 규칙 뒤에 와야 이깁니다. */
.sec .hub-top .l{color:rgba(255,255,255,.93)}
.hub-top .n{color:#fff}
.hub-join{display:block;width:66.6%;height:48px;margin:0 auto}
.hub-join path{fill:none;stroke:var(--accent-line);stroke-width:1.5;vector-effect:non-scaling-stroke}
.hub-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
/* 셋도 사이트 카드처럼 그림 옆에 이름을 둡니다. */
.hub-row>div{display:flex;gap:14px;align-items:flex-start;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shelf);padding:22px 22px 20px}
.hub-row>div>div{min-width:0}

/* 번호 + 제목 + 보조 한 줄. 줄 사이 선 하나. */
.argl{list-style:none;margin:22px 0 0;padding:0;border-top:1px solid var(--border)}
.argl li{display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:baseline;padding:18px 0;border-bottom:1px solid var(--border)}
.argl .no{font-family:var(--mono);font-size:var(--fs-note);font-weight:700;color:var(--accent)}
.argl .t{font-size:var(--fs-h4);font-weight:800;line-height:1.4}
.argl .s{display:block;margin-top:5px;font-size:var(--fs-note);font-weight:400;color:var(--text-muted);line-height:1.55}

/* 2×2 카드, 본문 한 줄 + 가이드 링크. */
.arg22{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.arg22>div{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shelf);padding:24px 26px}
.arg22 .no{font-family:var(--mono);font-size:var(--fs-note);font-weight:700;color:var(--accent)}
/* 굵게 보여야 하는 제목이라 Gowun Dodum(400 한 벌) 대신 Pretendard 로 씁니다. */
.arg22 .t{margin-top:8px;font-family:var(--sans);font-size:var(--fs-h4);font-weight:700;line-height:1.4;color:var(--text)}
.sec .arg22 .s{margin-top:8px;max-width:none;font-size:var(--fs-sub);color:var(--text-soft);line-height:1.6}
.arg22 .g{display:inline-block;margin-top:12px;font-size:var(--fs-note);font-weight:700;color:var(--accent);text-decoration:none}
.arg22 .g:hover{text-decoration:underline}

/* 값이 큰 카드 둘. */
.offer{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.offer>a{display:block;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shelf);padding:28px 30px 26px;text-decoration:none;color:inherit;transition:box-shadow .16s ease,border-color .16s ease}
.offer>a:hover{border-color:var(--accent);box-shadow:var(--shelf-h);color:inherit}
.offer .k{font-size:var(--fs-label);font-weight:700;color:var(--accent);letter-spacing:0}
.offer .n{margin-top:0;font-family:var(--round);font-size:var(--fs-h3);font-weight:400;line-height:normal}
.offer .p{margin-top:16px;font-size:var(--fs-stat);font-weight:800;letter-spacing:-.03em;line-height:1;color:var(--accent-deep)}
.offer .p small{font-size:var(--fs-note);font-weight:700;color:var(--text-muted);margin-left:8px;letter-spacing:0}
.sec .offer .l{margin-top:12px;max-width:none;font-size:var(--fs-sub);color:var(--text-soft);line-height:1.6}
.offer .m{display:block;margin-top:18px;font-size:var(--fs-note);font-weight:700;color:var(--accent)}

/* 캡처 카드 셋. */
.caps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.caps>a{display:block;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shelf);overflow:hidden;text-decoration:none;color:inherit}
.caps>a:hover{border-color:var(--accent);color:inherit}
.caps img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;object-position:top;border-bottom:1px solid var(--border)}
.caps .b{padding:16px 18px 18px}
.caps .n{font-size:var(--fs-h4);font-weight:800;line-height:normal}
.sec .caps .l{margin-top:6px;max-width:none;font-size:var(--fs-note);color:var(--text-soft);line-height:1.55}

/* 번호 제목 + 불릿, 세 칸. */
.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.three .n{font-size:var(--fs-h4);font-weight:800;line-height:normal}
.sec .three ul.l{margin:10px 0 0;padding-left:18px;max-width:none}
.sec .three ul.l li{max-width:none;font-size:var(--fs-sub);color:var(--text-soft);line-height:1.6;margin-top:4px}
.three+.rule{margin-top:var(--gap-l)}
.rule+.blk-h{margin-top:var(--gap-l)}

/* 값 카드 — 왼쪽에 값과 나눠 내기, 오른쪽에 들어 있는 것. */
.price{display:grid;grid-template-columns:6fr 5fr;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden}
.price>div{padding:28px 30px}
.price-side{background:var(--accent-soft);border-left:1px solid var(--accent-line)}
.price .k{font-size:var(--fs-label);font-weight:700;color:var(--accent);letter-spacing:0}
.price .v{margin-top:12px;font-size:var(--fs-stat);font-weight:800;letter-spacing:-.03em;line-height:1}
.price .v s,.offer .p s{font-size:var(--fs-h4);font-weight:600;color:var(--text-muted);text-decoration:line-through;text-decoration-thickness:2px;margin-right:8px;letter-spacing:0}
.price .v small{font-size:var(--fs-note);font-weight:700;color:var(--text-muted);margin-left:8px;letter-spacing:0}
/* 제작비를 받지 않는 조건 — 값 바로 아래 한 줄 (2026-09-28).
   칩이 아니라 줄입니다. 「초기 20곳 49만원」 칩 옆에 칩을 하나 더 붙이면
   값 옆에 작은 상자가 둘이 되어 어느 쪽이 조건인지 읽히지 않습니다.
   잎색(--leaf)을 씁니다 — 강조색으로 두면 값의 일부로 읽힙니다. */
.offer .free,.price-main .free{display:flex;align-items:center;gap:8px;
  margin-top:12px;font-size:var(--fs-sub);font-weight:700;color:var(--leaf);
  line-height:var(--lh-label)}
/* 체크 하나. 보더 두 변을 45도 돌려 그립니다 — 글자(✓)를 쓰면 글꼴마다
   모양과 높이가 달라지고, 그림 파일을 쓰면 요청이 하나 늘어납니다. */
.offer .free::before,.price-main .free::before{content:"";flex:none;
  width:7px;height:12px;margin:0 3px 3px 1px;
  border:solid var(--leaf);border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}

/* 초기 계약 칩 — 값 옆. 값은 pricing.build.launch.
   여기만 잎색(--leaf)입니다. 강조색으로 두면 값과 같은 색이라 값의 일부처럼
   읽혀서, 「지금 계약하면 더 싸다」는 조건이 정가의 장식이 됩니다. */
.price .v .launch,.offer .p .launch{display:inline-block;vertical-align:middle;margin-left:10px;padding:4px 12px;border-radius:var(--r-pill);background:var(--leaf);border:0;font-style:normal;font-size:var(--fs-note);font-weight:700;color:#fff;letter-spacing:0;line-height:normal;white-space:nowrap}
.sec .price .d{margin-top:12px;max-width:none;font-size:var(--fs-sub);color:var(--text-soft);line-height:1.6}
.price-split-k{margin-top:22px;padding-top:20px;border-top:1px dashed var(--border);font-size:var(--fs-label);font-weight:700;color:var(--text-muted)}
.price-split{display:flex;align-items:center;gap:10px;margin-top:10px}
.price-split>span{display:flex;flex-direction:column;line-height:normal}
.price-split b{font-size:var(--fs-h4);font-weight:800}
.price-split i{font-style:normal;font-size:var(--fs-label);color:var(--text-muted);margin-top:2px}
.price-split em{font-style:normal;color:var(--accent-line);font-size:var(--fs-h4)}
.sec .price .n{margin-top:10px;max-width:none;font-size:var(--fs-note);color:var(--text-muted);line-height:1.5}
.price .h{font-size:var(--fs-sub);font-weight:800;color:var(--accent-deep)}
.sec .price-side ul{margin:12px 0 0;padding:0;list-style:none}
.sec .price-side li{max-width:none;position:relative;padding-left:22px;margin-top:8px;font-size:var(--fs-sub);color:var(--text-soft);line-height:1.55}
.price-side li::before{content:'✓';position:absolute;left:0;color:var(--accent);font-weight:800}

/* 가로 3걸음. 「원장님 할 일」 배지가 핵심입니다. */
.steps3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.steps3>div{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:22px 24px 20px}
.steps3 .w{font-size:var(--fs-label);font-weight:700;color:var(--accent);letter-spacing:0}
.steps3 .w em{font-style:normal;color:var(--text-muted);margin-left:8px;font-weight:400}
.steps3 .w{font-family:var(--mono)}
.steps3 .w em{font-family:inherit}
.steps3 .t{margin-top:10px;font-size:var(--fs-h4);font-weight:800;line-height:1.4}
.sec .steps3 .l{margin-top:8px;max-width:none;font-size:var(--fs-note);color:var(--text-soft);line-height:1.55}
.steps3 .who{margin-top:14px;display:inline-block;padding:3px 10px;border-radius:999px;background:var(--accent-soft);color:var(--accent-deep);font-size:var(--fs-label);font-weight:700;line-height:normal}
.steps3 .who.none{background:var(--surface-alt);color:var(--text-muted)}

.steps3.emo>div{text-align:left}
.steps3 .e{display:block;font-size:var(--fs-h2);line-height:1;margin-bottom:12px}

/* 요금제 카드 셋 — 월 마케팅비. */
/* ── 값 카드 셋 (/marketing/#terms) ─────────────────────
   대표가 준 설계 그대로입니다. 카드마다 아래에 상자가 하나 붙고, 그 상자가
   이 절의 전부입니다 — 앞의 둘은 「제작 별도」로 점선, 셋째만 색이 찹니다.

   상자 높이를 못 박습니다(min-height). 안의 글 길이가 달라 그냥 두면 셋의
   아래 끝이 어긋나고, 어긋나면 셋을 견주는 화면으로 보이지 않습니다.

   여섯째 카드를 더하지 마십시오. 이 배치는 셋일 때의 것입니다. */
.plan3{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;align-items:stretch}
.plan{display:flex;flex-direction:column;gap:28px;background:var(--surface);
  border-radius:24px;padding:36px 32px 32px;
  box-shadow:0 1px 0 rgba(58,42,24,.06),0 12px 32px -16px rgba(58,42,24,.18)}

.plan-h{display:flex;align-items:center;justify-content:space-between;gap:12px}
.plan-t{display:flex;align-items:center;gap:10px;font-size:var(--fs-body);font-weight:600;line-height:normal}
/* 「추천」 — 이름 옆에 붙는 작은 표입니다. */
.plan-t em{font-style:normal;font-size:12px;font-weight:700;color:var(--text);
  background:var(--accent-line);padding:4px 10px;border-radius:var(--r-pill);line-height:normal}
.plan-off{font-size:var(--fs-label);font-weight:600;color:var(--accent-deep);
  background:var(--accent-soft);padding:6px 12px;border-radius:var(--r-pill);line-height:normal;white-space:nowrap}
/* 할인이 없는 칸은 「기본」입니다. 색을 빼 둡니다 — 할인과 같은 색이면
   할인이 있는 것처럼 보입니다. */
.plan-off.base{color:var(--text-muted);background:var(--surface-alt);font-weight:500}

.plan-v{display:flex;align-items:baseline;gap:6px}
.plan-v b{font-size:var(--fs-plan);font-weight:800;letter-spacing:-.04em;line-height:1}
.plan-v i{font-style:normal;font-size:var(--fs-plan-u);font-weight:700}
.plan-v small{font-size:var(--fs-note);color:var(--text-muted)}

/* 카드 아래 상자. margin-top:auto 가 이것을 바닥으로 밀어, 위의 값이
   길든 짧든 셋의 상자가 같은 줄에 섭니다. */
.plan-n{margin-top:auto;display:flex;flex-direction:column;justify-content:center;gap:4px;
  min-height:88px;padding:16px 18px;box-sizing:border-box;border-radius:14px;
  border:1px dashed var(--border)}
.plan-n b{font-size:var(--fs-note);font-weight:600;color:var(--text-soft)}
.plan-n span{font-size:var(--fs-label);color:var(--text-muted)}

/* 추천 칸 — 짙은 면. 셋 중 하나만 색이 차 있으면 더 읽지 않아도 어느 것을
   권하는지 압니다. */
.plan.on{background:var(--text);color:var(--surface);
  box-shadow:0 24px 48px -20px rgba(58,42,24,.55)}
.plan.on .plan-t em{background:var(--accent-line);color:var(--text)}
.plan.on .plan-off{color:var(--accent-line);background:rgba(233,182,149,.14)}
.plan.on .plan-v small{color:#C9B8A6}
/* 「사이트 제작 무료」 — 이 절이 파는 것입니다. 점선 상자가 아니라 색이
   찬 상자로, 글도 한 단 큽니다. */
.plan.on .plan-n{border:0;background:var(--accent);color:var(--surface)}
.plan.on .plan-n b{font-size:var(--fs-body);font-weight:700;color:var(--surface)}
.plan.on .plan-n span{color:var(--accent-soft)}

.shots-all{margin-top:18px}

/* 홈의 기관 종류 버튼 — 라디오 셋과 판 셋. 누른 라디오 다음에 오는 판만 보입니다. */
.tabs{display:flex;flex-wrap:wrap;gap:8px}
.tabs-in{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.tabs-l{display:inline-flex;align-items:center;padding:10px 18px;border:1px solid var(--border);border-radius:999px;
  background:var(--surface);font-size:var(--fs-note);font-weight:700;cursor:pointer;color:var(--text)}
.tabs-l:hover{border-color:var(--accent)}
.tabs-in:checked+.tabs-l{background:var(--accent);border-color:var(--accent);color:#fff}
.tabs-in:focus-visible+.tabs-l{outline:2px solid var(--accent);outline-offset:2px}
.tabs-p{display:none;width:100%;margin-top:18px}
#ht-day:checked~[data-tab="day"],#ht-home:checked~[data-tab="home"],#ht-nursing:checked~[data-tab="nursing"]{display:block}

/* 유형 묶음 — /build/ 의 시안 스물셋. 머리말 하나에 격자 하나. */
.shots-g+.shots-g{margin-top:44px;padding-top:36px;border-top:1px solid var(--border-soft)}
/* 종류 제목. 앞서 본문과 같은 검은 글이라 시안 카드에 묻혀 어느 종류를 보고
   있는지가 보이지 않았습니다(2026-09-28 대표). 이름을 강조색 알약에 앉혀
   띠 위에 못 박습니다 — 이 쪽에서 종류는 제목이 아니라 지금 보고 있는
   자리를 가리키는 표입니다. */
.shots-gh{font-size:var(--fs-h3);margin-bottom:18px}
.shots-gh b{display:inline-block;font-family:var(--sans);font-size:var(--fs-sub);
  font-weight:700;letter-spacing:0;color:#fff;background:var(--accent);
  border-radius:var(--r-pill);padding:7px 18px;line-height:normal}
.shots-gh small{display:block;margin-top:10px;font-size:var(--fs-note);font-weight:400;
  color:var(--text-muted);line-height:var(--lh-sub)}

/* 폼 위 한 줄 — 대상·회신·영업 없음. */
.pre-form{display:flex;flex-wrap:wrap;gap:8px 18px;margin-bottom:var(--gap-l);font-size:var(--fs-note);color:var(--text-soft)}
.pre-form span::before{content:'✓';margin-right:6px;color:var(--accent);font-weight:700}

/* 가이드 목록. */
.glist{list-style:none;margin:0;padding:0;border-top:1px solid var(--border)}
.glist li{border-bottom:1px solid var(--border)}
.glist a{display:block;padding:16px 0;text-decoration:none;color:inherit}
.glist a:hover .t{color:var(--accent)}
.glist .t{font-size:var(--fs-h4);font-weight:700}
.glist .s{display:block;margin-top:4px;font-size:var(--fs-note);color:var(--text-muted)}
.guide-body>*+*{margin-top:var(--gap)}
.guide-body h2{font-size:var(--fs-h3);margin-top:var(--gap-l)}

@media (max-width:1040px){.ch4,.arg22,.offer,.caps,.three,.steps3{grid-template-columns:repeat(2,minmax(0,1fr))}.split,.price{grid-template-columns:1fr}.price-side{border-left:0;border-top:1px solid var(--accent-line)}}
@media (max-width:640px){.ch4,.arg22,.offer,.caps,.three,.steps3,.hub-row{grid-template-columns:1fr}.hub-join{display:none}.hub-row{margin-top:16px}
  .plans{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.plans>div{padding:16px 8px 14px}.plans .v{font-size:var(--fs-h3)}.plans .k .tag{display:block;margin:4px auto 0;width:max-content}
  .shot img{aspect-ratio:16/9}
  .arg22 .g{padding:8px 0;margin:4px 0 -8px}}

/* ── 맨 위로 가기 ─────────────────────────────────
   우측 아래 고정. 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; }

/* ── 브랜드 마케팅 · 사진 한 벌이 여러 채널로 (/marketing/#channels) ─────────
   왼쪽은 작게(원장님이 하신 일: 사진 + 간단한 설명), 오른쪽은 크게(저희가 하는 일:
   사이트 글 둘 · 블로그 글 둘 · 인스타그램 · 네이버 플레이스). 칸을 누르면 팝업에서
   실제로 올라간 글 전체를 봅니다 — src/assets/week.js.

   칸 안과 팝업 안은 예시 기관의 사이트·블로그·인스타그램·플레이스 화면이라
   일부러 이 사이트와 다른 얼굴입니다. 그래서 .demo-week 아래로 전부 묶어
   validateScale 의 대상에서 빼고(demo- 접두사), 클래스에는 dw- 를 붙여
   이 사이트의 .tag · .k · .n 같은 규칙과 섞이지 않게 합니다.
   원본 시안은 mockups/marketing/one-week.html 입니다. */
.demo-week{--ink:#1d2320; --sub:#56605b; --mute:#8a938e; --line:#e3e6e1; --line-soft:#eef0ec; --bg:#f6f5f1; --card:#fff; --alt:#f3f5f2; --acc:#2f6b55; --acc-line:#a9c3b6; --a:#c7772f; --b:#3f6ea5; line-height:normal;color:var(--ink)}
.demo-week img{display:block;max-width:100%}
.demo-week button{font:inherit;color:inherit;cursor:pointer}
.demo-week p,.demo-week li{max-width:none}
.demo-week a.dw-mock{text-decoration:none;color:inherit}
.demo-week [hidden]{display:none!important}
.demo-week .dw-mono{font-family:var(--mono);letter-spacing:0}
.demo-week .dw-w360{--dw-w:360px}
.demo-week .dw-w440{--dw-w:440px}
.demo-week .dw-ig-act .dw-save{margin-left:auto}
.demo-week .dw-ig-bot .dw-me{border-radius:50%}
/* 모형 안의 글 제목과 팝업 제목은 시안에서 h1·h2 였습니다. 이 쪽의 제목 구조를
   흐리지 않도록 p 로 바꾸었으니, 제목 태그가 주던 굵기·정렬을 여기서 돌려줍니다. */
.demo-week p.dw-h1{font-weight:800;line-height:1.32}
.demo-week .dw-mini p.dw-h1{color:var(--ink)}
.demo-week .dw-bl-post p.dw-h1{text-align:left;margin-bottom:0}
.demo-week .dw-dh{font-weight:800}
.demo-week .dw-viz{margin-top:20px;display:grid;grid-template-columns:190px auto 1fr;gap:18px;align-items:center;line-height:normal}
.demo-week .dw-viz-in{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px}
.demo-week .dw-viz-in .dw-ph{margin-top:10px;display:grid;grid-template-columns:1fr 1fr;gap:3px;border-radius:6px;overflow:hidden}
.demo-week .dw-viz-in .dw-ph img{width:100%;aspect-ratio:1;object-fit:cover}
.demo-week .dw-k{font-size:13px;font-weight:700;color:var(--acc)}
.demo-week .dw-n{margin-top:10px;font-size:16px;font-weight:800;letter-spacing:-.03em;line-height:1.35}
.demo-week .dw-viz-in .dw-l{margin-top:4px;font-size:12.5px;color:var(--mute)}
.demo-week .dw-viz-arrow{width:30px;height:30px;border-top:2px solid var(--acc-line);border-right:2px solid var(--acc-line);transform:rotate(45deg);margin:0 6px}
.demo-week .dw-out-head{display:flex;align-items:baseline;gap:12px;margin-bottom:12px}
.demo-week .dw-out-head b{font-size:20px;letter-spacing:-.03em}
.demo-week .dw-out-head em{font-style:normal;color:var(--acc)}
.demo-week .dw-grid6{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.demo-week .dw-hint{margin-top:10px;font-size:13px;color:var(--mute)}
.demo-week .dw-mock{display:flex;flex-direction:column;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px;transition:border-color .15s,box-shadow .15s,transform .15s}
.demo-week .dw-mock:hover{border-color:var(--ink);box-shadow:0 12px 26px -16px rgba(20,30,25,.45);transform:translateY(-2px)}
.demo-week .dw-mock:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.demo-week .dw-tg{display:flex;justify-content:space-between;align-items:center;gap:6px;padding:2px 4px 8px}
.demo-week .dw-ch-n{font-size:13.5px;font-weight:800}
.demo-week .dw-dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex:none}
.demo-week .dw-dot.dw-a{background:var(--a)}
.demo-week .dw-dot.dw-b{background:var(--b)}
.demo-week .dw-pv{flex:1;border:1px solid var(--line-soft);border-radius:8px;overflow:hidden;background:#fff}
.demo-week .dw-pv img{width:100%;object-fit:cover}
.demo-week .dw-pv .dw-tx{font-size:11px;color:#555;line-height:1.5;margin-top:6px}
.demo-week .dw-pv-bar{display:flex;align-items:center;gap:3px;background:#eceeea;padding:5px 7px}
.demo-week .dw-pv-bar i{width:5px;height:5px;border-radius:50%;background:#cfd3ce}
.demo-week .dw-pv-bar span{margin-left:5px;background:#fff;border-radius:100px;padding:1px 7px;font-size:9px;color:var(--mute)}
.demo-week .dw-pv-site .dw-pv-in{padding:9px 10px 10px}
.demo-week .dw-pv-site .dw-tag{display:inline-block;background:#e4ece6;color:#3d5a4b;font-size:9.5px;font-weight:700;padding:1px 6px;border-radius:3px}
.demo-week .dw-pv-site .dw-h{font-size:13px;font-weight:800;letter-spacing:-.03em;margin:5px 0 7px;line-height:1.35}
.demo-week .dw-pv-site img{aspect-ratio:2/1;border-radius:5px}
.demo-week .dw-pv-top{font-size:12px;font-weight:800;color:#03a94d;padding:6px 9px;border-bottom:1px solid #f0f0f0}
.demo-week .dw-pv-top span{color:#555;font-weight:500;font-size:10px;margin-left:4px}
.demo-week .dw-pv-blog .dw-pv-in{padding:9px 10px 10px;text-align:center}
.demo-week .dw-pv-blog .dw-h{font-size:12.5px;font-weight:700;letter-spacing:-.03em;margin-bottom:7px;line-height:1.35}
.demo-week .dw-pv-blog img{aspect-ratio:2/1}
.demo-week .dw-pv-blog .dw-tags{display:flex;justify-content:center;gap:4px;margin-top:7px;flex-wrap:wrap}
.demo-week .dw-pv-blog .dw-tags span{font-size:9.5px;background:#f3f3f3;color:#666;padding:1px 6px;border-radius:100px}
.demo-week .dw-pv-ig .dw-u{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;padding:6px 8px}
.demo-week .dw-pv-ig .dw-u i{width:16px;height:16px;border-radius:50%;background:linear-gradient(45deg,#f9ce34,#ee2a7b,#6228d7)}
.demo-week .dw-pv-ig .dw-sq{position:relative}
.demo-week .dw-pv-ig .dw-sq img{aspect-ratio:3/2}
.demo-week .dw-pv-ig .dw-sq span{position:absolute;top:6px;right:6px;background:rgba(0,0,0,.6);color:#fff;font-size:9.5px;padding:1px 6px;border-radius:100px}
.demo-week .dw-pv-ig .dw-dots4{display:flex;justify-content:center;gap:3px;margin-top:6px}
.demo-week .dw-pv-ig .dw-dots4 i{width:5px;height:5px;border-radius:50%;background:#ccc}
.demo-week .dw-pv-ig .dw-dots4 i.dw-on{background:#3897f0}
.demo-week .dw-pv-ig .dw-tx{padding:0 8px 8px;margin-top:4px}
.demo-week .dw-pv-pl .dw-nm{font-size:12px;font-weight:800;padding:8px 9px 6px}
.demo-week .dw-pv-pl .dw-nm small{font-weight:400;color:var(--mute);font-size:10px}
.demo-week .dw-pv-pl .dw-tabs{display:flex;border-top:1px solid #eee;border-bottom:1px solid #eee;font-size:10.5px}
.demo-week .dw-pv-pl .dw-tabs span{flex:1;text-align:center;padding:5px 0;color:#888}
.demo-week .dw-pv-pl .dw-tabs .dw-on{color:#111;font-weight:700;box-shadow:inset 0 -2px 0 #03c75a}
.demo-week .dw-pv-pl .dw-g{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;padding:2px}
.demo-week .dw-pv-pl .dw-g div{position:relative}
.demo-week .dw-pv-pl .dw-g img{aspect-ratio:1}
.demo-week .dw-pv-pl .dw-g span{position:absolute;left:3px;top:3px;background:#03c75a;color:#fff;font-size:8.5px;font-weight:700;padding:0 4px;border-radius:3px}
.demo-week dialog{border:0;border-radius:14px;padding:0;width:min(780px,94vw);max-height:92vh;margin:auto;background:#fff;box-shadow:0 30px 80px -20px rgba(0,0,0,.5)}
.demo-week dialog::backdrop{background:rgba(20,26,23,.55)}
.demo-week .dw-d-in{display:flex;flex-direction:column;max-height:92vh}
.demo-week .dw-d-top{display:flex;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line);line-height:normal}
.demo-week .dw-d-top .dw-dh{font-size:16px;flex:1}
.demo-week .dw-d-top .dw-dh small{font-weight:400;color:var(--mute);font-size:13px;margin-left:8px}
.demo-week .dw-sub{display:flex;gap:3px;background:var(--line-soft);border-radius:100px;padding:3px;width:260px}
.demo-week .dw-sub button{flex:1;border:0;background:transparent;padding:5px 6px;border-radius:100px;font-size:12.5px;color:var(--sub);display:flex;gap:5px;align-items:center;justify-content:center}
.demo-week .dw-sub button[aria-selected="true"]{background:#fff;color:var(--ink);font-weight:700;box-shadow:0 1px 2px rgba(0,0,0,.1)}
.demo-week .dw-close{border:0;background:var(--line-soft);width:32px;height:32px;border-radius:50%;font-size:18px;line-height:1}
/* min-height:0 이 없으면 flex 칸이 글 높이만큼 늘어나 dialog 가 대신
   스크롤합니다 — 그러면 글을 바꿔도 보던 자리에서 시작합니다.

   overscroll-behavior:contain 은 「여기서 끝났으니 뒤로 넘기라」를 막습니다.
   없으면 팝업을 맨 아래까지 내린 뒤 한 번 더 굴릴 때 뒷 화면이 따라
   내려갑니다(스크롤 연쇄). 팝업을 닫고 보면 엉뚱한 자리에 가 있습니다. */
.demo-week .dw-d-body{overflow-y:auto;min-height:0;overscroll-behavior:contain;
  background:#eceeea}
/* 팝업이 열려 있는 동안은 뒷 화면을 아예 묶어 둡니다. 위의 contain 이 막지
   못하는 경우(팝업 바깥 여백을 굴릴 때)가 남습니다. week.js 가 이 클래스를
   붙였다 뗍니다. */
html.dw-lock,html.dw-lock body{overflow:hidden}
.demo-week .dw-d-body .dw-mini{background:#fff}
.demo-week .dw-d-body .dw-bar{position:sticky;top:0;z-index:1}
.demo-week .dw-d-body.dw-center{padding:20px 0}
.demo-week .dw-d-body.dw-center .dw-mini{width:var(--dw-w);max-width:calc(100% - 24px);margin:0 auto;background:transparent}
.demo-week .dw-d-body .dw-ph-in,.demo-week .dw-d-body .dw-pl{border-radius:10px;box-shadow:0 10px 30px -14px rgba(0,0,0,.35)}
.demo-week .dw-bar{display:flex;align-items:center;gap:10px;background:#eceeea;padding:10px 14px;line-height:normal}
.demo-week .dw-bar .dw-dots{display:flex;gap:6px}
.demo-week .dw-bar .dw-dots i{width:11px;height:11px;border-radius:50%;background:#d0d3cf}
.demo-week .dw-bar .dw-url{flex:1;min-width:0;background:#fff;border-radius:100px;padding:5px 14px;font-size:12.5px;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.demo-week .dw-s-hd{display:flex;align-items:center;justify-content:space-between;padding:16px 28px;border-bottom:1px solid #e7ebe6;line-height:normal}
.demo-week .dw-s-logo{font-weight:800;color:#3d5a4b;font-size:16px}
.demo-week .dw-s-nav{display:flex;gap:20px;font-size:14px;color:#56605b}
.demo-week .dw-s-nav .dw-on{color:#3d5a4b;font-weight:700}
.demo-week .dw-s-btn{background:#3d5a4b;color:#fff;font-size:13px;padding:7px 14px;border-radius:8px}
.demo-week .dw-s-post{max-width:680px;margin:0 auto;padding:40px 28px 56px}
.demo-week .dw-s-crumb{font-size:13px;color:var(--mute);margin-bottom:14px}
.demo-week .dw-s-meta{display:flex;gap:10px;align-items:center;font-size:13px;color:var(--mute);margin-bottom:10px;line-height:normal}
.demo-week .dw-s-meta .dw-t{background:#e4ece6;color:#3d5a4b;font-weight:700;padding:3px 9px;border-radius:5px}
.demo-week .dw-s-post .dw-h1{font-size:28px;letter-spacing:-.035em;margin-bottom:24px}
.demo-week .dw-s-post p{font-size:16px;color:#333b37;margin-bottom:18px}
.demo-week .dw-s-post figure{margin:26px 0}
.demo-week .dw-s-post figure img{border-radius:10px;aspect-ratio:3/2;object-fit:cover;width:100%}
.demo-week .dw-s-post figcaption{font-size:13.5px;color:var(--mute);margin-top:8px}
.demo-week .dw-s-box{background:#f3f6f2;border-radius:10px;padding:18px 20px;margin:26px 0;line-height:normal}
.demo-week .dw-s-box p{font-size:14.5px!important;margin:0 0 8px!important;line-height:1.6}
.demo-week .dw-s-box p:last-child{margin:0!important}
.demo-week .dw-s-box b{color:#3d5a4b}
.demo-week .dw-s-next{display:flex;gap:10px;margin-top:30px;padding-top:24px;border-top:1px solid #e7ebe6;line-height:normal}
.demo-week .dw-s-next a{flex:1;border:1px solid #d9e1db;border-radius:8px;padding:14px;font-size:14px;color:#3d5a4b;text-decoration:none;font-weight:700}
.demo-week .dw-s-next a small{display:block;color:var(--mute);font-weight:400;font-size:12.5px;margin-bottom:4px}
.demo-week .dw-bl-hd{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;border-bottom:1px solid #eee;line-height:normal}
.demo-week .dw-bl-logo{font-weight:800;color:#03a94d;font-size:17px;letter-spacing:-.02em}
.demo-week .dw-bl-logo span{color:#333;font-weight:500;font-size:14px;margin-left:8px}
.demo-week .dw-bl-hd .dw-r{font-size:13px;color:#777}
.demo-week .dw-bl-post{max-width:640px;margin:0 auto;padding:36px 24px 56px}
.demo-week .dw-bl-cat{font-size:13px;color:#03a94d;margin-bottom:8px}
.demo-week .dw-bl-post .dw-h1{font-size:26px;font-weight:700;letter-spacing:-.03em;line-height:1.4}
.demo-week .dw-bl-by{display:flex;align-items:center;gap:10px;margin:18px 0 24px;padding-bottom:20px;border-bottom:1px solid #eee;line-height:normal}
.demo-week .dw-bl-av{width:36px;height:36px;border-radius:50%;background:#dfe9e3;display:grid;place-items:center;font-size:14px;font-weight:800;color:#3d5a4b}
.demo-week .dw-bl-by p{font-size:13.5px}
.demo-week .dw-bl-by small{display:block;color:#999;font-size:12px;margin-top:2px}
.demo-week .dw-bl-by .dw-add{margin-left:auto;border:1px solid #03a94d;color:#03a94d;font-size:12.5px;padding:5px 11px;border-radius:4px}
.demo-week .dw-bl-post p{font-size:16px;color:#333;text-align:center;margin-bottom:16px;line-height:1.9}
.demo-week .dw-bl-post img{width:100%;margin:26px 0 8px;aspect-ratio:4/3;object-fit:cover}
.demo-week .dw-bl-post .dw-cap{font-size:13px;color:#999;margin-bottom:26px}
.demo-week .dw-bl-link{display:flex;border:1px solid #e3e3e3;margin:30px 0;text-align:left;line-height:normal}
.demo-week .dw-bl-link div{padding:16px 18px;flex:1}
.demo-week .dw-bl-link b{display:block;font-size:14.5px;margin-bottom:6px}
.demo-week .dw-bl-link span{font-size:12.5px;color:#999}
.demo-week .dw-bl-link img{width:120px;margin:0;aspect-ratio:auto;object-fit:cover}
.demo-week .dw-bl-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px;line-height:normal}
.demo-week .dw-bl-tags span{font-size:13px;color:#555;background:#f3f3f3;padding:5px 10px;border-radius:100px}
.demo-week .dw-ph-in{background:#fff;border-radius:34px;overflow:hidden;line-height:normal}
.demo-week .dw-ph-status{display:flex;justify-content:space-between;padding:12px 26px 6px;font-size:13px;font-weight:700}
.demo-week .dw-ig-top{display:flex;align-items:center;justify-content:space-between;padding:6px 14px 10px;border-bottom:1px solid #efefef}
.demo-week .dw-ig-top b{font-size:18px;font-family:Georgia,serif;font-style:italic}
.demo-week .dw-ig-u{display:flex;align-items:center;gap:10px;padding:10px 12px}
.demo-week .dw-ig-av{width:34px;height:34px;border-radius:50%;padding:2px;background:linear-gradient(45deg,#f9ce34,#ee2a7b,#6228d7)}
.demo-week .dw-ig-av span{display:grid;place-items:center;width:100%;height:100%;border-radius:50%;background:#dfe9e3;border:2px solid #fff;font-size:11px;font-weight:800;color:#3d5a4b}
.demo-week .dw-ig-u p{font-size:13.5px;font-weight:700}
.demo-week .dw-ig-u small{display:block;font-weight:400;font-size:11.5px;color:#777}
.demo-week .dw-ig-u .dw-more{margin-left:auto;font-weight:900;letter-spacing:1px}
.demo-week .dw-car{position:relative;aspect-ratio:1;overflow:hidden;background:#eee}
.demo-week .dw-car-track{display:flex;height:100%;transition:transform .35s cubic-bezier(.3,.7,.2,1)}
.demo-week .dw-car-track img{flex:none;width:100%;height:100%;object-fit:cover}
.demo-week .dw-car-n{position:absolute;top:10px;right:10px;background:rgba(0,0,0,.6);color:#fff;font-size:12px;padding:3px 9px;border-radius:100px}
.demo-week .dw-car button{position:absolute;top:50%;transform:translateY(-50%);width:28px;height:28px;border-radius:50%;border:0;background:rgba(255,255,255,.85);cursor:pointer;font-size:14px;color:#333}
.demo-week .dw-car .dw-prev{left:8px}
.demo-week .dw-car .dw-next{right:8px}
.demo-week .dw-ig-act{display:flex;align-items:center;gap:14px;padding:10px 12px 6px}
.demo-week .dw-ig-act svg{width:24px;height:24px;fill:none;stroke:#111;stroke-width:1.8}
.demo-week .dw-ig-dots{display:flex;gap:4px;margin:0 auto;transform:translateX(-24px)}
.demo-week .dw-ig-dots i{width:6px;height:6px;border-radius:50%;background:#ccc}
.demo-week .dw-ig-dots i.dw-on{background:#3897f0}
.demo-week .dw-ig-cap{padding:0 12px 16px;font-size:13.5px;line-height:1.5}
.demo-week .dw-ig-cap .dw-likes{font-weight:700;margin-bottom:4px}
.demo-week .dw-ig-cap .dw-h{color:#00376b}
.demo-week .dw-ig-cap .dw-when{font-size:11px;color:#999;margin-top:6px}
.demo-week .dw-ig-bot{display:flex;justify-content:space-around;padding:12px 0 18px;border-top:1px solid #efefef}
.demo-week .dw-ig-bot i{width:22px;height:22px;border:2px solid #111;border-radius:6px}
.demo-week .dw-pl{background:#fff;border:1px solid #d5d8d3;border-radius:12px;overflow:hidden;line-height:normal}
.demo-week .dw-pl-hd{padding:16px 18px 12px}
.demo-week .dw-pl-hd b{font-size:18px}
.demo-week .dw-pl-hd small{color:#8a938e;font-size:13px;margin-left:6px}
.demo-week .dw-pl-hd p{font-size:13px;color:#56605b;margin-top:6px}
.demo-week .dw-pl-tabs{display:flex;border-top:1px solid #eee;border-bottom:1px solid #eee;font-size:14px}
.demo-week .dw-pl-tabs span{flex:1;text-align:center;padding:11px 0;color:#777}
.demo-week .dw-pl-tabs .dw-on{color:#111;font-weight:700;box-shadow:inset 0 -2px 0 #03c75a}
.demo-week .dw-pl-ph{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;padding:2px}
.demo-week .dw-pl-ph div{position:relative;aspect-ratio:1;overflow:hidden;background:#eee}
.demo-week .dw-pl-ph img{width:100%;height:100%;object-fit:cover}
.demo-week .dw-pl-ph .dw-new span{position:absolute;left:6px;top:6px;background:#03c75a;color:#fff;font-size:11px;font-weight:700;padding:2px 6px;border-radius:4px}
.demo-week .dw-pl-note{font-size:13px;color:#8a938e;padding:12px 16px}
@media (max-width:1040px){
  .demo-week .dw-viz{grid-template-columns:1fr}
  .demo-week .dw-viz-arrow{transform:rotate(135deg);margin:0 auto}
  .demo-week .dw-viz-in{display:grid;grid-template-columns:auto 1fr;column-gap:14px;align-items:center}
  .demo-week .dw-viz-in .dw-k{grid-column:1/-1}
  .demo-week .dw-viz-in .dw-ph{grid-row:2/4;width:180px;grid-template-columns:repeat(4,1fr)}
  .demo-week .dw-viz-in .dw-n{margin-top:10px}
}
@media (max-width:640px){
  .demo-week .dw-grid6{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .demo-week .dw-out-head{flex-direction:column;gap:2px}
  .demo-week .dw-mock[data-ch="ig"]{order:5}
  .demo-week .dw-mock[data-ch="place"]{order:6}
  .demo-week .dw-out-head b{font-size:18px}
  .demo-week .dw-viz-in .dw-ph{width:140px}
  .demo-week .dw-s-nav{display:none}
  .demo-week .dw-d-top{flex-wrap:wrap}
  .demo-week .dw-d-top .dw-sub{width:100%;order:3}
}
