/* Pretendard Variable 을 글자 범위별 네 조각으로 나눠, 화면에 나온 글자가 든 조각만 받는다(원본 2MB 한 파일 대신).
   조각과 unicode-range 는 원본 cmap 에서 겹치지 않게 만들었다. 다시 만드는 법: docs/seo/setup.md "웹폰트 조각" */
/* 라틴 문자와 숫자, 문장부호 */
@font-face {
  font-family: "Pretendard Variable";
  src: url("/assets/PretendardVariable-latin-d6cd582c.woff2") format("woff2");
  font-weight: 100 900;
  font-display: swap;
  unicode-range: U+20-7E, U+A0-148, U+14A-1C3, U+1C5-24F, U+2000-200D, U+2010-2027, U+202F-2060, U+20A0-20BF, U+2100-2101, U+2103, U+2105-2106, U+2109, U+2113, U+2116-2117, U+211E-2123, U+2126, U+212A-212B, U+212E, U+2132, U+213B, U+214D, U+214F, U+2153, U+215A-2188, U+2190-2199, U+21A9-21AA, U+21B0-21B1, U+21B3-21B5, U+21BA-21BB, U+21D0, U+21D2, U+21D4, U+21DE-21DF, U+21E4-21E5, U+21E7, U+21EA;
}
/* 기호, 가나, 한글 자모 */
@font-face {
  font-family: "Pretendard Variable";
  src: url("/assets/PretendardVariable-symbols-a9070103.woff2") format("woff2");
  font-weight: 100 900;
  font-display: swap;
  unicode-range: U+250-31E, U+321-377, U+37A-37F, U+384-38A, U+38C, U+38E-3A1, U+3A3-3E1, U+3F0-49D, U+4A0-4FF, U+52F, U+E3F, U+1D43, U+1D47-1D49, U+1D4D, U+1D4F-1D50, U+1D52, U+1D56-1D58, U+1D5B, U+1D62-1D65, U+1D9C, U+1DA0, U+1DBB, U+1DBF-1DF5, U+1DFC-1F15, U+1F18-1F1D, U+1F20-1F45, U+1F48-1F4D, U+1F50-1F57, U+1F59, U+1F5B, U+1F5D, U+1F5F-1F7D, U+1F80-1FB4, U+1FB6-1FC4, U+1FC6-1FD3, U+1FD6-1FDB, U+1FDD-1FEF, U+1FF2-1FF4, U+1FF6-1FFE, U+2070-2071, U+2074-208E, U+2090-209C, U+20DB-20DE, U+20E8, U+20F0, U+2202, U+2205-2206, U+220F, U+2211-2212, U+221A, U+221E, U+222B, U+2248, U+2260, U+2264-2265, U+226A-226B, U+22EF, U+2303, U+2305, U+2318, U+2325-2327, U+2329-232B, U+2380, U+2387, U+238B, U+23CE-23CF, U+2423, U+2460-2473, U+24B6-24CF, U+24EA-24F4, U+24FF, U+25A0-25A2, U+25AA, U+25B2-25B3, U+25B6-25B7, U+25BA-25BD, U+25C0-25C1, U+25C4-25C7, U+25CA-25CB, U+25CF, U+25E6, U+25EF, U+2600, U+2605-2606, U+263C, U+2661, U+2665, U+266A, U+26A0, U+2713, U+2717, U+2756, U+2776-2789, U+27EF, U+27F5-27FA, U+2985-2986, U+2B06, U+2B12-2B13, U+2B1C, U+2C7C, U+2C7F, U+2DFF, U+2E18, U+3000-3003, U+3008-3011, U+3014-301F, U+3041-3094, U+3099-309E, U+30A1-30FE, U+3131-3164, U+318D, U+321C, U+3380-3384, U+3388-33CA, U+33CF-33D0, U+33D3, U+33D6, U+33D8, U+33DB-33DD, U+A69F, U+A7FF, U+A92E, U+E000, U+E002-E05E, U+E06A-E080, U+E093-E096, U+E0A5-E0E6, U+E0F3-E11C, U+E11E-E12A, U+E131-E147, U+E14E-E164, U+EE01-EE05, U+F000-F057, U+F6C3, U+FE20-FE2D, U+FEFF, U+FF01-FF60, U+FFA1-FFBE, U+FFC2-FFC7, U+FFCA-FFCF, U+FFD2-FFD7, U+FFDA-FFDC, U+FFE0-FFE1, U+FFE5-FFE6, U+1F10B, U+1F12F-1F149, U+1F150-1F16B, U+1F170-1F189, U+1F850, U+1F852, U+F0000-F0002;
}
/* 상용 한글 2,350자(KS X 1001) */
@font-face {
  font-family: "Pretendard Variable";
  src: url("/assets/PretendardVariable-hangul-d60b13fb.woff2") format("woff2");
  font-weight: 100 900;
  font-display: swap;
  unicode-range: U+AC00-AC01, U+AC04, U+AC07-AC0A, U+AC10-AC17, U+AC19-AC1D, U+AC20, U+AC24, U+AC2C-AC2D, U+AC2F-AC31, U+AC38-AC39, U+AC3C, U+AC40, U+AC4B, U+AC4D, U+AC54, U+AC58, U+AC5C, U+AC70-AC71, U+AC74, U+AC77-AC78, U+AC7A, U+AC80-AC81, U+AC83-AC86, U+AC89-AC8C, U+AC90, U+AC94, U+AC9C-AC9D, U+AC9F-ACA1, U+ACA8-ACAA, U+ACAC, U+ACAF-ACB0, U+ACB8-ACB9, U+ACBB-ACBD, U+ACC1, U+ACC4, U+ACC8, U+ACCC, U+ACD5, U+ACD7, U+ACE0-ACE1, U+ACE4, U+ACE7-ACE8, U+ACEA, U+ACEC, U+ACEF-ACF1, U+ACF3, U+ACF5-ACF6, U+ACFC-ACFD, U+AD00, U+AD04, U+AD06, U+AD0C-AD0D, U+AD0F, U+AD11, U+AD18, U+AD1C, U+AD20, U+AD29, U+AD2C-AD2D, U+AD34-AD35, U+AD38, U+AD3C, U+AD44-AD45, U+AD47, U+AD49, U+AD50, U+AD54, U+AD58, U+AD61, U+AD63, U+AD6C-AD6D, U+AD70, U+AD73-AD76, U+AD7B-AD7D, U+AD7F, U+AD81-AD82, U+AD88-AD89, U+AD8C, U+AD90, U+AD9C-AD9D, U+ADA4, U+ADB7, U+ADC0-ADC1, U+ADC4, U+ADC8, U+ADD0-ADD1, U+ADD3, U+ADDC, U+ADE0, U+ADE4, U+ADF8-ADF9, U+ADFC, U+ADFF-AE01, U+AE08-AE09, U+AE0B, U+AE0D, U+AE14, U+AE30-AE31, U+AE34, U+AE37-AE38, U+AE3A, U+AE40-AE41, U+AE43, U+AE45-AE46, U+AE4A, U+AE4C-AE4E, U+AE50, U+AE54, U+AE56, U+AE5C-AE5D, U+AE5F-AE61, U+AE65, U+AE68-AE69, U+AE6C, U+AE70, U+AE78-AE79, U+AE7B-AE7D, U+AE84-AE85, U+AE8C, U+AEBC-AEBE, U+AEC0, U+AEC4, U+AECC-AECD, U+AECF-AED1, U+AED8-AED9, U+AEDC, U+AEE8, U+AEEB, U+AEED, U+AEF4, U+AEF8, U+AEFC, U+AF07-AF08, U+AF0D, U+AF10, U+AF2C-AF2D, U+AF30, U+AF32, U+AF34, U+AF3C-AF3D, U+AF3F, U+AF41-AF43, U+AF48-AF49, U+AF50, U+AF5C-AF5D, U+AF64-AF65, U+AF79, U+AF80, U+AF84, U+AF88, U+AF90-AF91, U+AF95, U+AF9C, U+AFB8-AFB9, U+AFBC, U+AFC0, U+AFC7-AFC9, U+AFCB, U+AFCD-AFCE, U+AFD4, U+AFDC, U+AFE8-AFE9, U+AFF0-AFF1, U+AFF4, U+AFF8, U+B000-B001, U+B004, U+B00C, U+B010, U+B014, U+B01C-B01D, U+B028, U+B044-B045, U+B048, U+B04A, U+B04C, U+B04E, U+B053-B055, U+B057, U+B059, U+B05D, U+B07C-B07D, U+B080, U+B084, U+B08C-B08D, U+B08F, U+B091, U+B098-B09A, U+B09C, U+B09F-B0A2, U+B0A8-B0A9, U+B0AB-B0AF, U+B0B1, U+B0B3-B0B5, U+B0B8, U+B0BC, U+B0C4-B0C5, U+B0C7-B0C9, U+B0D0-B0D1, U+B0D4, U+B0D8, U+B0E0, U+B0E5, U+B108-B109, U+B10B-B10C, U+B110, U+B112-B113, U+B118-B119, U+B11B-B11D, U+B123-B125, U+B128, U+B12C, U+B134-B135, U+B137-B139, U+B140-B141, U+B144, U+B148, U+B150-B151, U+B154-B155, U+B158, U+B15C, U+B160, U+B178-B179, U+B17C, U+B180, U+B182, U+B188-B189, U+B18B, U+B18D, U+B192-B194, U+B198, U+B19C, U+B1A8, U+B1CC, U+B1D0, U+B1D4, U+B1DC-B1DD, U+B1DF, U+B1E8-B1E9, U+B1EC, U+B1F0, U+B1F9, U+B1FB, U+B1FD, U+B204-B205, U+B208, U+B20B-B20C, U+B214-B215, U+B217, U+B219, U+B220, U+B234, U+B23C, U+B258, U+B25C, U+B260, U+B268-B269, U+B274-B275, U+B27C, U+B284-B285, U+B289, U+B290-B291, U+B294, U+B298-B29A, U+B2A0-B2A1, U+B2A3, U+B2A5-B2A6, U+B2AA, U+B2AC, U+B2B0, U+B2B4, U+B2C8-B2C9, U+B2CC, U+B2D0, U+B2D2, U+B2D8-B2D9, U+B2DB, U+B2DD, U+B2E2, U+B2E4-B2E6, U+B2E8, U+B2EB-B2EF, U+B2F3-B2F5, U+B2F7-B2FB, U+B2FF-B301, U+B304, U+B308, U+B310-B311, U+B313-B315, U+B31C, U+B354-B356, U+B358, U+B35B-B35C, U+B35E-B35F, U+B364-B365, U+B367, U+B369, U+B36B, U+B36E, U+B370-B371, U+B374, U+B378, U+B380-B381, U+B383-B385, U+B38C, U+B390, U+B394, U+B3A0-B3A1, U+B3A8, U+B3AC, U+B3C4-B3C5, U+B3C8, U+B3CB-B3CC, U+B3CE, U+B3D0, U+B3D4-B3D5, U+B3D7, U+B3D9, U+B3DB, U+B3DD, U+B3E0, U+B3E4, U+B3E8, U+B3FC, U+B410, U+B418, U+B41C, U+B420, U+B428-B429, U+B42B, U+B434, U+B450-B451, U+B454, U+B458, U+B460-B461, U+B463, U+B465, U+B46C, U+B480, U+B488, U+B49D, U+B4A4, U+B4A8, U+B4AC, U+B4B5, U+B4B7, U+B4B9, U+B4C0, U+B4C4, U+B4C8, U+B4D0, U+B4D5, U+B4DC-B4DD, U+B4E0, U+B4E3-B4E4, U+B4E6, U+B4EC-B4ED, U+B4EF, U+B4F1, U+B4F8, U+B514-B515, U+B518, U+B51B-B51C, U+B524-B525, U+B527-B52A, U+B530-B531, U+B534, U+B538, U+B540-B541, U+B543-B545, U+B54B-B54D, U+B550, U+B554, U+B55C-B55D, U+B55F-B561, U+B5A0-B5A1, U+B5A4, U+B5A8, U+B5AA-B5AB, U+B5B0-B5B1, U+B5B3-B5B5, U+B5BB-B5BD, U+B5C0, U+B5C4, U+B5CC-B5CD, U+B5CF-B5D1, U+B5D8, U+B5EC, U+B610-B611, U+B614, U+B618, U+B625, U+B62C, U+B634, U+B648, U+B664, U+B668, U+B69C-B69D, U+B6A0, U+B6A4, U+B6AB-B6AC, U+B6B1, U+B6D4, U+B6F0, U+B6F4, U+B6F8, U+B700-B701, U+B705, U+B728-B729, U+B72C, U+B72F-B730, U+B738-B739, U+B73B, U+B744, U+B748, U+B74C, U+B754-B755, U+B760, U+B764, U+B768, U+B770-B771, U+B773, U+B775, U+B77C-B77D, U+B780, U+B784, U+B78C-B78D, U+B78F-B792, U+B796-B799, U+B79C, U+B7A0, U+B7A8-B7A9, U+B7AB-B7AD, U+B7B4-B7B5, U+B7B8, U+B7C7, U+B7C9, U+B7EC-B7ED, U+B7F0, U+B7F4, U+B7FC-B7FD, U+B7FF-B801, U+B807-B809, U+B80C, U+B810, U+B818-B819, U+B81B, U+B81D, U+B824-B825, U+B828, U+B82C, U+B834-B835, U+B837-B839, U+B840, U+B844, U+B851, U+B853, U+B85C-B85D, U+B860, U+B864, U+B86C-B86D, U+B86F, U+B871, U+B878, U+B87C, U+B88D, U+B8A8, U+B8B0, U+B8B4, U+B8B8, U+B8C0-B8C1, U+B8C3, U+B8C5, U+B8CC, U+B8D0, U+B8D4, U+B8DD, U+B8DF, U+B8E1, U+B8E8-B8E9, U+B8EC, U+B8F0, U+B8F8-B8F9, U+B8FB, U+B8FD, U+B904, U+B918, U+B920, U+B93C-B93D, U+B940, U+B944, U+B94C, U+B94F, U+B951, U+B958-B959, U+B95C, U+B960, U+B968-B969, U+B96B, U+B96D, U+B974-B975, U+B978, U+B97C, U+B984-B985, U+B987, U+B989-B98A, U+B98D-B98E, U+B9AC-B9AD, U+B9B0, U+B9B4, U+B9BC-B9BD, U+B9BF, U+B9C1, U+B9C8-B9C9, U+B9CC, U+B9CE-B9D2, U+B9D8-B9D9, U+B9DB, U+B9DD-B9DE, U+B9E1, U+B9E3-B9E5, U+B9E8, U+B9EC, U+B9F4-B9F5, U+B9F7-B9FA, U+BA00-BA01, U+BA08, U+BA15, U+BA38-BA39, U+BA3C, U+BA40, U+BA42, U+BA48-BA49, U+BA4B, U+BA4D-BA4E, U+BA53-BA55, U+BA58, U+BA5C, U+BA64-BA65, U+BA67-BA69, U+BA70-BA71, U+BA74, U+BA78, U+BA83-BA85, U+BA87, U+BA8C, U+BAA8-BAA9, U+BAAB-BAAC, U+BAB0, U+BAB2, U+BAB8-BAB9, U+BABB, U+BABD, U+BAC4, U+BAC8, U+BAD8-BAD9, U+BAFC, U+BB00, U+BB04, U+BB0D, U+BB0F, U+BB11, U+BB18, U+BB1C, U+BB20, U+BB29, U+BB2B, U+BB34-BB36, U+BB38, U+BB3B-BB3E, U+BB44-BB45, U+BB47, U+BB49, U+BB4D, U+BB4F-BB50, U+BB54, U+BB58, U+BB61, U+BB63, U+BB6C, U+BB88, U+BB8C, U+BB90, U+BBA4, U+BBA8, U+BBAC, U+BBB4, U+BBB7, U+BBC0, U+BBC4, U+BBC8, U+BBD0, U+BBD3, U+BBF8-BBF9, U+BBFC, U+BBFF-BC00, U+BC02, U+BC08-BC09, U+BC0B-BC0D, U+BC0F, U+BC11, U+BC14-BC18, U+BC1B-BC1F, U+BC24-BC25, U+BC27, U+BC29, U+BC2D, U+BC30-BC31, U+BC34, U+BC38, U+BC40-BC41, U+BC43-BC45, U+BC49, U+BC4C-BC4D, U+BC50, U+BC5D, U+BC84-BC85, U+BC88, U+BC8B-BC8C, U+BC8E, U+BC94-BC95, U+BC97, U+BC99-BC9A, U+BCA0-BCA1, U+BCA4, U+BCA7-BCA8, U+BCB0-BCB1, U+BCB3-BCB5, U+BCBC-BCBD, U+BCC0, U+BCC4, U+BCCD, U+BCCF-BCD1, U+BCD5, U+BCD8, U+BCDC, U+BCF4-BCF6, U+BCF8, U+BCFC, U+BD04-BD05, U+BD07, U+BD09, U+BD10, U+BD14, U+BD24, U+BD2C, U+BD40, U+BD48-BD49, U+BD4C, U+BD50, U+BD58-BD59, U+BD64, U+BD68, U+BD80-BD81, U+BD84, U+BD87-BD8A, U+BD90-BD91, U+BD93, U+BD95, U+BD99-BD9A, U+BD9C, U+BDA4, U+BDB0, U+BDB8, U+BDD4-BDD5, U+BDD8, U+BDDC, U+BDE9, U+BDF0, U+BDF4, U+BDF8, U+BE00, U+BE03, U+BE05, U+BE0C-BE0D, U+BE10, U+BE14, U+BE1C-BE1D, U+BE1F, U+BE44-BE45, U+BE48, U+BE4C, U+BE4E, U+BE54-BE55, U+BE57, U+BE59-BE5B, U+BE60-BE61, U+BE64, U+BE68, U+BE6A, U+BE70-BE71, U+BE73-BE75, U+BE7B-BE7D, U+BE80, U+BE84, U+BE8C-BE8D, U+BE8F-BE91, U+BE98-BE99, U+BEA8, U+BED0-BED1, U+BED4, U+BED7-BED8, U+BEE0, U+BEE3-BEE5, U+BEEC, U+BF01, U+BF08-BF09, U+BF18-BF19, U+BF1B-BF1D, U+BF40-BF41, U+BF44, U+BF48, U+BF50-BF51, U+BF55, U+BF94, U+BFB0, U+BFC5, U+BFCC-BFCD, U+BFD0, U+BFD4, U+BFDC, U+BFDF, U+BFE1, U+C03C, U+C051, U+C058, U+C05C, U+C060, U+C068-C069, U+C090-C091, U+C094, U+C098, U+C0A0-C0A1, U+C0A3, U+C0A5, U+C0AC-C0AD, U+C0AF-C0B0, U+C0B3-C0B6, U+C0BC-C0BD, U+C0BF-C0C1, U+C0C5, U+C0C8-C0C9, U+C0CC, U+C0D0, U+C0D8-C0D9, U+C0DB-C0DD, U+C0E4-C0E5, U+C0E8, U+C0EC, U+C0F4-C0F5, U+C0F7, U+C0F9, U+C100, U+C104, U+C108, U+C110, U+C115, U+C11C-C120, U+C123-C124, U+C126-C127, U+C12C-C12D, U+C12F-C131, U+C136, U+C138-C139, U+C13C, U+C140, U+C148-C149, U+C14B-C14D, U+C154-C155, U+C158, U+C15C, U+C164-C165, U+C167-C169, U+C170, U+C174, U+C178, U+C185, U+C18C-C18E, U+C190, U+C194, U+C196, U+C19C-C19D, U+C19F, U+C1A1, U+C1A5, U+C1A8-C1A9, U+C1AC, U+C1B0, U+C1BD, U+C1C4, U+C1C8, U+C1CC, U+C1D4, U+C1D7-C1D8, U+C1E0, U+C1E4, U+C1E8, U+C1F0-C1F1, U+C1F3, U+C1FC-C1FD, U+C200, U+C204, U+C20C-C20D, U+C20F, U+C211, U+C218-C219, U+C21C, U+C21F-C220, U+C228-C229, U+C22B, U+C22D, U+C22F, U+C231-C232, U+C234, U+C248, U+C250-C251, U+C254, U+C258, U+C260, U+C265, U+C26C-C26D, U+C270, U+C274, U+C27C-C27D, U+C27F, U+C281, U+C288-C289, U+C290, U+C298, U+C29B, U+C29D, U+C2A4-C2A5, U+C2A8, U+C2AC-C2AD, U+C2B4-C2B5, U+C2B7, U+C2B9, U+C2DC-C2DD, U+C2E0, U+C2E3-C2E4, U+C2EB-C2ED, U+C2EF, U+C2F1, U+C2F6, U+C2F8-C2F9, U+C2FB-C2FC, U+C300, U+C308-C309, U+C30C-C30D, U+C313-C315, U+C318, U+C31C, U+C324-C325, U+C328-C329, U+C345, U+C368-C369, U+C36C, U+C370, U+C372, U+C378-C379, U+C37C-C37D, U+C384, U+C388, U+C38C, U+C3C0, U+C3D8-C3D9, U+C3DC, U+C3DF-C3E0, U+C3E2, U+C3E8-C3E9, U+C3ED, U+C3F4-C3F5, U+C3F8, U+C408, U+C410, U+C424, U+C42C, U+C430, U+C434, U+C43C-C43D, U+C448, U+C464-C465, U+C468, U+C46C, U+C474-C475, U+C479, U+C480, U+C494, U+C49C, U+C4B8, U+C4BC, U+C4E9, U+C4F0-C4F1, U+C4F4, U+C4F8, U+C4FA, U+C4FF-C501, U+C50C, U+C510, U+C514, U+C51C, U+C528-C529, U+C52C, U+C530, U+C538-C539, U+C53B, U+C53D, U+C544-C545, U+C548-C54A, U+C54C-C54E, U+C553-C555, U+C557-C559, U+C55D-C55E, U+C560-C561, U+C564, U+C568, U+C570-C571, U+C573-C575, U+C57C-C57D, U+C580, U+C584, U+C587, U+C58C-C58D, U+C58F, U+C591, U+C595, U+C597-C598, U+C59C, U+C5A0, U+C5A9, U+C5B4-C5B5, U+C5B8-C5B9, U+C5BB-C5BE, U+C5C4-C5CA, U+C5CC, U+C5CE, U+C5D0-C5D1, U+C5D4, U+C5D8, U+C5E0-C5E1, U+C5E3, U+C5E5, U+C5EC-C5EE, U+C5F0, U+C5F4, U+C5F6-C5F7, U+C5FC-C601, U+C605-C608, U+C60C, U+C610, U+C618-C619, U+C61B-C61C, U+C624-C625, U+C628, U+C62C-C62E, U+C630, U+C633-C635, U+C637, U+C639, U+C63B, U+C640-C641, U+C644, U+C648, U+C650-C651, U+C653-C655, U+C65C-C65D, U+C660, U+C66C, U+C66F, U+C671, U+C678-C679, U+C67C, U+C680, U+C688-C689, U+C68B, U+C68D, U+C694-C695, U+C698, U+C69C, U+C6A4-C6A5, U+C6A7, U+C6A9, U+C6B0-C6B1, U+C6B4, U+C6B8-C6BA, U+C6C0-C6C1, U+C6C3, U+C6C5, U+C6CC-C6CD, U+C6D0, U+C6D4, U+C6DC-C6DD, U+C6E0-C6E1, U+C6E8-C6E9, U+C6EC, U+C6F0, U+C6F8-C6F9, U+C6FD, U+C704-C705, U+C708, U+C70C, U+C714-C715, U+C717, U+C719, U+C720-C721, U+C724, U+C728, U+C730-C731, U+C733, U+C735, U+C737, U+C73C-C73D, U+C740, U+C744, U+C74A, U+C74C-C74D, U+C74F, U+C751-C758, U+C75C, U+C760, U+C768, U+C76B, U+C774-C775, U+C778, U+C77C-C77E, U+C783-C785, U+C787-C78A, U+C78E, U+C790-C791, U+C794, U+C796-C798, U+C79A, U+C7A0-C7A1, U+C7A3-C7A6, U+C7AC-C7AD, U+C7B0, U+C7B4, U+C7BC-C7BD, U+C7BF-C7C1, U+C7C8-C7C9, U+C7CC, U+C7CE, U+C7D0, U+C7D8, U+C7DD, U+C7E4, U+C7E8, U+C7EC, U+C800-C801, U+C804, U+C808, U+C80A, U+C810-C811, U+C813, U+C815-C816, U+C81C-C81D, U+C820, U+C824, U+C82C-C82D, U+C82F, U+C831, U+C838, U+C83C, U+C840, U+C848-C849, U+C84C-C84D, U+C854, U+C870-C871, U+C874, U+C878, U+C87A, U+C880-C881, U+C883, U+C885-C887, U+C88B-C88D, U+C894, U+C89D, U+C89F, U+C8A1, U+C8A8, U+C8BC-C8BD, U+C8C4, U+C8C8, U+C8CC, U+C8D4-C8D5, U+C8D7, U+C8D9, U+C8E0-C8E1, U+C8E4, U+C8F5, U+C8FC-C8FD, U+C900, U+C904-C906, U+C90C-C90D, U+C90F, U+C911, U+C918, U+C92C, U+C934, U+C950-C951, U+C954, U+C958, U+C960-C961, U+C963, U+C96C, U+C970, U+C974, U+C97C, U+C988-C989, U+C98C, U+C990, U+C998-C999, U+C99B, U+C99D, U+C9C0-C9C1, U+C9C4, U+C9C7-C9C8, U+C9CA, U+C9D0-C9D1, U+C9D3, U+C9D5-C9D6, U+C9D9-C9DA, U+C9DC-C9DD, U+C9E0, U+C9E2, U+C9E4, U+C9E7, U+C9EC-C9ED, U+C9EF-C9F1, U+C9F8-C9F9, U+C9FC, U+CA00, U+CA08-CA09, U+CA0B-CA0D, U+CA14, U+CA18, U+CA29, U+CA4C-CA4D, U+CA50, U+CA54, U+CA5C-CA5D, U+CA5F-CA61, U+CA68, U+CA7D, U+CA84, U+CA98, U+CABC-CABD, U+CAC0, U+CAC4, U+CACC-CACD, U+CACF, U+CAD1, U+CAD3, U+CAD8-CAD9, U+CAE0, U+CAEC, U+CAF4, U+CB08, U+CB10, U+CB14, U+CB18, U+CB20-CB21, U+CB41, U+CB48-CB49, U+CB4C, U+CB50, U+CB58-CB59, U+CB5D, U+CB64, U+CB78-CB79, U+CB9C, U+CBB8, U+CBD4, U+CBE4, U+CBE7, U+CBE9, U+CC0C-CC0D, U+CC10, U+CC14, U+CC1C-CC1D, U+CC21-CC22, U+CC27-CC29, U+CC2C, U+CC2E, U+CC30, U+CC38-CC39, U+CC3B-CC3E, U+CC44-CC45, U+CC48, U+CC4C, U+CC54-CC55, U+CC57-CC59, U+CC60, U+CC64, U+CC66, U+CC68, U+CC70, U+CC75, U+CC98-CC99, U+CC9C, U+CCA0, U+CCA8-CCA9, U+CCAB-CCAD, U+CCB4-CCB5, U+CCB8, U+CCBC, U+CCC4-CCC5, U+CCC7, U+CCC9, U+CCD0, U+CCD4, U+CCE4, U+CCEC, U+CCF0, U+CD01, U+CD08-CD09, U+CD0C, U+CD10, U+CD18-CD19, U+CD1B, U+CD1D, U+CD24, U+CD28, U+CD2C, U+CD39, U+CD5C, U+CD60, U+CD64, U+CD6C-CD6D, U+CD6F, U+CD71, U+CD78, U+CD88, U+CD94-CD95, U+CD98, U+CD9C, U+CDA4-CDA5, U+CDA7, U+CDA9, U+CDB0, U+CDC4, U+CDCC, U+CDD0, U+CDE8, U+CDEC, U+CDF0, U+CDF8-CDF9, U+CDFB, U+CDFD, U+CE04, U+CE08, U+CE0C, U+CE14, U+CE19, U+CE20-CE21, U+CE24, U+CE28, U+CE30-CE31, U+CE33, U+CE35, U+CE58-CE59, U+CE5C, U+CE5F-CE61, U+CE68-CE69, U+CE6B, U+CE6D, U+CE74-CE75, U+CE78, U+CE7C, U+CE84-CE85, U+CE87, U+CE89, U+CE90-CE91, U+CE94, U+CE98, U+CEA0-CEA1, U+CEA3-CEA5, U+CEAC-CEAD, U+CEC1, U+CEE4-CEE5, U+CEE8, U+CEEB-CEEC, U+CEF4-CEF5, U+CEF7-CEF9, U+CF00-CF01, U+CF04, U+CF08, U+CF10-CF11, U+CF13, U+CF15, U+CF1C, U+CF20, U+CF24, U+CF2C-CF2D, U+CF2F-CF31, U+CF38, U+CF54-CF55, U+CF58, U+CF5C, U+CF64-CF65, U+CF67, U+CF69, U+CF70-CF71, U+CF74, U+CF78, U+CF80, U+CF85, U+CF8C, U+CFA1, U+CFA8, U+CFB0, U+CFC4, U+CFE0-CFE1, U+CFE4, U+CFE8, U+CFF0-CFF1, U+CFF3, U+CFF5, U+CFFC, U+D000, U+D004, U+D011, U+D018, U+D02D, U+D034-D035, U+D038, U+D03C, U+D044-D045, U+D047, U+D049, U+D050, U+D054, U+D058, U+D060, U+D06C-D06D, U+D070, U+D074, U+D07C-D07D, U+D081, U+D0A4-D0A5, U+D0A8, U+D0AC, U+D0B4-D0B5, U+D0B7, U+D0B9, U+D0C0-D0C1, U+D0C4, U+D0C8-D0C9, U+D0D0-D0D1, U+D0D3-D0D5, U+D0DC-D0DD, U+D0E0, U+D0E4, U+D0EC-D0ED, U+D0EF-D0F1, U+D0F8, U+D10D, U+D130-D131, U+D134, U+D138, U+D13A, U+D140-D141, U+D143-D145, U+D14C-D14D, U+D150, U+D154, U+D15C-D15D, U+D15F, U+D161, U+D168, U+D16C, U+D17C, U+D184, U+D188, U+D1A0-D1A1, U+D1A4, U+D1A8, U+D1B0-D1B1, U+D1B3, U+D1B5, U+D1BA, U+D1BC, U+D1C0, U+D1D8, U+D1F4, U+D1F8, U+D207, U+D209, U+D210, U+D22C-D22D, U+D230, U+D234, U+D23C-D23D, U+D23F, U+D241, U+D248, U+D25C, U+D264, U+D280-D281, U+D284, U+D288, U+D290-D291, U+D295, U+D29C, U+D2A0, U+D2A4, U+D2AC, U+D2B1, U+D2B8-D2B9, U+D2BC, U+D2BF-D2C0, U+D2C2, U+D2C8-D2C9, U+D2CB, U+D2D4, U+D2D8, U+D2DC, U+D2E4-D2E5, U+D2F0-D2F1, U+D2F4, U+D2F8, U+D300-D301, U+D303, U+D305, U+D30C-D30E, U+D310, U+D314, U+D316, U+D31C-D31D, U+D31F-D321, U+D325, U+D328-D329, U+D32C, U+D330, U+D338-D339, U+D33B-D33D, U+D344-D345, U+D37C-D37D, U+D380, U+D384, U+D38C-D38D, U+D38F-D391, U+D398-D399, U+D39C, U+D3A0, U+D3A8-D3A9, U+D3AB, U+D3AD, U+D3B4, U+D3B8, U+D3BC, U+D3C4-D3C5, U+D3C8-D3C9, U+D3D0, U+D3D8, U+D3E1, U+D3E3, U+D3EC-D3ED, U+D3F0, U+D3F4, U+D3FC-D3FD, U+D3FF, U+D401, U+D408, U+D41D, U+D440, U+D444, U+D45C, U+D460, U+D464, U+D46D, U+D46F, U+D478-D479, U+D47C, U+D47F-D480, U+D482, U+D488-D489, U+D48B, U+D48D, U+D494, U+D4A9, U+D4CC, U+D4D0, U+D4D4, U+D4DC, U+D4DF, U+D4E8, U+D4EC, U+D4F0, U+D4F8, U+D4FB, U+D4FD, U+D504, U+D508, U+D50C, U+D514-D515, U+D517, U+D53C-D53D, U+D540, U+D544, U+D54C-D54D, U+D54F, U+D551, U+D558-D559, U+D55C, U+D560, U+D565, U+D568-D569, U+D56B, U+D56D, U+D574-D575, U+D578, U+D57C, U+D584-D585, U+D587-D589, U+D590, U+D5A5, U+D5C8-D5C9, U+D5CC, U+D5D0, U+D5D2, U+D5D8-D5D9, U+D5DB, U+D5DD, U+D5E4-D5E5, U+D5E8, U+D5EC, U+D5F4-D5F5, U+D5F7, U+D5F9, U+D600-D601, U+D604, U+D608, U+D610-D611, U+D613-D615, U+D61C, U+D620, U+D624, U+D62D, U+D638-D639, U+D63C, U+D640, U+D645, U+D648-D649, U+D64B, U+D64D, U+D651, U+D654-D655, U+D658, U+D65C, U+D667, U+D669, U+D670-D671, U+D674, U+D683, U+D685, U+D68C-D68D, U+D690, U+D694, U+D69D, U+D69F, U+D6A1, U+D6A8, U+D6AC, U+D6B0, U+D6B9, U+D6BB, U+D6C4-D6C5, U+D6C8, U+D6CC, U+D6D1, U+D6D4, U+D6D7, U+D6D9, U+D6E0, U+D6E4, U+D6E8, U+D6F0, U+D6F5, U+D6FC-D6FD, U+D700, U+D704, U+D711, U+D718-D719, U+D71C, U+D720, U+D728-D729, U+D72B, U+D72D, U+D734-D735, U+D738, U+D73C, U+D744, U+D747, U+D749, U+D750-D751, U+D754, U+D756-D759, U+D760-D761, U+D763, U+D765, U+D769, U+D76C, U+D770, U+D774, U+D77C-D77D, U+D781, U+D788-D789, U+D78C, U+D790, U+D798-D799, U+D79B, U+D79D;
}
/* 나머지 한글 음절 */
@font-face {
  font-family: "Pretendard Variable";
  src: url("/assets/PretendardVariable-hangul-ext-ebad3c35.woff2") format("woff2");
  font-weight: 100 900;
  font-display: swap;
  unicode-range: U+AC02-AC03, U+AC05-AC06, U+AC0B-AC0F, U+AC18, U+AC1E-AC1F, U+AC21-AC23, U+AC25-AC2B, U+AC2E, U+AC32-AC37, U+AC3A-AC3B, U+AC3D-AC3F, U+AC41-AC4A, U+AC4C, U+AC4E-AC53, U+AC55-AC57, U+AC59-AC5B, U+AC5D-AC6F, U+AC72-AC73, U+AC75-AC76, U+AC79, U+AC7B-AC7F, U+AC82, U+AC87-AC88, U+AC8D-AC8F, U+AC91-AC93, U+AC95-AC9B, U+AC9E, U+ACA2-ACA7, U+ACAB, U+ACAD-ACAE, U+ACB1-ACB7, U+ACBA, U+ACBE-ACC0, U+ACC2-ACC3, U+ACC5-ACC7, U+ACC9-ACCB, U+ACCD-ACD4, U+ACD6, U+ACD8-ACDF, U+ACE2-ACE3, U+ACE5-ACE6, U+ACE9, U+ACEB, U+ACED-ACEE, U+ACF2, U+ACF4, U+ACF7-ACFB, U+ACFE-ACFF, U+AD01-AD03, U+AD05, U+AD07-AD0B, U+AD0E, U+AD10, U+AD12-AD17, U+AD19-AD1B, U+AD1D-AD1F, U+AD21-AD28, U+AD2A-AD2B, U+AD2E-AD33, U+AD36-AD37, U+AD39-AD3B, U+AD3D-AD43, U+AD46, U+AD48, U+AD4A-AD4F, U+AD51-AD53, U+AD55-AD57, U+AD59-AD60, U+AD62, U+AD64-AD6B, U+AD6E-AD6F, U+AD71-AD72, U+AD77-AD7A, U+AD7E, U+AD80, U+AD83-AD87, U+AD8A-AD8B, U+AD8D-AD8F, U+AD91-AD9B, U+AD9E-ADA3, U+ADA5-ADB6, U+ADB8-ADBF, U+ADC2-ADC3, U+ADC5-ADC7, U+ADC9-ADCF, U+ADD2, U+ADD4-ADDB, U+ADDD-ADDF, U+ADE1-ADE3, U+ADE5-ADF7, U+ADFA-ADFB, U+ADFD-ADFE, U+AE02-AE07, U+AE0A, U+AE0C, U+AE0E-AE13, U+AE15-AE2F, U+AE32-AE33, U+AE35-AE36, U+AE39, U+AE3B-AE3F, U+AE42, U+AE44, U+AE47-AE49, U+AE4B, U+AE4F, U+AE51-AE53, U+AE55, U+AE57-AE5B, U+AE5E, U+AE62-AE64, U+AE66-AE67, U+AE6A-AE6B, U+AE6D-AE6F, U+AE71-AE77, U+AE7A, U+AE7E-AE83, U+AE86-AE8B, U+AE8D-AEBB, U+AEBF, U+AEC1-AEC3, U+AEC5-AECB, U+AECE, U+AED2-AED7, U+AEDA-AEDB, U+AEDD-AEE7, U+AEE9-AEEA, U+AEEC, U+AEEE-AEF3, U+AEF5-AEF7, U+AEF9-AEFB, U+AEFD-AF06, U+AF09-AF0C, U+AF0E-AF0F, U+AF11-AF2B, U+AF2E-AF2F, U+AF31, U+AF33, U+AF35-AF3B, U+AF3E, U+AF40, U+AF44-AF47, U+AF4A-AF4F, U+AF51-AF5B, U+AF5E-AF63, U+AF66-AF78, U+AF7A-AF7F, U+AF81-AF83, U+AF85-AF87, U+AF89-AF8F, U+AF92-AF94, U+AF96-AF9B, U+AF9D-AFB7, U+AFBA-AFBB, U+AFBD-AFBF, U+AFC1-AFC6, U+AFCA, U+AFCC, U+AFCF-AFD3, U+AFD5-AFDB, U+AFDD-AFE7, U+AFEA-AFEF, U+AFF2-AFF3, U+AFF5-AFF7, U+AFF9-AFFF, U+B002-B003, U+B005-B00B, U+B00D-B00F, U+B011-B013, U+B015-B01B, U+B01E-B027, U+B029-B043, U+B046-B047, U+B049, U+B04B, U+B04D, U+B04F-B052, U+B056, U+B058, U+B05A-B05C, U+B05E-B07B, U+B07E-B07F, U+B081-B083, U+B085-B08B, U+B08E, U+B090, U+B092-B097, U+B09B, U+B09D-B09E, U+B0A3-B0A7, U+B0AA, U+B0B0, U+B0B2, U+B0B6-B0B7, U+B0B9-B0BB, U+B0BD-B0C3, U+B0C6, U+B0CA-B0CF, U+B0D2-B0D3, U+B0D5-B0D7, U+B0D9-B0DF, U+B0E1-B0E4, U+B0E6-B107, U+B10A, U+B10D-B10F, U+B111, U+B114-B117, U+B11A, U+B11E-B122, U+B126-B127, U+B129-B12B, U+B12D-B133, U+B136, U+B13A-B13F, U+B142-B143, U+B145-B147, U+B149-B14F, U+B152-B153, U+B156-B157, U+B159-B15B, U+B15D-B15F, U+B161-B177, U+B17A-B17B, U+B17D-B17F, U+B181, U+B183-B187, U+B18A, U+B18C, U+B18E-B191, U+B195-B197, U+B199-B19B, U+B19D-B1A7, U+B1A9-B1CB, U+B1CD-B1CF, U+B1D1-B1D3, U+B1D5-B1DB, U+B1DE, U+B1E0-B1E7, U+B1EA-B1EB, U+B1ED-B1EF, U+B1F1-B1F8, U+B1FA, U+B1FC, U+B1FE-B203, U+B206-B207, U+B209-B20A, U+B20D-B213, U+B216, U+B218, U+B21A-B21F, U+B221-B233, U+B235-B23B, U+B23D-B257, U+B259-B25B, U+B25D-B25F, U+B261-B267, U+B26A-B273, U+B276-B27B, U+B27D-B283, U+B286-B288, U+B28A-B28F, U+B292-B293, U+B295-B297, U+B29B-B29F, U+B2A2, U+B2A4, U+B2A7-B2A9, U+B2AB, U+B2AD-B2AF, U+B2B1-B2B3, U+B2B5-B2C7, U+B2CA-B2CB, U+B2CD-B2CF, U+B2D1, U+B2D3-B2D7, U+B2DA, U+B2DC, U+B2DE-B2E1, U+B2E3, U+B2E7, U+B2E9-B2EA, U+B2F0-B2F2, U+B2F6, U+B2FC-B2FE, U+B302-B303, U+B305-B307, U+B309-B30F, U+B312, U+B316-B31B, U+B31D-B353, U+B357, U+B359-B35A, U+B35D, U+B360-B363, U+B366, U+B368, U+B36A, U+B36C-B36D, U+B36F, U+B372-B373, U+B375-B377, U+B379-B37F, U+B382, U+B386-B38B, U+B38D-B38F, U+B391-B393, U+B395-B39F, U+B3A2-B3A7, U+B3A9-B3AB, U+B3AD-B3C3, U+B3C6-B3C7, U+B3C9-B3CA, U+B3CD, U+B3CF, U+B3D1-B3D3, U+B3D6, U+B3D8, U+B3DA, U+B3DC, U+B3DE-B3DF, U+B3E1-B3E3, U+B3E5-B3E7, U+B3E9-B3FB, U+B3FD-B40F, U+B411-B417, U+B419-B41B, U+B41D-B41F, U+B421-B427, U+B42A, U+B42C-B433, U+B435-B44F, U+B452-B453, U+B455-B457, U+B459-B45F, U+B462, U+B464, U+B466-B46B, U+B46D-B47F, U+B481-B487, U+B489-B49C, U+B49E-B4A3, U+B4A5-B4A7, U+B4A9-B4AB, U+B4AD-B4B4, U+B4B6, U+B4B8, U+B4BA-B4BF, U+B4C1-B4C3, U+B4C5-B4C7, U+B4C9-B4CF, U+B4D1-B4D4, U+B4D6-B4DB, U+B4DE-B4DF, U+B4E1-B4E2, U+B4E5, U+B4E7-B4EB, U+B4EE, U+B4F0, U+B4F2-B4F7, U+B4F9-B513, U+B516-B517, U+B519-B51A, U+B51D-B523, U+B526, U+B52B-B52F, U+B532-B533, U+B535-B537, U+B539-B53F, U+B542, U+B546-B54A, U+B54E-B54F, U+B551-B553, U+B555-B55B, U+B55E, U+B562-B59F, U+B5A2-B5A3, U+B5A5-B5A7, U+B5A9, U+B5AC-B5AF, U+B5B2, U+B5B6-B5BA, U+B5BE-B5BF, U+B5C1-B5C3, U+B5C5-B5CB, U+B5CE, U+B5D2-B5D7, U+B5D9-B5EB, U+B5ED-B60F, U+B612-B613, U+B615-B617, U+B619-B624, U+B626-B62B, U+B62D-B633, U+B635-B647, U+B649-B663, U+B665-B667, U+B669-B69B, U+B69E-B69F, U+B6A1-B6A3, U+B6A5-B6AA, U+B6AD-B6B0, U+B6B2-B6D3, U+B6D5-B6EF, U+B6F1-B6F3, U+B6F5-B6F7, U+B6F9-B6FF, U+B702-B704, U+B706-B727, U+B72A-B72B, U+B72D-B72E, U+B731-B737, U+B73A, U+B73C-B743, U+B745-B747, U+B749-B74B, U+B74D-B753, U+B756-B75F, U+B761-B763, U+B765-B767, U+B769-B76F, U+B772, U+B774, U+B776-B77B, U+B77E-B77F, U+B781-B783, U+B785-B78B, U+B78E, U+B793-B795, U+B79A-B79B, U+B79D-B79F, U+B7A1-B7A7, U+B7AA, U+B7AE-B7B3, U+B7B6-B7B7, U+B7B9-B7C6, U+B7C8, U+B7CA-B7EB, U+B7EE-B7EF, U+B7F1-B7F3, U+B7F5-B7FB, U+B7FE, U+B802-B806, U+B80A-B80B, U+B80D-B80F, U+B811-B817, U+B81A, U+B81C, U+B81E-B823, U+B826-B827, U+B829-B82B, U+B82D-B833, U+B836, U+B83A-B83F, U+B841-B843, U+B845-B850, U+B852, U+B854-B85B, U+B85E-B85F, U+B861-B863, U+B865-B86B, U+B86E, U+B870, U+B872-B877, U+B879-B87B, U+B87D-B88C, U+B88E-B8A7, U+B8A9-B8AF, U+B8B1-B8B3, U+B8B5-B8B7, U+B8B9-B8BF, U+B8C2, U+B8C4, U+B8C6-B8CB, U+B8CD-B8CF, U+B8D1-B8D3, U+B8D5-B8DC, U+B8DE, U+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+B93E-B93F, U+B941-B943, U+B945-B94B, U+B94D-B94E, U+B950, U+B952-B957, U+B95A-B95B, U+B95D-B95F, U+B961-B967, U+B96A, U+B96C, U+B96E-B973, U+B976-B977, U+B979-B97B, U+B97D-B983, U+B986, U+B988, U+B98B-B98C, 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+B9D3-B9D7, U+B9DA, U+B9DC, U+B9DF-B9E0, U+B9E2, U+B9E6-B9E7, U+B9E9-B9EB, U+B9ED-B9F3, U+B9F6, U+B9FB-B9FF, U+BA02-BA07, U+BA09-BA14, U+BA16-BA37, U+BA3A-BA3B, U+BA3D-BA3F, U+BA41, U+BA43-BA47, U+BA4A, U+BA4C, U+BA4F-BA52, U+BA56-BA57, U+BA59-BA5B, U+BA5D-BA63, U+BA66, U+BA6A-BA6F, U+BA72-BA73, U+BA75-BA77, U+BA79-BA82, U+BA86, U+BA88-BA8B, U+BA8D-BAA7, U+BAAA, U+BAAD-BAAF, U+BAB1, U+BAB3-BAB7, U+BABA, U+BABC, U+BABE-BAC3, U+BAC5-BAC7, U+BAC9-BAD7, U+BADA-BAFB, U+BAFD-BAFF, U+BB01-BB03, U+BB05-BB0C, U+BB0E, U+BB10, U+BB12-BB17, U+BB19-BB1B, U+BB1D-BB1F, U+BB21-BB28, U+BB2A, U+BB2C-BB33, U+BB37, U+BB39-BB3A, U+BB3F-BB43, U+BB46, U+BB48, U+BB4A-BB4C, U+BB4E, U+BB51-BB53, U+BB55-BB57, U+BB59-BB60, U+BB62, U+BB64-BB6B, U+BB6D-BB87, U+BB89-BB8B, U+BB8D-BB8F, U+BB91-BBA3, U+BBA5-BBA7, U+BBA9-BBAB, U+BBAD-BBB3, U+BBB5-BBB6, U+BBB8-BBBF, U+BBC1-BBC3, U+BBC5-BBC7, U+BBC9-BBCF, U+BBD1-BBD2, U+BBD4-BBF7, U+BBFA-BBFB, U+BBFD-BBFE, U+BC01, U+BC03-BC07, U+BC0A, U+BC0E, U+BC10, U+BC12-BC13, U+BC19-BC1A, U+BC20-BC23, U+BC26, U+BC28, U+BC2A-BC2C, U+BC2E-BC2F, U+BC32-BC33, U+BC35-BC37, U+BC39-BC3F, U+BC42, U+BC46-BC48, U+BC4A-BC4B, U+BC4E-BC4F, U+BC51-BC5C, U+BC5E-BC83, U+BC86-BC87, U+BC89-BC8A, U+BC8D, U+BC8F-BC93, U+BC96, U+BC98, U+BC9B-BC9F, U+BCA2-BCA3, U+BCA5-BCA6, U+BCA9-BCAF, U+BCB2, U+BCB6-BCBB, U+BCBE-BCBF, U+BCC1-BCC3, U+BCC5-BCCC, U+BCCE, U+BCD2-BCD4, U+BCD6-BCD7, U+BCD9-BCDB, U+BCDD-BCF3, U+BCF7, U+BCF9-BCFB, U+BCFD-BD03, U+BD06, U+BD08, U+BD0A-BD0F, U+BD11-BD13, U+BD15-BD23, U+BD25-BD2B, U+BD2D-BD3F, U+BD41-BD47, U+BD4A-BD4B, U+BD4D-BD4F, U+BD51-BD57, U+BD5A-BD63, U+BD65-BD67, U+BD69-BD7F, U+BD82-BD83, U+BD85-BD86, U+BD8B-BD8F, U+BD92, U+BD94, U+BD96-BD98, U+BD9B, U+BD9D-BDA3, U+BDA5-BDAF, U+BDB1-BDB7, U+BDB9-BDD3, U+BDD6-BDD7, U+BDD9-BDDB, U+BDDD-BDE8, U+BDEA-BDEF, U+BDF1-BDF3, U+BDF5-BDF7, U+BDF9-BDFF, U+BE01-BE02, U+BE04, U+BE06-BE0B, U+BE0E-BE0F, U+BE11-BE13, U+BE15-BE1B, U+BE1E, U+BE20-BE43, U+BE46-BE47, U+BE49-BE4B, U+BE4D, U+BE4F-BE53, U+BE56, U+BE58, U+BE5C-BE5F, U+BE62-BE63, U+BE65-BE67, U+BE69, U+BE6B-BE6F, U+BE72, U+BE76-BE7A, U+BE7E-BE7F, U+BE81-BE83, U+BE85-BE8B, U+BE8E, U+BE92-BE97, U+BE9A-BEA7, U+BEA9-BECF, U+BED2-BED3, U+BED5-BED6, U+BED9-BEDF, U+BEE1-BEE2, U+BEE6-BEEB, U+BEED-BF00, U+BF02-BF07, U+BF0A-BF17, U+BF1A, U+BF1E-BF3F, U+BF42-BF43, U+BF45-BF47, U+BF49-BF4F, U+BF52-BF54, U+BF56-BF93, U+BF95-BFAF, U+BFB1-BFC4, U+BFC6-BFCB, U+BFCE-BFCF, U+BFD1-BFD3, U+BFD5-BFDB, U+BFDD-BFDE, U+BFE0, U+BFE2-C03B, U+C03D-C050, U+C052-C057, U+C059-C05B, U+C05D-C05F, U+C061-C067, U+C06A-C08F, U+C092-C093, U+C095-C097, U+C099-C09F, U+C0A2, U+C0A4, U+C0A6-C0AB, U+C0AE, U+C0B1-C0B2, U+C0B7-C0BB, U+C0BE, U+C0C2-C0C4, U+C0C6-C0C7, U+C0CA-C0CB, U+C0CD-C0CF, U+C0D1-C0D7, U+C0DA, U+C0DE-C0E3, U+C0E6-C0E7, U+C0E9-C0EB, U+C0ED-C0F3, U+C0F6, U+C0F8, U+C0FA-C0FF, U+C101-C103, U+C105-C107, U+C109-C10F, U+C111-C114, U+C116-C11B, U+C121-C122, U+C125, U+C128-C12B, U+C12E, U+C132-C135, U+C137, U+C13A-C13B, U+C13D-C13F, U+C141-C147, U+C14A, U+C14E-C153, U+C156-C157, U+C159-C15B, U+C15D-C163, U+C166, U+C16A-C16F, U+C171-C173, U+C175-C177, U+C179-C184, U+C186-C18B, U+C18F, U+C191-C193, U+C195, U+C197-C19B, U+C19E, U+C1A0, U+C1A2-C1A4, U+C1A6-C1A7, U+C1AA-C1AB, U+C1AD-C1AF, U+C1B1-C1BC, U+C1BE-C1C3, U+C1C5-C1C7, U+C1C9-C1CB, U+C1CD-C1D3, U+C1D5-C1D6, U+C1D9-C1DF, U+C1E1-C1E3, U+C1E5-C1E7, U+C1E9-C1EF, U+C1F2, U+C1F4-C1FB, U+C1FE-C1FF, U+C201-C203, U+C205-C20B, U+C20E, U+C210, U+C212-C217, U+C21A-C21B, U+C21D-C21E, U+C221-C227, U+C22A, U+C22C, U+C22E, U+C230, U+C233, U+C235-C247, U+C249-C24F, U+C252-C253, U+C255-C257, U+C259-C25F, U+C261-C264, U+C266-C26B, U+C26E-C26F, U+C271-C273, U+C275-C27B, U+C27E, U+C280, U+C282-C287, U+C28A-C28F, U+C291-C297, U+C299-C29A, U+C29C, U+C29E-C2A3, U+C2A6-C2A7, U+C2A9-C2AB, U+C2AE-C2B3, U+C2B6, U+C2B8, U+C2BA-C2DB, U+C2DE-C2DF, U+C2E1-C2E2, U+C2E5-C2EA, U+C2EE, U+C2F0, U+C2F2-C2F5, U+C2F7, U+C2FA, U+C2FD-C2FF, U+C301-C307, U+C30A-C30B, U+C30E-C312, U+C316-C317, U+C319-C31B, U+C31D-C323, U+C326-C327, U+C32A-C344, U+C346-C367, U+C36A-C36B, U+C36D-C36F, U+C371, U+C373-C377, U+C37A-C37B, U+C37E-C383, U+C385-C387, U+C389-C38B, U+C38D-C3BF, U+C3C1-C3D7, U+C3DA-C3DB, U+C3DD-C3DE, U+C3E1, U+C3E3-C3E7, U+C3EA-C3EC, U+C3EE-C3F3, U+C3F6-C3F7, U+C3F9-C407, U+C409-C40F, U+C411-C423, U+C425-C42B, U+C42D-C42F, U+C431-C433, U+C435-C43B, U+C43E-C447, U+C449-C463, U+C466-C467, U+C469-C46B, U+C46D-C473, U+C476-C478, U+C47A-C47F, U+C481-C493, U+C495-C49B, U+C49D-C4B7, U+C4B9-C4BB, U+C4BD-C4E8, U+C4EA-C4EF, U+C4F2-C4F3, U+C4F5-C4F7, U+C4F9, U+C4FB-C4FE, U+C502-C50B, U+C50D-C50F, U+C511-C513, U+C515-C51B, U+C51D-C527, U+C52A-C52B, U+C52D-C52F, U+C531-C537, U+C53A, U+C53C, U+C53E-C543, U+C546-C547, U+C54B, U+C54F-C552, U+C556, U+C55A-C55C, U+C55F, U+C562-C563, U+C565-C567, U+C569-C56F, U+C572, U+C576-C57B, U+C57E-C57F, U+C581-C583, U+C585-C586, U+C588-C58B, U+C58E, U+C590, U+C592-C594, U+C596, U+C599-C59B, U+C59D-C59F, U+C5A1-C5A8, U+C5AA-C5B3, U+C5B6-C5B7, U+C5BA, U+C5BF-C5C3, U+C5CB, U+C5CD, U+C5CF, U+C5D2-C5D3, U+C5D5-C5D7, U+C5D9-C5DF, U+C5E2, U+C5E4, U+C5E6-C5EB, U+C5EF, U+C5F1-C5F3, U+C5F5, U+C5F8-C5FB, U+C602-C604, U+C609-C60B, U+C60D-C60F, U+C611-C617, U+C61A, U+C61D-C623, U+C626-C627, U+C629-C62B, U+C62F, U+C631-C632, U+C636, U+C638, U+C63A, U+C63C-C63F, U+C642-C643, U+C645-C647, U+C649-C64F, U+C652, U+C656-C65B, U+C65E-C65F, U+C661-C66B, U+C66D-C66E, U+C670, U+C672-C677, U+C67A-C67B, U+C67D-C67F, U+C681-C687, U+C68A, U+C68C, U+C68E-C693, U+C696-C697, U+C699-C69B, U+C69D-C6A3, U+C6A6, U+C6A8, U+C6AA-C6AF, U+C6B2-C6B3, U+C6B5-C6B7, U+C6BB-C6BF, U+C6C2, U+C6C4, U+C6C6-C6CB, U+C6CE-C6CF, U+C6D1-C6D3, U+C6D5-C6DB, U+C6DE-C6DF, U+C6E2-C6E7, U+C6EA-C6EB, U+C6ED-C6EF, U+C6F1-C6F7, U+C6FA-C6FC, U+C6FE-C703, U+C706-C707, U+C709-C70B, U+C70D-C713, U+C716, U+C718, U+C71A-C71F, U+C722-C723, U+C725-C727, U+C729-C72F, U+C732, U+C734, U+C736, U+C738-C73B, U+C73E-C73F, U+C741-C743, U+C745-C749, U+C74B, U+C74E, U+C750, U+C759-C75B, U+C75D-C75F, U+C761-C767, U+C769-C76A, U+C76C-C773, U+C776-C777, U+C779-C77B, U+C77F-C782, U+C786, U+C78B-C78D, U+C78F, U+C792-C793, U+C795, U+C799, U+C79B-C79F, U+C7A2, U+C7A7-C7AB, U+C7AE-C7AF, U+C7B1-C7B3, U+C7B5-C7BB, U+C7BE, U+C7C2-C7C7, U+C7CA-C7CB, U+C7CD, U+C7CF, U+C7D1-C7D7, U+C7D9-C7DC, U+C7DE-C7E3, U+C7E5-C7E7, U+C7E9-C7EB, U+C7ED-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-C82B, U+C82E, U+C830, U+C832-C837, U+C839-C83B, U+C83D-C83F, U+C841-C847, U+C84A-C84B, U+C84E-C853, U+C855-C86F, U+C872-C873, U+C875-C877, U+C879, U+C87B-C87F, U+C882, U+C884, U+C888-C88A, U+C88E-C893, U+C895-C89C, U+C89E, U+C8A0, U+C8A2-C8A7, U+C8A9-C8BB, U+C8BE-C8C3, U+C8C5-C8C7, U+C8C9-C8CB, U+C8CD-C8D3, U+C8D6, U+C8D8, U+C8DA-C8DF, U+C8E2-C8E3, U+C8E5-C8F4, U+C8F6-C8FB, U+C8FE-C8FF, U+C901-C903, U+C907-C90B, U+C90E, U+C910, U+C912-C917, U+C919-C92B, U+C92D-C933, U+C935-C94F, U+C952-C953, U+C955-C957, U+C959-C95F, U+C962, U+C964-C96B, U+C96D-C96F, U+C971-C973, U+C975-C97B, U+C97D-C987, U+C98A-C98B, U+C98D-C98F, U+C991-C997, U+C99A, U+C99C, U+C99E-C9BF, U+C9C2-C9C3, U+C9C5-C9C6, U+C9C9, U+C9CB-C9CF, U+C9D2, U+C9D4, U+C9D7-C9D8, U+C9DB, U+C9DE-C9DF, U+C9E1, U+C9E3, U+C9E5-C9E6, U+C9E8-C9EB, U+C9EE, U+C9F2-C9F7, U+C9FA-C9FB, U+C9FD-C9FF, U+CA01-CA07, U+CA0A, U+CA0E-CA13, U+CA15-CA17, U+CA19-CA28, U+CA2A-CA4B, U+CA4E-CA4F, U+CA51-CA53, U+CA55-CA5B, U+CA5E, U+CA62-CA67, U+CA69-CA7C, U+CA7E-CA83, U+CA85-CA97, U+CA99-CABB, U+CABE-CABF, U+CAC1-CAC3, U+CAC5-CACB, U+CACE, U+CAD0, U+CAD2, U+CAD4-CAD7, U+CADA-CADF, U+CAE1-CAEB, U+CAED-CAF3, U+CAF5-CB07, U+CB09-CB0F, U+CB11-CB13, U+CB15-CB17, U+CB19-CB1F, U+CB22-CB40, U+CB42-CB47, U+CB4A-CB4B, U+CB4D-CB4F, U+CB51-CB57, U+CB5A-CB5C, U+CB5E-CB63, U+CB65-CB77, U+CB7A-CB9B, U+CB9D-CBB7, U+CBB9-CBD3, U+CBD5-CBE3, U+CBE5-CBE6, U+CBE8, U+CBEA-CC0B, U+CC0E-CC0F, U+CC11-CC13, U+CC15-CC1B, U+CC1E-CC20, U+CC23-CC26, U+CC2A-CC2B, U+CC2D, U+CC2F, U+CC31-CC37, U+CC3A, U+CC3F-CC43, U+CC46-CC47, U+CC49-CC4B, U+CC4D-CC53, U+CC56, U+CC5A-CC5F, U+CC61-CC63, U+CC65, U+CC67, U+CC69-CC6F, U+CC71-CC74, U+CC76-CC97, U+CC9A-CC9B, U+CC9D-CC9F, U+CCA1-CCA7, U+CCAA, U+CCAE-CCB3, U+CCB6-CCB7, U+CCB9-CCBB, U+CCBD-CCC3, U+CCC6, U+CCC8, U+CCCA-CCCF, U+CCD1-CCD3, U+CCD5-CCE3, U+CCE5-CCEB, U+CCED-CCEF, U+CCF1-CD00, U+CD02-CD07, U+CD0A-CD0B, U+CD0D-CD0F, U+CD11-CD17, U+CD1A, U+CD1C, U+CD1E-CD23, U+CD25-CD27, U+CD29-CD2B, U+CD2D-CD38, U+CD3A-CD5B, U+CD5D-CD5F, U+CD61-CD63, U+CD65-CD6B, U+CD6E, U+CD70, U+CD72-CD77, U+CD79-CD87, U+CD89-CD93, U+CD96-CD97, U+CD99-CD9B, U+CD9D-CDA3, U+CDA6, U+CDA8, U+CDAA-CDAF, U+CDB1-CDC3, U+CDC5-CDCB, U+CDCD-CDCF, U+CDD1-CDE7, U+CDE9-CDEB, U+CDED-CDEF, U+CDF1-CDF7, U+CDFA, U+CDFC, U+CDFE-CE03, U+CE05-CE07, U+CE09-CE0B, U+CE0D-CE13, U+CE15-CE18, U+CE1A-CE1F, U+CE22-CE23, U+CE25-CE27, U+CE29-CE2F, U+CE32, U+CE34, U+CE36-CE57, U+CE5A-CE5B, U+CE5D-CE5E, U+CE62-CE67, U+CE6A, U+CE6C, U+CE6E-CE73, U+CE76-CE77, U+CE79-CE7B, U+CE7D-CE83, U+CE86, U+CE88, U+CE8A-CE8F, U+CE92-CE93, U+CE95-CE97, U+CE99-CE9F, U+CEA2, U+CEA6-CEAB, U+CEAE-CEC0, U+CEC2-CEE3, U+CEE6-CEE7, U+CEE9-CEEA, U+CEED-CEF3, U+CEF6, U+CEFA-CEFF, U+CF02-CF03, U+CF05-CF07, U+CF09-CF0F, U+CF12, U+CF14, U+CF16-CF1B, U+CF1D-CF1F, U+CF21-CF23, U+CF25-CF2B, U+CF2E, U+CF32-CF37, U+CF39-CF53, U+CF56-CF57, U+CF59-CF5B, U+CF5D-CF63, U+CF66, U+CF68, U+CF6A-CF6F, U+CF72-CF73, U+CF75-CF77, U+CF79-CF7F, U+CF81-CF84, U+CF86-CF8B, U+CF8D-CFA0, U+CFA2-CFA7, U+CFA9-CFAF, U+CFB1-CFC3, U+CFC5-CFDF, U+CFE2-CFE3, U+CFE5-CFE7, U+CFE9-CFEF, U+CFF2, U+CFF4, U+CFF6-CFFB, U+CFFD-CFFF, U+D001-D003, U+D005-D010, U+D012-D017, U+D019-D02C, U+D02E-D033, U+D036-D037, U+D039-D03B, U+D03D-D043, U+D046, U+D048, U+D04A-D04F, U+D051-D053, U+D055-D057, U+D059-D05F, U+D061-D06B, U+D06E-D06F, U+D071-D073, U+D075-D07B, U+D07E-D080, U+D082-D0A3, U+D0A6-D0A7, U+D0A9-D0AB, U+D0AD-D0B3, U+D0B6, U+D0B8, U+D0BA-D0BF, U+D0C2-D0C3, U+D0C5-D0C7, U+D0CA-D0CF, U+D0D2, U+D0D6-D0DB, U+D0DE-D0DF, U+D0E1-D0E3, U+D0E5-D0EB, U+D0EE, U+D0F2-D0F7, U+D0F9-D10C, U+D10E-D12F, U+D132-D133, U+D135-D137, U+D139, U+D13B-D13F, U+D142, U+D146-D14B, U+D14E-D14F, U+D151-D153, U+D155-D15B, U+D15E, U+D160, U+D162-D167, U+D169-D16B, U+D16D-D17B, U+D17D-D183, U+D185-D187, U+D189-D19F, U+D1A2-D1A3, U+D1A5-D1A7, U+D1A9-D1AF, U+D1B2, U+D1B4, U+D1B6-D1B9, U+D1BB, U+D1BD-D1BF, U+D1C1-D1D7, U+D1D9-D1F3, U+D1F5-D1F7, U+D1F9-D206, U+D208, U+D20A-D20F, U+D211-D22B, U+D22E-D22F, U+D231-D233, U+D235-D23B, U+D23E, U+D240, U+D242-D247, U+D249-D25B, U+D25D-D263, U+D265-D27F, U+D282-D283, U+D285-D287, U+D289-D28F, U+D292-D294, U+D296-D29B, U+D29D-D29F, U+D2A1-D2A3, U+D2A5-D2AB, U+D2AD-D2B0, U+D2B2-D2B7, U+D2BA-D2BB, U+D2BD-D2BE, U+D2C1, U+D2C3-D2C7, U+D2CA, U+D2CC-D2D3, U+D2D5-D2D7, U+D2D9-D2DB, U+D2DD-D2E3, U+D2E6-D2EF, U+D2F2-D2F3, U+D2F5-D2F7, U+D2F9-D2FF, U+D302, U+D304, U+D306-D30B, U+D30F, U+D311-D313, U+D315, U+D317-D31B, U+D31E, U+D322-D324, U+D326-D327, U+D32A-D32B, U+D32D-D32F, U+D331-D337, U+D33A, U+D33E-D343, U+D346-D37B, U+D37E-D37F, U+D381-D383, U+D385-D38B, U+D38E, U+D392-D397, U+D39A-D39B, U+D39D-D39F, U+D3A1-D3A7, U+D3AA, U+D3AC, U+D3AE-D3B3, U+D3B5-D3B7, U+D3B9-D3BB, U+D3BD-D3C3, U+D3C6-D3C7, U+D3CA-D3CF, U+D3D1-D3D7, U+D3D9-D3E0, U+D3E2, U+D3E4-D3EB, U+D3EE-D3EF, U+D3F1-D3F3, U+D3F5-D3FB, U+D3FE, U+D400, U+D402-D407, U+D409-D41C, U+D41E-D43F, U+D441-D443, U+D445-D45B, U+D45D-D45F, U+D461-D463, U+D465-D46C, U+D46E, U+D470-D477, U+D47A-D47B, U+D47D-D47E, U+D481, U+D483-D487, U+D48A, U+D48C, U+D48E-D493, U+D495-D4A8, U+D4AA-D4CB, U+D4CD-D4CF, U+D4D1-D4D3, U+D4D5-D4DB, U+D4DD-D4DE, U+D4E0-D4E7, U+D4E9-D4EB, U+D4ED-D4EF, U+D4F1-D4F7, U+D4F9-D4FA, U+D4FC, U+D4FE-D503, U+D505-D507, U+D509-D50B, U+D50D-D513, U+D516, U+D518-D53B, U+D53E-D53F, U+D541-D543, U+D545-D54B, 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-D57B, U+D57D-D583, U+D586, U+D58A-D58F, U+D591-D5A4, U+D5A6-D5C7, U+D5CA-D5CB, U+D5CD-D5CF, U+D5D1, U+D5D3-D5D7, U+D5DA, U+D5DC, U+D5DE-D5E3, U+D5E6-D5E7, U+D5E9-D5EB, U+D5ED-D5F3, U+D5F6, U+D5F8, U+D5FA-D5FF, U+D602-D603, U+D605-D607, U+D609-D60F, U+D612, U+D616-D61B, U+D61D-D61F, U+D621-D623, U+D625-D62C, U+D62E-D637, U+D63A-D63B, U+D63D-D63F, U+D641-D644, U+D646-D647, U+D64A, U+D64C, U+D64E-D650, U+D652-D653, U+D656-D657, U+D659-D65B, U+D65D-D666, U+D668, U+D66A-D66F, U+D672-D673, U+D675-D682, U+D684, U+D686-D68B, U+D68E-D68F, U+D691-D693, U+D695-D69C, U+D69E, U+D6A0, U+D6A2-D6A7, U+D6A9-D6AB, U+D6AD-D6AF, U+D6B1-D6B8, U+D6BA, U+D6BC-D6C3, U+D6C6-D6C7, U+D6C9-D6CB, U+D6CD-D6D0, U+D6D2-D6D3, U+D6D5-D6D6, U+D6D8, U+D6DA-D6DF, U+D6E1-D6E3, U+D6E5-D6E7, U+D6E9-D6EF, U+D6F1-D6F4, U+D6F6-D6FB, U+D6FE-D6FF, U+D701-D703, U+D705-D710, U+D712-D717, U+D71A-D71B, U+D71D-D71F, U+D721-D727, U+D72A, U+D72C, U+D72E-D733, U+D736-D737, U+D739-D73B, U+D73D-D743, U+D745-D746, U+D748, U+D74A-D74F, U+D752-D753, U+D755, U+D75A-D75F, U+D762, U+D764, U+D766-D768, U+D76A-D76B, U+D76D-D76F, U+D771-D773, U+D775-D77B, U+D77E-D780, U+D782-D787, U+D78A-D78B, U+D78D-D78F, U+D791-D797, U+D79A, U+D79C, U+D79E-D7A3;
}

