/* fonts.css */
/* Geist (SIL Open Font License 1.1, assets/fonts/OFL.txt), served from this site instead of Google Fonts.
   Same files and rules as fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&display=swap */
/* cyrillic-ext */
@font-face{font-family:'Geist';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/geist-cyrillic-ext.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F}
/* cyrillic */
@font-face{font-family:'Geist';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/geist-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
/* vietnamese */
@font-face{font-family:'Geist';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/geist-vietnamese.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB}
/* latin-ext */
@font-face{font-family:'Geist';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/geist-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}
/* latin */
@font-face{font-family:'Geist';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/geist-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}
/* cyrillic-ext */
@font-face{font-family:'Geist';font-style:normal;font-weight:500;font-display:swap;src:url(assets/fonts/geist-cyrillic-ext.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F}
/* cyrillic */
@font-face{font-family:'Geist';font-style:normal;font-weight:500;font-display:swap;src:url(assets/fonts/geist-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
/* vietnamese */
@font-face{font-family:'Geist';font-style:normal;font-weight:500;font-display:swap;src:url(assets/fonts/geist-vietnamese.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB}
/* latin-ext */
@font-face{font-family:'Geist';font-style:normal;font-weight:500;font-display:swap;src:url(assets/fonts/geist-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}
/* latin */
@font-face{font-family:'Geist';font-style:normal;font-weight:500;font-display:swap;src:url(assets/fonts/geist-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}
/* cyrillic-ext */
@font-face{font-family:'Geist';font-style:normal;font-weight:600;font-display:swap;src:url(assets/fonts/geist-cyrillic-ext.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F}
/* cyrillic */
@font-face{font-family:'Geist';font-style:normal;font-weight:600;font-display:swap;src:url(assets/fonts/geist-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
/* vietnamese */
@font-face{font-family:'Geist';font-style:normal;font-weight:600;font-display:swap;src:url(assets/fonts/geist-vietnamese.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB}
/* latin-ext */
@font-face{font-family:'Geist';font-style:normal;font-weight:600;font-display:swap;src:url(assets/fonts/geist-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}
/* latin */
@font-face{font-family:'Geist';font-style:normal;font-weight:600;font-display:swap;src:url(assets/fonts/geist-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}
/* cyrillic-ext */
@font-face{font-family:'Geist';font-style:normal;font-weight:700;font-display:swap;src:url(assets/fonts/geist-cyrillic-ext.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F}
/* cyrillic */
@font-face{font-family:'Geist';font-style:normal;font-weight:700;font-display:swap;src:url(assets/fonts/geist-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
/* vietnamese */
@font-face{font-family:'Geist';font-style:normal;font-weight:700;font-display:swap;src:url(assets/fonts/geist-vietnamese.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB}
/* latin-ext */
@font-face{font-family:'Geist';font-style:normal;font-weight:700;font-display:swap;src:url(assets/fonts/geist-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}
/* latin */
@font-face{font-family:'Geist';font-style:normal;font-weight:700;font-display:swap;src:url(assets/fonts/geist-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}
/* Libre Caslon Display (SIL OFL, assets/fonts/OFL-LibreCaslonDisplay.txt): numbers only, home M2. */
@font-face{font-family:'Libre Caslon Display';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/libre-caslon-display-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}

/* pretendard.css */
/* Pretendard Variable 1.3.9 (SIL Open Font License 1.1, assets/fonts/pretendard/LICENSE.txt), served from this site.
   The npm release's dynamic subset: the browser fetches only the slices that hold the characters on the page. Hangul
   and other Korean text use it; Latin keeps Geist (font stacks list Geist first). */
/**
 * Minified by jsDelivr using clean-css v5.3.3.
 * Original file: /npm/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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(assets/fonts/pretendard/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/507264fa8db8ad69c567a2baf636e389bbe3a2593155cc4a6f88bedb1f5f1b73.map */
/* reference-tuning.css */
/* Values measured from the current live Node8 site at a 1280px desktop viewport. */
@media (min-width:721px){
  .site-header{padding:22px 30px}
  .nav{gap:42px;font-size:18px;letter-spacing:-.54px}
  .brand{font-size:20px;letter-spacing:-.7px}
  .hero-content{left:30px;right:30px}
  .hero h1{font-size:111.478px;line-height:122.626px;letter-spacing:-5.574px;font-weight:600}
  .hero-note{font-size:19px;line-height:26.6px;letter-spacing:-.57px}
  .eyebrow{font-size:14px;line-height:19.6px;letter-spacing:-.42px}
  .intro{grid-template-columns:1fr 1.8fr}
  .intro-copy{font-size:47px;line-height:61.1px;letter-spacing:-2.35px;font-weight:600}
  .home-intro{--home-intro-label:clamp(180px,15vw,236px);grid-template-columns:var(--home-intro-label) minmax(0,1fr);gap:clamp(24px,3vw,48px)}
  .home-intro .intro-copy{max-width:none;font-size:38px;line-height:1.08;letter-spacing:-1.9px;white-space:nowrap}
  .intro-subcopy{margin:12px 0 0;font-size:16px;line-height:1.5;letter-spacing:-.48px;font-weight:500;color:var(--ink)}
  .about-intro .about-intro-body{margin:12px 0 0}
  .display-title{font-size:62px;line-height:1;letter-spacing:-3.1px}
  .project-name{font-size:40px;line-height:40.8px;letter-spacing:-1.6px;font-weight:700}
  .contact h2{font-size:115.23px;line-height:126.753px;letter-spacing:-5.762px;font-weight:600}
}
@media (max-width:720px){
  .site-header{padding:18px 20px}
  .hero-content{left:20px;right:20px}
  .hero h1{font-size:56px;line-height:61px;letter-spacing:-2.8px}
  .hero-note{font-size:16px;line-height:22px;letter-spacing:-.48px}
  .home-intro .intro-copy{font-size:clamp(30px,8.4vw,38px);line-height:1.1;letter-spacing:-1.5px;white-space:normal}
  .intro-subcopy{margin-top:11px;font-size:14px;line-height:1.55;letter-spacing:-.35px}
  .about-intro .about-intro-body{margin-top:11px}
}

@media (min-width:721px) and (max-width:1000px){
  .home-intro{grid-template-columns:clamp(150px,22vw,190px) minmax(0,1fr);gap:28px}
  .home-intro .intro-copy{white-space:normal}
}

/* footer-reference.css */
.node8-footer{margin:0;padding:6px;background:#fff}.node8-footer-shell{overflow:hidden;border-radius:16px;background:#0a0a0a;padding:6px}.node8-footer-contact{position:relative;min-height:769px;border-radius:11px;background:#fff;padding:120px 40px 40px}.node8-footer-title{margin:0;color:#141414;font-family:Geist,Arial,sans-serif;font-size:min(115.23px,calc(9.925vw - 10.32px));line-height:1.1;letter-spacing:-.05em;font-weight:600;white-space:nowrap}.node8-footer-content{margin-top:80px}.node8-footer-copy{max-width:541px;margin:0;color:#141414;font-size:22px;line-height:31px;letter-spacing:-.44px}.node8-footer-copy span{color:#292929}.node8-footer-button{display:inline-flex;margin-top:22px;border-radius:999px;background:#141414;color:#fff;padding:15px 24px;font-size:18px;line-height:23px;letter-spacing:-.54px;font-weight:500}.node8-footer-email{display:block;margin-top:28px;color:#141414;font-size:40px;line-height:44px;letter-spacing:-2px;font-weight:500}.node8-footer-socials{display:flex;gap:32px;margin-top:18px}.node8-footer-socials a{color:#141414;font-size:18px;line-height:23px;letter-spacing:-.54px;font-weight:500}.node8-footer-media{position:absolute;right:40px;bottom:40px;width:min(31vw,470px);aspect-ratio:16/9;overflow:hidden;border-radius:12px;background:#171717}.node8-footer-media img,.node8-footer-media video{display:block;width:100%;height:100%;object-fit:cover}.node8-footer-info{position:relative;min-height:323px;padding:138px 40px 40px;color:#c4c4c4}.node8-footer-address{margin:0 0 8px;font-size:22px;line-height:31px;letter-spacing:-.66px}.node8-footer-legal{margin:0;font-size:16px;line-height:24px;letter-spacing:-.48px}.node8-footer-legal + .node8-footer-legal{margin-top:0}.node8-footer-legal.copyright{margin-top:24px}.node8-footer-tagline{position:absolute;right:40px;bottom:38px;margin:0;width:420px;font-size:16px;line-height:22px;letter-spacing:-.48px}@media(max-width:720px){.node8-footer{padding:6px}.node8-footer-contact{min-height:620px;padding:48px 20px 36px}.node8-footer-title{font-size:50px;line-height:54px;letter-spacing:-2.5px;white-space:normal}.node8-footer-content{margin-top:56px}.node8-footer-copy{font-size:18px;line-height:26px}.node8-footer-email{font-size:28px;line-height:32px;letter-spacing:-1.4px}.node8-footer-socials{gap:20px}.node8-footer-media{position:static;width:100%;margin-top:40px;border-radius:10px}.node8-footer-info{min-height:300px;padding:76px 20px 28px}.node8-footer-address{font-size:18px;line-height:26px}.node8-footer-tagline{position:static;margin-top:34px;width:auto;font-size:15px;line-height:21px}}

/* footer-email-copy.css */
.node8-footer-email{
  margin:28px 0 0;
  user-select:text;
}

/* footer-guard.css */
html,body{max-width:100%;overflow-x:clip}.node8-footer,.node8-footer-shell,.node8-footer-contact,.node8-footer-info{width:100%;max-width:100%;min-width:0}.node8-footer-contact{overflow:hidden}.node8-footer-title{max-width:none;white-space:nowrap;overflow:visible;font-size:clamp(115.23px,calc((100vw - 80px)*.105),191px);line-height:1.1;letter-spacing:-.05em}.node8-footer-tagline{max-width:calc(100% - 80px)}@media(max-width:720px){.node8-footer-title{max-width:100%;white-space:normal;overflow-wrap:anywhere;font-size:50px;line-height:54px;letter-spacing:-2.5px}.node8-footer-tagline{max-width:100%}}

/* footer-media-reference.css */
@media(min-width:721px){.node8-footer-contact{min-height:0}.node8-footer-body{display:flex;align-items:flex-end;gap:80px;width:100%;max-width:1820px;margin-top:80px}.node8-footer-content{flex:1 1 auto;width:auto;margin-top:0}.node8-footer-media{position:relative;right:auto;bottom:auto;flex:none;width:clamp(220px,18vw,320px);min-height:0;height:auto;aspect-ratio:16/9;border-radius:16px}.node8-footer-mark{z-index:1}}
@media(max-width:720px){.node8-footer-body{display:flex;flex-direction:column;gap:0;margin-top:56px}.node8-footer-content{margin-top:0}.node8-footer-media{margin-top:40px}}

.node8-footer-mark{display:none}.node8-footer-socials{display:flex!important;flex-flow:row nowrap!important;align-items:center;gap:32px;white-space:nowrap}.node8-footer-socials a{display:block;flex:none;white-space:nowrap;font-size:18px;line-height:23px;letter-spacing:-.54px}@media(max-width:720px){.node8-footer-socials{gap:20px}.node8-footer-socials a{font-size:16px;letter-spacing:-.48px}}

/* about-direction.css */
.about-manifesto{
  display:grid;
  grid-template-columns:var(--grid-content-columns);
  gap:var(--grid-content-gap);
  min-height:min(72vh,780px);
  align-items:center;
  padding-top:clamp(92px,13vw,190px);
  padding-bottom:clamp(92px,13vw,190px);
}
.about-manifesto>.label{grid-column:1;align-self:start;margin-top:12px}
.about-manifesto>.label:empty,.about-manifesto-copy>p:empty{display:none}
.about-manifesto-copy{grid-column:1 / span 2;justify-self:center;max-width:1100px;text-align:center}
/* -0.055em on every screen (director 2026-10-05: same spacing everywhere). It was -8px on PC and -2.7px on phone in the
   tune file — fixed pixels against a size that follows the screen, so 1001-1366 read -0.088 to -0.064em — and tablet
   had no value at all and kept -0.09em, letters touching. */
.about-manifesto h2{margin:0;color:#111;font-family:Geist,Arial,sans-serif;font-weight:500;letter-spacing:-.055em;line-height:.84}
.about-manifesto h2{font-size:clamp(64px,9.1vw,142px)}
.about-manifesto-copy p{font-size:clamp(18px,1.45vw,22px);font-weight:500;letter-spacing:-.045em;line-height:1.5}
/* One line on PC, two on tablet and phone (director 2026-10-05): the break is <br class="tune-br-tm"> in the HTML, so
   no width limit here — the old 475px pushed "만듭니다." onto a line of its own at 22px. */
.about-manifesto-copy p{margin:clamp(28px,3.1vw,48px) auto 0}
/* The Korean line under the big text (director 2026-10-04: "우리는 새로운 도구로 / 대담하고 독창적인 이야기를 만듭니다.") takes its
   size from the rule above, as approved; this gives it the sub-text grey. With the script the words fill from pale to ink
   as the page passes and the Korean line comes up when the last one fills (script.js adds fill-ready). */
.manifesto-ko{color:#3c3c39}
.fill-ready .tune-w{color:#d6d4cd;transition:color .45s var(--node8-ease)}
.fill-ready .tune-w.is-on{color:#111}
.fill-ready ~ .manifesto-ko{opacity:0;transform:translateY(14px);transition:opacity .9s var(--node8-ease),transform .9s var(--node8-ease)}
.fill-ready ~ .manifesto-ko.is-on{opacity:1;transform:none}
@media(max-width:720px){
  .about-manifesto{grid-template-columns:1fr;gap:28px;min-height:64svh;padding-top:110px;padding-bottom:94px}
  .about-manifesto>.label,.about-manifesto-copy{grid-column:1}
  .about-manifesto>.label{margin:0}
  .about-manifesto h2{font-size:clamp(48px,12.8vw,64px)}
  .about-manifesto-copy p{margin-top:26px;font-size:18px}
}

/* grid-foundation.css */
/* Site-wide spatial system. Keep the three grid families distinct. */
:root{
  --grid-frame-inset:6px;
  --grid-chrome-inset:clamp(20px,2.1vw,40px);
  --grid-content-inset:clamp(20px,4.3vw,72px);
  --grid-content-columns:1fr minmax(0,1.7fr);
  --grid-content-gap:clamp(30px,8vw,142px);
  --grid-footer-inset:clamp(20px,2.8vw,40px);
}

/* Chrome: all page headers and image-hero copy. */
.site-header{padding-inline:var(--grid-chrome-inset)}
.site-header{display:grid;grid-template-columns:minmax(0,1fr) auto auto;justify-content:normal;column-gap:clamp(22px,3vw,42px)}
.site-header .nav{justify-self:end}
.site-header .nav a{font-weight:600;opacity:.62;transition:opacity 180ms ease}
.site-header .nav a[aria-current=page]{font-weight:620;opacity:.86}
.site-header .nav a:hover,.site-header .nav a:focus-visible{opacity:.86}
.hero-content{left:var(--grid-chrome-inset);right:var(--grid-chrome-inset)}

/* Content: editorial labels and copy use one repeated column system. */
.section{padding-inline:var(--grid-content-inset)}
.intro{grid-template-columns:var(--grid-content-columns);gap:var(--grid-content-gap)}

/* Archive: heading follows chrome; intentionally edge-led cards follow frame. */
.archive-header{padding-inline:var(--grid-chrome-inset)}
.archive-grid{padding-inline:var(--grid-frame-inset)}

/* Footer is intentionally a framed module, with one internal text inset. */
.node8-footer{padding:var(--grid-frame-inset)}
.node8-footer-contact,.node8-footer-info{padding-inline:var(--grid-footer-inset)}
.node8-footer-media,.node8-footer-tagline{right:var(--grid-footer-inset)}

@media(max-width:720px){
  .site-header{padding-inline:20px;grid-template-columns:minmax(0,1fr) auto;column-gap:0}
  .hero-content{left:20px;right:20px}
  .section{padding-inline:20px}
  .intro{grid-template-columns:1fr;gap:28px}
  .archive-header{padding-inline:20px}
  .archive-grid{padding-inline:var(--grid-frame-inset)}
  .node8-footer-contact,.node8-footer-info{padding-inline:20px}
}

/* Footer title has a distinct middle-width scale so it never crops inside the frame. */
@media(min-width:721px) and (max-width:1000px){
  .node8-footer-title{font-size:clamp(64px,9.45vw,92px);line-height:1.05}
}
@media(min-width:1001px) and (max-width:1200px){
  .node8-footer-title{font-size:clamp(94px,9.45vw,112px);line-height:1.07}
}
@media(min-width:1201px){
  .node8-footer-title{font-size:clamp(115px,calc((100vw - 80px)*.102),184px)}
}

/* Phone menu (director 2026-10-05, after growing-navigation.framer.website): a frosted glass sheet that grows out of the
   ☰ corner under the header. Light glass with a hairline edge reads both on the white pages and over the dark hero (the
   old box was white on white, black on the hero). Page links on hairlines, KakaoTalk as a black pill, mail and socials
   small at the foot; the page behind dims. ☰ turns into ✕. Desktop header shows the pill instead. Second look (same day):
   about 72% of the width, held to the right under ✕ (8px in, as the hero frame) so it reads as coming out of the button,
   22px links — about 280px tall instead of 450. */
.nav-contact,.nav-meta{display:none}
@media(max-width:720px){
  .nav{position:absolute;z-index:2;top:62px;left:auto;right:8px;width:min(72vw,300px);display:flex;flex-direction:column;align-items:stretch;gap:0;padding:4px 20px 20px;border:1px solid rgba(255,255,255,.6);border-radius:20px;background:rgba(255,255,255,.62);-webkit-backdrop-filter:blur(24px) saturate(1.6);backdrop-filter:blur(24px) saturate(1.6);box-shadow:0 20px 56px rgba(10,10,10,.2),inset 0 0 0 1px rgba(19,19,19,.05);color:#131313;visibility:hidden;opacity:0;clip-path:inset(0 0 calc(100% - 40px) calc(100% - 40px) round 20px);transition:clip-path .5s var(--node8-ease),opacity .25s ease .1s,visibility 0s linear .5s}
  .nav.is-open{visibility:visible;opacity:1;clip-path:inset(0 round 20px);transition:clip-path .6s var(--node8-ease),opacity .2s ease,visibility 0s}
  .site-header .nav>a:not(.nav-contact){padding:12px 0;border-bottom:1px solid rgba(19,19,19,.12);font-size:22px;line-height:1.1;font-weight:500;letter-spacing:-.025em}
  .site-header .nav .nav-contact{display:inline-flex;align-self:flex-start;margin-top:18px;padding:10px 18px;border-radius:999px;background:#131313;color:#fff;font-size:15px;font-weight:600;line-height:1.2}
  .nav-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 10px;margin-top:16px;font-size:var(--type-label);line-height:1.4;color:#55554f}
  .nav-meta a{color:inherit;font-weight:500}
  .nav-meta a:first-child{flex-basis:100%}
  /* Mail and SNS at the Label size, the three SNS links spread over their row out to the sheet's edges with even gaps,
     each pressed across its share of the row (director 2026-10-07: they were 13px and too small to press). */
  /* The desktop header dims its links (.62); in the sheet they stand at full ink, the page you are on a step bolder. */
  .site-header .nav>*{transition:opacity .35s var(--node8-ease),transform .5s var(--node8-ease)}
  .site-header .nav:not(.is-open)>*{opacity:0;transform:translateY(10px)}
  .site-header .nav.is-open>*,.site-header .nav.is-open>a[aria-current=page]{opacity:1;transform:none}
  .site-header .nav.is-open>a[aria-current=page]{font-weight:600}
  .nav.is-open>:nth-child(1){transition-delay:.1s}
  .nav.is-open>:nth-child(2){transition-delay:.15s}
  .nav.is-open>:nth-child(3){transition-delay:.2s}
  .nav.is-open>:nth-child(4){transition-delay:.25s}
  .nav.is-open>:nth-child(5){transition-delay:.3s}
  .site-header::before{content:"";position:fixed;inset:0;z-index:-1;background:rgba(10,10,10,.26);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);opacity:0;visibility:hidden;transition:opacity .4s ease,visibility 0s linear .4s}
  .site-header:has(.nav.is-open)::before{opacity:1;visibility:visible;transition:opacity .4s ease,visibility 0s}
  .menu-button[aria-expanded="true"]{font-size:0}
  .menu-button[aria-expanded="true"]::before{content:"✕";font-size:21px;line-height:1}
}
@media(max-width:720px) and (prefers-reduced-motion:reduce){
  .nav,.nav.is-open,.nav>*,.site-header::before{transition:none}
}

/* Footer: privacy policy link, set apart from the plain legal lines. */
.node8-footer-legal.node8-footer-privacy{margin-top:6px}
.node8-footer-privacy a{color:inherit;font-weight:inherit}
.node8-footer-privacy a:hover,.node8-footer-privacy a:focus-visible{text-decoration:underline;text-underline-offset:3px}

/* Footer copy and address: no word left alone on a last line (tablet and phone had "있습니다." and "Studio" alone). */
.node8-footer-copy,.node8-footer-address{text-wrap:pretty}

/* Touch screens: the small links and buttons keep their look but take a finger-sized press (about 44px tall) through an
   invisible area around each one. Neighbours stay clear of each other except in the open phone menu, whose rows are close. */
@media(pointer:coarse){
  .nav a,.archive-filters button,.node8-footer-socials a,.booking-dest,.menu-button,.notfound-home,.site-header .brand{position:relative}
  .nav a::after,.archive-filters button::after,.node8-footer-socials a::after,.booking-dest::after,.menu-button::after,.notfound-home::after,.site-header .brand::after{content:"";position:absolute;inset:-11px -8px}
  .menu-button::after{inset:-9px -6px}
  .nav-meta a::after{inset:-11px -10px}
  .site-header .brand::after{inset:-8px 0}
}

/* Phone: back to top is a small round arrow (director 2026-10-05) — the word "Top" covered the ends of lines passing under it. */
@media(max-width:720px){
  .top-button{display:grid;place-items:center;width:44px;height:44px;padding:0;font-size:0;line-height:1}
  .top-button::before{content:"↑";font-size:18px}
}

/* brand.css */
/* Site point colour (director 2026-10-03): violet, the value from the earlier Framer site. */
:root{--node8-violet:#8a47cc}
.brand{display:flex;align-items:center;line-height:0}
.brand img{display:block;width:150px;height:28px;object-fit:contain}

/* home-hero-position.css */
/* One shared bottom inset moves the entire home-hero copy group together. */
:root{--home-hero-copy-bottom:clamp(20px,2vw,28px)}
.hero:not(.about-services-hero) .hero-content{bottom:var(--home-hero-copy-bottom)}
@media(max-width:720px){.hero:not(.about-services-hero) .hero-content{bottom:16px}}
/* The big title sits at 88% so the reel shows through a little (director, 2026-10-02). */
.hero:not(.about-services-hero) [data-tune-id="hero-title"]{color:rgb(255 255 255/.88)}

/* type-scale.css */
/* Type scale (bundle 5, director 2026-10-03): every section picks its sizes from these six steps.
   Changing one step resizes everything that uses it. Display stays on the tuned hero and footer titles.
   PC ≥1001px, tablet 721–1000px, phone ≤720px. Sections move onto the scale as each one is reworked.
   Statement is the Korean big title: 0.8 × Title, so Hangul (about 0.9 of the font size tall) stands as tall
   as the English capitals of a Title line (0.71). Phone stays 30px because the English card there shrinks to fit. */
:root{--type-title:72px;--type-statement:58px;--type-number:104px;--type-sub:20px;--type-label:16px}
@media(max-width:1000px){:root{--type-title:56px;--type-statement:45px;--type-number:84px;--type-sub:18px;--type-label:15px}}
@media(max-width:720px){:root{--type-title:40px;--type-statement:30px;--type-number:64px;--type-sub:17px;--type-label:15px}}

/* home-stats.css */
/* Home M2 (bundle 5): title, three numbers and the brands we have worked with, between the hero and the intro.
   Sizes come from type-scale.css. Numbers count up and the logo row flows (script.js); the rest rises once (motion.css). */
.home-stats{display:grid;gap:clamp(40px,4.4vw,64px);padding-top:clamp(96px,10vw,168px);padding-bottom:clamp(24px,4vw,64px)}
.home-stats-head{display:grid;gap:22px}
.home-stats .label{font-size:var(--type-label)}
/* Bold (700, director 2026-10-04): in Pretendard the Korean read thinner than the English titles at 600. */
.home-stats-title{margin:0;font-size:var(--type-statement);line-height:1.22;letter-spacing:-.035em;font-weight:700}
.home-stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,3vw,44px)}
.home-stat{display:grid;align-content:start;gap:12px;padding-top:22px;border-top:1px solid var(--line);min-width:0}
.home-stat-name{margin:0;font-size:var(--type-sub);font-weight:500;letter-spacing:-.015em}
.home-stat-number{margin:0;font-family:'Libre Caslon Display',Georgia,'Times New Roman',serif;font-weight:400;font-size:var(--type-number);line-height:.95;white-space:nowrap}
.home-stat-plus{font-size:.5em;vertical-align:.62em;margin-left:.04em}
.home-stat-text{margin:0;color:#3c3c39;font-size:var(--type-sub);line-height:1.55;letter-spacing:-.02em}
.home-logos{margin-inline:calc(-1 * var(--pad));overflow:hidden;touch-action:pan-y;-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.home-logos-track{display:flex;align-items:center;gap:clamp(4px,1vw,16px);width:max-content;will-change:transform}
/* Logos keep their own colours. The one under the mouse (or a finger) grows a little and the rest step back. */
.home-logos img{display:block;height:clamp(52px,4.8vw,68px);width:auto;transition:opacity .6s var(--node8-ease),transform .6s var(--node8-ease);user-select:none;-webkit-user-drag:none}
.home-logos-track:has(img:hover) img:not(:hover),.home-logos-track.has-press img:not(.is-pressed){opacity:.28}
.home-logos img:hover,.home-logos img.is-pressed{transform:scale(1.08)}
@media(max-width:720px){
  .home-stats{padding-top:108px;padding-bottom:24px;gap:36px}
  .home-stats-grid{grid-template-columns:minmax(0,1fr);gap:0}
  .home-stat{grid-template-columns:minmax(0,44%) minmax(0,1fr);column-gap:16px;row-gap:4px;padding-block:20px;align-items:end}
  .home-stat:last-child{border-bottom:1px solid var(--line)}
  .home-stat-number{grid-column:1;grid-row:1 / span 2}
  .home-stat-name{grid-column:2;grid-row:1}
  .home-stat-text{grid-column:2;grid-row:2}
  .home-logos img{height:46px}
}

/* home-intro.css */
/* Home band between the work slider and What We Make (director 2026-10-12, when About joined the main page; it was
   the "Heart first" title card). The big text under the hero speaks for the films, so this one speaks for brand work:
   "The one shot a brand / is remembered by." / "한 컷으로 기억되는 브랜드를 만듭니다."
   A black panel, inset like the hero's frame, with white type (director: the light grey read careless) at 500 — white on
   black reads a step heavier, and 500 matches the big text under the hero (director 2026-10-12). Two lines on
   every screen with a small 4:3 picture set in among the words like a word of its own — after "shot", the shot itself,
   and at the head of the second line, so the two sit across from each other (director's references: Framer inline
   text images). Room above and below it is about two thirds of the space between two parts (director 2026-10-12:
   it sat too close). The pictures will be the director's short loops. The English is bigger than the part titles: the
   pictures take the type's height, and at the title size they would read as specks. It fits the column on narrow
   screens (10.6 em: the longer line with its picture is about 10.3). */
.home-intro{display:grid;grid-template-columns:minmax(0,1fr);gap:0;justify-items:center;align-content:center;text-align:center;margin:clamp(24px,5.5vw,104px) var(--grid-frame-inset) clamp(56px,7.5vw,144px);padding:clamp(96px,9.4vw,180px) 20px;border-radius:var(--radius);background:var(--ink);color:#fff}
.home-intro>div{display:grid;justify-items:center}
.home-intro .intro-copy{margin:0;max-width:none;white-space:nowrap;font-size:min(clamp(36px,7vw,92px),calc((100vw - 2 * var(--grid-frame-inset) - 40px) / 10.6));line-height:1.08;letter-spacing:-.045em;font-weight:500}
.home-intro .intro-line{display:block}
/* The Korean line takes the size of the one under the big text (director 2026-10-12: it read smaller), a step lighter
   and with the site's sub-text spacing: white on black read heavier and tighter. */
.home-intro .intro-subcopy{margin:clamp(28px,2.5vw,48px) 0 0;font-size:clamp(18px,1.45vw,22px);line-height:1.5;font-weight:400;letter-spacing:-.02em;color:rgba(255,255,255,.72)}
/* The picture stands on the baseline about as tall as the capitals and keeps a word's space after it (one space
   before it comes from the text). */
.band-media{display:inline-block;width:1.04em;height:.78em;margin-right:.26em;overflow:hidden;vertical-align:-.04em;border-radius:.1em;background:#2a2a28}
.band-media img,.band-media video{display:block;width:100%;height:100%;object-fit:cover}
/* As the lines come up, each picture opens sideways between its words, the words making room for it, and the picture
   settles from a slight zoom — the shot first, the second line's picture .45 s later (director 2026-10-12) — (once; without the script or with reduced motion it simply shows). */
.home-band.rise-ready .band-media{width:0;margin-right:0}
.home-band.rise-ready .band-media img,.home-band.rise-ready .band-media video{transform:scale(1.3)}
.home-band.rise-ready.rise-in .band-media{width:1.04em;margin-right:.26em;transition:width 1.2s var(--node8-ease),margin-right 1.2s var(--node8-ease);transition-delay:calc(.5s + var(--m,0) * .45s)}
.home-band.rise-ready.rise-in .band-media img,.home-band.rise-ready.rise-in .band-media video{transform:none;transition:transform 1.6s var(--node8-ease);transition-delay:calc(.5s + var(--m,0) * .45s)}
/* The shot after "shot" sits a little tilted, like a print laid on the line (director 2026-10-12). As its place opens
   it shows from its middle outward to every edge, already at its tilt (director 2026-10-12; a sway read awkward,
   then a drop from above was tried). The picture at the head of the second line only opens. */
.band-media--tilt{rotate:-5deg;margin-left:.06em;margin-right:.32em}
.home-band.rise-ready .band-media--tilt{margin-left:0}
.home-band.rise-ready.rise-in .band-media--tilt{margin-left:.06em;margin-right:.32em;transition:width 1.2s var(--node8-ease),margin 1.2s var(--node8-ease);transition-delay:.5s}
.home-band.rise-ready.rise-in .band-media--tilt{animation:band-open 1.1s var(--node8-ease) .5s both}
@keyframes band-open{from{clip-path:inset(50% 50% round .1em)}to{clip-path:inset(0 round .1em)}}
@media(prefers-reduced-motion:reduce){.home-band.rise-ready.rise-in .band-media--tilt{animation:none}}
@media(max-width:720px){
  .home-intro{margin-bottom:56px;padding-block:80px;border-radius:15px}
  .home-intro .intro-subcopy{margin-top:20px;font-size:18px}
}

/* recent-stack.css */
/* Home M4 (bundle 5, director 2026-10-03): Recent Projects as a 3D card stack, after the director's Storyflow
   reference. One big 16:9 card in the middle and two either side turned away in depth: the near pair wide and light,
   the far pair thin, small and dark, so the stack reads in depth. Side cards show a slice of their picture. The
   middle card carries the title, the CMS lower title and the film type with the year, joined by a hairline, and
   links to the project. The card size follows the window (between the old slider and the reference, whole stack in
   one screen); every part moves together for --stack-dur on --stack-ease. recent-carousel.js sets data-slot. */
.recent-projects{--stack-ratio:1.7778;--stack-w:min(60vw,calc((100svh - 96px) * var(--stack-ratio)),1180px);--stack-h:calc(var(--stack-w) / var(--stack-ratio));--stack-dur:.9s;--stack-ease:cubic-bezier(.45,.05,.15,1);overflow:hidden}
/* Moved by hand (swipe or drag): it leaves at once on the site curve, in .6s (director 2026-10-05). */
@media(prefers-reduced-motion:no-preference){.recent-projects.is-swift{--stack-dur:.6s;--stack-ease:cubic-bezier(.16,1,.3,1)}}
.recent-projects .section-head{margin-bottom:clamp(18px,2.2vw,34px)}
.recent-rail{position:relative;height:calc(var(--stack-h) + 40px);perspective:calc(var(--stack-w) * 2.16);perspective-origin:50% 50%;touch-action:pan-y;user-select:none;-webkit-user-select:none}

/* Slots: 0 middle, ±1 near, ±2 far, ±3 waiting out of sight on the side it will enter or has left from. */
.recent-card{position:absolute;left:50%;top:50%;width:0;height:0;z-index:1;opacity:0;transition:transform var(--stack-dur) var(--stack-ease),opacity var(--stack-dur) var(--stack-ease)}
.recent-card[data-slot="0"]{z-index:5;opacity:1;transform:none}
.recent-card[data-slot="-1"]{z-index:3;opacity:1;transform:translateX(calc(var(--stack-w) * -.56)) rotateY(-28deg)}
.recent-card[data-slot="1"]{z-index:3;opacity:1;transform:translateX(calc(var(--stack-w) * .56)) rotateY(28deg)}
.recent-card[data-slot="-2"]{z-index:2;opacity:1;transform:translateX(calc(var(--stack-w) * -.72)) rotateY(-48deg)}
.recent-card[data-slot="2"]{z-index:2;opacity:1;transform:translateX(calc(var(--stack-w) * .72)) rotateY(48deg)}
.recent-card[data-slot="-3"]{transform:translateX(calc(var(--stack-w) * -.84)) rotateY(-56deg)}
.recent-card[data-slot="3"]{transform:translateX(calc(var(--stack-w) * .84)) rotateY(56deg)}
.recent-card.is-snap,.recent-card.is-snap *,.recent-card.is-snap a::before,.recent-card.is-snap a::after{transition:none!important}

/* Each card is a window onto a picture the size of the middle card. Far windows are thin and short, near windows
   wider and taller, and the picture inside shrinks to match, so a side card shows the middle slice of its frame. */
.recent-card a{position:absolute;left:0;top:0;display:block;width:calc(var(--stack-w) * .2);height:calc(var(--stack-h) * .66);transform:translate(-50%,-50%);overflow:hidden;clip-path:inset(0 round 6px);border-radius:6px;background:#1b1b1b;color:#fff;cursor:pointer;transition:width var(--stack-dur) var(--stack-ease),height var(--stack-dur) var(--stack-ease);-webkit-user-drag:none}
.recent-card[data-slot="0"] a{width:var(--stack-w);height:var(--stack-h)}
.recent-card[data-slot="-1"] a,.recent-card[data-slot="1"] a{width:calc(var(--stack-w) * .3);height:calc(var(--stack-h) * .86)}
.recent-card a:focus-visible{outline:2px solid var(--node8-violet);outline-offset:4px}
.recent-frame{position:absolute;left:50%;top:50%;width:var(--stack-w);height:var(--stack-h);transform:translate(-50%,-50%) scale(.66);transition:transform var(--stack-dur) var(--stack-ease)}
.recent-card[data-slot="0"] .recent-frame{transform:translate(-50%,-50%)}
.recent-card[data-slot="-1"] .recent-frame,.recent-card[data-slot="1"] .recent-frame{transform:translate(-50%,-50%) scale(.86)}
.recent-frame img{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none;-webkit-user-drag:none}
/* A project's preview loop (CMS, 2026-10-06) lies over its picture and fades in once the middle card is really playing
   it; it fades out again as the card leaves the middle (recent-carousel.js). */
.recent-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;opacity:0;transition:opacity .5s var(--stack-ease)}
.recent-video.is-playing{opacity:1}

/* Veils: far cards darker than near ones. The middle card gets a low gradient so the white type reads on bright frames. */
.recent-card a::before,.recent-card a::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;transition:opacity var(--stack-dur) var(--stack-ease),background-color var(--stack-dur) var(--stack-ease)}
.recent-card a::before{background-color:rgba(19,19,19,.58)}
.recent-card[data-slot="-1"] a::before,.recent-card[data-slot="1"] a::before{background-color:rgba(19,19,19,.26)}
.recent-card[data-slot="0"] a::before{opacity:0}
.recent-card a::after{background:linear-gradient(to top,rgba(12,12,12,.64) 0%,rgba(12,12,12,.3) 24%,rgba(12,12,12,0) 50%);opacity:0}
.recent-card[data-slot="0"] a::after{opacity:1}

/* Middle-card type: English title, then the CMS lower title and the film type with the year, joined by a hairline.
   When a card comes to the middle each line rises out of its own mask and the hairline draws left to right. */
.recent-caption{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:clamp(18px,calc(var(--stack-w) * .045),54px);padding-bottom:clamp(22px,calc(var(--stack-w) * .045),54px);opacity:0;transition:opacity .45s var(--stack-ease)}
.recent-card[data-slot="0"] .recent-caption{opacity:1;transition-delay:.25s}
.recent-caption h3{margin:0;font-size:clamp(24px,calc(var(--stack-w) * .04),48px);line-height:1.02;letter-spacing:-.03em;font-weight:600;text-wrap:balance}
.recent-caption h3,.recent-lower{overflow:hidden;padding-bottom:.1em;margin-bottom:-.1em}
.cap-line{display:block;transform:translateY(108%);transition:transform .9s var(--stack-ease)}
.recent-card[data-slot="0"] .cap-line{transform:none;transition-delay:.32s}
.recent-card[data-slot="0"] .recent-lower .cap-line{transition-delay:.44s}
.cap-row{display:flex;align-items:center;gap:clamp(14px,calc(var(--stack-w) * .018),22px);margin-top:clamp(8px,calc(var(--stack-w) * .011),14px)}
.recent-lower{flex:none;max-width:60%;margin:0;font-size:clamp(13px,calc(var(--stack-w) * .0155),18px);line-height:1.4;letter-spacing:-.01em;color:rgba(255,255,255,.8)}
.cap-rule{flex:1;min-width:24px;height:1px;background:rgba(255,255,255,.38);transform:scaleX(0);transform-origin:left;transition:transform 1.1s var(--stack-ease)}
.recent-card[data-slot="0"] .cap-rule{transform:none;transition-delay:.55s}
.recent-meta{margin:0;flex:none;font-size:clamp(13px,calc(var(--stack-w) * .0155),18px);font-weight:500;letter-spacing:-.01em;color:rgba(255,255,255,.92);white-space:nowrap}
.recent-meta span{margin-left:.7em;color:rgba(255,255,255,.7)}

/* Pause button and the time left on the middle card (violet), laid over the middle card. */
.recent-hud{position:absolute;left:50%;top:50%;z-index:6;width:var(--stack-w);height:var(--stack-h);transform:translate(-50%,-50%);border-radius:6px;overflow:hidden;pointer-events:none}
.recent-pause{position:absolute;top:clamp(12px,calc(var(--stack-w) * .02),22px);right:clamp(12px,calc(var(--stack-w) * .02),22px);display:grid;place-items:center;width:38px;height:38px;padding:0;border:0;border-radius:50%;background:rgba(19,19,19,.34);color:#fff;cursor:pointer;pointer-events:auto;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background-color .4s var(--stack-ease)}
.recent-pause:hover{background:rgba(19,19,19,.56)}
.recent-pause:focus-visible{outline:2px solid #fff;outline-offset:2px}
.recent-pause svg{width:13px;height:13px}
.recent-progress{position:absolute;left:0;right:0;bottom:0;height:3px;background:rgba(255,255,255,.22)}
.recent-progress i{display:block;height:100%;background:var(--node8-violet);transform:scaleX(0);transform-origin:left}

/* Section rhythm: the space under the stack sits between the old 310px (too far) and 220px (too tight) at 1920. */
.recent-projects{padding-bottom:clamp(80px,7vw,132px)}

@media(min-width:721px) and (max-width:1000px){.recent-projects{--stack-w:min(66vw,calc((100svh - 96px) * var(--stack-ratio)))}}
/* Phone: a tall card with one slice either side, as in the reference; the caption lines stack without the hairline. */
@media(max-width:720px){
  .recent-projects{--stack-w:78vw;--stack-h:calc(var(--stack-w) * 1.45)}
  .recent-card[data-slot="-1"]{transform:translateX(calc(var(--stack-w) * -.62)) rotateY(-30deg)}
  .recent-card[data-slot="1"]{transform:translateX(calc(var(--stack-w) * .62)) rotateY(30deg)}
  .recent-card[data-slot="-2"],.recent-card[data-slot="2"]{opacity:0}
  .recent-card[data-slot="-1"] a,.recent-card[data-slot="1"] a{width:calc(var(--stack-w) * .38);height:calc(var(--stack-h) * .85)}
  .recent-card[data-slot="-1"] .recent-frame,.recent-card[data-slot="1"] .recent-frame{transform:translate(-50%,-50%) scale(.85)}
  .cap-row{display:grid;gap:12px}
  .cap-rule{display:none}
  .recent-lower{max-width:none}
}
@media(prefers-reduced-motion:reduce){.recent-projects{--stack-dur:0s}.recent-caption,.cap-line,.cap-rule{transition:none!important}}

/* section-head.css */
/* Site system from the 2026-10-04 redesign (director, after the Oma and Satz references and the mockups): Pretendard for
   Hangul (pretendard.css), head rows — one hairline over the text width, label, title and Korean line on the left two
   thirds, buttons on the right third — and the studio's place and time in the header. Pages take it on as each one is
   redesigned; the main page first. Dropped on the way (director): the page grid drawn as lines (pointless and ugly), the
   facts and text links on the right of the head rows, the footer status line ("2026 프로젝트 문의 가능") — type smaller
   than the site's type scale is not wanted. */
body{font-family:Geist,"Pretendard Variable",-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo",sans-serif}
.head-row{position:relative;display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:end;gap:24px 0;margin:0;padding-top:clamp(20px,1.8vw,28px);border-top:1px solid transparent}
/* The hairline is drawn over the (transparent) border so it can draw itself in as the part comes up (motion.css). */
.head-row::before{content:"";position:absolute;left:0;right:0;top:-1px;height:1px;background:rgba(19,19,19,.14);transform-origin:0 50%}
.head-row .head-kicker{margin:0 0 20px;font-size:var(--type-label);font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.head-aside{display:grid;justify-items:start;gap:16px;padding-bottom:8px}
.head-sub{margin:28px 0 0;font-size:var(--type-sub);line-height:1.6;letter-spacing:-.02em;color:#3c3c39;text-wrap:pretty}
/* Pill buttons on the right of a head row (director 2026-10-04): as the Heart first pill, a size smaller — black type a
   step bolder at rest, the outline a light grey (black read heavy even at 1px), filled violet under the mouse. */
:root{--pill-line:rgba(19,19,19,.3)}
.head-aside--end{justify-items:end}
.head-pills{display:flex;flex-wrap:wrap;gap:10px}
.head-pill{display:inline-flex;align-items:center;gap:8px;padding:9px 18px;border:1px solid var(--pill-line);border-radius:999px;color:var(--ink);font-size:14px;font-weight:600;line-height:1.2;letter-spacing:-.01em;transition:background-color .6s var(--node8-ease),border-color .6s var(--node8-ease),color .6s var(--node8-ease)}
.head-pill span{display:inline-block;transition:transform .6s var(--node8-ease)}
.head-pill:hover{border-color:var(--node8-violet);background:var(--node8-violet);color:#fff}
.head-pill:hover span{transform:translate(2px,-2px)}
.head-pill:focus-visible{outline:2px solid var(--node8-violet);outline-offset:3px}
/* Header: the studio's place and time, in the middle (over the hero, so white). */
.site-locale{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0;font-size:16px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;opacity:.82;font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none}
.site-locale span{margin-inline:.4em}
/* At 16px the clock reaches the menu below about 1100px (38px over About at 1024; 33px clear at 1180), so it goes
   at 1180 and under (2026-10-05 check). */
@media(max-width:1180px){.site-locale{display:none}}
@media(max-width:1000px){
  .head-row{grid-template-columns:minmax(0,1fr)}
  .head-aside,.head-aside--end{justify-items:start;padding-bottom:0}
}
@media(max-width:720px){
  .head-sub{margin-top:20px}
}
@media(prefers-reduced-motion:reduce){
  .head-pill,.head-pill span{transition:none}
}
/* Archive cards (Commercial · Cinematic): the title steps down with the screen — at 30px on every screen it covered about
   40% of a tablet or phone thumbnail (director 2026-10-05). The rest of the card stays in archive.css. */
.archive-card .archive-meta h2{font-size:26px;line-height:1.05;letter-spacing:-.04em}
@media(max-width:1000px){.archive-card .archive-meta h2{font-size:22px}}
@media(max-width:720px){.archive-card .archive-meta h2{font-size:20px}}

/* home-booking.css */
/* Main page, redesign of 2026-10-04 (director, from the mockups). Text held to 1440 at 1920 while the hero, the logo
   strip and the slider keep their width; numbers in three equal thirds; the same space above every head row.
   03 Now Booking (take B of three, director: "제일 깔끔해"): the five kinds of work listed on the left — number, the
   English name large, the Korean under it, the chosen one in ink with an arrow toward the picture — and the picture on
   the right, as tall as the list. Inside the picture, the M4 card row (a short line, a hairline, the page with examples)
   and the usual length of the work on a frosted white chip (white at 55%, director). The studio line sits under the
   title. The row under the mouse or keyboard focus (a tap on touch screens) shows its picture (script.js). */
.page-home{--grid-content-inset:max(clamp(20px,4.3vw,72px),calc((100vw - 1440px) / 2))}
.page-home .home-logos{margin-inline:calc(-1 * var(--grid-content-inset))}
/* A hairline over the text width above the logo strip (director 2026-10-04): numbers and brands are two kinds of proof.
   The strip sits a little further under it than the numbers sit under their rules — 40 at 1920, 24 on a phone. */
.page-home .logos-rule{height:1px;background:rgba(19,19,19,.14);transform-origin:0 50%}
.page-home .logos-rule + .home-logos{margin-top:calc(clamp(24px,2.1vw,40px) - clamp(40px,4.4vw,64px))}
@media(max-width:720px){.page-home .logos-rule + .home-logos{margin-top:-12px}}
.page-home .home-stats{padding-bottom:clamp(96px,8.3vw,160px)}
.page-home .home-stats-grid{column-gap:0}
.page-home .home-stat{margin-right:clamp(20px,3vw,44px)}
.page-home .recent-projects{padding-top:clamp(64px,6.25vw,120px);padding-bottom:clamp(96px,8.3vw,160px)}
.page-home .recent-projects .section-head{margin-bottom:clamp(32px,3.3vw,56px)}
/* "Recent Projects." on the same Title step as "What We Make" (director 2026-10-05: 03's spacing is right, 02 looked
   pressed together). Tablet and phone still had the old display-title — 500 weight, -0.08em, 0.9 line. */
.page-home .recent-projects .display-title{margin:0;font-size:var(--type-title);line-height:1;letter-spacing:-.045em;font-weight:600}

.home-booking{display:grid;gap:clamp(40px,4.4vw,72px);padding-top:clamp(64px,6.25vw,120px);padding-bottom:clamp(120px,13.5vw,260px)}
.home-booking .head-row{grid-template-columns:minmax(0,1fr)}
.booking-title{margin:0;font-size:var(--type-title);line-height:1;letter-spacing:-.045em;font-weight:600}
.booking-body{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:clamp(32px,3.4vw,64px);align-items:stretch}
.booking-list{margin:0;padding:0;list-style:none;border-top:1px solid rgba(19,19,19,.14)}
.booking-list li{border-bottom:1px solid rgba(19,19,19,.14)}
.booking-list button{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:baseline;width:100%;margin:0;padding:clamp(16px,1.5vw,22px) 0;border:0;background:none;color:#b3b1aa;font:inherit;text-align:left;cursor:pointer;transition:color .45s var(--node8-ease)}
/* Numbers at the sub-text size in bold (director 2026-10-04, with the About lists): item numbers are not small type. */
.booking-no{font-size:var(--type-sub);font-weight:700;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.booking-name{font-size:clamp(28px,2.35vw,44px);line-height:1.05;letter-spacing:-.035em;font-weight:600}
.booking-ko{grid-column:2;margin-top:8px;font-size:15px;letter-spacing:-.01em}
.booking-arrow{grid-column:3;grid-row:1;align-self:center;font-size:22px;color:var(--ink);opacity:0;transform:translateX(-10px);transition:opacity .4s var(--node8-ease),transform .7s var(--node8-ease)}
.booking-list button[aria-selected="true"],.booking-list button:hover,.booking-list button:focus-visible{color:var(--ink)}
.booking-list button[aria-selected="true"] .booking-arrow{opacity:1;transform:none}
/* The chosen title only in violet (director 2026-10-04); its number, Korean line and arrow stay black. */
.booking-name{transition:color .45s var(--node8-ease)}
.booking-list button[aria-selected="true"] .booking-name{color:var(--node8-violet)}
.booking-list button:focus-visible{outline:2px solid var(--node8-violet);outline-offset:4px}
.booking-pic{position:relative;margin:0;min-height:360px;overflow:hidden;border-radius:6px;background:#e9e8e2}
.booking-pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.03);transition:opacity .6s var(--node8-ease),transform 1.2s var(--node8-ease)}
.booking-pic img.is-on{opacity:1;transform:none}
.booking-pic::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(12,12,12,.6) 0%,rgba(12,12,12,.2) 26%,rgba(12,12,12,0) 50%);pointer-events:none}
.booking-chip{position:absolute;z-index:1;top:clamp(12px,1vw,18px);left:clamp(12px,1vw,18px);padding:5px 11px;border-radius:999px;background:rgba(255,255,255,.55);-webkit-backdrop-filter:blur(12px) saturate(1.4);backdrop-filter:blur(12px) saturate(1.4);font-size:var(--type-label);line-height:1.2;font-weight:500;letter-spacing:.01em;color:#131313}
.booking-chip::before{content:"";display:inline-block;width:5px;height:5px;margin-right:7px;border-radius:50%;background:currentColor;vertical-align:middle;transform:translateY(-1px)}
.booking-row{position:absolute;z-index:1;left:clamp(18px,1.7vw,32px);right:clamp(18px,1.7vw,32px);bottom:clamp(18px,1.7vw,30px);display:flex;align-items:center;gap:clamp(14px,1.2vw,22px);font-size:clamp(15px,1vw,18px);line-height:1.4;letter-spacing:-.01em;color:#fff}
/* The line gives way (wraps) before the link does: on a tablet the picture is narrow and the link's arrow was cut off.
   When it wraps, the two lines are evened out so no word is left alone. */
.booking-line{flex:0 1 auto;min-width:0;max-width:70%;color:rgba(255,255,255,.9);text-wrap:balance}
.booking-rule{flex:1;min-width:24px;height:1px;background:rgba(255,255,255,.38)}
.booking-dest{flex:none;font-weight:500;color:#fff;white-space:nowrap}
.booking-dest span{display:inline-block;transition:transform .5s var(--node8-ease)}
.booking-dest:hover span,.booking-dest:focus-visible span{transform:translate(2px,-2px)}
@media(max-width:720px){
  .page-home .home-stat{margin-right:0}
  .booking-body{grid-template-columns:minmax(0,1fr);row-gap:28px}
  .booking-pic{min-height:0;aspect-ratio:4/3}
  .booking-name{font-size:28px}
  .booking-line{flex:1 1 auto;min-width:0;max-width:none}
  .booking-rule,.booking-dest{display:none}
}
@media(prefers-reduced-motion:reduce){
  .booking-pic img,.booking-arrow,.booking-list button,.booking-name,.booking-dest span{transition:none}
}

/* about-intro.css */
/* About redesign (director 2026-10-04, from mockup/about.html draft 2; into the site 2026-10-05). The about page takes on
   the main page's system: text held to 1440 at 1920, one hairline over each numbered head, the studio's place and time
   in the header. The wide pictures — 01's film frame and 03's gallery — keep the gallery's earlier width (--wide-inset,
   halfway between the frame and the old text margin). Each part has its own structure and one movement (script.js):
   the big text fills in word by word, 01's film frame grows while held in the middle of the screen, 02's compare sweeps
   open once and its process line draws through four steps.
   01 About Node8: the film frame opens the part — it carries on the big text's centred axis, and the head row then
   stands between it and the panels, so two picture blocks never meet — then the head row (title | lead), then the
   principles as four picture panels that open sideways on a click, their caption under them. */
.page-home{--grid-content-inset:max(clamp(20px,4.3vw,72px),calc((100vw - 1440px) / 2));--wide-inset:calc((var(--grid-frame-inset) + clamp(20px,4.3vw,72px)) / 2);--hair:rgba(19,19,19,.14)}
/* On the main page since 2026-10-12 (director: About joined the main page). The film frame follows the big text under
   the hero (.about-reel); the head row and the principles are 04 after What We Make (.about-who), spaced like the other
   numbered parts. */
.about-intro{display:block}
.about-reel{padding-top:0;padding-bottom:0}
.about-who{padding-top:clamp(64px,6.25vw,120px);padding-bottom:clamp(120px,13.5vw,260px)}
.intro-title{margin:0;font-size:var(--type-statement);line-height:1.22;letter-spacing:-.035em;font-weight:700}
.intro-aside{padding-bottom:4px}
.intro-lead{margin:0;font-size:var(--type-sub);line-height:1.7;letter-spacing:-.02em;color:#3c3c39;text-wrap:pretty}
/* The film frame. With the script (is-held) it comes up at about half the text width, starts growing as soon as it is
   fully in view, is held and finishes growing in the first part of the hold (--grow of --hold), then moves on
   (director 2026-10-04: the growth has to read). The picture inside settles from a slight zoom as it grows.
   --p 0 → 1 from script.js; --s0 is the starting size. Without the script it simply shows at full size.
   16:9 on every screen, the ratio of the director's picture, so none of it is cut (director 2026-10-06; before, a 21:9
   key visual cropped to 16:9 on tablets and 4:3 on phones), and as wide as the hero's frame (director 2026-10-10: just
   fill the width — it used to stop where it fitted the window's height, with a wide margin each side). Across a wide
   screen it is then taller than the window: it is held with its top on the frame line and the rest comes up as the
   page moves on. It grows about the middle of the screen (--a) until it fills the height, then opens sideways; where
   it fits the window it is held in the middle as before. --s0, --hold and --grow keep the growth's pace and the rest
   after it as they were before the frame widened.
   While it is small, the clipped-away part above it read as more empty space under the Korean line (director
   2026-10-06: too wide on every screen), so script.js pulls the stage up (--pull) until the small picture shows the
   head row's gap (.intro-head) below that line — the same space as under the picture. The stage itself lets clicks
   through where it now lies over the end of the big text; the picture is clipped for clicks as it is for the eye. */
.intro-stage{--s0:.44;--hold:76vh;--grow:.7;position:relative;margin:0 calc(var(--grid-frame-inset) - var(--grid-content-inset))}
.intro-stage.is-held{height:calc(var(--frame-h) + var(--hold));margin-top:calc(var(--pull,0px) * -1);pointer-events:none}
.intro-frame{--p:1;--s:calc(var(--s0) + (1 - var(--s0)) * var(--p));--a:min(var(--frame-h) / 2,50svh - var(--grid-frame-inset));--top:max(0px,var(--a) - var(--s) * var(--frame-h) / 2);position:relative;margin:0;aspect-ratio:16/9;overflow:hidden;border-radius:var(--radius);background:#e9e8e2;clip-path:inset(var(--top) calc((1 - var(--s)) * 50%) calc((1 - var(--s)) * var(--frame-h) - var(--top)) round var(--radius))}
.is-held .intro-frame{position:sticky;top:max(var(--grid-frame-inset),calc(50vh - var(--frame-h) / 2));top:max(var(--grid-frame-inset),calc(50svh - var(--frame-h) / 2));pointer-events:auto}
.intro-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(calc(1.12 - var(--p) * .12));transform-origin:50% var(--a)}
/* Phones (director 2026-10-06): the frame is small there, so a touch on it opens the picture large, with no button on
   the page. It fills the height of the screen and pans sideways under a finger from the middle; a phone turned
   sideways shows it whole. The close sits at the foot in the middle, where the site's round buttons are, in the Top
   button's look and at its height; the back gesture closes it too (script.js). */
.intro-viewer{position:fixed;inset:0;z-index:60;background:#131313;opacity:0;visibility:hidden;transition:opacity .45s var(--node8-ease),visibility 0s linear .45s}
.intro-viewer.is-open{opacity:1;visibility:visible;transition:opacity .45s var(--node8-ease)}
.intro-viewer-pan{position:absolute;inset:0;display:flex;overflow-x:auto;overflow-y:hidden;overscroll-behavior:contain;touch-action:pan-x;scrollbar-width:none}
.intro-viewer-pan::-webkit-scrollbar{display:none}
.intro-viewer-pan img{flex:none;display:block;width:auto;max-width:none;height:100%;margin:auto;user-select:none;-webkit-user-drag:none}
.intro-viewer-close{position:absolute;left:calc(50% - 22px);bottom:16px;display:grid;place-items:center;width:44px;height:44px;margin:0;padding:0;border:1px solid #bdbdbd;border-radius:999px;background:rgba(255,255,255,.88);color:var(--ink);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);cursor:pointer;-webkit-tap-highlight-color:transparent}
.intro-viewer-close svg{display:block;width:14px;height:14px}

/* Principles as panels that open sideways (director 2026-10-04, after looking at click-to-open components: the list
   read bare and flat). Four pictures side by side across the text width; the open one takes most of the row and carries
   its title and two lines on its picture (short loops later — a video in a panel plays only while it is open), the
   others close to tall strips with their number and name. A click opens another; a closed strip under the mouse widens
   a little and brightens, an invitation; the open picture zooms in slowly under the mouse (director 2026-10-05). */
.intro-ways{margin-top:clamp(56px,6.25vw,120px)}
.panes{display:flex;gap:clamp(8px,.6vw,12px);height:clamp(420px,31.25vw,600px)}
.pane{--pi:clamp(18px,1.5vw,28px);--above:calc(var(--pi) + var(--type-sub) * 1.2 + clamp(14px,1.1vw,20px));position:relative;flex:1 1 0;min-width:0;overflow:hidden;border-radius:6px;background:#1b1b1a;color:#fff;isolation:isolate;transition:flex-grow .9s var(--node8-ease)}
.pane.is-open{flex-grow:4}
.pane:not(.is-open):hover{flex-grow:1.25}
.pane-pic{position:absolute;inset:0;z-index:-2;margin:0}
/* --focus on a picture (set in the HTML) moves the crop toward its subject, since a closed strip shows only a slice. */
.pane-pic img,.pane-pic video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--focus,50% 50%);transform:scale(1.1);filter:brightness(.62) saturate(.85);transition:transform 1.4s var(--node8-ease),filter .9s var(--node8-ease)}
.pane:not(.is-open):hover .pane-pic img,.pane:not(.is-open):hover .pane-pic video{filter:brightness(.78) saturate(.95)}
.pane.is-open .pane-pic img,.pane.is-open .pane-pic video{transform:none;filter:none}
@media(hover:hover){.pane.is-open:hover .pane-pic img,.pane.is-open:hover .pane-pic video{transform:scale(1.04)}}
.pane::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,rgba(12,12,12,.78) 0%,rgba(12,12,12,.3) 45%,rgba(12,12,12,0) 75%);pointer-events:none}
/* The whole strip is the button. */
.pane-hit{position:absolute;inset:0;display:block;width:100%;margin:0;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}
.pane.is-open .pane-hit{cursor:default}
.pane-hit:focus-visible{outline:2px solid #fff;outline-offset:-6px;border-radius:6px}
/* Foot of every card (director: at the top it looked tacky): the number, and on the open card only a white hairline
   that draws from the number to the right edge as it opens, the way the site's card lines draw. The name, or the open
   title and its lines, stand just above on the same left edge (--above), so nothing moves up or down on a click. */
.pane-top{position:absolute;left:var(--pi);right:var(--pi);bottom:var(--pi);display:flex;align-items:center;gap:clamp(12px,1vw,16px)}
.pane-no{flex:none;font-size:var(--type-sub);line-height:1.2;font-weight:700;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.pane-rule{flex:1;min-width:12px;height:1px;background:rgba(255,255,255,.55);transform:scaleX(0);transform-origin:0 50%;opacity:0;transition:transform .35s ease,opacity .35s ease}
.pane.is-open .pane-rule{transform:none;opacity:1;transition:transform 1.1s var(--node8-ease) .3s,opacity .5s ease .3s}
.pane-label{position:absolute;left:var(--pi);right:clamp(14px,1.2vw,22px);bottom:var(--above);font-size:var(--type-sub);line-height:1.35;font-weight:700;letter-spacing:-.02em;transition:opacity .3s ease}
.pane.is-open .pane-label{opacity:0}
.pane-body{position:absolute;left:var(--pi);right:var(--pi);bottom:var(--above);max-width:600px;pointer-events:none;opacity:0;transform:translateY(18px);transition:opacity .35s ease,transform .8s var(--node8-ease)}
.pane.is-open .pane-body{opacity:1;transform:none;transition:opacity .7s var(--node8-ease) .38s,transform .9s var(--node8-ease) .38s}
.pane-title{margin:0;font-size:clamp(28px,2.35vw,44px);line-height:1.15;letter-spacing:-.035em;font-weight:700}
.pane-text{margin:14px 0 0;font-size:var(--type-sub);line-height:1.6;letter-spacing:-.02em;color:rgba(255,255,255,.88);text-wrap:pretty}
/* The row's name under it, as the site's photo captions: bold and plain at the sub size (director 2026-10-05:
   "4 Rules We Work By, on Every Project." — a label above read ambiguous, an invented card for it was rejected). */
.ways-cap{margin:18px 0 0;font-size:var(--type-sub);line-height:1.45;letter-spacing:-.02em;text-wrap:pretty}
.ways-cap strong{margin-right:.2em;font-weight:600;color:var(--ink)}
.ways-cap span{font-weight:400;color:#3c3c39}
@media(max-width:1000px){
  .intro-stage{--s0:.56;--hold:52vh;--grow:.6}
  .panes{flex-wrap:wrap;height:auto;row-gap:8px}
  .pane{height:clamp(380px,52vw,460px)}
}
@media(max-width:720px){
  .intro-stage{--s0:.62;--hold:46vh}
  .intro-frame{cursor:zoom-in;-webkit-tap-highlight-color:transparent}
  /* Phone: the panels stack; closed ones are short strips, the open one tall. */
  .panes{flex-direction:column;height:auto;gap:8px}
  .pane{flex:none;height:76px;transition:height .8s var(--node8-ease)}
  .pane.is-open{height:min(118vw,470px)}
  .pane:not(.is-open):hover{flex-grow:0}
  .ways-cap{margin-top:14px}
  .pane-top{bottom:25px;right:auto}
  .pane.is-open .pane-top{bottom:20px;right:20px}
  .pane-label{left:64px;bottom:25px}
  .pane-body{left:20px;right:20px;bottom:calc(20px + var(--type-sub) * 1.2 + 14px)}
}
@media(prefers-reduced-motion:reduce){
  .pane,.pane-pic img,.pane-pic video,.pane-label,.pane-body,.pane.is-open .pane-body,.pane-rule,.pane.is-open .pane-rule,.intro-viewer,.intro-viewer.is-open{transition:none}
}

/* about-craft.css */
/* About 02 Our Craft (about redesign, director 2026-10-04; from mockup/about.html into the site 2026-10-05). A hairline
   over the text width, then two columns: the label, "Trained on Film Sets." and the Korean line held on the left third
   (sticky) while the right two thirds pass — the compare, and under it the process.
   The compare (director's reference: Framer "Split Image Compare", 2026-10-03): a 콘티 and the finished frame of the same
   shot as a 16:9 film frame (director: it is about mise-en-scène), split by a line that follows the mouse; a finger moves
   it with a sideways drag. The first time it comes into view it sweeps once from all 콘티 to the middle. script.js moves
   --split (0–100, 콘티 before the line, the finished frame after it). Tags: the frosted dark chip with a small white dot.
   Process: a hairline with four points; when it comes into view a violet line draws through it, each point lights as the
   line reaches it and its step comes up (script.js adds flow-ready, then is-drawn). Label at the size of the principles'
   titles, step names in Korean bold with the English word plain grey two spaces on (director 2026-10-05), the usual
   length on a stone chip (the gallery's table colour). Tablet: one column, nothing held; phone: the process line runs
   down the left edge. Sizes come from type-scale.css. */
.about-craft{display:block;padding-top:clamp(64px,6.25vw,120px);padding-bottom:clamp(120px,13.5vw,260px)}
.craft-grid{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);padding-top:clamp(20px,1.8vw,28px);border-top:1px solid transparent}
/* The hairline over the part, drawn over the transparent border so it can draw itself in with the sticky column
   (motion.css), as the head rows' lines do. */
.craft-grid::before{content:"";position:absolute;left:0;right:0;top:-1px;height:1px;background:var(--hair);transform-origin:0 50%}
.craft-sticky{position:sticky;top:clamp(40px,4.2vw,80px);padding-right:clamp(20px,2.5vw,48px)}
.craft-sticky .head-kicker{margin:0 0 20px;font-size:var(--type-label);font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.about-craft-title{margin:0;font-size:var(--type-title);line-height:1;letter-spacing:-.045em;font-weight:600;text-wrap:balance}
.craft-main{display:grid;gap:clamp(48px,4.4vw,80px);min-width:0}
.craft-shot{display:grid;align-content:start;gap:12px;margin:0;min-width:0}
.craft-frame{--split:50;position:relative;aspect-ratio:16/9;overflow:hidden;border-radius:6px;background:#e9e8e2;user-select:none;-webkit-user-select:none}
.craft-shot--x .craft-frame{cursor:col-resize;touch-action:pan-y}
.craft-frame img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;pointer-events:none;-webkit-user-drag:none}
/* Each picture is a layer carrying its own tag. The 콘티 layer lies on top and shows only left of the line, so a tag
   disappears together with its picture as the line moves. */
.craft-layer{position:absolute;inset:0;display:block;isolation:isolate}
.craft-layer--final{z-index:0}
.craft-layer--board{z-index:1}
.craft-shot--x .craft-layer--board{clip-path:inset(0 calc(100% - var(--split) * 1%) 0 0)}
.craft-tag{position:absolute;z-index:1;top:clamp(12px,1vw,18px);left:clamp(12px,1vw,18px);padding:5px 11px;border-radius:999px;background:rgba(19,19,19,.5);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:var(--type-label);line-height:1.2;font-weight:500;letter-spacing:.01em;color:rgba(255,255,255,.94);white-space:nowrap;pointer-events:none}
.craft-tag::before{content:"";display:inline-block;width:5px;height:5px;margin-right:7px;border-radius:50%;background:currentColor;vertical-align:middle;transform:translateY(-1px)}
.craft-shot--x .craft-layer--final .craft-tag{left:auto;right:clamp(12px,1vw,18px)}
.craft-line{position:absolute;z-index:2;background:#fff;box-shadow:0 0 0 .5px rgba(0,0,0,.08),0 0 12px rgba(0,0,0,.22);pointer-events:none}
.craft-shot--x .craft-line{top:0;bottom:0;left:calc(var(--split) * 1%);width:2px;margin-left:-1px}
.craft-handle{position:absolute;z-index:3;display:grid;place-items:center;background:#fff;color:#131313;box-shadow:0 2px 10px rgba(0,0,0,.18);transform:translate(-50%,-50%);cursor:inherit}
.craft-shot--x .craft-handle{top:50%;left:calc(var(--split) * 1%);width:40px;height:40px;border-radius:50%}
.craft-handle svg{display:block}
.craft-handle:focus-visible{outline:2px solid var(--node8-violet);outline-offset:3px}
/* Caption (director 2026-10-03): a short bold title with a short plain line on its right, both at the sub size; where
   the frame is too narrow the line runs on underneath like a sentence. Wording waits for the director's pictures. */
.craft-shot figcaption{margin-top:6px;font-size:var(--type-sub);line-height:1.45;letter-spacing:-.02em;text-wrap:pretty}
.craft-shot figcaption strong{margin-right:.2em;font-weight:600;color:var(--ink)}
.craft-shot figcaption span{font-weight:400;color:#3c3c39}
.craft-flow{--flow-lead:.3s;margin-top:clamp(40px,3.4vw,64px)}
.flow-label{margin:0 0 clamp(28px,2.5vw,40px);font-size:clamp(28px,2.35vw,44px);line-height:1.15;font-weight:700;letter-spacing:-.035em;color:var(--ink)}
/* The label comes up first, on the site's rise; the line and the steps follow --flow-lead later (director 2026-10-05:
   the label stood still while the steps came up). */
.flow-ready .flow-label{opacity:0;transform:translateY(28px)}
.flow-ready.is-drawn .flow-label{opacity:1;transform:none;transition:opacity 1.1s var(--node8-ease),transform 1.1s var(--node8-ease)}
.flow-steps{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;padding:0;list-style:none}
.flow-steps::before,.flow-steps::after{content:"";position:absolute;left:0;right:0;top:4px;height:1px;background:var(--hair)}
.flow-steps::after{background:var(--node8-violet);transform-origin:0 50%}
.flow-ready .flow-steps::after{transform:scaleX(0)}
.flow-ready.is-drawn .flow-steps::after{transform:none;transition:transform 2.2s cubic-bezier(.45,0,.2,1) var(--flow-lead)}
.flow-step{position:relative;display:grid;align-content:start;padding:40px clamp(16px,1.7vw,32px) 0 0}
.flow-step::before{content:"";position:absolute;z-index:1;left:0;top:0;width:9px;height:9px;box-sizing:border-box;border:1px solid var(--node8-violet);border-radius:50%;background:var(--node8-violet);box-shadow:0 0 0 5px #fff}
.flow-ready .flow-step::before{border-color:rgba(19,19,19,.35);background:#fff}
.flow-ready.is-drawn .flow-step::before{border-color:var(--node8-violet);background:var(--node8-violet);transition:background-color .4s ease,border-color .4s ease;transition-delay:calc(var(--k) * .5s + .05s + var(--flow-lead))}
.flow-title{margin:0;font-size:var(--type-sub);line-height:1.4;font-weight:700;letter-spacing:-.02em}
.flow-no{margin-right:.55em;font-variant-numeric:tabular-nums}
.flow-ko{margin-right:.2em}
.flow-en{font-weight:400;color:#3c3c39;white-space:nowrap}
.flow-text{margin:10px 0 0;font-size:var(--type-sub);line-height:1.6;letter-spacing:-.02em;color:#3c3c39;text-wrap:pretty}
.flow-time{justify-self:start;margin:18px 0 0;padding:5px 12px;border-radius:999px;background:#efede8;font-size:var(--type-label);font-weight:500;line-height:1.2;letter-spacing:-.01em;color:var(--ink)}
.flow-ready .flow-step>*{opacity:0;transform:translateY(16px)}
.flow-ready.is-drawn .flow-step>*{opacity:1;transform:none;transition:opacity .8s var(--node8-ease),transform .9s var(--node8-ease);transition-delay:calc(var(--k) * .5s + .15s + var(--flow-lead))}
@media(max-width:1000px){
  .craft-grid{grid-template-columns:minmax(0,1fr);row-gap:clamp(40px,5vw,56px)}
  .craft-sticky{position:static;padding-right:0}
  .craft-flow{margin-top:clamp(40px,5vw,56px)}
}
@media(max-width:720px){
  .craft-main{row-gap:28px}
  .craft-shot{gap:10px}
  .craft-shot figcaption{margin-top:4px}
  .flow-steps{grid-template-columns:minmax(0,1fr);row-gap:36px;padding-left:30px}
  .flow-steps::before,.flow-steps::after{left:4px;right:auto;top:11px;bottom:0;width:1px;height:auto}
  .flow-steps::after{transform-origin:50% 0}
  .flow-ready .flow-steps::after{transform:scaleY(0)}
  .flow-step{padding:0}
  .flow-step::before{left:-30px;top:7px}
  .flow-step:last-child::after{content:"";position:absolute;z-index:1;left:-30px;top:16px;bottom:0;width:9px;background:#fff}
}

/* about-gallery.css */
/* About 03 (bundle 5, director 2026-10-04): the amount of work, after the director's reference (Framer "Infinite Img
   Gallery"): a field of pictures that wraps in every direction, in a frame, the Node8 logo fixed in the middle under it.
   Third pass with the director the same day: pictures in three sizes mixed at random whatever their shape, laid out once
   so they look free but keep even gaps. Since 2026-10-05 (director: "우주가 블랙이니까" — the copy speaks of small
   universes) they float in space: a near-black frame with small stars in three depths and a white logo; the stars shift a
   little with the mouse and drift slower than the pictures while the table is dragged (script.js draws them, from a fixed
   seed). The stone grey table before it read well but plain; the very light grey of the second pass read as an empty box. The layout is in the HTML in 1920 px
   (--x --y --w --h, repeating in a tile of --tile-w × --tile-h) and --u is one of those px at this width. Titles show on
   a PC only under the mouse (forty white titles on dark shades made it look busy); touch screens keep them, except on
   the small pictures. The copy above (label, Title, Korean line) is a head row as on every numbered part (about
   redesign 2026-10-04). The frame's sides sit halfway between the frame and the old text margin (--wide-inset, the same
   width as 01's film frame; 39 at 1920), and the same margin
   is left above and below it when it fills the window — but it is never taller than the tile seen at the drag's
   step-back (0.85), so no picture shows twice at once (phones and tablets get a shorter frame). Sizes at 1920 (square
   root of the area): small 135, medium 185, large 261 — about 30 pictures in view. script.js moves .gallery-world,
   steps .gallery-zoom back while the table is dragged, plays the entry (the pictures lie in a pile in the middle and
   spread out) and builds the enlarged view (.gallery-view). */
.about-gallery{--gallery-inset:var(--wide-inset);display:grid;gap:clamp(40px,4.4vw,64px);padding-top:clamp(64px,6.25vw,120px);padding-bottom:clamp(120px,13.5vw,260px)}
.about-gallery-title{margin:22px 0 0;font-size:var(--type-title);line-height:1;letter-spacing:-.045em;font-weight:600;text-wrap:balance}
.gallery-frame{--u:clamp(.5px,calc(100vw / 1920),1px);position:relative;isolation:isolate;height:calc(100vh - var(--gallery-inset) * 2);height:calc(100svh - var(--gallery-inset) * 2);min-height:520px;max-height:min(1080px,calc(var(--tile-h) * var(--u) * .85));margin-inline:calc(var(--gallery-inset) - var(--grid-content-inset));overflow:hidden;overflow:clip;border:1px solid var(--space);border-radius:var(--radius);background:var(--space)}
/* The night of the frame and of the large view (the view hangs from the page, so the colour sits on it). The star
   canvases are stretched to their box; script.js draws them at the screen's pixel density. */
.page-home{--space:#06070a}
.gallery-stars,.gallery-view-stars{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.gallery-stars{z-index:-1}
/* "Node8" alone (director 2026-10-04), white on the night (2026-10-05 — the black file inverted); the layout keeps the
   middle of the tile clear for it, and dragged pictures pass over it. Hidden while the pictures lie in their pile. */
.gallery-logo{position:absolute;z-index:0;left:50%;top:50%;width:calc(203 * var(--u));height:auto;transform:translate(-50%,-50%);filter:invert(1);pointer-events:none;user-select:none;-webkit-user-select:none}
.gallery-frame.is-piled .gallery-logo{opacity:0}
.gallery-field{position:absolute;z-index:1;inset:0;overflow:hidden;overflow:clip;touch-action:pan-y;user-select:none;-webkit-user-select:none}
@media(hover:hover){.gallery-field{cursor:grab}}
.gallery-field.is-dragging{cursor:grabbing}
.gallery-zoom{position:absolute;inset:0;transform-origin:50% 50%;will-change:transform}
.gallery-world{position:absolute;left:0;top:0;width:calc(var(--tile-w) * var(--u));height:calc(var(--tile-h) * var(--u));margin:0;padding:0;list-style:none;will-change:transform}
.gallery-card{position:absolute;left:calc(var(--x) * var(--u));top:calc(var(--y) * var(--u));width:calc(var(--w) * var(--u));height:calc(var(--h) * var(--u))}
.gallery-card button{position:relative;display:block;width:100%;height:100%;margin:0;padding:0;border:0;border-radius:6px;overflow:hidden;background:#15161b;color:#fff;font:inherit;text-align:left;cursor:inherit;-webkit-user-drag:none}
.gallery-card img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;pointer-events:none;-webkit-user-drag:none;transition:transform .9s var(--node8-ease)}
@media(hover:hover){.gallery-card button:hover img{transform:scale(1.04)}.gallery-field.is-dragging .gallery-card button:hover img{transform:none}}
/* A low shade only, as 02's cells, so the white title reads without a dark card. */
.gallery-card button::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(12,12,12,.55) 0%,rgba(12,12,12,.18) 32%,rgba(12,12,12,0) 58%);pointer-events:none}
/* Title in the picture (the reference: 18px semibold, 20px in, on a 300 card), following the picture's width. */
.gallery-title{position:absolute;z-index:1;left:max(10px,calc(var(--w) * var(--u) * .066));right:max(10px,calc(var(--w) * var(--u) * .066));bottom:max(9px,calc(var(--w) * var(--u) * .06));display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:clamp(13px,calc(var(--w) * var(--u) * .065),18px);line-height:1.25;letter-spacing:-.01em;font-weight:600}
@media(hover:hover) and (min-width:1001px){
  .gallery-title{opacity:0;transform:translateY(6px);transition:opacity .35s var(--node8-ease),transform .6s var(--node8-ease)}
  .gallery-card button::after{opacity:0;transition:opacity .35s var(--node8-ease)}
  .gallery-card button:hover .gallery-title,.gallery-card button:focus-visible .gallery-title{opacity:1;transform:none}
  .gallery-card button:hover::after,.gallery-card button:focus-visible::after{opacity:1}
  .gallery-field.is-dragging .gallery-card button:hover .gallery-title,.gallery-field.is-dragging .gallery-card button:hover::after{opacity:0}
}
/* Touch screens show the titles all the time; a small picture has no room for one. */
@media(hover:none),(max-width:1000px){.gallery-card.is-s .gallery-title,.gallery-card.is-s button::after{display:none}}
.gallery-card button:focus-visible{outline:2px solid var(--node8-violet);outline-offset:-4px}
/* The card that is open in the large view leaves its slot empty, as in the reference. */
.gallery-card.is-lifted button{visibility:hidden}

/* Large view (director 2026-10-04): the picture at its own ratio, no back side; a click on the picture puts it back.
   Arrows go through the pictures in order. Its project name sits bottom left as the title under the mouse does (asked
   for later the same day), coming in once the picture has landed. Since 2026-10-05 it opens in the gallery's night —
   the stars across the whole window — instead of on a white veil. */
.gallery-view{position:fixed;inset:0;z-index:60;touch-action:none}
.gallery-view[hidden]{display:none}
.gallery-view-veil{position:absolute;inset:0;background:var(--space);opacity:0;transition:opacity .45s var(--node8-ease)}
.gallery-view.is-open .gallery-view-veil{opacity:1}
.gallery-view-pic{position:fixed;display:block;margin:0;padding:0;border:0;border-radius:6px;overflow:hidden;background:#15161b;cursor:zoom-out}
.gallery-view-pic img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;-webkit-user-drag:none}
.gallery-view-pic.is-flying{transition:left .7s var(--node8-ease),top .7s var(--node8-ease),width .7s var(--node8-ease),height .7s var(--node8-ease)}
/* The card's low shade and title, the title at the Sub size of the type scale. */
.gallery-view-pic::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(12,12,12,.5) 0%,rgba(12,12,12,.16) 24%,rgba(12,12,12,0) 44%);opacity:0;transition:opacity .35s var(--node8-ease);pointer-events:none}
.gallery-view-title{position:absolute;z-index:1;left:clamp(16px,1.5vw,28px);right:clamp(16px,1.5vw,28px);bottom:clamp(14px,1.3vw,24px);display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;font-size:var(--type-sub);line-height:1.3;letter-spacing:-.01em;font-weight:600;color:#fff;text-align:left;opacity:0;transform:translateY(8px);transition:opacity .35s var(--node8-ease),transform .6s var(--node8-ease)}
/* Live Action / AI before the title (director 2026-10-07: only here, not on the cards; at the start, so it keeps one
   place from picture to picture), in the site's chip on a picture: dark glass and a white dot, at the Label size. A
   mixed work carries both. */
.gallery-view-chips{display:flex;gap:6px}
.gallery-view-chips:empty{display:none}
.gallery-view-chip{padding:5px 11px;border-radius:999px;background:rgba(19,19,19,.5);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:var(--type-label);line-height:1.2;font-weight:500;letter-spacing:.01em;color:rgba(255,255,255,.94);white-space:nowrap}
.gallery-view-chip::before{content:"";display:inline-block;width:5px;height:5px;margin-right:7px;border-radius:50%;background:currentColor;vertical-align:middle;transform:translateY(-1px)}
.gallery-view.is-open .gallery-view-pic::after,.gallery-view.is-open .gallery-view-title{opacity:1;transform:none;transition-delay:.45s}
.gallery-view-pic:focus-visible{outline:2px solid var(--node8-violet);outline-offset:4px}
/* Arrows: light frosted glass on the night, a thin white chevron (the dark chip they had on the white veil would not
   show on black). */
.gallery-view-arrow{position:fixed;top:50%;width:52px;height:52px;margin:-26px 0 0;padding:0;display:grid;place-items:center;border:0;border-radius:50%;background:rgba(255,255,255,.12);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;cursor:pointer;opacity:0;transition:opacity .4s var(--node8-ease),background-color .25s ease}
.gallery-view.is-open .gallery-view-arrow{opacity:1;transition-delay:.2s,0s}
.gallery-view-arrow.is-prev{left:clamp(16px,3vw,56px)}
.gallery-view-arrow.is-next{right:clamp(16px,3vw,56px)}
.gallery-view-arrow:hover{background:rgba(255,255,255,.24)}
.gallery-view-arrow:focus-visible{outline:2px solid var(--node8-violet);outline-offset:3px}
.gallery-view-arrow svg{display:block}
@media(max-width:1000px){
  .about-gallery{padding-bottom:clamp(140px,18vw,180px)}
}
@media(max-width:720px){
  .about-gallery{gap:36px;padding-bottom:160px}
  .about-gallery-title{margin-top:18px}
  .gallery-frame{border-radius:15px}
  /* Phone: the picture takes the width; the two arrows sit together under it (a sideways swipe works as well). */
  .gallery-view-arrow{top:auto;bottom:calc(24px + env(safe-area-inset-bottom));width:48px;height:48px;margin:0}
  .gallery-view-arrow.is-prev{left:calc(50% - 56px)}
  .gallery-view-arrow.is-next{right:calc(50% - 56px)}
}
@media(prefers-reduced-motion:reduce){
  .gallery-card img,.gallery-view-veil,.gallery-view-arrow,.gallery-title,.gallery-card button::after,.gallery-view-title,.gallery-view-pic::after{transition:none}
}

/* motion.css */
/* Motion standard (bundle 5, confirmed by the director 2026-10-02): one curve for the whole site,
   elements enter in turn, fast start and a long soft stop. Only transform and opacity move. */
:root{--node8-ease:cubic-bezier(.16,1,.3,1)}
@keyframes node8-rise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}

/* Home hero text: Korean line, name, then the mood line, once on load. The video itself is left as it is. */
.hero [data-tune-id="hero-eyebrow"],.hero [data-tune-id="hero-title"],.hero [data-tune-id="hero-note"]{animation:node8-rise 1.1s var(--node8-ease) both}
.hero [data-tune-id="hero-title"]{animation-delay:.11s}
.hero [data-tune-id="hero-note"]{animation-delay:.22s}
/* About hero: the three words of the title come up in turn on load, on the same beat as the home hero's three lines. */
.about-services-hero .tune-w{display:inline-block;animation:node8-rise 1.1s var(--node8-ease) both;animation-delay:calc(var(--w,0) * .11s)}
/* Home and About hero text groups sink into the frame as the page scrolls; script.js sets the transform. */
.hero .hero-content{will-change:transform}

/* Sections: children marked data-rise come up in turn when their data-rise-group first comes into view.
   script.js adds rise-ready only to groups the visitor has not seen yet, so nothing is hidden without the script. */
.rise-ready [data-rise]{opacity:0;transform:translateY(28px)}
.rise-ready.rise-in [data-rise]{opacity:1;transform:none;transition:opacity 1.1s var(--node8-ease),transform 1.1s var(--node8-ease);transition-delay:calc(var(--rise-i,0) * .11s)}
/* Section heads (director 2026-10-05): the hairline over a numbered head draws from left to right as its part comes up,
   so every part opens the same way — the site's line gesture (the M4 cards, the principles, the process). Also the rule
   over the home logos (just before the logos come up) and the one over About 02 (with its sticky column). */
.rise-ready .head-row::before,.head-row.rise-ready::before,.rise-ready .logos-rule,.craft-grid:has(.craft-sticky.rise-ready)::before{transform:scaleX(0)}
.rise-ready.rise-in .head-row::before,.head-row.rise-ready.rise-in::before,.craft-grid:has(.craft-sticky.rise-in)::before{transform:none;transition:transform 1.1s var(--node8-ease)}
.rise-ready.rise-in .logos-rule{transform:none;transition:transform 1.1s var(--node8-ease) .44s}

@media (prefers-reduced-motion:reduce){
  .hero [data-tune-id="hero-eyebrow"],.hero [data-tune-id="hero-title"],.hero [data-tune-id="hero-note"],.about-services-hero .tune-w{animation:none}
}

/* tuned.css */
/* Generated by scripts/bake-tune.mjs from tune-overrides.js (Tune panel values). Do not edit by hand. */
:root:not(.node8-tuning) [data-tune-id="footer-media"] img{object-position:50% 50%!important}
@media (min-width:1001px){
:root:not(.node8-tuning) [data-tune-id="hero-eyebrow"]{translate:6px 14px!important;font-size:17px!important;letter-spacing:-0.34px!important}
:root:not(.node8-tuning) [data-tune-id="hero-title"]{font-size:145px!important;letter-spacing:-4.3px!important;line-height:0.87!important}
:root:not(.node8-tuning) [data-tune-id="hero-note"]{translate:-29px 0px!important}
:root:not(.node8-tuning) [data-tune-id="recent-label"]{font-size:16px!important;font-weight:500!important;letter-spacing:1.28px!important}
:root:not(.node8-tuning) [data-tune-id="footer-title"]{font-size:min(198px, calc(198 * var(--tune-fit)))!important;letter-spacing:max(-8.2px, calc(-8.2 * var(--tune-fit)))!important}
[data-tune-id="footer-title"]{--tune-fit:calc((100vw - 24px - 2 * clamp(20px, 2.8vw, 40px)) / 1816)}
:root:not(.node8-tuning) [data-tune-id="footer-media"]{translate:12px 0px!important;width:509px!important}
:root:not(.node8-tuning) [data-tune-id="about-manifesto-label"]{font-size:16px!important}
:root:not(.node8-tuning) [data-tune-id="footer-address"]{font-size:16px!important}
}
@media (min-width:721px) and (max-width:1000px){
:root:not(.node8-tuning) [data-tune-id="footer-address"]{font-size:16px!important}
}
@media (max-width:720px){
:root:not(.node8-tuning) [data-tune-id="about-manifesto-title"]{line-height:1!important}
:root:not(.node8-tuning) [data-tune-id="footer-address"]{font-size:16px!important}
}
.tune-br-d,.tune-br-t,.tune-br-m,.tune-br-dt,.tune-br-dm,.tune-br-tm{display:none}
@media (min-width:1001px){.tune-br-d,.tune-br-dt,.tune-br-dm{display:inline}}
@media (min-width:721px) and (max-width:1000px){.tune-br-t,.tune-br-dt,.tune-br-tm{display:inline}}
@media (max-width:720px){.tune-br-m,.tune-br-dm,.tune-br-tm{display:inline}}