/* 공개 화면(랜딩, 약관). 이 파일은 모든 화면에 함께 실리므로 규칙은 모두 body.landing-page 안에 둔다.
   색: 세이지 바탕, 차콜 면, 보라 한 점. 보라(--accent)는 "도입 문의하기"만, 파형 보라(--wave)는 차콜 면 안에서만 쓴다.
   말풍선 하나의 문법: 고객(.lp-bubble-q)은 왼쪽·중립색·왼쪽 아래 꼬리, AI 안내(.lp-bubble-a)는 오른쪽·흰 면(차콜 위에서는 보라 기운)·오른쪽 아래 꼬리.
   움직임: 기본은 최종 상태. 움직임을 허용할 때만 시작 상태를 두고, 시작 상태는 스크립트가 붙인 .is-ready 아래에서만 쓴다. */
html:has(> body.landing-page) {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: 88px;
  scrollbar-color: #8a928b #eceee9;
}

.landing-page {
  --t-body: 17px;
  --paper: #eceee9;
  --tint: #e1e4dd;
  --surface: #f8f9f6;
  --ink: #111412;
  --ink-soft: #535b55;
  --line: #d3d8d0;
  --line-strong: #8a928b;
  --accent: #5b3cf5;
  --accent-hover: #4a2ee0;
  --accent-ink: #fff;
  --accent-tint: #e4ddff;
  --card: #121513;
  --card-ink: #eef1ec;
  --card-soft: #8f988f;
  --wave: #9c88ff;
  --card-line: rgb(255 255 255 / .1);
  --card-fill: rgb(255 255 255 / .07);
  --wave-fill: rgb(156 136 255 / .16);
  --shadow: 0 30px 60px -30px rgb(17 20 18 / .45);
  --ease-out: cubic-bezier(.23, 1, .32, 1);
  --ease-expo: cubic-bezier(.16, 1, .3, 1);
  --measure: 1240px;
  --gutter: 48px;
  --hh: 72px;
  --font: "Pretendard Variable", Pretendard, "Hiragino Sans", "Apple SD Gothic Neo", sans-serif;
  --mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;

  margin: 0;
  overflow-x: clip;
  background: var(--paper);
  color: var(--ink);
  color-scheme: light dark;
  font: 400 var(--t-body)/1.65 var(--font);
  -webkit-font-smoothing: antialiased;
  caret-color: var(--accent);

  @media (prefers-color-scheme: dark) {
    --paper: #0e100f;
    --tint: #171a18;
    --surface: #161917;
    --ink: #eaede8;
    --ink-soft: #99a19a;
    --line: #262a27;
    --line-strong: #5e665f;
    --accent: #8b74ff;
    --accent-hover: #9f8bff;
    --accent-ink: #0f0a2e;
    --accent-tint: #231c4d;
    --card: #1b1f1c;
    --shadow: 0 30px 60px -30px rgb(0 0 0 / .8);
  }
  @media (min-width: 961px) { --t-body: 18px; }
  @media (min-width: 1101px) { --t-body: 19px; }
  @media (max-width: 760px) { --gutter: 16px; --hh: 60px; }

  /* 바탕 */
  & *, & *::before, & *::after { box-sizing: border-box; }
  & ::selection { background: var(--accent); color: var(--accent-ink); }
  & :is(h1, h2, h3, p, figure, ol, ul, dl, dd, blockquote) { margin: 0; }
  & :is(ol, ul) { padding: 0; list-style: none; }
  & a { color: inherit; text-decoration: none; }
  & :is(button, input, select) { font: inherit; color: inherit; }
  & button { cursor: pointer; }
  & [hidden] { display: none !important; }
  & :is(h1, h2, h3) { font-weight: 600; letter-spacing: -.035em; word-break: keep-all; text-wrap: balance; }
  & :is(p, dd, li, summary) { word-break: keep-all; overflow-wrap: anywhere; }
  & p { text-wrap: pretty; }
  & :lang(ja) { word-break: normal; }
  & :lang(en) { word-break: normal; overflow-wrap: break-word; }
  & :focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
  & .lp-i { width: 20px; height: 20px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
  & .lp-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
  & .lp-sr { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
  & .lp-mono { font-family: var(--mono); font-weight: 500; letter-spacing: .03em; }
  & .lp-wrap { width: min(var(--measure), calc(100% - var(--gutter) * 2)); margin-inline: auto; }
  & :is(.is-snap, .is-snap *) { transition: none !important; }
  & .lp-skip { position: fixed; top: -80px; left: 16px; z-index: 60; padding: 12px 20px; border-radius: 10px; background: var(--accent); color: var(--accent-ink); font-weight: 650; }
  & .lp-skip:focus { top: 12px; }
  & .lp-dark { background: var(--card); color: var(--card-ink); }
  & .lp-dark :focus-visible { outline-color: var(--wave); }

  /* 버튼: 사각에 가까운 모서리 + 오른쪽 원형 화살표 칩. 보라는 도입 문의 하나뿐 */
  & .lp-cta { display: inline-flex; align-items: center; gap: 16px; min-height: 58px; padding: 9px 9px 9px 24px; border: 0; border-radius: 10px; background: var(--accent); color: var(--accent-ink); font-size: 17px; font-weight: 650; letter-spacing: -.01em; white-space: nowrap; box-shadow: 0 16px 30px -18px color-mix(in srgb, var(--accent) 85%, transparent); transition: transform .16s var(--ease-out), background-color .2s ease; }
  & .lp-chip { position: relative; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--accent-ink); color: var(--accent); overflow: hidden; flex-shrink: 0; }
  & .lp-chip .lp-i { width: 18px; height: 18px; stroke-width: 2.2; transition: transform .32s var(--ease-out); }
  & .lp-chip .lp-i + .lp-i { position: absolute; transform: translateX(-32px); }
  & .lp-cta:active { transform: scale(.97); }
  & .lp-tl { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font-size: 17px; font-weight: 600; }
  & .lp-tl .lp-ring { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; box-shadow: inset 0 0 0 1px var(--line-strong); transition: transform .25s var(--ease-out), box-shadow .2s ease; }
  & .lp-tl .lp-i { width: 15px; height: 15px; stroke-width: 2.2; }
  /* 첫 화면의 보조 행동: 전화 아이콘 원 + 밑줄 글자. 보라 채움 없이 도입 문의보다 약하게 */
  & .lp-tl-call { gap: 12px; text-decoration: underline 1px var(--line-strong); text-underline-offset: 6px; transition: text-decoration-color .2s ease; }
  & .lp-tl-call .lp-ring { width: 44px; height: 44px; background: var(--surface); box-shadow: inset 0 0 0 1.5px var(--ink); }
  & .lp-tl-call .lp-i { width: 18px; height: 18px; stroke-width: 2; }
  & .lp-dark .lp-tl .lp-ring { box-shadow: inset 0 0 0 1px var(--wave); color: var(--wave); }
  & .lp-btn-o { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 50px; padding: 12px 20px; border: 1px solid var(--ink); border-radius: 10px; background: transparent; color: var(--ink); font-size: 16px; font-weight: 650; white-space: nowrap; transition: transform .16s var(--ease-out), background-color .2s ease; }
  & .lp-btn-o:active { transform: scale(.97); }
  & .lp-btn-o .lp-i { width: 18px; height: 18px; }

  /* 머리말 */
  & .lp-header { position: sticky; top: 0; z-index: 30; background: color-mix(in srgb, var(--paper) 90%, transparent); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
  & .lp-header-inner { height: var(--hh); display: flex; align-items: center; gap: 36px; }
  & .lp-wordmark { padding-block: 12px; margin-block: -12px; font-size: 25px; font-weight: 800; letter-spacing: -.06em; line-height: 1; white-space: nowrap; }
  & .lp-wordmark span { font-weight: 400; }
  & .lp-nav { display: flex; gap: 28px; font-size: 15.5px; white-space: nowrap; }
  & :is(.lp-nav a, .lp-login, .lp-header-tel) { padding-block: 12px; color: var(--ink-soft); font-weight: 550; transition: color .2s ease; }
  & .lp-header-actions { margin-left: auto; display: flex; align-items: center; gap: 22px; }
  & .lp-header-tel { display: inline-flex; align-items: center; gap: 7px; font-size: 15px; white-space: nowrap; }
  & .lp-header-tel .lp-i { width: 16px; height: 16px; }
  & .lp-header-tel .lp-mono { font-size: 14px; }
  & .lp-langs { display: flex; gap: 2px; font: 500 14px/1 var(--mono); letter-spacing: .04em; }
  & .lp-langs a { display: inline-grid; place-items: center; min-width: 32px; min-height: 32px; border-radius: 6px; color: var(--ink-soft); transition: color .2s ease, background-color .2s ease; }
  & .lp-langs a[aria-current] { background: var(--ink); color: var(--paper); }
  & .lp-login { font-size: 15px; white-space: nowrap; }
  & .lp-header .lp-cta { min-height: 46px; gap: 12px; padding: 6px 6px 6px 18px; font-size: 15.5px; box-shadow: none; }
  & .lp-header .lp-chip { width: 34px; height: 34px; }
  & .lp-header .lp-chip .lp-i { width: 16px; height: 16px; }

  @media (hover: hover) and (pointer: fine) {
    & .lp-cta:hover { background: var(--accent-hover); }
    & .lp-cta:hover .lp-chip .lp-i:first-child { transform: translateX(32px); }
    & .lp-cta:hover .lp-chip .lp-i + .lp-i { transform: none; }
    & .lp-tl:hover .lp-ring { transform: translateX(3px); }
    & .lp-tl-call:hover { text-decoration-color: currentColor; }
    & .lp-btn-o:hover { background: var(--tint); }
    & :is(.lp-nav a, .lp-login, .lp-header-tel, .lp-langs a:not([aria-current])):hover { color: var(--ink); }
  }

  /* 첫 화면: 가운데 정렬. 굵고 큰 제목 하나 → 한 줄 설명 → 도입 문의, 그 아래 가로로 넓은 통화 장면과 챗봇 창 */
  & .lp-hero { position: relative; display: flex; flex-direction: column; justify-content: center; min-height: calc(min(100svh, 900px) - var(--hh)); padding-block: clamp(28px, 5vh, 56px); }
  & .lp-hero-inner { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; }
  & .lp-hero-copy { display: flex; flex-direction: column; align-items: center; text-align: center; }
  & .lp-hero h1 { font-size: clamp(48px, 6.4vw, 100px); font-weight: 800; line-height: 1.1; letter-spacing: -.045em; }
  & .lp-hero h1 .lp-line { display: block; }
  /* 일본어 제목 첫 줄은 한국어보다 길어 좌우 장식과 겹치지 않게 작게 쓴다 */
  &:lang(ja) .lp-hero h1 { font-size: clamp(34px, 4vw, 60px); }
  & .lp-hero mark { padding: 0 .1em; border-radius: .16em; background: var(--accent-tint); color: inherit; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
  & .lp-lede { max-width: 40em; margin-top: clamp(14px, 2.4vh, 26px); color: var(--ink); font-size: clamp(18px, 1.4vw, 20px); font-weight: 500; line-height: 1.6; text-wrap: balance; }
  & .lp-hero-actions { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 10px 30px; margin-top: clamp(18px, 3.4vh, 36px); }
  & .lp-cta-note { margin-top: 12px; color: var(--ink); font-size: 15.5px; font-weight: 500; }
  /* 좌우 가장자리의 작은 아이소메트릭 조각. 넓은 화면에서만 */
  & .lp-deco { position: absolute; z-index: 0; display: none; height: auto; pointer-events: none; }

  /* 통화 장면(넓게, 먼저)과 홈페이지 챗봇 창(좁게)이 출처 칩 하나를 같이 쓴다. 아래에 이점 세 가지 */
  & .lp-duo { --dg: clamp(16px, 1.8vw, 24px); width: 100%; display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); grid-template-rows: 1fr auto; grid-template-areas: "call webchat" "same webchat"; column-gap: var(--dg); margin-top: clamp(22px, 4.4vh, 52px); text-align: left; }
  & .lp-call { grid-area: call; position: relative; display: flex; flex-direction: column; padding: clamp(14px, 2.2vh, 22px) clamp(20px, 2.4vw, 32px) calc(clamp(12px, 1.8vh, 18px) + clamp(10px, 1.6vh, 16px) + 40px); border-radius: 16px; box-shadow: var(--shadow); overflow: clip; isolation: isolate; }
  & .lp-call-top { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 20px; color: var(--card-ink); font-size: 15.5px; font-weight: 600; }
  & .lp-call-channel { display: inline-flex; align-items: center; gap: 8px; margin-right: auto; }
  & .lp-call-channel .lp-i { width: 17px; height: 17px; color: var(--wave); }
  /* 통화 중 표시: 파형은 누가 말할 때만 움직이고(소리는 나지 않는다), 쉴 때는 납작한 점선 */
  & .lp-call-status { display: inline-flex; align-items: center; gap: 10px; color: var(--card-soft); font-size: 14px; font-weight: 600; }
  & .lp-call-status .lp-mono { font-size: 14px; color: var(--card-ink); }
  /* 영어는 머리줄이 길어 언어 표시가 둘째 줄로 밀리므로 부연 설명을 뺀다 */
  &:lang(en) .lp-call-extra { display: none; }
  & .lp-call-wave { display: inline-flex; align-items: center; gap: 2px; height: 18px; }
  & .lp-call-wave i { width: 3px; height: 100%; border-radius: 2px; background: var(--wave); transform: scaleY(.2); animation: .46s ease-in-out infinite alternate; }
  & .lp-call-wave i:nth-child(3n) { animation-duration: .38s; }
  & .lp-call-wave i:nth-child(3n + 1) { animation-duration: .57s; animation-delay: -.2s; }
  & .lp-call-wave i:nth-child(4n) { animation-delay: -.31s; }
  & .lp-call:is([data-talk="q"], [data-talk="a"]) .lp-call-wave i { animation-name: lp-call-wave; }
  & .lp-call-langs { display: inline-flex; gap: 3px; }
  & .lp-call-langs i { min-width: 34px; padding: 1px 7px; border-radius: 6px; color: var(--card-soft); font: 500 13.5px/22px var(--mono); font-style: normal; text-align: center; transition: background-color .3s ease, color .3s ease; }
  & .lp-call-langs i.is-on { background: var(--card-ink); color: var(--card); }
  & .lp-call-row { flex: 1; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; align-content: center; gap: clamp(14px, 1.6vw, 26px); margin-top: clamp(10px, 1.8vh, 18px); }
  & .lp-speaker { margin-bottom: 5px; color: var(--card-soft); font-size: 14px; font-weight: 650; line-height: 1.3; transition: color .2s ease; }
  & .lp-call[data-talk="q"] .lp-speaker-q, & .lp-call[data-talk="a"] .lp-speaker-a { color: var(--wave); }
  /* 바뀌는 문장은 같은 칸에 겹쳐 두고 보이는 것만 바꾼다(띠 높이가 흔들리지 않게) */
  & .lp-swap { display: grid; align-items: center; }
  & .lp-swap > * { grid-area: 1 / 1; opacity: 0; visibility: hidden; transition: opacity .18s ease, visibility 0s linear .18s; }
  & .lp-swap > .is-on { opacity: 1; visibility: visible; transition: opacity .24s ease .16s, visibility 0s linear .16s; }
  & .lp-call-q > p { max-width: 19em; }
  & .lp-call :is(.lp-bubble-q, .lp-bubble-a) { font-size: clamp(17px, 1.25vw, 18px); }
  & .lp-call-a > p { justify-self: start; }
  /* 출처 칩 하나: 위로 통화 장면, 오른쪽으로 챗봇 창에 먹 선으로 이어진다 */
  & .lp-same { grid-area: same; position: relative; display: flex; align-items: center; margin-top: 14px; padding-left: clamp(20px, 2.4vw, 32px); font-size: 15.5px; font-weight: 600; }
  & .lp-same-caption { flex: 1; display: flex; align-items: center; gap: 14px; }
  & .lp-same-caption::after { content: ""; flex: 1; height: 1.5px; background: var(--ink); }
  & .lp-same::after { content: ""; position: absolute; right: calc(-4px - var(--dg)); top: 50%; width: 8px; height: 8px; margin-top: -4px; border-radius: 50%; background: var(--ink); }
  & .lp-call-source { --sm: clamp(28px, 4vw, 56px); position: relative; margin-right: var(--sm); }
  & .lp-call-source::before, & .lp-call-source::after { content: ""; position: absolute; background: var(--ink); }
  & .lp-call-source::before { left: 50%; bottom: 100%; width: 1.5px; height: 14px; }
  & .lp-call-source::after { left: 100%; top: 50%; width: calc(var(--sm) + var(--dg)); height: 1.5px; }
  & :is(.lp-call-source > p, .lp-source) { display: inline-flex; align-items: center; gap: 8px; justify-self: start; min-height: 38px; padding: 7px 14px 7px 11px; border-radius: 9px; background: var(--accent-tint); color: var(--ink); font-size: 15px; font-weight: 600; line-height: 1.35; }
  & .lp-call-source > p { white-space: nowrap; justify-self: stretch; }
  & :is(.lp-call-source, .lp-source) .lp-i { width: 18px; height: 18px; }
  & :is(.lp-call-source, .lp-source) b { font-weight: 750; }

  /* 말풍선: 꼬리 쪽 모서리만 각지게 두고 테두리를 그대로 꼬리 바깥 선으로 잇는다. 꼬리는 테두리색 삼각형 위에 1px 안쪽의 면색 삼각형을 겹쳐
     말풍선 아래 테두리를 덮으므로 이음매가 없다(면색은 불투명해야 하고, 면색 삼각형은 옆 테두리를 비켜 2px 위로 올려 소수점 위치에서도 틈이 없게 한다) */
  & :is(.lp-bubble-q, .lp-bubble-a) { --bf: var(--tint); --bs: var(--line-strong); position: relative; width: fit-content; max-width: 100%; margin-bottom: 13px; padding: 10px 16px; border: 1px solid var(--bs); border-radius: 14px 14px 14px 0; background: var(--bf); font-size: 17px; line-height: 1.5; letter-spacing: -.01em; }
  & .lp-bubble-a { --bf: var(--surface); --bs: var(--ink); border-radius: 14px 14px 0 14px; justify-self: end; font-weight: 500; }
  & :is(.lp-bubble-q, .lp-bubble-a)::before, & :is(.lp-bubble-q, .lp-bubble-a)::after { content: ""; position: absolute; top: 100%; width: 16px; height: 13px; background: var(--bs); }
  & :is(.lp-bubble-q, .lp-bubble-a)::after { top: calc(100% - 2px); width: 17px; height: 15px; background: var(--bf); }
  & .lp-bubble-q::before, & .lp-bubble-q::after { left: -1px; }
  & .lp-bubble-a::before, & .lp-bubble-a::after { right: -1px; }
  & .lp-bubble-q::before { clip-path: polygon(0 0, 15.17px 0, 0 13px); }
  & .lp-bubble-a::before { clip-path: polygon(100% 0, calc(100% - 15.17px) 0, 100% 13px); }
  & .lp-bubble-q::after { clip-path: polygon(2.5px 0, 15.96px 0, 1px 12.83px, 1px 1.6px, 2.5px 1.6px); }
  & .lp-bubble-a::after { clip-path: polygon(calc(100% - 2.5px) 0, calc(100% - 15.96px) 0, calc(100% - 1px) 12.83px, calc(100% - 1px) 1.6px, calc(100% - 2.5px) 1.6px); }
  & .lp-conversation :is(.lp-bubble-q, .lp-bubble-a) { max-width: 88%; }
  & .lp-dark .lp-bubble-q { --bf: color-mix(in srgb, var(--card-ink) 8%, var(--card)); --bs: color-mix(in srgb, var(--card-ink) 24%, var(--card)); }
  & .lp-dark .lp-bubble-a { --bf: color-mix(in srgb, var(--wave) 20%, var(--card)); --bs: color-mix(in srgb, var(--wave) 62%, var(--card)); }

  /* 홈페이지 챗봇 창: 머리(AI 안내) · 같은 말풍선 · 입력 칸 모양 */
  /* 실제 제품 화면 조각(.lp-product): 웹챗·웹전화 모양은 제품 CSS(chat_design.css, web_phone.css)가 정하고, 여기서는 자리와 크기만 맞춘다.
     제품 화면은 밝은 색 전용이라 다크 모드에서도 밝게 둔다. */
  & .lp-product { color-scheme: light; }
  /* 랜딩 웹챗 그림의 어두운 스킨(lp-chat-dark). 첫 화면 통화 장면과 같은 차콜 계열로 맞추고, 고객사 색(말풍선·보내기)은 그대로 둔다.
     실제 고객사 위젯(chat_design.css)에는 적용되지 않는다. */
  & .lp-chat-dark { --cd-bg: #161a17; --cd-raise: #232824; --cd-line: rgb(255 255 255 / .1); --cd-ink: #eef1ec; --cd-soft: #9aa39a; color-scheme: dark; }
  & .lp-chat-dark :is(.chat-surface, .chat-surface .chat-input) { color-scheme: dark; }
  & .lp-chat-dark .chat-surface { background: var(--cd-bg); color: var(--cd-ink); }
  & .lp-chat-dark .chat-surface :is(.chat-header, .chat-composer) { border-color: var(--cd-line); }
  & .lp-chat-dark .chat-surface :is(.chat-status, .chat-icon-button) { color: var(--cd-soft); }
  & .lp-chat-dark .chat-surface :is(.chat-notice, .chat-language-options) { background: var(--cd-raise); color: var(--cd-soft); }
  & .lp-chat-dark .chat-surface .chat-message-assistant .chat-bubble { background: var(--cd-raise); color: var(--cd-ink); }
  & .lp-chat-dark .chat-surface .chat-input { border-color: #3b423c; background: #0f1210; color: var(--cd-ink); }
  & .lp-chat-dark .chat-surface .chat-input::placeholder { color: var(--cd-soft); }
  /* 웹전화 카드: 색 대부분이 .tenant-theme 변수를 따르므로 변수를 어둡게 바꾸고, 고정 색만 따로 맞춘다 */
  & .lp-chat-dark .tenant-theme { --tenant-paper: #0f1210; --tenant-surface: #161a17; --tenant-control-surface: #1d221e; --tenant-control-hover: #262c27; --tenant-tint: #232824; --tenant-ink: #eef1ec; --tenant-muted: #9aa39a; --tenant-line: rgb(255 255 255 / .1); --tenant-line-strong: #4a514b; color: var(--tenant-ink); }
  & .lp-chat-dark .web-phone { border-color: var(--cd-line); }
  & .lp-chat-dark :is(.web-phone-description, .web-phone-notice) { color: var(--cd-soft); }
  & .lp-chat-dark .web-phone-status { background: var(--cd-raise); }
  /* 상담 데스크: 같은 변수를 쓰고(.tenant-theme 자신에게도 적용), 대화 배경·말풍선·입력창의 고정 색만 맞춘다 */
  & .lp-chat-dark.tenant-theme { --tenant-paper: #0f1210; --tenant-surface: #161a17; --tenant-control-surface: #1d221e; --tenant-control-hover: #262c27; --tenant-tint: #232824; --tenant-ink: #eef1ec; --tenant-muted: #9aa39a; --tenant-line: rgb(255 255 255 / .1); --tenant-line-strong: #4a514b; --tenant-accent-tint: rgb(156 136 255 / .2); --color-brand-700: #c4b8ff; color: var(--tenant-ink); }
  & .lp-chat-dark :is(.staff-chat-messages, .staff-chat-composer) { background: var(--cd-bg); }
  & .lp-chat-dark .staff-chat-message p { border-color: var(--cd-line); background: var(--cd-raise); color: var(--cd-ink); }
  & .lp-chat-dark .staff-chat-message-assistant p { background: #1b201c; }
  & .lp-chat-dark .staff-chat-message-staff p { background: var(--tenant-accent-tint); }
  & .lp-chat-dark .staff-chat-message-notice p { background: none; color: var(--cd-soft); }
  & .lp-chat-dark .staff-desk-search-excerpt mark { background: #6b5a12; color: #fff6c2; }
  /* 위 초기화(font: inherit)가 콘솔 공통 입력칸 글자 크기(층 안 규칙)를 덮지 않게 모형 안에서만 되돌린다. */
  & .lp-desk-mock .field-input { font-size: var(--ui-text); }
  & .lp-webchat { grid-area: webchat; display: flex; flex-direction: column; border-radius: 16px; box-shadow: var(--shadow); overflow: clip; }
  & .lp-webchat > .chat-surface { flex: 1; min-height: 0; }
  & .lp-webchat .chat-scroller { flex: 1; display: grid; align-content: center; gap: 10px; padding: 12px 16px; overflow: hidden; }
  /* 이점: 넓은 화면에서는 통화 장면 맨 아래 칸에 겹쳐 놓고, 좁은 화면에서는 챗봇 창 아래 한 줄 */
  & .lp-benefit-row { grid-area: call; align-self: end; z-index: 5; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px clamp(28px, 4.6vw, 72px); margin: 0 clamp(20px, 2.4vw, 32px) clamp(12px, 1.8vh, 18px); padding-top: clamp(10px, 1.6vh, 16px); border-top: 1px solid var(--card-line); color: var(--card-ink); }
  & .lp-benefit-row li { display: inline-flex; align-items: center; gap: 10px; font-size: 16px; font-weight: 650; }
  & .lp-benefit-row .lp-i { width: 19px; height: 19px; color: var(--wave); stroke-width: 2; }
  /* 통화 장면만 덮는 타일: 서버가 그려 두고 0.6초 안에 뒤집혀 걷힌다(제목과 버튼은 처음부터 보인다). 남는 타일은 장면 밖으로 잘린다 */
  & .lp-tiles { position: absolute; inset: 0; z-index: 4; display: grid; grid-template-columns: repeat(auto-fill, minmax(64px, 1fr)); grid-auto-rows: 64px; pointer-events: none; animation: lp-veil 0s linear .7s forwards; }
  & .lp-tiles i { display: block; animation: lp-tile-out .3s cubic-bezier(.55, 0, .8, .3) both; }
  & :is(.lp-tiles, .lp-mosaic) .lp-tone-0 { background: var(--card); }
  & :is(.lp-tiles, .lp-mosaic) .lp-tone-1 { background: var(--accent-tint); }
  & :is(.lp-tiles, .lp-mosaic) .lp-tone-2 { background: var(--tint); }
  & :is(.lp-tiles, .lp-mosaic) .lp-tone-3 { background: var(--surface); }

  /* 아이소메트릭 선 그림 공통. 면 클래스: fs 흰 면, fa 보라 기운, ft 옅은 면, fc 차콜, fp 바탕, fw 파형, fi 글줄, h 해칭 */
  & .lp-iso :is(path, rect, circle) { vector-effect: non-scaling-stroke; stroke: var(--ink); stroke-width: 1.2; stroke-linejoin: round; stroke-linecap: round; }
  & .lp-iso .fs { fill: var(--surface); }
  & .lp-iso .fa { fill: var(--accent-tint); }
  & .lp-iso .ft { fill: var(--tint); }
  & .lp-iso .fc { fill: var(--card); }
  & .lp-iso .fn { fill: none; }
  & .lp-iso .fp { fill: var(--paper); }
  & .lp-iso .fw { fill: var(--wave); stroke: none; }
  & .lp-iso .fi { fill: var(--ink-soft); stroke: none; opacity: .5; }
  & .lp-iso .h { fill: none; stroke: var(--ink-soft); stroke-width: 1; }
  & .lp-iso text { fill: var(--ink); font: 600 19.5px var(--font); letter-spacing: -.02em; }
  & .lp-iso .ico-l { fill: none; stroke: var(--card-ink); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
  & .lp-iso .ico { fill: none; stroke: var(--ink); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
  & .lp-iso .lp-card .cf { transition: fill .3s ease; }
  & .lp-iso.lp-dark :is(path, rect) { stroke: var(--card-soft); }
  & .lp-iso.lp-dark :is(.fs, .fp) { fill: var(--card); }
  & .lp-iso.lp-dark .ft { fill: var(--card-fill); }
  & .lp-iso.lp-dark .fa { fill: var(--wave-fill); }
  & .lp-iso.lp-dark .h { stroke: var(--card-soft); opacity: .6; }
  & .lp-iso.lp-dark text { fill: var(--card-ink); font-weight: 400; }
  & .lp-iso .bt { font-size: 26px; }
  /* 입체 말풍선: 정면을 보는 앞면 위에 옆면 실루엣을 landing-bubble 이 그린다. 그려지기 전에는 감춰 둔다 */
  & .lp-iso .lp-bubble3d { transition: opacity .3s ease; }
  & .lp-iso .lp-bubble3d:not(.is-built) { opacity: 0; }
  & .lp-iso .lp-bubble3d text { text-anchor: middle; dominant-baseline: central; }
  & .lp-iso.lp-dark .lp-bubble3d text { font-weight: 500; }
  & .lp-iso.lp-dark .lp-bubble3d .ft { fill: color-mix(in srgb, var(--card-ink) 9%, var(--card)); }
  & .lp-iso.lp-dark .lp-bubble3d .fa { fill: color-mix(in srgb, var(--wave) 20%, var(--card)); }
  & .lp-iso.lp-dark .flow { fill: none; stroke: var(--wave); stroke-dasharray: 3 7; stroke-width: 1.4; }

  /* 구역 공통 */
  & .lp-section { padding-block: clamp(96px, 11vw, 160px); }
  & .lp-section-flush { padding-top: 0; }
  & .lp-h2 { font-size: clamp(32px, 4.3vw, 62px); line-height: 1.1; }
  & .lp-section-head { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 16px 56px; align-items: end; }
  & .lp-section-head p { max-width: 42ch; color: var(--ink-soft); font-size: var(--t-body); }
  & .lp-center { max-width: 24em; margin-inline: auto; text-align: center; }

  /* 목소리 듣기: 음성 안내에 쓰는 목소리를 미리 녹음한 샘플. 누를 때만 재생하고, 재생 중에는 소리 크기에 맞춰 막대가 움직인다 */
  & .lp-voice { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(28px, 5vw, 80px); align-items: center; }
  & .lp-voice-copy > p { max-width: 44ch; margin-top: 20px; color: var(--ink-soft); font-size: var(--t-body); }
  & .lp-voice-list { margin-top: 28px; border-top: 1px solid var(--line); }
  & .lp-voice-list li { display: flex; align-items: center; gap: 12px; min-height: 50px; border-bottom: 1px solid var(--line); font-size: 17px; font-weight: 550; }
  & .lp-voice-list .lp-i { width: 18px; height: 18px; color: var(--accent); stroke-width: 2.2; }
  & .lp-player { display: grid; gap: 22px; padding: clamp(22px, 2.6vw, 36px); border-radius: 16px; box-shadow: var(--shadow); }
  & .lp-player-top { display: flex; justify-content: space-between; gap: 12px; color: var(--card-soft); font-size: 14px; text-transform: uppercase; }
  & .lp-greeting { font-size: clamp(34px, 4vw, 56px); font-weight: 500; line-height: 1.05; letter-spacing: -.04em; }
  & .lp-wave { display: flex; align-items: center; gap: 3px; height: 76px; }
  & .lp-wave span { flex: 1; height: 100%; border-radius: 2px; background: var(--wave); opacity: .85; transform: scaleY(var(--h)); transform-origin: 50% 50%; transition: transform .24s var(--ease-out); }
  & .lp-player.is-playing .lp-wave span { transition: none; }
  & .lp-caption-wrap { display: grid; justify-items: end; align-content: start; min-height: calc(3em + 33px); font-size: clamp(17px, 1.4vw, 19px); }
  & .lp-caption { max-width: 30em; color: var(--card-ink); font-size: inherit; font-weight: 400; }
  & .lp-player-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
  & .lp-play { display: inline-grid; grid-template-areas: "face"; align-items: center; min-height: 46px; padding: 0 20px 0 16px; border: 0; border-radius: 10px; background: var(--card-ink); color: var(--card); font-size: 16.5px; font-weight: 650; transition: transform .16s var(--ease-out); }
  & .lp-play:active { transform: scale(.96); }
  & .lp-play-face { grid-area: face; display: inline-flex; align-items: center; gap: 8px; }
  & .lp-play-face .lp-i { width: 17px; height: 17px; stroke-width: 2.2; }
  & .lp-play-active { visibility: hidden; }
  & .lp-player.is-playing .lp-play-idle { visibility: hidden; }
  & .lp-player.is-playing .lp-play-active { visibility: visible; }
  & .lp-choice-group { display: flex; flex-wrap: wrap; gap: 6px; }
  & .lp-choice-group button { min-height: 40px; padding: 6px 13px; border: 1px solid var(--card-line); border-radius: 8px; background: transparent; color: var(--card-soft); font-size: 16px; font-weight: 600; transition: color .2s ease, border-color .2s ease, background-color .2s ease; }
  & .lp-choice-group button:hover { color: var(--card-ink); }
  & .lp-choice-group button[aria-pressed="true"] { border-color: var(--card-ink); background: var(--card-ink); color: var(--card); }
  & .lp-player-note { color: var(--card-soft); font-size: 14.5px; }

  /* 질문 마키 띠(차콜) */
  & .lp-band { position: relative; padding-block: 28px clamp(96px, 10vw, 140px); }
  & .lp-marquee-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-block: 6px 14px; }
  & .lp-marquee-label { display: flex; align-items: center; gap: 10px; color: var(--card-soft); font-size: 15.5px; font-weight: 600; }
  & .lp-tag { padding: 1px 9px; border-radius: 6px; box-shadow: inset 0 0 0 1px var(--card-line); color: var(--card-soft); font-size: 14px; font-weight: 650; }
  & .lp-marquee-toggle { display: inline-flex; align-items: center; gap: 7px; min-height: 40px; padding: 6px 12px; border: 0; border-radius: 8px; background: var(--card-fill); color: var(--card-ink); font-size: 16px; font-weight: 600; transition: background-color .2s ease; }
  & .lp-marquee-toggle .lp-i { width: 15px; height: 15px; }
  & .lp-marquee-view { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent); mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent); }
  & .lp-marquee-track { display: flex; width: max-content; }
  & .lp-marquee-track li { display: inline-flex; align-items: center; gap: 10px; flex-shrink: 0; margin-right: 12px; padding: 10px 18px 10px 12px; font-size: clamp(17px, 1.4vw, 20px); font-weight: 400; white-space: nowrap; }
  & .lp-lang-tag { padding: 2px 7px; border-radius: 5px; background: rgb(156 136 255 / .18); color: var(--wave); font: 500 13.5px/1.4 var(--mono); letter-spacing: .06em; }
  & .lp-band-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 88px); align-items: center; margin-top: clamp(56px, 7vw, 100px); }
  & .lp-band-art { position: relative; }
  & .lp-band-svg { display: block; width: 100%; height: auto; max-width: 540px; margin-inline: auto; }
  & .lp-band-copy { position: relative; }
  & .lp-sticker { display: block; width: clamp(120px, 11vw, 156px); height: auto; margin-bottom: 28px; }
  & .lp-sticker-bg { fill: var(--accent-tint); }
  & .lp-sticker text { fill: var(--ink); font: 600 27px var(--font); letter-spacing: 0; }
  & .lp-sticker .ico { fill: none; stroke: var(--ink); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
  & .lp-spin { transform-box: view-box; transform-origin: 50% 50%; }
  & .lp-band-title { font-size: clamp(25px, 2.65vw, 38px); font-weight: 550; line-height: 1.32; letter-spacing: -.03em; }
  & .lp-band-sub { max-width: 40ch; margin-top: 20px; color: var(--card-soft); font-size: var(--t-body); }
  & .lp-band-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 28px; margin-top: 34px; }
  @media (hover: hover) and (pointer: fine) {
    & .lp-marquee-toggle:hover { background: rgb(255 255 255 / .12); }
  }

  /* 시연 */
  & .lp-stage { position: relative; display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr); gap: 12px; margin-top: clamp(32px, 3.4vw, 52px); padding: 12px; border-radius: 16px; background: var(--tint); }
  & .lp-stage-scene { position: relative; display: grid; align-content: center; min-height: 440px; padding: 72px 12px 12px; }
  & .lp-demo-svg { display: block; width: 100%; height: auto; }
  /* 채널 고르기(전화 기본) + 예시 표시. 문서 상자는 채널과 상관없이 같다 */
  & .lp-stage-top { position: absolute; left: 16px; top: 16px; right: 16px; z-index: 1; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; }
  & .lp-stage-tag { color: var(--ink-soft); font-size: 14px; font-weight: 600; }
  & .lp-channels { display: inline-flex; gap: 2px; padding: 3px; border-radius: 10px; background: var(--surface); box-shadow: inset 0 0 0 1px var(--line-strong); }
  & .lp-channels button { display: inline-flex; align-items: center; gap: 7px; min-height: 40px; padding: 6px 15px; border: 0; border-radius: 7px; background: none; font-size: 16px; font-weight: 650; transition: background-color .2s ease, color .2s ease; }
  & .lp-channels .lp-i { width: 17px; height: 17px; }
  & .lp-channels button[aria-pressed="true"] { background: var(--ink); color: var(--paper); }
  /* 웹챗으로 보면 오른쪽 판이 챗봇 창이 된다: 머리 → 대화 → 추천 질문 → 입력 칸 */
  /* .lp-who·.chat-surface 의 display 보다 앞서도록 .lp-stage 아래에서 숨긴다 */
  & .lp-stage :is(.lp-stage-webchat, .lp-stage-web-call) { display: none; }
  & .lp-stage.is-chat .lp-stage-webchat { display: flex; }
  & .lp-stage.is-chat .lp-stage-messages { display: grid; gap: 10px; background: transparent; }
  & .lp-stage.is-chat .lp-stage-chat > .lp-stage-composer { order: 2; margin-bottom: calc(-1 * var(--sp)); }
  & .lp-stage.is-chat .lp-conversation > :is(.lp-demo-q, .lp-demo-a) { display: none; }
  & .lp-stage.is-web-phone .lp-stage-web-call { display: flex; }
  & .lp-stage.is-web-phone .lp-stage-call { display: none; }
  /* 웹챗 화면에서는 오른쪽 창 전체가 위젯 안이므로 어두운 스킨 토큰으로 바꿔 질문 버튼과 출처도 위젯 위에서 읽히게 한다. */
  & .lp-stage.is-chat .lp-stage-chat { --paper: #0f1210; --tint: #232824; --surface: #161a17; --ink: #eef1ec; --ink-soft: #9aa39a; --line: rgb(255 255 255 / .1); --line-strong: #4a514b; --accent-tint: rgb(156 136 255 / .22); color-scheme: dark; padding-top: 0; background: var(--cd-bg); color: var(--ink); box-shadow: var(--shadow), inset 0 0 0 1px var(--cd-line); }
  & .lp-stage-chat > .lp-stage-webchat.chat-surface { margin: 0 calc(-1 * var(--sp)); background: transparent; }
  & .lp-stage.is-chat :is(.lp-stage-call, .lp-who-answer) { display: none; }
  & .lp-stage.is-chat .lp-conversation { padding-top: 0; border-top: 0; }
  & .lp-stage.is-chat .lp-stage-chat > .lp-questions { order: 1; margin-top: auto; }
  & .lp-stage.is-chat .lp-questions button { border-radius: 999px; }
  & .lp-stage-chat { --sp: clamp(18px, 2vw, 28px); display: flex; flex-direction: column; gap: 18px; padding: var(--sp); border-radius: 12px; background: var(--surface); box-shadow: var(--shadow), inset 0 0 0 1px var(--line); }
  & .lp-questions { display: flex; flex-wrap: wrap; gap: 6px; }
  & .lp-questions button { min-height: 44px; padding: 8px 15px; border: 1px solid var(--line-strong); border-radius: 8px; background: transparent; font-size: 16px; font-weight: 600; transition: transform .16s var(--ease-out), background-color .2s ease, border-color .2s ease, color .2s ease; }
  & .lp-questions button:active { transform: scale(.96); }
  & .lp-questions button[aria-pressed="true"] { border-color: var(--ink); background: var(--ink); color: var(--paper); }
  & .lp-conversation { display: grid; gap: 6px; padding-top: 16px; border-top: 1px solid var(--line); }
  & .lp-who { display: flex; align-items: center; gap: 8px; color: var(--ink-soft); font-size: 14px; font-weight: 650; }
  & .lp-stage-call { color: var(--ink); font-size: 15.5px; }
  & .lp-stage-call .lp-i { width: 17px; height: 17px; }
  & .lp-who-answer { justify-self: end; }
  & .lp-same-tag { padding: 0 8px; border-radius: 6px; box-shadow: inset 0 0 0 1px var(--line-strong); font-size: 14px; font-weight: 600; }
  & .lp-demo-q { justify-self: start; transition: opacity .3s ease, transform .45s var(--ease-expo); }
  & .lp-result .lp-source { justify-self: end; }
  & .lp-word { display: inline-block; transition: opacity .24s ease, transform .36s var(--ease-expo); transition-delay: calc(var(--i) * 26ms); }
  & .lp-result { display: grid; gap: 10px; margin-top: 10px; }
  & .lp-source { transition: opacity .4s ease, transform .5s var(--ease-expo); }
  & .lp-handoff { display: flex; align-items: flex-start; gap: 12px; padding: 14px 16px; border-radius: 10px; background: var(--card); color: var(--card-ink); transition: opacity .3s ease, transform .45s var(--ease-expo); }
  & .lp-handoff .lp-i { margin-top: 2px; color: var(--wave); }
  & .lp-handoff b { font-size: 16px; font-weight: 650; }
  & .lp-handoff p { margin-top: 2px; color: var(--card-soft); font-size: 15px; }
  & .lp-stage:not(.is-miss) .lp-handoff { display: none; }
  & .lp-stage.is-run:not(.is-q) .lp-demo-q { opacity: 0; transform: translateY(8px); }
  & .lp-stage.is-run .lp-demo-a .lp-word { opacity: .14; transform: translateY(.14em); }
  & .lp-stage.is-run.is-a .lp-demo-a .lp-word { opacity: 1; transform: none; }
  & .lp-stage.is-run:not(.is-cite) .lp-source { opacity: 0; transform: translateY(8px); }
  & .lp-stage.is-run:not(.is-hand) .lp-handoff { opacity: 0; transform: translateX(24px); }
  & .lp-demo-svg .lp-card { transition: transform .38s var(--ease-expo); }
  & .lp-demo-svg .lp-card.is-up { transform: translateY(-30px); }
  & .lp-demo-svg .lp-card.is-hit { transform: translateY(-80px); }
  & .lp-demo-svg .lp-card.is-kept { transform: translateY(-16px); }
  & .lp-demo-svg .lp-card:is(.is-hit, .is-kept) .cf { fill: var(--accent-tint); }
  & .lp-demo-svg .lp-ghost { opacity: 0; transform: translateY(12px); transition: opacity .3s ease, transform .55s var(--ease-expo); }
  & .lp-stage.is-miss-on .lp-demo-svg .lp-ghost { opacity: 1; transform: translateY(-122px); }
  & .lp-demo-svg .gf { fill: var(--surface); stroke-dasharray: 5 5; }
  & .lp-demo-svg .gt { font-size: 21px; }
  & .lp-demo-svg .gt2 { font-size: 19.5px; font-weight: 500; fill: var(--ink-soft); }
  & .lp-demo-svg .gx { fill: none; stroke-width: 1.6; }
  & .lp-demo-svg .arw { fill: none; stroke-width: 2; vector-effect: none; stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset .55s var(--ease-out); }
  & .lp-demo-svg .arh { fill: none; stroke-width: 2; opacity: 0; transition: opacity .2s ease .45s; }
  & .lp-stage.is-arrow .lp-demo-svg .arw { stroke-dashoffset: 0; }
  & .lp-stage.is-arrow .lp-demo-svg .arh { opacity: 1; }
  & .lp-demo-svg .bk-r { fill: var(--tint); transition: fill .3s ease; }
  & .lp-stage.is-hand .lp-demo-svg .bk-r { fill: var(--accent-tint); }
  & .lp-demo-svg .lp-staff-label { opacity: 0; transition: opacity .3s ease; }
  & .lp-demo-svg .lp-staff-label rect { stroke: none; }
  & .lp-demo-svg .lp-staff-label text { fill: var(--card-ink); font-size: 19.5px; }
  & .lp-stage.is-hand .lp-demo-svg .lp-staff-label { opacity: 1; }
  /* 그림 속 짧은 글자: 탭 폭(62)과 이름표 폭(132)이 정해져 있어 영어·일본어는 작게 쓰고, 일본어 탭 글자는 가로로 좁힌다 */
  &:lang(en) .lp-demo-svg .lp-tab-label, &:lang(ja) .lp-demo-svg .lp-tab-label { font-size: 12.5px; }
  &:lang(ja) .lp-demo-svg .lp-tab-label { transform: scaleX(.75); transform-box: fill-box; transform-origin: 50% 50%; }
  &:lang(en) .lp-demo-svg .lp-staff-label text { font-size: 16px; }
  &:lang(en) .lp-demo-svg .gt { font-size: 19px; }
  & .lp-fly { position: absolute; z-index: 6; display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border-radius: 6px; background: var(--accent-tint); box-shadow: 0 10px 24px -12px rgb(17 20 18 / .5), inset 0 0 0 1px var(--ink); color: var(--ink); font-size: 14.5px; font-weight: 650; pointer-events: none; white-space: nowrap; }
  & .lp-fly .lp-i { width: 15px; height: 15px; }
  & .lp-after { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px 28px; margin-top: clamp(28px, 3vw, 40px); padding-top: clamp(22px, 2.4vw, 30px); border-top: 1px solid var(--line); }
  & .lp-after p { font-size: clamp(20px, 1.9vw, 27px); font-weight: 500; letter-spacing: -.03em; }
  @media (hover: hover) and (pointer: fine) {
    & .lp-channels button:not([aria-pressed="true"]):hover { background: var(--tint); }
    & .lp-questions button:not([aria-pressed="true"]):hover { border-color: var(--ink); }
  }

  /* 이점 카드 3장 */
  & .lp-benefits { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-top: clamp(40px, 4.4vw, 64px); }
  & .lp-benefit { display: flex; flex-direction: column; border-radius: 12px; background: var(--surface); box-shadow: inset 0 0 0 1px var(--line); overflow: clip; }
  & .lp-benefit-art { padding: 34px 34px 6px; }
  & .lp-art { display: block; width: 100%; height: auto; overflow: visible; }
  & .lp-art .gd { fill: none; stroke: var(--ink-soft); stroke-width: 1.6; stroke-linecap: round; opacity: .75; }
  & .lp-art :is(.gl, .bl, .ar) { fill: none; stroke: var(--ink); stroke-width: 1.2; stroke-linecap: round; }
  & .lp-art .ar { stroke: var(--ink-soft); stroke-width: .9; }
  & .lp-art .ar.em { stroke: var(--ink); stroke-width: 1.5; }
  & .lp-art .o { fill: var(--accent-tint); stroke: var(--ink); stroke-width: 1.2; }
  & .lp-art .k { fill: var(--ink); }
  & .lp-art .ic { fill: none; stroke: var(--ink); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
  & .lp-art .gn { transform-box: fill-box; transform-origin: 50% 50%; transition: transform .5s var(--ease-expo) var(--dl, 0s); }
  & .lp-art [data-draw] { stroke-dasharray: 1; stroke-dashoffset: 0; transition: stroke-dashoffset 1.1s var(--ease-out) var(--dl, 0s); }
  & .lp-benefit-text { flex: 1; padding: 22px 34px 32px; text-align: center; }
  & .lp-benefit h3 { font-size: 19px; font-weight: 700; letter-spacing: -.01em; }
  & .lp-benefit-text p { max-width: 30ch; margin: 12px auto 0; font-size: var(--t-body); line-height: 1.6; }
  & .lp-benefit-links { display: grid; gap: 4px; padding: 18px 30px 22px; background: var(--card); color: var(--card-ink); }
  & .lp-benefit-links a { display: inline-flex; align-items: center; gap: 10px; min-height: 36px; font-size: 16px; font-weight: 550; }
  & .lp-benefit-links .lp-i { width: 15px; height: 15px; color: var(--wave); stroke-width: 2.2; transition: transform .25s var(--ease-out); }
  & .lp-benefit-links span { border-bottom: 1px solid rgb(156 136 255 / .5); transition: border-color .2s ease; }
  & .lp-benefit-links :focus-visible { outline-color: var(--wave); }
  @media (hover: hover) and (pointer: fine) {
    & .lp-benefit-links a:hover .lp-i { transform: translateX(3px); }
    & .lp-benefit-links a:hover span { border-color: var(--wave); }
  }

  /* 채널: 상자 대신 세로 구분선으로 나눈 세 칸. 맨 아래 흐름은 마지막 단계(사람에게 닿는 곳)만 차콜로 강조한다. */
  /* 웹전화 쪽: 왼쪽 짧은 설명과 단계, 오른쪽 실제 웹전화 카드(web_phone.css 그대로) */
  & .lp-web-call-layout { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: clamp(32px, 5vw, 96px); align-items: center; }
  & .lp-web-call-copy > p { max-width: 36ch; margin-top: 18px; color: var(--ink-soft); font-size: var(--t-body); }
  & .lp-web-call-steps { display: grid; gap: 0; margin-top: clamp(24px, 3vw, 40px); border-top: 1px solid var(--line-strong); }
  & .lp-web-call-steps li { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 12px; align-items: baseline; padding: 16px 0; border-bottom: 1px solid var(--line); font-size: clamp(17px, 1.5vw, 20px); font-weight: 600; }
  & .lp-web-call-steps .lp-mono { color: var(--ink-soft); font-size: 14px; }
  & .lp-channel-device { display: grid; justify-items: center; gap: 12px; margin: 0; }
  /* 둥근 카드 바깥으로 감싼 상자의 배경이 비치지 않게 한다 */
  & .lp-channel-device > .tenant-theme { width: 100%; background: transparent; }
  & .lp-channel-device figcaption { color: var(--ink-soft); font-size: 13px; font-weight: 600; }
  & .lp-channel-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: clamp(36px, 4.4vw, 64px); border-top: 1px solid var(--line-strong); }
  & .lp-channel-card { display: flex; flex-direction: column; gap: 18px; padding: 28px clamp(20px, 2.4vw, 36px) 8px; }
  & .lp-channel-card + .lp-channel-card { border-left: 1px solid var(--line); }
  & .lp-channel-card:first-child { padding-left: 0; }
  & .lp-channel-card:last-child { padding-right: 0; }
  & .lp-channel-top { display: flex; align-items: center; gap: 14px; }
  & .lp-channel-icon { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 14px; background: var(--card); color: var(--card-ink); box-shadow: inset 0 0 0 1px var(--card-line); }
  & .lp-channel-icon .lp-i { width: 24px; height: 24px; }
  & .lp-channel-top h3 { font-size: clamp(24px, 2.2vw, 30px); font-weight: 700; }
  /* 채널 이름과 상담 데스크 소개 끝의 기능 소개 링크. 글 속 링크로 보이게 밑줄을 둔다. */
  & .lp-channel-top h3 a,
  & .lp-text-link { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; text-decoration-color: var(--line-strong); }
  & .lp-channel-top h3 a:hover,
  & .lp-text-link:hover { text-decoration-color: currentColor; }
  & .lp-channel-best { padding: 10px 14px; border-radius: 10px; background: var(--tint); font-size: 16px; line-height: 1.45; }
  & .lp-channel-best b { margin-right: 8px; color: var(--ink-soft); font-size: 13px; font-weight: 650; }
  & .lp-channel-points { display: grid; gap: 10px; }
  & .lp-channel-points li { display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 10px; align-items: start; font-size: var(--t-body); line-height: 1.5; }
  & .lp-channel-points .lp-i { width: 18px; height: 18px; margin-top: .2em; stroke-width: 2.4; }
  & .lp-channel-flow { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: auto; padding-top: 18px; border-top: 1px dashed var(--line-strong); font-size: 14px; font-weight: 600; }
  & .lp-channel-flow span { padding: 4px 10px; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--line-strong); }
  & .lp-channel-flow span:last-child { background: var(--card); color: var(--card-ink); box-shadow: none; }
  & .lp-channel-flow .lp-i { width: 14px; height: 14px; color: var(--ink-soft); }

  /* 상담 데스크: 실제 상담 데스크(staff_desk.css)와 같은 구조의 정지 화면을 전체 폭으로 두고, 아래에 기능 네 가지를 한 줄로 둔다.
     데스크 모양은 제품 CSS 가 정하고 여기서는 높이와 둥근 틀만 맞춘다. */
  & .lp-desk-mock { margin-top: clamp(28px, 3.6vw, 52px); border-radius: 14px; box-shadow: var(--shadow), inset 0 0 0 1px var(--tenant-line); overflow: clip; background: var(--tenant-paper); color: var(--tenant-ink); font-size: 16px; }
  /* 제품 데스크는 화면 높이를 채우도록 flex·min-height 를 쓰므로, 그림에서는 정한 높이를 따르게 푼다 */
  & .lp-desk-mock .staff-desk-workspace { flex: none; min-height: 0; height: clamp(320px, 46vh, 440px); border: 0; border-radius: 0; }
  /* 실제 데스크처럼 최신 메시지(상담원 답변)가 보이도록 아래에 붙이고, 넘치는 이전 메시지는 위에서 가린다 */
  & .lp-desk-mock .staff-chat-messages { display: flex; flex-direction: column; justify-content: flex-end; overflow: hidden; }
  & .lp-desk-mock .staff-chat-message { flex-shrink: 0; }
  & .lp-desk-mock :is(.staff-desk-requests, .staff-desk-knowledge) { overflow: hidden; }
  & .lp-desk-features { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin-top: clamp(20px, 2.6vw, 36px); }
  & .lp-desk-feature { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 12px; align-items: start; }
  & .lp-desk-icon { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 11px; background: var(--card); color: var(--card-ink); box-shadow: inset 0 0 0 1px var(--card-line); }
  & .lp-desk-icon .lp-i { width: 19px; height: 19px; }
  & .lp-desk-feature h3 { font-size: 17px; font-weight: 700; letter-spacing: -.01em; }
  & .lp-desk-feature p { margin-top: 4px; color: var(--ink-soft); font-size: 15px; line-height: 1.5; }

  /* 밝은 구역 → 차콜 띠: 스크롤에 맞춰 뒤집히는 타일 경계(landing-edge) */
  & .lp-edge { --p: 0; position: absolute; left: 0; right: 0; bottom: 100%; display: grid; grid-template-columns: repeat(var(--cols, 24), minmax(0, 1fr)); pointer-events: none; }
  & .lp-edge i { aspect-ratio: 1; visibility: hidden; }
  & .lp-edge i.is-on { --k: clamp(0, (var(--p) - var(--t)) * 5, 1); visibility: visible; background: var(--card); transform: perspective(600px) rotateX(calc((1 - var(--k)) * 90deg)); opacity: clamp(0, var(--k) * 3, 1); transform-origin: 50% 100%; }

  /* 선언문 */
  & .lp-manifesto { position: relative; padding-block: clamp(110px, 13vw, 200px) clamp(72px, 8vw, 120px); text-align: center; }
  & .lp-manifesto-title { font-size: clamp(40px, 6.4vw, 96px); line-height: 1.08; letter-spacing: -.045em; }
  & .lp-manifesto-visual .lp-line { display: block; }
  & .lp-manifesto-visual .lp-em { color: var(--wave); }
  & .lp-manifesto-visual .lp-char { opacity: calc(.24 + .76 * clamp(0, (var(--p, 1) * 1.25 - var(--k)) * 6, 1)); }
  & .lp-manifesto-body { max-width: 38ch; margin: 32px auto 0; color: var(--card-soft); font-size: clamp(18px, 1.4vw, 20px); }

  /* 도입 3단계: 위로 겹쳐 쌓이는 카드 */
  & .lp-how { padding-block: clamp(40px, 5vw, 72px) clamp(96px, 10vw, 150px); }
  & .lp-how-head { text-align: center; }
  & .lp-how-head p { margin-top: 16px; color: var(--card-soft); font-size: var(--t-body); }
  & .lp-steps { display: grid; margin-top: clamp(40px, 4.4vw, 64px); }
  & .lp-step + .lp-step { margin-top: 18px; }
  & .lp-step-inner { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 128px; gap: clamp(24px, 4vw, 64px); min-height: clamp(340px, 36vw, 420px); padding-left: clamp(28px, 4.4vw, 72px); border-radius: 14px; background: var(--surface); color: var(--ink); overflow: clip; transform-origin: 50% 0; transform: scale(calc(1 - var(--c, 0) * .045)); }
  & .lp-step-inner::after { content: ""; position: absolute; inset: 0; background: var(--card); opacity: calc(var(--c, 0) * .55); pointer-events: none; }
  & .lp-step-copy { align-self: center; padding-block: 40px; }
  & .lp-step-number { color: var(--ink-soft); font-size: 15px; font-weight: 650; }
  & .lp-step-number .lp-mono { margin-left: 4px; font-size: 14px; color: var(--ink-soft); }
  & .lp-step h3 { margin-top: 12px; font-size: clamp(28px, 2.9vw, 42px); line-height: 1.15; }
  & .lp-step-copy > p:not(.lp-step-number) { max-width: 36ch; margin-top: 16px; color: var(--ink-soft); font-size: var(--t-body); }
  & .lp-step-list { align-self: center; border-top: 1px solid var(--line); }
  & .lp-step-list li { display: flex; align-items: center; gap: 12px; min-height: 54px; border-bottom: 1px solid var(--line); font-size: 17px; }
  & .lp-step-list .lp-i { width: 17px; height: 17px; stroke-width: 2.2; }
  & .lp-step-art { position: relative; background: var(--accent-tint); }
  & .lp-strip-art { position: absolute; inset: 0; width: 100%; height: 100%; }
  & .lp-strip-art :is(path, circle) { fill: none; stroke: var(--ink); stroke-width: 1.15; stroke-linecap: round; }
  & .lp-strip-art .k { fill: var(--ink); stroke: none; }
  & .lp-strip-art [data-draw] { stroke-dasharray: 1; stroke-dashoffset: 0; transition: stroke-dashoffset 1.4s var(--ease-out) var(--dl, 0s); }
  @media (min-width: 961px) and (min-height: 640px) {
    & .lp-step { position: sticky; top: calc(var(--hh) + 28px + var(--i) * 22px); }
    & .lp-step + .lp-step { margin-top: 22vh; }
  }

  /* 사실 숫자 띠 */
  & .lp-facts { padding-block: clamp(56px, 6vw, 96px) clamp(96px, 10vw, 150px); border-top: 1px solid var(--card-line); }
  & .lp-facts-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  & .lp-facts-row li { position: relative; display: flex; align-items: flex-end; justify-content: center; gap: 16px; padding-inline: 20px; }
  & .lp-fact-number { font-size: clamp(72px, 8.4vw, 120px); font-weight: 500; line-height: .86; letter-spacing: -.05em; font-variant-numeric: tabular-nums; }
  & .lp-fact-label { display: grid; gap: 2px; padding-bottom: 4px; }
  & .lp-fact-label b { font-size: clamp(18px, 1.6vw, 22px); font-weight: 500; }
  & .lp-fact-label span { color: var(--card-soft); font-size: 15px; }
  & .lp-star { position: absolute; left: -9px; top: 50%; width: 18px; height: 18px; margin-top: -9px; fill: var(--wave); }

  /* 자주 묻는 질문 */
  & .lp-faq-grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 32px clamp(32px, 6vw, 96px); align-items: start; }
  & .lp-faq-side p { max-width: 30ch; margin-top: 18px; color: var(--ink-soft); }
  & .lp-faq-side .lp-tl { margin-top: 16px; }
  & .lp-faq details { border-top: 1px solid var(--line); }
  & .lp-faq details:last-child { border-bottom: 1px solid var(--line); }
  & .lp-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: clamp(18px, 1.8vw, 24px) 0; font-size: clamp(18px, 1.6vw, 22px); font-weight: 600; letter-spacing: -.025em; list-style: none; cursor: pointer; transition: color .2s ease; }
  & .lp-faq summary::-webkit-details-marker { display: none; }
  & .lp-faq-toggle { display: grid; place-items: center; width: 34px; height: 34px; flex-shrink: 0; border-radius: 50%; box-shadow: inset 0 0 0 1px var(--line-strong); transition: transform .3s var(--ease-out), background-color .2s ease; }
  & .lp-faq-toggle .lp-i { width: 16px; height: 16px; stroke-width: 2; }
  & .lp-faq details[open] .lp-faq-toggle { transform: rotate(45deg); background: var(--ink); color: var(--paper); box-shadow: none; }
  & .lp-faq details p { max-width: 60ch; padding-bottom: clamp(18px, 1.8vw, 26px); color: var(--ink-soft); }
  & .lp-faq details[open] p { animation: lp-rise .35s var(--ease-out) both; }

  /* 도입 문의(차콜) */
  & .lp-contact { position: relative; padding-block: clamp(96px, 10vw, 150px); }
  & .lp-contact-grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: clamp(32px, 5vw, 88px); align-items: start; }
  & .lp-contact-copy h2 { font-size: clamp(34px, 4.4vw, 64px); line-height: 1.1; }
  & .lp-contact-copy > p { max-width: 38ch; margin-top: 22px; color: var(--card-soft); font-size: var(--t-body); }
  & .lp-contact-alt { display: grid; gap: 4px; margin-top: 30px; padding-top: 22px; border-top: 1px solid var(--card-line); color: var(--card-soft); font-size: 17px; }
  & .lp-contact-alt a { color: var(--card-ink); font-weight: 600; border-bottom: 1px solid rgb(156 136 255 / .55); transition: border-color .2s ease; }
  & .lp-contact-alt a:hover { border-color: var(--wave); }
  & .lp-contact-alt .lp-mono { font-size: 15.5px; }
  & .lp-contact-card { position: relative; display: flex; flex-direction: column; padding: clamp(22px, 2.6vw, 36px); border-radius: 14px; background: var(--surface); color: var(--ink); box-shadow: 0 40px 70px -40px rgb(0 0 0 / .7); overflow: clip; isolation: isolate; }
  & .lp-contact-card :focus-visible { outline-color: var(--accent); }
  & .lp-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 14px; }
  & .lp-field { display: grid; gap: 7px; min-width: 0; margin: 0; padding: 0; border: 0; }
  & .lp-field-wide { grid-column: 1 / -1; }
  & :is(.lp-field > label, .lp-field > legend) { padding: 0; font-size: 16px; font-weight: 650; }
  & .lp-optional { margin-left: 6px; color: var(--ink-soft); font-size: 14px; font-weight: 500; }
  & .lp-input { width: 100%; min-height: 50px; padding: 12px 16px; border: 1px solid var(--line-strong); border-radius: 8px; background: var(--paper); font-size: 17px; transition: border-color .2s ease, box-shadow .2s ease; }
  & .lp-input::placeholder { color: var(--ink-soft); opacity: 1; }
  & .lp-input[aria-invalid="true"] { border-color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); }
  & .lp-select { position: relative; }
  & .lp-select select { appearance: none; padding-right: 44px; cursor: pointer; }
  & .lp-select .lp-i { position: absolute; right: 16px; top: 50%; width: 18px; height: 18px; margin-top: -9px; pointer-events: none; color: var(--ink-soft); }
  & .lp-checks { display: flex; flex-wrap: wrap; gap: 8px; }
  & .lp-check { position: relative; display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 10px 18px 10px 14px; border: 1px solid var(--line-strong); border-radius: 8px; font-size: 16.5px; font-weight: 600; cursor: pointer; transition: transform .16s var(--ease-out), background-color .2s ease, border-color .2s ease, color .2s ease; }
  & .lp-check:active { transform: scale(.97); }
  & .lp-check input { position: absolute; width: 1px; height: 1px; opacity: 0; }
  & .lp-check-box { display: grid; place-items: center; width: 20px; height: 20px; border-radius: 5px; box-shadow: inset 0 0 0 1.5px var(--line-strong); }
  & .lp-check-box .lp-i { width: 13px; height: 13px; stroke-width: 2.8; opacity: 0; transition: opacity .15s ease; }
  & .lp-check:has(input:checked) { border-color: var(--ink); background: var(--ink); color: var(--paper); }
  & .lp-check:has(input:checked) .lp-check-box { box-shadow: none; background: var(--paper); color: var(--ink); }
  & .lp-check:has(input:checked) .lp-check-box .lp-i { opacity: 1; }
  & .lp-check:has(input:focus-visible) { outline: 3px solid var(--accent); outline-offset: 3px; }
  & .lp-check:has(input[aria-invalid="true"]) { border-color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); }
  & .lp-error { display: flex; align-items: flex-start; gap: 6px; font-size: 15px; font-weight: 650; line-height: 1.45; }
  & .lp-error .lp-i { width: 16px; height: 16px; margin-top: 1px; }
  & .lp-lead .lp-cta { width: 100%; justify-content: space-between; margin-top: 24px; }
  & .lp-lead .lp-cta:disabled { cursor: progress; opacity: .72; }
  & .lp-send-error { margin-top: 18px; }
  & .lp-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
  & .lp-form-note { margin-top: 12px; color: var(--ink-soft); font-size: 14px; text-align: center; }
  & .lp-form-note a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
  & .lp-receipt { flex: 1; display: flex; flex-direction: column; justify-content: center; gap: 16px; }
  & .lp-receipt .lp-receipt-icon { width: 44px; height: 44px; stroke-width: 1.5; }
  & .lp-receipt h3 { font-size: clamp(22px, 2.1vw, 28px); font-weight: 600; line-height: 1.3; outline: none; }
  & .lp-receipt-summary { display: grid; gap: 6px; padding-block: 14px; border-block: 1px solid var(--line); font-size: 16px; }
  & .lp-receipt-summary div { display: grid; grid-template-columns: 6.5em minmax(0, 1fr); gap: 10px; }
  & .lp-receipt-summary dt { color: var(--ink-soft); }
  & .lp-receipt-summary dd { overflow-wrap: anywhere; }
  & .lp-receipt-note { color: var(--ink-soft); font-size: 15px; }
  & .lp-receipt-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; }
  & .lp-receipt-again { min-height: 44px; padding: 0; border: 0; background: none; color: var(--ink-soft); font-size: 16px; text-decoration: underline; text-underline-offset: 4px; }
  & .lp-mosaic { position: absolute; inset: 0; z-index: 5; display: grid; pointer-events: none; }
  @media (hover: hover) and (pointer: fine) {
    & .lp-input:hover { border-color: var(--ink-soft); }
    & .lp-check:hover { border-color: var(--ink); }
  }

  /* 기존 고객 로그인: 문의보다 약하게 */
  & .lp-workspace { padding-block: clamp(56px, 6vw, 88px) 0; }
  & .lp-workspace-panel { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px 48px; align-items: center; padding: clamp(22px, 2.6vw, 32px); border-radius: 12px; box-shadow: inset 0 0 0 1px var(--line); }
  & .lp-workspace h2 { font-size: clamp(21px, 2vw, 26px); font-weight: 600; line-height: 1.3; }
  & .lp-workspace-panel > div > p { margin-top: 6px; color: var(--ink-soft); font-size: 17px; }
  & .lp-workspace-form label { display: block; margin-bottom: 8px; font-size: 16px; font-weight: 650; }
  & .lp-workspace-row { display: flex; gap: 8px; }
  & .lp-workspace-row .lp-input { flex: 1; min-width: 0; }
  & .lp-workspace-hint { margin-top: 10px; color: var(--ink-soft); font-size: 14.5px; }
  & .lp-workspace-error { margin-top: 6px; font-size: 15px; font-weight: 650; }

  /* 꼬리말: 거대한 워드마크 */
  & .lp-footer { padding-block: clamp(72px, 8vw, 120px) 40px; overflow: clip; }
  & .lp-footer-mark { display: flex; padding-top: .04em; font-size: min(29vw, 440px); font-weight: 800; line-height: .8; letter-spacing: -.065em; overflow: clip; }
  & .lp-footer-mark span { display: inline-block; }
  & .lp-footer-mark .lp-footer-mark-light { font-weight: 400; }
  & .lp-footer-row { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px 32px; margin-top: clamp(28px, 3vw, 44px); padding-top: 24px; border-top: 1px solid var(--line); }
  & .lp-footer-slogan { font-size: clamp(19px, 1.8vw, 24px); font-weight: 500; letter-spacing: -.03em; }
  & .lp-footer-links { display: flex; flex-wrap: wrap; gap: 12px 22px; font-size: 15.5px; }
  & .lp-footer-links a { white-space: nowrap; }
  & .lp-footer-links a { padding-block: 11px; margin-block: -11px; color: var(--ink-soft); font-weight: 550; transition: color .2s ease; }
  & .lp-footer-links .lp-footer-privacy { color: var(--ink); font-weight: 700; }
  & .lp-footer-company { display: flex; flex-direction: column; gap: 2px; margin-top: 20px; color: var(--ink-soft); font-size: 14px; font-style: normal; line-height: 1.8; }
  & .lp-footer-company > div { display: flex; flex-wrap: wrap; }
  /* 글줄 안의 링크라 세로 패딩이 줄 높이를 바꾸지 않고 누르는 영역만 넓힌다 */
  & .lp-footer-company a { padding-block: 12px; transition: color .2s ease; }
  & .lp-footer-value { white-space: nowrap; }
  & .lp-footer-field + .lp-footer-field::before { content: "·"; margin-inline: 8px; color: var(--line-strong); }
  @media (hover: hover) and (pointer: fine) {
    & :is(.lp-footer-links a, .lp-footer-company a):hover { color: var(--ink); }
  }

  /* 약관 화면(개인정보처리방침, 이용약관): 가운데 좁은 한 단. 목차에서 조항으로 이동한다. */
  & .lp-legal { padding-top: clamp(40px, 5vw, 80px); }
  & .lp-legal-doc { width: min(820px, calc(100% - var(--gutter) * 2)); margin-inline: auto; }
  & .lp-legal-head h1 { font-size: clamp(30px, 3.6vw, 46px); font-weight: 800; line-height: 1.15; }
  /* 기능 소개 페이지 제목 위의 위치 표시(홈 > 기능 이름) */
  & .lp-breadcrumb ol { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; color: var(--ink-soft); font-size: 14px; font-weight: 600; list-style: none; padding: 0; }
  & .lp-breadcrumb li + li::before { content: "›"; margin-right: 6px; }
  & .lp-breadcrumb a { text-decoration: underline; text-underline-offset: .2em; text-decoration-color: var(--line-strong); }
  & .lp-legal-date { margin-top: 12px; color: var(--ink-soft); font-size: 14px; font-weight: 600; }
  & .lp-legal-intro { margin-top: 20px; color: var(--ink-soft); }
  & .lp-legal-notice { display: block; margin-top: 28px; padding: 18px 22px; border-radius: 14px; background: var(--accent-tint); }
  & .lp-legal-notice strong { font-size: 15px; }
  & .lp-legal-notice p { margin-top: 4px; font-size: 15px; }
  & .lp-legal-toc { margin-top: 28px; padding: 20px 24px; border-radius: 14px; background: var(--surface); box-shadow: inset 0 0 0 1px var(--line); }
  & .lp-legal-toc ol { columns: 2; column-gap: 32px; }
  & .lp-legal-toc li { break-inside: avoid; }
  & .lp-legal-toc a { display: flex; gap: 8px; padding-block: 4px; color: var(--ink-soft); font-size: 14px; transition: color .2s ease; }
  & .lp-legal-num { flex-shrink: 0; color: var(--accent); font-variant-numeric: tabular-nums; font-weight: 700; }
  & .lp-legal-chapter { margin-top: 56px; padding-bottom: 12px; border-bottom: 1px solid var(--line); color: var(--ink-soft); font-size: 15px; font-weight: 700; }
  & .lp-legal-section { padding-top: 40px; scroll-margin-top: 88px; }
  & .lp-legal-section h2 { display: flex; gap: 10px; font-size: clamp(18px, 1.6vw, 21px); line-height: 1.4; letter-spacing: -.03em; }
  & .lp-legal-section h3 { margin-top: 18px; font-size: 15px; letter-spacing: -.01em; }
  & .lp-legal-section p { margin-top: 10px; color: var(--ink-soft); font-size: 15px; line-height: 1.8; }
  & .lp-legal-section ul { margin-top: 8px; padding-left: 20px; list-style: disc; color: var(--ink-soft); font-size: 15px; line-height: 1.8; }
  & .lp-legal-section li + li { margin-top: 4px; }
  & .lp-legal-entry { margin-top: 12px; padding: 16px 20px; border-radius: 12px; background: var(--surface); box-shadow: inset 0 0 0 1px var(--line); }
  & .lp-legal-entry strong { font-size: 15px; }
  & :is(.lp-legal-entry, .lp-legal-business) dl { display: grid; gap: 6px; margin-top: 10px; font-size: 14px; }
  & :is(.lp-legal-entry, .lp-legal-business) dl > div { display: grid; grid-template-columns: 9em minmax(0, 1fr); gap: 12px; }
  & :is(.lp-legal-entry, .lp-legal-business) dt { color: var(--ink-soft); font-weight: 600; }
  & .lp-legal-business { margin-top: 64px; padding: 24px; border-radius: 14px; background: var(--tint); }
  & .lp-legal-business h2 { font-size: 15px; letter-spacing: -.01em; }
  @media (hover: hover) and (pointer: fine) {
    & .lp-legal-toc a:hover { color: var(--ink); }
  }

  /* 모바일 하단 고정 문의 · 오른쪽 쪽 표시(아래 미디어 조건에서만 보인다) */
  & .lp-dock, & .lp-pager { display: none; }

  /* 움직임: 기본은 최종 상태. 움직임을 허용할 때만 시작 상태를 둔다 */
  @media (prefers-reduced-motion: no-preference) {
    & .lp-float { animation: lp-bob 8s ease-in-out infinite alternate; }
    & .lp-float-2 { animation-duration: 10s; animation-delay: -3s; }
    & .lp-float-3 { animation-duration: 12s; animation-delay: -6s; }
    & .lp-marquee-track { animation: lp-marquee 52s linear infinite; }
    & .lp-spin { animation: lp-spin 26s linear infinite; }
    & .lp-iso .flow { animation: lp-flow 1.6s linear infinite; }
    & :is(.is-off, .is-tab-hidden) :is(.lp-float, .lp-marquee-track, .lp-spin, .flow),
    & .lp-marquee:is(:hover, :focus-within, .is-stopped) .lp-marquee-track { animation-play-state: paused; }
    & .is-ready :is(.lp-benefit:not(.is-on) .lp-art, .lp-step:not(.is-on) .lp-strip-art) [data-draw] { stroke-dashoffset: 1; }
    & .is-ready .lp-benefit:not(.is-on) .lp-art .gn { transform: scale(0); }
    & .is-ready .lp-footer-mark span { transform: translateY(104%); transition: transform 1s var(--ease-expo) calc(var(--i) * 60ms); }
    & .is-ready .lp-footer-mark.is-on span { transform: none; }
  }

  @media (prefers-color-scheme: dark) {
    & :is(.lp-call, .lp-stage-chat, .lp-webchat) { box-shadow: var(--shadow), inset 0 0 0 1px var(--line-strong); }
    & .lp-contact-card { box-shadow: inset 0 0 0 1px var(--line-strong); }
  }

  /* 좁은 화면: 통화 장면 → 출처 칩 → 챗봇 창 순서로 쌓는다 */
  @media (max-width: 1280px) {
    & .lp-login-prefix { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  }
  @media (max-width: 1240px) {
    & .lp-call-extra { display: none; }
  }
  @media (max-width: 1180px) and (min-width: 761px) {
    & .lp-header-tel-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  }
  @media (max-width: 1100px) {
    & .lp-duo { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; grid-template-areas: "call" "same" "webchat" "benefits"; }
    & .lp-call { padding-bottom: clamp(12px, 1.8vh, 18px); }
    & .lp-same { flex-direction: column-reverse; align-items: flex-end; gap: 6px; padding: 0; font-size: 15px; }
    & .lp-call-source { margin-right: clamp(16px, 2.4vw, 32px); }
    & :is(.lp-call-source, .lp-same-caption)::after, & .lp-same::after { content: none; }
    & .lp-webchat { justify-self: end; width: min(100%, 440px); margin-top: 16px; }
    & .lp-benefit-row { grid-area: benefits; margin: 18px 0 0; padding: 0; border: 0; color: inherit; }
    & .lp-benefit-row .lp-i { color: var(--ink); }
  }
  @media (max-width: 960px) {
    & .lp-nav { display: none; }
    & .lp-call-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); row-gap: 4px; }
    & :is(.lp-section-head, .lp-band-grid, .lp-faq-grid, .lp-contact-grid, .lp-workspace-panel, .lp-voice) { grid-template-columns: minmax(0, 1fr); }
    & .lp-band-art { order: 2; }
    & .lp-stage { grid-template-columns: minmax(0, 1fr); }
    & .lp-stage-scene { min-height: 0; padding: 64px 0 0; }
    & .lp-stage-top { left: 4px; top: 6px; right: 4px; }
    & .lp-benefits { grid-template-columns: minmax(0, 1fr); }
    & .lp-desk-features { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    /* 제품 데스크는 이 폭에서 문서 검색을 아래 줄로 내리므로 그림도 높이를 풀어 모두 보이게 한다 */
    & .lp-desk-mock .staff-desk-workspace { height: auto; }
    & .lp-desk-mock :is(.staff-desk-conversation, .staff-desk-queue) { height: 24rem; max-height: none; }
    & .lp-desk-mock .staff-desk-knowledge { min-height: 0; max-height: none; }
    & .lp-web-call-layout { grid-template-columns: minmax(0, 1fr); }
    & .lp-channel-device > .tenant-theme { max-width: 380px; }
    & .lp-channel-grid { grid-template-columns: minmax(0, 1fr); }
    & .lp-channel-card { padding: 24px 0 8px; }
    & .lp-channel-card + .lp-channel-card { border-left: 0; border-top: 1px solid var(--line); }
    & .lp-step-inner { grid-template-columns: minmax(0, 1fr); gap: 0; padding: 0; }
    & .lp-step-copy { padding: 28px 24px 8px; }
    & .lp-step-list { margin: 16px 24px 24px; }
    & .lp-step-art { display: none; }
    & .lp-facts-row { grid-template-columns: minmax(0, 1fr); gap: 28px; }
    & .lp-facts-row li { justify-content: flex-start; padding: 0; }
    & .lp-star { display: none; }
  }
  /* 모바일: 머리말에는 문의 버튼 대신 하단 고정 버튼을 쓴다(첫 화면에는 큰 문의 버튼이 있다) */
  @media (max-width: 760px) {
    & .lp-desk-mock .staff-desk-queue { display: none; }
    & .lp-header-inner { gap: 10px; }
    & .lp-wordmark { font-size: 22px; }
    & .lp-header-actions { gap: 12px; }
    & .lp-header-tel { width: 40px; height: 40px; justify-content: center; border-radius: 50%; box-shadow: inset 0 0 0 1px var(--line); }
    & .lp-header-tel-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
    & .lp-langs a { min-width: 30px; }
    & .lp-login { font-size: 14px; }
    & .lp-header-cta { display: none; }
    & .lp-hero { min-height: 0; padding-block: 20px 32px; }
    & .lp-hero h1 { font-size: clamp(34px, 9.6vw, 40px); line-height: 1.16; letter-spacing: -.04em; }
    & .lp-lede { margin-top: 12px; font-size: 17px; }
    & .lp-hero-actions { margin-top: 20px; gap: 4px 22px; }
    & .lp-cta { min-height: 54px; font-size: 17px; }
    & .lp-chip { width: 36px; height: 36px; }
    & .lp-cta-note { margin-top: 6px; font-size: 15px; }
    & .lp-duo { margin-top: 22px; }
    & .lp-call { padding: 14px 16px; border-radius: 14px; }
    & .lp-call-top { font-size: 15px; }
    & .lp-call-row { grid-template-columns: minmax(0, 1fr); gap: 4px; margin-top: 10px; }
    & :is(.lp-call-extra, .lp-call-langs) { display: none; }
    & .lp-swap > :not([data-variant~="0"]) { display: none; }
    & .lp-call-answer { display: grid; justify-items: end; }
    & .lp-call-a > p { justify-self: end; }
    & .lp-call :is(.lp-bubble-q, .lp-bubble-a) { max-width: 92%; }
    & .lp-call-source > p { white-space: normal; }
    & .lp-tiles { grid-template-columns: repeat(auto-fill, minmax(46px, 1fr)); grid-auto-rows: 46px; }
    & .lp-benefit-row { justify-content: flex-start; gap: 6px 20px; margin-top: 18px; }
    & .lp-benefit-row li { font-size: 15px; }
    /* 폭이 좁으면 시연 그림 속 글자가 너무 작아지므로 그림만 남긴다 */
    & .lp-demo-svg :is(text, .fp), & .lp-demo-svg .lp-staff-label { display: none; }
    & .lp-stage-scene { padding-top: 84px; }
    & .lp-marquee-track li { padding: 10px 14px 10px 10px; }
    & .lp-sticker { width: 112px; margin-bottom: 20px; }
    & .lp-benefit-art { padding: 26px 24px 4px; }
    & .lp-benefit-text { padding: 18px 22px 26px; }
    & .lp-form-grid { grid-template-columns: minmax(0, 1fr); }
    & .lp-workspace-row { flex-direction: column; }
    & :is(.lp-after, .lp-band-actions) .lp-cta { width: 100%; justify-content: space-between; }
    & .lp-footer-company > div { flex-direction: column; }
    & .lp-footer-field + .lp-footer-field::before { content: none; }
    & .lp-legal-toc ol { columns: 1; }
    & :is(.lp-legal-entry, .lp-legal-business) dl > div { grid-template-columns: minmax(0, 1fr); gap: 0; }
    &:has(.lp-dock) { padding-bottom: 84px; }
    & .lp-dock { display: block; position: fixed; left: 16px; right: 16px; bottom: calc(12px + env(safe-area-inset-bottom)); z-index: 25; transform: translateY(calc(100% + 28px)); transition: transform .4s var(--ease-expo); }
    & .lp-dock.is-on { transform: none; }
    & .lp-dock .lp-cta { width: 100%; justify-content: space-between; box-shadow: 0 18px 34px -16px rgb(17 20 18 / .55); }
  }
  @media (min-width: 1101px) {
    & .lp-deco { display: block; }
    & .lp-deco-left { left: max(12px, calc((100% - var(--measure)) / 2 - 8px)); top: clamp(36px, 10%, 110px); width: clamp(92px, 8.4vw, 128px); }
    & .lp-deco-right { right: max(44px, calc((100% - var(--measure)) / 2 - 24px)); top: clamp(20px, 6%, 80px); width: clamp(100px, 9vw, 140px); }
  }

  /* 데스크톱 쪽 넘김: 폭 1101px·높이 700px 이상에서만 구역 하나가 머리말 아래 한 화면(--ph)을 채우고 한 쪽씩 넘어간다.
     선언문+숫자, 로그인+꼬리말은 둘을 합쳐 한 쪽. 그 밖의 화면은 위의 흐름을 그대로 쓴다. */
  @media (min-width: 1101px) and (min-height: 700px) {
    --ph: calc(100svh - var(--hh));
    --pp: clamp(24px, 4.4vh, 48px);
    --nh: clamp(150px, 22vh, 210px);
    --lh: clamp(216px, 28vh, 244px);

    /* 쪽마다 한 화면이므로 머리말 아래로 이전 쪽 끝이 비치지 않게 불투명하게 둔다 */
    & .lp-paged .lp-header { background: var(--paper); -webkit-backdrop-filter: none; backdrop-filter: none; box-shadow: 0 1px 0 var(--line); }
    & .lp-paged main { display: flex; flex-direction: column; }
    & .lp-paged main > :is(.lp-how, .lp-faq, .lp-contact, .lp-workspace) { order: 1; }
    & .lp-paged .lp-page { height: var(--ph); min-height: 0; padding-block: var(--pp); display: flex; flex-direction: column; justify-content: center; overflow: clip; scroll-snap-align: start; scroll-snap-stop: always; }
    & .lp-paged .lp-hero.lp-page { padding-block: clamp(16px, 3vh, 40px); }
    & .lp-paged .lp-manifesto.lp-page { height: calc(var(--ph) - var(--nh)); }
    & .lp-paged .lp-workspace.lp-page { height: var(--lh); padding-block: var(--pp) 0; justify-content: flex-end; }
    & .lp-paged .lp-h2 { font-size: clamp(32px, min(4.3vw, 6.4vh), 62px); }

    & .lp-paged .lp-hero h1 { font-size: clamp(48px, min(5.8vw, 8.6vh), 92px); }
    &:lang(ja) .lp-paged .lp-hero h1 { font-size: clamp(40px, min(4vw, 7vh), 60px); }
    & .lp-paged .lp-hero-actions { margin-top: clamp(16px, 2.6vh, 36px); }
    & .lp-paged .lp-duo { margin-top: clamp(14px, 2.6vh, 52px); }

    & .lp-paged .lp-marquee-head { padding-block: 0 clamp(8px, 1.4vh, 14px); }
    & .lp-paged .lp-band-grid { margin-top: clamp(20px, 4.4vh, 72px); }
    & .lp-paged .lp-band-svg { max-height: calc(var(--ph) - 2 * var(--pp) - 180px); }
    & .lp-paged .lp-sticker { width: clamp(104px, 14vh, 156px); margin-bottom: clamp(14px, 2.6vh, 28px); }
    & .lp-paged .lp-band-title { font-size: clamp(24px, min(2.65vw, 4.3vh), 38px); }
    & .lp-paged .lp-band-sub { margin-top: clamp(12px, 2vh, 20px); }
    & .lp-paged .lp-band-actions { margin-top: clamp(18px, 3.4vh, 34px); }

    & .lp-paged .lp-stage { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); margin-top: clamp(14px, 2.4vh, 52px); padding: 10px; }
    & .lp-paged .lp-stage-scene { min-height: 0; padding: 66px 8px 8px; }
    & .lp-paged .lp-demo-svg { max-height: calc(var(--ph) - 2 * var(--pp) - 268px); }
    & .lp-paged .lp-stage-chat { --sp: clamp(16px, 2.4vh, 28px); gap: clamp(10px, 1.6vh, 18px); }
    & .lp-paged .lp-conversation { gap: 4px; padding-top: clamp(10px, 1.6vh, 16px); }
    & .lp-paged .lp-conversation :is(.lp-bubble-q, .lp-bubble-a) { font-size: clamp(17px, 2.4vh, 18px); }
    & .lp-paged .lp-result { gap: 8px; margin-top: 6px; }
    & .lp-paged .lp-handoff { padding: 12px 14px; }
    /* 웹챗 화면은 머리와 입력 칸이 더해지므로 간격을 줄여 같은 쪽 안에 둔다 */
    & .lp-paged .lp-stage.is-chat .lp-stage-chat { gap: 8px; }
    & .lp-paged .lp-stage.is-chat .lp-handoff { padding: 10px 14px; }
    & .lp-paged .lp-stage.is-chat .lp-questions button { min-height: 40px; }
    & .lp-paged .lp-after { margin-top: clamp(10px, 1.8vh, 40px); padding-top: clamp(10px, 1.6vh, 30px); }

    & .lp-paged .lp-channel-grid { margin-top: clamp(16px, 3.4vh, 56px); }
    /* 실제 웹전화 카드(약 600px)는 쪽 높이가 모자랄 때만 카드 전체를 비율로 줄인다. 카드 안 CSS 는 바꾸지 않는다. */
    @media (max-height: 740px) { & .lp-paged .lp-channel-device { zoom: .92; } }
    & .lp-paged .lp-channel-card { gap: clamp(10px, 1.8vh, 18px); padding-top: clamp(16px, 2.6vh, 28px); }
    & .lp-paged .lp-channel-points li { font-size: clamp(15px, 2.2vh, 18px); }
    & .lp-paged .lp-channel-flow { padding-top: clamp(10px, 1.8vh, 18px); }
    @media (max-width: 1240px) {
      & .lp-paged .lp-channel-flow { gap: 4px; font-size: 12.5px; }
      & .lp-paged .lp-channel-flow span { padding: 3px 8px; }
      & .lp-paged .lp-channel-flow .lp-i { width: 12px; height: 12px; }
    }
    /* 상담 데스크: 쪽 높이(--ph)에 맞춰 데스크 높이와 기능 설명을 줄인다. */
    & .lp-paged .lp-desk-mock { margin-top: clamp(12px, 2.4vh, 40px); }
    & .lp-paged .lp-desk-mock .staff-desk-workspace { height: clamp(260px, calc(38vh + 30px), 440px); }
    & .lp-paged .lp-desk-features { margin-top: clamp(12px, 2.2vh, 32px); }
    & .lp-paged .lp-desk-feature p { font-size: clamp(13px, 1.9vh, 15px); }
    & .lp-paged .lp-voice-list { margin-top: clamp(16px, 3vh, 28px); }
    & .lp-paged .lp-voice-list li { min-height: clamp(40px, 5.6vh, 50px); }
    & .lp-paged .lp-player { gap: clamp(12px, 2.2vh, 22px); padding: clamp(20px, 3vh, 36px); }
    & .lp-paged .lp-greeting { font-size: clamp(34px, min(4vw, 6.2vh), 56px); }
    & .lp-paged .lp-wave { height: clamp(48px, 8vh, 76px); }

    & .lp-paged #why .lp-center { max-width: none; }
    & .lp-paged .lp-benefits { margin-top: clamp(20px, 4vh, 64px); }
    & .lp-paged .lp-benefit-art { padding: clamp(18px, 3vh, 34px) 34px 6px; }
    & .lp-paged .lp-art { max-height: clamp(84px, 16vh, 150px); }
    & .lp-paged .lp-benefit-text { padding: clamp(12px, 2.2vh, 22px) 30px clamp(16px, 3vh, 32px); }
    & .lp-paged .lp-benefit-text p { margin-top: 8px; font-size: clamp(17px, 2.4vh, 19px); }
    & .lp-paged .lp-benefit-links { padding: clamp(10px, 1.8vh, 18px) 30px clamp(12px, 2.2vh, 22px); }

    & .lp-paged .lp-manifesto-title { font-size: clamp(40px, min(6.4vw, 10vh), 96px); }
    & .lp-paged .lp-manifesto-body { margin-top: clamp(16px, 3vh, 32px); }
    & .lp-paged .lp-facts { height: var(--nh); padding-block: 0; display: flex; flex-direction: column; justify-content: center; }
    & .lp-paged .lp-fact-number { font-size: clamp(64px, min(8.4vw, 12vh), 120px); }
    /* 타일 경계는 차콜 쪽 맨 위에서 밝은 이빨로 시작해, 쪽에 들어오면 한 번 뒤집혀 걷힌다(스크롤 진행도와 무관) */
    & .lp-paged .lp-edge { bottom: auto; top: 0; z-index: 1; transform: scaleY(-1); }
    & .lp-paged .lp-edge i.is-on { background: var(--paper); opacity: 1; transform: none; transform-origin: 50% 0; transition: transform .45s var(--ease-out) calc((.7 - var(--t)) * .9s), opacity .25s ease calc((.7 - var(--t)) * .9s + .2s); }
    & .lp-paged .is-in > .lp-edge i.is-on { transform: perspective(600px) rotateX(90deg); opacity: 0; }

    /* 도입 3단계: 겹쳐 쌓는 대신 세 카드를 한 줄에. 선 그림은 카드 위 가로 띠로 눕힌다 */
    & .lp-paged .lp-how-head p { margin-top: clamp(8px, 1.4vh, 16px); }
    & .lp-paged .lp-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-top: clamp(20px, 3.6vh, 56px); }
    & .lp-paged .lp-step { position: static; }
    & .lp-paged .lp-step + .lp-step { margin-top: 0; }
    & .lp-paged .lp-step-inner { display: flex; flex-direction: column; gap: 0; height: 100%; min-height: 0; padding: 0; transform: none; }
    & .lp-paged .lp-step-inner::after { content: none; }
    & .lp-paged .lp-step-art { order: -1; height: clamp(56px, 11vh, 110px); container-type: size; }
    & .lp-paged .lp-strip-art { inset: auto; left: 0; top: 0; width: 100cqh; height: 100cqw; transform-origin: 0 0; transform: translateY(100cqh) rotate(-90deg); }
    & .lp-paged .lp-step-copy { align-self: stretch; padding: clamp(16px, 2.6vh, 28px) clamp(20px, 2vw, 28px) clamp(12px, 2vh, 20px); }
    & .lp-paged .lp-step h3 { margin-top: clamp(6px, 1vh, 12px); font-size: clamp(22px, min(2.2vw, 3.6vh), 32px); }
    & .lp-paged .lp-step-copy > p:not(.lp-step-number) { margin-top: clamp(8px, 1.2vh, 16px); font-size: clamp(17px, 2.4vh, 18px); }
    & .lp-paged .lp-step-list { align-self: stretch; margin: auto clamp(20px, 2vw, 28px) clamp(16px, 2.6vh, 28px); }
    & .lp-paged .lp-step-list li { min-height: clamp(36px, 5.2vh, 50px); font-size: 17px; }

    & .lp-paged .lp-faq summary { padding-block: clamp(14px, 2.2vh, 24px); }

    & .lp-paged .lp-contact-grid { align-items: center; }
    & .lp-paged .lp-contact-copy h2 { font-size: clamp(34px, min(4.4vw, 6.8vh), 64px); }
    & .lp-paged .lp-contact-copy > p { margin-top: clamp(12px, 2.2vh, 22px); }
    & .lp-paged .lp-contact-alt { margin-top: clamp(16px, 3vh, 30px); padding-top: clamp(12px, 2.2vh, 22px); }
    & .lp-paged .lp-contact-card { padding: clamp(20px, 3vh, 36px); }
    & .lp-paged .lp-form-grid { gap: clamp(10px, 1.6vh, 18px) 14px; }
    /* 채널이 세 개라 채널 칸은 한 줄 전체를 쓰고, 문의 내용만 연락처 옆이 아닌 아래 줄에 둔다 */
    & .lp-paged .lp-field { gap: 6px; }
    & .lp-paged .lp-input { min-height: 46px; padding-block: 10px; }
    & .lp-paged .lp-check { min-height: 46px; }
    & .lp-paged .lp-lead .lp-cta { margin-top: clamp(14px, 2.4vh, 24px); }
    & .lp-paged .lp-form-note { margin-top: 8px; }

    & .lp-paged .lp-workspace-panel { padding: clamp(16px, 2.4vh, 28px) clamp(20px, 2.4vw, 32px); }
    & .lp-paged .lp-workspace-hint { margin-top: 6px; }
    & .lp-paged .lp-footer { height: calc(var(--ph) - var(--lh)); padding-block: clamp(14px, 2.6vh, 36px) clamp(14px, 2.6vh, 32px); display: flex; flex-direction: column; justify-content: flex-end; }
    & .lp-paged .lp-footer-mark { font-size: min(29vw, 440px, calc((var(--ph) - var(--lh) - 262px) * 1.2)); }
    & .lp-paged .lp-footer-row { margin-top: clamp(14px, 2.4vh, 44px); padding-top: clamp(12px, 2vh, 24px); }
    & .lp-paged .lp-footer-company { margin-top: clamp(10px, 1.8vh, 20px); line-height: 1.65; }

    /* 오른쪽 쪽 표시: 지금 쪽은 길게, 마우스를 올리면 쪽 이름. 차콜 쪽 위에서는 밝게 */
    & .lp-pager { display: block; position: fixed; right: clamp(8px, 1.2vw, 22px); top: calc(var(--hh) + var(--ph) / 2); z-index: 20; transform: translateY(-50%); }
    & .lp-pager a { position: relative; display: grid; place-items: center; width: 28px; height: 24px; }
    & .lp-pager i { display: block; width: 6px; height: 6px; border-radius: 3px; background: var(--line-strong); transition: height .3s var(--ease-out), background-color .2s ease; }
    & .lp-pager a[aria-current] i { height: 20px; background: var(--ink); }
    & .lp-pager span { position: absolute; right: 32px; top: 50%; padding: 4px 10px; border-radius: 6px; background: var(--ink); color: var(--paper); font-size: 14px; font-weight: 600; line-height: 1.5; white-space: nowrap; opacity: 0; transform: translate(6px, -50%); pointer-events: none; transition: opacity .2s ease, transform .25s var(--ease-out); }
    & .lp-pager a:is(:hover, :focus-visible) span { opacity: 1; transform: translate(0, -50%); }
    & .lp-pager :focus-visible { outline-color: var(--ink); outline-offset: 0; }
    & .lp-pager.is-on-dark i { background: var(--card-soft); }
    & .lp-pager.is-on-dark a[aria-current] i { background: var(--card-ink); }
    & .lp-pager.is-on-dark span { background: var(--card-ink); color: var(--card); }
    & .lp-pager.is-on-dark :focus-visible { outline-color: var(--card-ink); }
  }
  @media (min-width: 1101px) and (min-height: 700px) and (prefers-reduced-motion: no-preference) {
    /* 쪽에 들어오면 카드가 아래에서 차례로 올라와, 앞 카드에 살짝 겹쳤다가 제자리를 잡는다 */
    & .lp-paged.is-ready .lp-how .lp-step { transition: transform .9s var(--ease-expo) calc(var(--i) * .16s), opacity .3s ease calc(var(--i) * .16s); }
    & .lp-paged.is-ready .lp-how:not(.is-in) .lp-step { transform: translate(calc(var(--i) * -48px), 80px) rotate(calc(var(--i) * -1.5deg)); opacity: 0; }
  }

  @media (prefers-reduced-motion: reduce) {
    & *, & *::before, & *::after { animation: none !important; transition-property: color, background-color, border-color, opacity !important; transition-duration: .15s !important; transition-delay: 0s !important; }
    & .lp-tiles, & .lp-edge { display: none; }
    & .lp-marquee-track { flex-wrap: wrap; width: auto; row-gap: 10px; }
    & .lp-marquee-track [aria-hidden="true"] { display: none; }
    & .lp-marquee-toggle { display: none; }
  }
}

@media (max-width: 760px) {
  html:has(> body.landing-page) { scroll-padding-top: 76px; }
}
/* 위 html 규칙보다 구체적이어야 쪽 넘김의 머리말 높이(72px)가 이긴다 */
@media (min-width: 1101px) and (min-height: 700px) {
  html:has(> body.landing-page):has(.lp-paged) { scroll-snap-type: y mandatory; scroll-padding-top: 72px; }
}
@media (prefers-reduced-motion: reduce) {
  html:has(> body.landing-page) { scroll-behavior: auto; }
}
@media (prefers-color-scheme: dark) {
  html:has(> body.landing-page) { scrollbar-color: #5e665f #0e100f; }
}

@keyframes lp-call-wave { from { transform: scaleY(.25); } to { transform: scaleY(1); } }
@keyframes lp-tile-out { from { transform: none; opacity: 1; } to { transform: perspective(420px) rotateX(88deg) scale(.9); opacity: 0; } }
@keyframes lp-veil { to { visibility: hidden; } }
/* 실제 통화 듣기(landing/_recording): 왼쪽 녹음 플레이어와 끝난 뒤의 상담원 연결 흐름, 오른쪽 AI 가 참고한 예시 문서.
   손님·AI 줄은 말한 구간을 막대로 미리 그려 두고, 재생 위치가 구간에 들어가면 그 줄을 밝힌다(data-speaking).
   연결 흐름은 자리를 미리 잡아 두고(visibility) 단계(data-stage: ask → waiting → connected)마다 차례로 나타난다. */
.landing-page {
  & .lp-rec-layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: clamp(24px, 4vw, 64px); align-items: start; margin-top: clamp(24px, 4vh, 48px); }
  & .lp-rec-main { display: grid; gap: clamp(14px, 2.4vh, 22px); }
  & .lp-rec-player { display: grid; gap: clamp(14px, 2.4vh, 20px); padding: clamp(20px, 2.4vw, 32px); border-radius: 16px; box-shadow: var(--shadow); }
  & .lp-rec-tracks { --who: 72px; position: relative; display: grid; gap: 10px; cursor: pointer; touch-action: none; user-select: none; border-radius: 8px; }
  & .lp-rec-tracks:focus-visible { outline: 2px solid var(--wave); outline-offset: 6px; }
  & .lp-rec-track { display: grid; grid-template-columns: var(--who) minmax(0, 1fr); align-items: center; }
  & .lp-rec-who { color: var(--card-soft); font-size: 14.5px; font-weight: 600; transition: color .2s ease; }
  & .lp-rec-track[data-speaking="true"] .lp-rec-who { color: var(--card-ink); }
  & .lp-rec-lane { position: relative; height: 30px; overflow: hidden; border-radius: 7px; background: var(--card-fill); transition: box-shadow .2s ease; }
  & .lp-rec-lane::after { content: ""; position: absolute; inset: 0 auto 0 0; width: calc(var(--progress) * 100%); background: rgb(255 255 255 / .06); pointer-events: none; }
  & .lp-rec-track[data-speaking="true"] .lp-rec-lane { box-shadow: inset 0 0 0 1px var(--wave); }
  & .lp-rec-segment { position: absolute; top: 8px; bottom: 8px; min-width: 3px; border-radius: 3px; background: rgb(255 255 255 / .32); }
  & .lp-rec-track + .lp-rec-track .lp-rec-segment { background: var(--wave); opacity: .7; }
  & .lp-rec-level { position: absolute; top: 50%; left: calc(var(--progress) * 100%); width: 12px; height: 12px; margin: -6px 0 0 -6px; border-radius: 50%; background: var(--card-ink); box-shadow: 0 0 0 4px rgb(156 136 255 / .35); transform: scale(0); transition: transform .08s linear; }
  & .lp-rec-cursor { position: absolute; top: -4px; bottom: -4px; left: calc(var(--who) + (100% - var(--who)) * var(--progress)); width: 2px; border-radius: 1px; background: var(--card-ink); opacity: .55; pointer-events: none; }
  & .lp-rec-cursor::before { content: ""; position: absolute; top: -5px; left: 50%; width: 12px; height: 12px; margin-left: -6px; border-radius: 50%; background: var(--card-ink); transition: transform .15s var(--ease-out); }
  & .lp-rec-tracks:hover .lp-rec-cursor, & .lp-rec-tracks:active .lp-rec-cursor { opacity: 1; }
  & .lp-rec-tracks:active .lp-rec-cursor::before { transform: scale(1.25); }
  & .lp-rec-caption { display: grid; gap: 4px; min-height: calc(1.5em * 2 + 24px); padding: 10px 14px; border-radius: 10px; background: var(--card-fill); transition: box-shadow .2s ease; }
  & .lp-rec-caption-who { color: var(--card-soft); font-size: 12.5px; font-weight: 650; }
  & .lp-rec-caption[data-speaker="ai"] .lp-rec-caption-who { color: var(--wave); }
  & .lp-rec-caption-text { color: var(--card-ink); font-size: clamp(16px, 1.3vw, 18px); line-height: 1.5; transition: opacity .25s ease; }
  & .lp-rec-caption[data-state="empty"] .lp-rec-caption-text { color: var(--card-soft); font-size: 15px; }
  & .lp-rec-caption[data-state="after"] .lp-rec-caption-text { opacity: .55; }
  & .lp-rec-layout[data-stage="ask"] .lp-rec-caption { box-shadow: inset 0 0 0 1px var(--wave); }
  & .lp-rec-layout[data-playing="true"] .lp-play-idle { visibility: hidden; }
  & .lp-rec-layout[data-playing="true"] .lp-play-active { visibility: visible; }

  & .lp-rec-flow { display: grid; gap: 12px; justify-items: end; }
  & .lp-rec-handoff { visibility: hidden; opacity: 0; transform: translateY(10px); transition: opacity .5s var(--ease-out), transform .5s var(--ease-out), visibility 0s .5s; }
  /* 상담 데스크 조각: staff_desk.css 구조를 그대로 쓰고 색만 페이지의 어두운 면(--card)에 맞춘다 */
  & .lp-rec-handoff { --desk-surface: var(--card-fill); --color-line: var(--card-line); --color-muted: var(--card-soft); --color-brand-600: var(--accent); width: 100%; padding: 14px; border: 1px solid var(--card-line); border-radius: 16px; background: var(--card); color: var(--card-ink); box-shadow: var(--shadow); }
  & .lp-rec-handoff-label { display: flex; align-items: center; gap: 6px; margin: 0 2px 10px; color: var(--card-soft); font-size: 12.5px; font-weight: 650; }
  & .lp-rec-handoff-label .lp-i { width: 15px; height: 15px; }
  & .lp-rec-layout:is([data-stage="waiting"], [data-stage="connected"]) .lp-rec-handoff { visibility: visible; opacity: 1; transform: none; transition-delay: 0s; }
  & .lp-rec-handoff .staff-desk { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 14rem); gap: 10px; align-items: stretch; }
  & .lp-rec-handoff .staff-desk-reception { margin-bottom: 0; padding: .7rem .9rem; border-color: var(--card-line); background: var(--card-fill); }
  & .lp-rec-handoff .staff-desk-status { color: var(--card-ink); font-size: 1rem; }
  & .lp-rec-handoff .staff-desk-reception-hint { color: var(--card-soft); }
  & .lp-rec-handoff .staff-desk-request { margin-bottom: 0; padding: .7rem; border-color: var(--card-line); border-radius: .75rem; background: var(--card-fill); }
  & .lp-rec-handoff .staff-desk-request[data-selected="true"] { border-color: var(--wave); background: var(--wave-fill); }
  & .lp-rec-handoff .staff-desk-request-select strong { color: var(--card-ink); }
  & .lp-rec-handoff .staff-desk-request-select span { color: var(--card-soft); }
  & .lp-rec-handoff .btn { min-height: 2.25rem; border-radius: .6rem; background: var(--accent); color: var(--accent-ink); font-size: .875rem; }
  & .lp-rec-handoff .staff-desk-request-select { margin-bottom: .5rem; }
  & .lp-rec-when-connected { display: none; }
  & .lp-rec-layout[data-stage="connected"] .lp-rec-when-waiting { display: none; }
  & .lp-rec-layout[data-stage="connected"] .lp-rec-when-connected { display: inline; }
  & .lp-rec-layout[data-stage="connected"] .staff-desk-reception { background: rgb(74 222 128 / .1); border-color: rgb(74 222 128 / .35); }
  & .lp-rec-layout[data-stage="connected"] .staff-desk-status { color: #86efac; }
  & .lp-rec-layout[data-stage="connected"] .staff-desk-status::before { background: #4ade80; }
  & .lp-rec-layout[data-stage="connected"] .lp-rec-handoff .btn { background: transparent; box-shadow: inset 0 0 0 1px var(--card-line); color: var(--card-ink); }
  & .lp-rec-layout[data-stage="waiting"] .staff-desk-status::before { animation: lp-rec-pulse 1s ease-in-out infinite; }

  & .lp-rec-doc { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; padding: clamp(18px, 2vw, 26px); border: 1px solid var(--line); border-radius: 16px; background: var(--surface); }
  & .lp-rec-doc > :is(.lp-rec-doc-label, h3) { grid-column: 1 / -1; }
  & .lp-rec-doc-label { color: var(--ink-soft); font-size: 13px; font-weight: 650; letter-spacing: .02em; }
  & .lp-rec-doc h3 { margin: 6px 0 4px; font-size: clamp(17px, 1.4vw, 20px); font-weight: 700; }
  & .lp-rec-doc section { margin-top: clamp(8px, 1.4vh, 14px); padding-top: clamp(8px, 1.4vh, 12px); border-top: 1px solid var(--line); }
  & .lp-rec-doc h4 { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; font-size: 14.5px; font-weight: 700; }
  & .lp-rec-doc h4 small { color: var(--ink-soft); font-size: 13px; font-weight: 500; }
  & .lp-rec-doc li { position: relative; margin-top: 4px; padding-left: 12px; color: var(--ink-soft); font-size: 14.5px; line-height: 1.55; }
  & .lp-rec-doc li::before { content: "·"; position: absolute; left: 0; }

  @media (max-width: 1100px) {
    & .lp-rec-layout { grid-template-columns: minmax(0, 1fr); }
    & .lp-rec-handoff .staff-desk { grid-template-columns: minmax(0, 1fr); }
    & .lp-rec-doc { grid-template-columns: minmax(0, 1fr); }
  }
  @media (prefers-reduced-motion: reduce) {
    & .lp-rec-handoff { transform: none; transition: none; }
    & .lp-rec-layout[data-stage="waiting"] .staff-desk-status::before { animation: none; }
  }
}

@keyframes lp-rise { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes lp-bob { to { transform: translateY(-9px); } }
@keyframes lp-marquee { to { transform: translateX(-50%); } }
@keyframes lp-spin { to { transform: rotate(360deg); } }
@keyframes lp-flow { to { stroke-dashoffset: -20; } }
@keyframes lp-rec-pulse { 50% { opacity: .35; } }
