@charset "UTF-8";
/* bundled by tools/bundle-css.py — 원본 목록은 HTML 의 css-bundle 매니페스트 주석 참조. 수정은 원본 CSS 에 하고 다시 번들할 것 */

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

/* ==== /assets/css/site.css?v=20260827a ==== */
:root{
  --red:#d20b25;
  --red-dark:#a90b20;
  --red-soft:#fff0f2;
  --pink:#f7e7ea;
  --pink-2:#fbf4f5;
  --ink:#111214;
  --muted:#6f7075;
  --line:#e8e4e5;
  --paper:#ffffff;
  --soft:#f7f7f7;
  --dark:#0e1014;
  --dark-2:#171a20;
  --success:#00a878;
  --radius:28px;
  --shadow:0 24px 70px rgba(39,18,24,.09);
  --max:1280px;
}
*{box-sizing:border-box}
html{scroll-behavior:auto}
body{margin:0;font-family:"Pretendard Variable",Pretendard,"Noto Sans KR","Apple SD Gothic Neo",Inter,Arial,sans-serif;color:var(--ink);background:#fff;line-height:1.62;word-break:keep-all;-webkit-font-smoothing:antialiased}
body.menu-open{overflow:hidden}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
img{max-width:100%;display:block}
.container{width:min(calc(100% - 64px),var(--max));margin:0 auto}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.skip-link{position:fixed;top:8px;left:8px;z-index:9999;padding:10px 16px;background:#111;color:#fff;transform:translateY(-150%)}
.skip-link:focus{transform:none}

/* Header — current LAVARWAVE structure retained */
.site-header{position:fixed;inset:0 0 auto 0;height:92px;z-index:1000;background:rgba(255,255,255,.92);backdrop-filter:blur(18px);border-bottom:1px solid rgba(0,0,0,.055);transition:.25s ease}
.site-header.scrolled{height:76px;box-shadow:0 10px 35px rgba(0,0,0,.06)}
.header-inner{height:100%;display:flex;align-items:center;gap:36px}
.brand{display:flex;align-items:center;flex:0 0 auto}
.brand img{width:170px;height:auto}
.gnb{margin-left:auto;height:100%;display:flex;align-items:center;gap:8px}
.gnb-item{height:100%;display:flex;align-items:center;position:relative}
.gnb-link{height:100%;display:flex;align-items:center;padding:0 15px;font-size:15px;font-weight:700;letter-spacing:-.02em;position:relative}
.gnb-link:after{content:"";position:absolute;left:15px;right:15px;bottom:22px;height:2px;background:var(--red);transform:scaleX(0);transition:.2s}
.gnb-item:hover .gnb-link:after,.gnb-link.active:after{transform:scaleX(1)}
.mega{position:absolute;top:calc(100% - 1px);left:50%;transform:translate(-50%,10px);min-width:235px;padding:14px;background:#fff;border:1px solid var(--line);box-shadow:0 24px 60px rgba(0,0,0,.12);border-radius:18px;opacity:0;visibility:hidden;transition:.2s}
.gnb-item:hover .mega{opacity:1;visibility:visible;transform:translate(-50%,0)}
.mega a{display:block;padding:10px 12px;border-radius:10px;font-size:14px;color:#3e3f43}
.mega a:hover{background:var(--red-soft);color:var(--red);font-weight:700}
.header-actions{display:flex;gap:9px;align-items:center}
.header-phone{font-size:13px;font-weight:800;white-space:nowrap}
.header-phone b{color:var(--red);font-size:16px;margin-left:4px}
.btn{min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:999px;padding:0 22px;border:1px solid transparent;font-weight:800;font-size:14px;transition:.22s ease}
.btn:hover{transform:translateY(-2px)}
.btn-red{background:var(--red);color:#fff;box-shadow:0 12px 30px rgba(210,11,37,.22)}
.btn-red:hover{background:var(--red-dark)}
.btn-dark{background:#151619;color:#fff}
.btn-line{border-color:#d9d5d6;background:#fff;color:#222}
.btn-line:hover{border-color:var(--red);color:var(--red)}
.btn-white{background:#fff;color:#111}
.menu-toggle{display:none;width:46px;height:46px;border:0;background:#fff;border-radius:50%;position:relative;box-shadow:0 6px 22px rgba(0,0,0,.08)}
.menu-toggle span,.menu-toggle:before,.menu-toggle:after{content:"";position:absolute;left:13px;right:13px;height:2px;background:#111;transition:.2s}
.menu-toggle:before{top:15px}.menu-toggle span{top:22px}.menu-toggle:after{top:29px}
.menu-open .menu-toggle span{opacity:0}.menu-open .menu-toggle:before{top:22px;transform:rotate(45deg)}.menu-open .menu-toggle:after{top:22px;transform:rotate(-45deg)}

/* Mobile nav */
.mobile-panel{display:none;position:fixed;inset:76px 0 0;background:#fff;z-index:999;padding:24px;overflow:auto}
.mobile-group{border-bottom:1px solid var(--line);padding:8px 0 18px;margin-bottom:8px}
.mobile-group strong{display:block;font-size:18px;padding:8px 0}
.mobile-links{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.mobile-links a{padding:9px 0;color:#666;font-size:14px}
.mobile-contact{padding-top:18px;display:grid;gap:10px}

/* Hero */
.hero{min-height:920px;padding:170px 0 90px;position:relative;overflow:hidden;background:linear-gradient(118deg,#fff 0%,#fff 52%,#fbf4f5 100%)}
.hero:before{content:"";position:absolute;width:780px;height:780px;border-radius:50%;right:-210px;top:70px;background:radial-gradient(circle at 38% 38%,rgba(255,255,255,.95) 0 10%,rgba(246,213,219,.65) 37%,rgba(255,255,255,0) 69%);filter:blur(1px)}
.hero:after{content:"";position:absolute;width:620px;height:620px;border:1px solid rgba(210,11,37,.10);border-radius:50%;right:-50px;top:145px;box-shadow:0 0 0 82px rgba(210,11,37,.025),0 0 0 164px rgba(210,11,37,.018)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(460px,.98fr);gap:42px;align-items:center;position:relative;z-index:2}
.eyebrow{display:flex;align-items:center;gap:12px;color:var(--red);font-size:12px;font-weight:900;letter-spacing:.18em;text-transform:uppercase;margin-bottom:25px}
.eyebrow:before{content:"";width:42px;height:2px;background:var(--red)}
.hero h1{font-size:clamp(48px,5.4vw,82px);line-height:1.08;letter-spacing:-.065em;margin:0 0 26px;font-weight:850}
.hero-seo-title{display:block;margin-bottom:16px;color:#3d3e42;font-size:13px;line-height:1.45;letter-spacing:-.015em;font-weight:700}
.hero-main-title{display:block}
.hero h1 .accent{color:var(--red)}
.hero-lead{font-size:20px;color:#525358;max-width:660px;margin:0 0 34px;line-height:1.75}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.hero-trust{display:flex;gap:22px;flex-wrap:wrap;margin-top:42px;padding-top:28px;border-top:1px solid var(--line)}
.hero-trust-item{display:flex;gap:10px;align-items:flex-start;min-width:150px}
.hero-trust-icon{width:34px;height:34px;border-radius:50%;background:var(--red-soft);color:var(--red);display:grid;place-items:center;font-weight:900;font-size:13px}
.hero-trust-item strong{display:block;font-size:13px}.hero-trust-item span{display:block;font-size:12px;color:#85868b;margin-top:2px}

/* Hero visual: preserves light organic current feel, contains command dashboard */
.hero-visual{position:relative;height:610px}
.wave-orbit{position:absolute;inset:0;display:grid;place-items:center}
.orbit-shell{width:520px;height:520px;border-radius:50%;position:relative;background:radial-gradient(circle at 32% 26%,#fff 0 13%,rgba(255,255,255,.9) 14%,rgba(240,203,210,.70) 39%,rgba(210,11,37,.10) 62%,rgba(255,255,255,.0) 73%);box-shadow:inset -28px -30px 80px rgba(210,11,37,.08),0 45px 100px rgba(69,20,29,.10);animation:float 7s ease-in-out infinite}
.orbit-shell:before,.orbit-shell:after{content:"";position:absolute;inset:28px;border:1px solid rgba(210,11,37,.24);border-radius:50%;transform:rotate(18deg) scaleY(.54)}
.orbit-shell:after{inset:84px;transform:rotate(-32deg) scaleY(.68);border-color:rgba(16,17,19,.12)}
.orbit-ring{position:absolute;inset:67px;border-radius:50%;border:1px dashed rgba(210,11,37,.25);animation:spin 22s linear infinite}
.signal-dot{position:absolute;width:10px;height:10px;border-radius:50%;background:var(--red);box-shadow:0 0 0 8px rgba(210,11,37,.11),0 0 30px rgba(210,11,37,.45)}
.signal-dot:nth-child(1){left:12%;top:41%}.signal-dot:nth-child(2){right:14%;top:26%;animation-delay:1s}.signal-dot:nth-child(3){right:28%;bottom:12%;animation-delay:2s}.signal-dot:nth-child(4){left:23%;bottom:18%;animation-delay:3s}
.signal-dot{animation:pulse 2.7s ease-in-out infinite}
.command-card{position:absolute;right:0;bottom:20px;width:450px;background:rgba(13,15,19,.96);color:#fff;border-radius:26px;padding:22px;box-shadow:0 30px 70px rgba(0,0,0,.26);border:1px solid rgba(255,255,255,.12);overflow:hidden}
.command-card:before{content:"";position:absolute;inset:0;background:linear-gradient(130deg,rgba(210,11,37,.18),transparent 40%);pointer-events:none}
.command-top{position:relative;display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.command-top strong{font-size:12px;letter-spacing:.13em}.live-badge{font-size:10px;letter-spacing:.1em;color:#fff;background:var(--red);border-radius:99px;padding:5px 9px}
.mini-map{position:relative;height:170px;border-radius:18px;background:radial-gradient(circle at center,rgba(210,11,37,.22),transparent 45%),linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px),#0b0d11;background-size:auto,24px 24px,24px 24px;overflow:hidden}
.map-line{position:absolute;height:1px;background:linear-gradient(90deg,transparent,var(--red),transparent);transform-origin:left center;opacity:.85;animation:beam 3s ease-in-out infinite}
.map-line.l1{width:210px;left:45px;top:62px;transform:rotate(13deg)}.map-line.l2{width:160px;left:196px;top:95px;transform:rotate(-29deg);animation-delay:.7s}.map-line.l3{width:145px;left:73px;top:128px;transform:rotate(-18deg);animation-delay:1.2s}
.map-node{position:absolute;width:7px;height:7px;border-radius:50%;background:#fff;box-shadow:0 0 0 4px rgba(255,255,255,.12)}
.map-node.n1{left:45px;top:58px}.map-node.n2{left:196px;top:91px;background:var(--red)}.map-node.n3{right:58px;top:47px}.map-node.n4{left:73px;bottom:37px}.map-node.n5{right:74px;bottom:24px;background:var(--red)}
.command-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px;position:relative}
.command-stat{padding:10px 11px;border-radius:12px;background:rgba(255,255,255,.06)}
.command-stat span{font-size:9px;color:#a7a9b0;display:block}.command-stat b{font-size:17px;display:block;margin-top:2px}
.hero-caption{position:absolute;left:5px;bottom:35px;color:#85868a;font-size:11px;letter-spacing:.09em;transform:rotate(-90deg);transform-origin:left bottom}
.scroll-mark{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);font-size:10px;letter-spacing:.17em;color:#888;display:flex;flex-direction:column;align-items:center;gap:10px}
.scroll-mark:after{content:"";height:42px;width:1px;background:linear-gradient(var(--red),transparent)}

@keyframes float{50%{transform:translateY(-12px)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pulse{50%{transform:scale(1.45);opacity:.65}}
@keyframes beam{0%,100%{opacity:.2}50%{opacity:1}}

/* Sections */
.section{padding:120px 0;position:relative}
.section-sm{padding:84px 0}
.section-soft{background:var(--pink-2)}
.section-dark{background:var(--dark);color:#fff}
.section-title{display:grid;grid-template-columns:minmax(240px,.65fr) minmax(0,1.35fr);gap:60px;margin-bottom:56px;align-items:end}
.section-kicker{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--red);font-weight:900;margin-bottom:12px}
.section-title h2{font-size:clamp(36px,4vw,58px);line-height:1.16;letter-spacing:-.055em;margin:0;font-weight:850}
.section-title p{margin:0;color:#66686d;font-size:18px;max-width:680px}
.section-dark .section-title p{color:#b3b5bc}
.section-note{font-size:12px;color:#8b8c90;margin-top:16px}

/* Recognition */
.recognition{margin-top:-34px;position:relative;z-index:5}
.recognition-card{background:#fff;border-radius:30px;padding:34px 38px;display:grid;grid-template-columns:82px 1.2fr auto;align-items:center;gap:28px;box-shadow:var(--shadow);border:1px solid rgba(210,11,37,.08)}
.award-symbol{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:var(--red-soft);position:relative;color:var(--red);font-weight:900;font-size:28px}
.award-symbol:after{content:"";position:absolute;inset:8px;border:1px solid rgba(210,11,37,.25);border-radius:50%}
.recognition-card h2{margin:0 0 6px;font-size:24px;letter-spacing:-.035em}.recognition-card p{margin:0;color:#737479;font-size:14px}.recognition-meta{text-align:right}.recognition-meta strong{display:block;color:var(--red);font-size:13px}.recognition-meta span{font-size:12px;color:#999}

/* Service cards */
.solution-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.solution-card{min-height:470px;border-radius:30px;padding:34px;position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);transition:.3s ease;display:flex;flex-direction:column}
.solution-card:hover{transform:translateY(-8px);box-shadow:var(--shadow);border-color:rgba(210,11,37,.25)}
.solution-index{font-size:11px;letter-spacing:.16em;color:var(--red);font-weight:900}
.solution-card h3{font-size:30px;line-height:1.18;letter-spacing:-.045em;margin:20px 0 14px}.solution-card p{color:#6c6d72;margin:0;max-width:330px}
.solution-visual{margin-top:auto;height:180px;position:relative}
.analysis-visual:before{content:"APK";position:absolute;right:6px;bottom:5px;font-size:92px;font-weight:900;color:#f0edef;letter-spacing:-.08em}.analysis-visual:after{content:"01  10  11  00  10  01";position:absolute;left:0;bottom:40px;color:var(--red);font:700 12px ui-monospace,monospace;letter-spacing:.15em}
.cs-visual{display:grid;place-items:center}.cs-visual:before{content:"";width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,#fff 0 18%,#f7ced5 20%,#fff0f2 57%,transparent 58%);box-shadow:0 0 0 1px rgba(210,11,37,.12),0 0 0 28px rgba(210,11,37,.03)}.cs-visual:after{content:"CS";position:absolute;font-size:34px;font-weight:900;color:var(--red)}
.scanner-visual{border-radius:22px;background:linear-gradient(135deg,#14161b,#252a33);overflow:hidden}.scanner-visual:before{content:"";position:absolute;width:120px;height:160px;border-radius:48% 52% 45% 55%;right:42px;top:10px;background:radial-gradient(circle at 55% 30%,#fff 0 2%,transparent 3%),repeating-radial-gradient(ellipse at center,transparent 0 7px,rgba(255,255,255,.14) 8px 9px),linear-gradient(135deg,#ff3150,#5a38ff);filter:saturate(.8)}.scanner-visual:after{content:"SCANNING  96.32%";position:absolute;left:18px;bottom:18px;color:#fff;font:700 11px ui-monospace,monospace;letter-spacing:.08em}
.card-link{display:flex;align-items:center;gap:9px;margin-top:24px;font-size:13px;font-weight:900}.card-link span{width:30px;height:30px;border-radius:50%;border:1px solid #ddd;display:grid;place-items:center;transition:.2s}.solution-card:hover .card-link span{background:var(--red);border-color:var(--red);color:#fff}

/* Dashboard */
.dashboard-shell{border-radius:36px;background:#111318;padding:24px;box-shadow:0 50px 90px rgba(0,0,0,.24);border:1px solid rgba(255,255,255,.08)}
.dashboard-head{display:flex;justify-content:space-between;align-items:center;padding:8px 8px 20px}.dashboard-brand{display:flex;align-items:center;gap:12px}.dashboard-logo-mark{width:30px;height:30px;border-radius:9px;background:var(--red);display:grid;place-items:center;font-size:12px;font-weight:900}.dashboard-brand strong{font-size:13px;letter-spacing:.08em}.dashboard-meta{display:flex;gap:8px;align-items:center;font-size:10px;color:#8c8f98}.dashboard-live{color:#fff;background:rgba(210,11,37,.92);padding:5px 8px;border-radius:99px}
.dashboard-tabs{display:flex;gap:8px;overflow:auto;margin:0 8px 18px}.dashboard-tab{white-space:nowrap;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.04);color:#aeb0b8;border-radius:999px;padding:9px 14px;font-size:11px}.dashboard-tab.active{background:#fff;color:#111;border-color:#fff;font-weight:800}
.dashboard-grid{display:grid;grid-template-columns:1.45fr .55fr;gap:14px}.dashboard-map{min-height:480px;border-radius:24px;background:radial-gradient(circle at 45% 45%,rgba(210,11,37,.19),transparent 28%),linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px),#0b0d10;background-size:auto,32px 32px,32px 32px;position:relative;overflow:hidden;padding:20px}
.dashboard-map:before{content:"";position:absolute;inset:12% 8%;border-radius:50%;border:1px solid rgba(255,255,255,.11);transform:scaleY(.44) rotate(-7deg);box-shadow:0 0 0 40px rgba(255,255,255,.015),0 0 0 80px rgba(255,255,255,.01)}
.threat-path{position:absolute;height:1px;background:linear-gradient(90deg,transparent,var(--red),#fff,transparent);transform-origin:left center;opacity:.85}
.threat-path.p1{left:14%;top:38%;width:49%;transform:rotate(8deg)}.threat-path.p2{left:42%;top:42%;width:34%;transform:rotate(-26deg)}.threat-path.p3{left:26%;top:67%;width:42%;transform:rotate(-13deg)}.threat-path.p4{left:53%;top:57%;width:31%;transform:rotate(23deg)}
.threat-node{position:absolute;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 0 0 6px rgba(255,255,255,.08)}.threat-node.red{background:var(--red);box-shadow:0 0 0 8px rgba(210,11,37,.15),0 0 35px rgba(210,11,37,.7)}
.threat-node.t1{left:14%;top:37%}.threat-node.t2{left:42%;top:42%}.threat-node.t3{right:21%;top:28%}.threat-node.t4{left:26%;top:66%}.threat-node.t5{right:15%;bottom:21%}.threat-node.t6{left:55%;bottom:33%}
.map-caption{position:absolute;left:22px;bottom:18px;font:600 10px ui-monospace,monospace;color:#7f828b;letter-spacing:.08em}.map-focus{position:absolute;left:45%;top:31%;width:170px;border:1px solid rgba(210,11,37,.52);background:rgba(14,16,20,.88);padding:13px;border-radius:13px;font-size:10px;color:#bdc0c8}.map-focus b{display:block;color:#fff;font-size:12px;margin-bottom:5px}.map-focus em{font-style:normal;color:#ff5169}
.event-list{display:grid;gap:10px}.event-card{border-radius:18px;background:#191c22;border:1px solid rgba(255,255,255,.07);padding:14px}.event-time{display:flex;justify-content:space-between;font:600 9px ui-monospace,monospace;color:#747781}.event-card h4{margin:8px 0 4px;font-size:13px}.event-card p{margin:0;color:#92959e;font-size:10px;line-height:1.55}.event-tag{display:inline-flex;margin-top:10px;padding:4px 7px;border-radius:6px;background:rgba(210,11,37,.15);color:#ff6075;font-size:9px;font-weight:800}
.dashboard-foot{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}.dash-stat{padding:15px;border-radius:17px;background:#191c22;border:1px solid rgba(255,255,255,.07)}.dash-stat span{display:block;color:#777a83;font-size:9px;letter-spacing:.08em}.dash-stat strong{display:block;font-size:25px;margin-top:4px}.dash-stat small{font-size:9px;color:#53d2a6}

/* Case flow */
.case-flow{display:grid;grid-template-columns:repeat(5,1fr);gap:0;position:relative;margin-top:30px}.case-flow:before{content:"";position:absolute;left:9%;right:9%;top:40px;height:1px;background:linear-gradient(90deg,var(--red),#e3d6d9)}
.case-step{position:relative;padding:0 14px;text-align:center}.case-no{width:80px;height:80px;border-radius:50%;margin:0 auto 22px;background:#fff;border:1px solid #e3d7d9;display:grid;place-items:center;color:var(--red);font-weight:900;position:relative;z-index:2;box-shadow:0 12px 30px rgba(45,23,28,.08)}.case-step h3{font-size:17px;margin:0 0 8px}.case-step p{font-size:13px;color:#77797d;margin:0}.case-result{margin-top:50px;border-radius:28px;background:#fff;padding:28px 32px;border:1px solid var(--line);display:grid;grid-template-columns:1.2fr repeat(3,.55fr);gap:22px;align-items:center}.case-result h3{margin:0;font-size:24px}.result-metric{border-left:1px solid var(--line);padding-left:24px}.result-metric span{display:block;color:#8b8c91;font-size:11px}.result-metric strong{font-size:24px;color:var(--red)}

/* Technology split */
.tech-split{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.tech-feature{border-radius:30px;padding:36px;min-height:390px;position:relative;overflow:hidden;border:1px solid var(--line);background:#fff}.tech-feature.dark{background:#121419;color:#fff;border-color:#121419}.tech-feature .label{font:800 11px ui-monospace,monospace;color:var(--red);letter-spacing:.12em}.tech-feature h3{font-size:34px;line-height:1.18;letter-spacing:-.045em;margin:18px 0 12px}.tech-feature p{color:#74767b;max-width:470px}.tech-feature.dark p{color:#a8abb3}.network-art{position:absolute;right:-40px;bottom:-50px;width:330px;height:260px;background:radial-gradient(circle at center,rgba(210,11,37,.45),transparent 44%)}.network-art:before,.network-art:after{content:"";position:absolute;inset:30px;border:1px solid rgba(255,255,255,.12);border-radius:50%;transform:scaleY(.48) rotate(18deg)}.network-art:after{inset:75px;transform:scaleY(.70) rotate(-28deg)}
.trace-art{position:absolute;right:30px;bottom:24px;width:230px;height:150px}.trace-box{position:absolute;border:1px solid #ddd;border-radius:12px;background:#fff;padding:10px 12px;font:700 10px ui-monospace,monospace;box-shadow:0 8px 22px rgba(0,0,0,.06)}.trace-box.b1{left:0;top:50px}.trace-box.b2{left:90px;top:0}.trace-box.b3{right:0;bottom:0;border-color:rgba(210,11,37,.35);color:var(--red)}.trace-art:before,.trace-art:after{content:"";position:absolute;height:1px;background:var(--red);width:90px}.trace-art:before{left:57px;top:62px;transform:rotate(-22deg)}.trace-art:after{left:125px;top:75px;transform:rotate(31deg)}

/* Benchmark */
.benchmark-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center}.benchmark-copy h2{font-size:52px;line-height:1.15;letter-spacing:-.055em;margin:0 0 20px}.benchmark-copy p{color:#b1b3ba;font-size:17px}.benchmark-list{display:grid;gap:10px;margin-top:28px}.benchmark-list div{display:flex;justify-content:space-between;padding:15px 0;border-bottom:1px solid rgba(255,255,255,.10);font-size:13px}.benchmark-list span{color:#8c8f97}.benchmark-list b{color:#fff}.chart-card{border-radius:26px;background:#181b21;border:1px solid rgba(255,255,255,.08);padding:24px}.chart-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.chart-head strong{font-size:14px}.chart-head span{font-size:10px;color:#858890}.bar-row{display:grid;grid-template-columns:110px 1fr 58px;gap:12px;align-items:center;margin:17px 0;font-size:11px;color:#a8abb2}.bar{height:10px;border-radius:99px;background:#252932;overflow:hidden}.bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#8c071b,var(--red));width:var(--w)}.bar-row b{text-align:right;color:#fff}.method-link{display:inline-flex;align-items:center;gap:8px;color:#fff;font-size:12px;font-weight:800;margin-top:15px}

/* Content room */
.content-toolbar{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:28px}.filter-chips{display:flex;gap:8px;flex-wrap:wrap}.filter-chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 14px;font-size:12px}.filter-chip.active{background:#111;color:#fff;border-color:#111}.content-search{min-width:270px;border:1px solid var(--line);border-radius:999px;padding:11px 16px;background:#fff}
.content-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.content-card{border-radius:26px;overflow:hidden;background:#fff;border:1px solid var(--line);transition:.25s}.content-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}.content-thumb{height:220px;position:relative;overflow:hidden;background:linear-gradient(135deg,#f1e7e9,#fff)}.content-thumb.dark{background:linear-gradient(135deg,#101216,#2d3037)}.content-thumb.red{background:linear-gradient(135deg,#d20b25,#60000f)}.content-thumb:after{content:attr(data-mark);position:absolute;right:18px;bottom:5px;font-size:72px;font-weight:900;letter-spacing:-.08em;color:rgba(255,255,255,.38)}.content-thumb:not(.dark):not(.red):after{color:rgba(210,11,37,.15)}.content-body{padding:24px}.content-type{font-size:10px;letter-spacing:.12em;color:var(--red);font-weight:900}.content-body h3{font-size:20px;line-height:1.45;margin:10px 0}.content-body p{font-size:13px;color:#77797e;margin:0}.content-meta{display:flex;justify-content:space-between;margin-top:20px;font-size:11px;color:#a0a1a5}

/* Partnership */
.logo-wall{display:grid;grid-template-columns:repeat(6,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.partner-cell{height:115px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;place-items:center;color:#a3a4a8;font-size:12px;font-weight:800;letter-spacing:.05em;filter:grayscale(1)}

/* Consultation */
.consult-band{background:linear-gradient(135deg,#d20b25,#9b061b);color:#fff;border-radius:34px;padding:58px 62px;display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;position:relative;overflow:hidden}.consult-band:after{content:"";position:absolute;width:430px;height:430px;border:1px solid rgba(255,255,255,.13);border-radius:50%;right:-110px;top:-180px;box-shadow:0 0 0 65px rgba(255,255,255,.035)}.consult-band h2{font-size:43px;line-height:1.18;letter-spacing:-.05em;margin:0 0 14px}.consult-band p{margin:0;color:rgba(255,255,255,.75)}.consult-actions{display:flex;justify-content:flex-end;gap:10px;position:relative;z-index:2;flex-wrap:wrap}

/* Floating consultation inherited from current site */
.floating-contact{position:fixed;right:22px;bottom:24px;z-index:900;display:grid;gap:8px}.float-main{width:92px;height:92px;border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center;text-align:center;box-shadow:0 18px 45px rgba(210,11,37,.32);font-size:11px;font-weight:800;line-height:1.35}.float-main b{display:block;font-size:15px}.float-mini{width:48px;height:48px;border-radius:50%;background:#fff;border:1px solid var(--line);display:grid;place-items:center;margin-left:auto;box-shadow:0 9px 25px rgba(0,0,0,.08);font-size:11px;font-weight:900}

/* Footer */
.site-footer{background:#111214;color:#fff;padding:70px 0 34px;margin-top:120px}.footer-top{display:grid;grid-template-columns:1fr 1.5fr;gap:80px;padding-bottom:46px;border-bottom:1px solid rgba(255,255,255,.12)}.footer-brand{font-size:26px;font-weight:900;letter-spacing:-.03em}.footer-brand span{color:var(--red)}.footer-slogan{margin-top:14px;color:#898c94;font-size:13px}.footer-links{display:grid;grid-template-columns:repeat(4,1fr);gap:30px}.footer-col strong{display:block;font-size:12px;margin-bottom:15px}.footer-col a{display:block;color:#858891;font-size:12px;margin:8px 0}.footer-col a:hover{color:#fff}.footer-bottom{display:grid;grid-template-columns:1fr auto;gap:30px;padding-top:30px;color:#747780;font-size:11px}.company-info{display:flex;gap:12px 22px;flex-wrap:wrap}.legal-links{display:flex;gap:16px;flex-wrap:wrap}

/* Subpage common */
.subhero{padding:176px 0 75px;min-height:430px;background:linear-gradient(125deg,#fff 0%,#fff 48%,#fbf0f2 100%);position:relative;overflow:hidden}.subhero:after{content:"";position:absolute;right:-90px;top:55px;width:430px;height:430px;border-radius:50%;background:radial-gradient(circle,#fff 0 15%,rgba(230,178,188,.45) 46%,transparent 70%);box-shadow:0 0 0 70px rgba(210,11,37,.025)}.breadcrumb{font-size:11px;color:#9a9b9f;display:flex;gap:7px;align-items:center;margin-bottom:25px}.breadcrumb b{color:#555}.subhero h1{font-size:58px;line-height:1.15;letter-spacing:-.055em;margin:0 0 16px;position:relative;z-index:2}.subhero p{font-size:17px;color:#696b70;margin:0;max-width:660px;position:relative;z-index:2}.subnav{position:relative;z-index:3;margin-top:38px;display:flex;gap:8px;flex-wrap:wrap}.subnav a{padding:9px 14px;border-radius:999px;background:rgba(255,255,255,.72);border:1px solid var(--line);font-size:12px}.subnav a.active{background:#111;color:#fff;border-color:#111}
.page-section{padding:100px 0}.intro-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px;align-items:start}.intro-grid h2{font-size:42px;line-height:1.18;letter-spacing:-.05em;margin:0}.intro-grid .body-copy{font-size:17px;color:#626469}.body-copy p:first-child{margin-top:0}.lead-quote{font-size:30px;line-height:1.45;letter-spacing:-.04em;font-weight:750;color:#111;margin:0 0 24px}
.value-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.value-card{padding:28px;border-radius:23px;background:#fff;border:1px solid var(--line);min-height:220px}.value-card b{display:block;color:var(--red);font-size:12px}.value-card h3{font-size:20px;margin:25px 0 10px}.value-card p{font-size:13px;color:#787a7f;margin:0}
.timeline{display:grid;gap:0}.timeline-row{display:grid;grid-template-columns:160px 1fr;padding:34px 0;border-bottom:1px solid var(--line)}.timeline-year{font-size:36px;font-weight:900;color:var(--red)}.timeline-events{display:grid;gap:8px;color:#5e6065}.timeline-events span{position:relative;padding-left:18px}.timeline-events span:before{content:"";width:5px;height:5px;background:var(--red);border-radius:50%;position:absolute;left:0;top:.75em}

/* Service page */
.process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.process-card{border:1px solid var(--line);border-radius:26px;padding:30px;min-height:310px}.process-card .step{color:var(--red);font-size:11px;font-weight:900;letter-spacing:.12em}.process-card h3{font-size:24px;margin:18px 0 10px}.process-card p{font-size:14px;color:#73757a}.process-list{margin-top:25px;display:grid;gap:9px;font-size:13px}.process-list span{padding:10px 12px;background:#faf7f8;border-radius:11px}
.service-matrix{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:26px;overflow:hidden}.matrix-cell{background:#fff;padding:28px;min-height:190px}.matrix-cell strong{display:block;font-size:18px;margin:12px 0 8px}.matrix-cell span{font-size:12px;color:#77797d}.matrix-icon{width:40px;height:40px;border-radius:12px;background:var(--red-soft);display:grid;place-items:center;color:var(--red);font-weight:900}

/* Solution detail */
.solution-nav-wrap{position:sticky;top:76px;z-index:100;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);overflow:auto}.solution-nav{width:min(calc(100% - 64px),var(--max));margin:0 auto;display:flex;gap:4px;min-width:max-content;padding:12px 0}.solution-nav a{padding:9px 13px;border-radius:999px;font-size:11px;color:#65676b}.solution-nav a.active{background:var(--red);color:#fff;font-weight:800}
.solution-hero-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:70px;align-items:center}.solution-hero-grid h2{font-size:48px;line-height:1.15;letter-spacing:-.055em;margin:0 0 20px}.solution-hero-grid p{color:#65676c;font-size:17px}.solution-diagram{height:460px;border-radius:30px;background:linear-gradient(145deg,#faf7f8,#fff);border:1px solid var(--line);position:relative;overflow:hidden;padding:30px}.diagram-terminal{position:absolute;left:34px;right:34px;bottom:34px;border-radius:18px;background:#111318;color:#fff;padding:20px;font:600 11px ui-monospace,monospace;line-height:1.9}.diagram-terminal .red{color:#ff526a}.diagram-badge{display:inline-flex;padding:7px 10px;border-radius:999px;background:var(--red-soft);color:var(--red);font-size:10px;font-weight:900}.diagram-circles{position:absolute;right:-70px;top:-65px;width:310px;height:310px;border-radius:50%;border:1px solid rgba(210,11,37,.18);box-shadow:0 0 0 42px rgba(210,11,37,.03),0 0 0 84px rgba(210,11,37,.02)}
.feature-list{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.feature-item{padding:26px;border:1px solid var(--line);border-radius:22px;background:#fff}.feature-item b{color:var(--red);font-size:11px}.feature-item h3{font-size:20px;margin:14px 0 8px}.feature-item p{font-size:13px;color:#77797e;margin:0}

/* Tech lab */
.lab-hero-card{border-radius:32px;background:#111318;color:#fff;padding:48px;display:grid;grid-template-columns:1fr 1fr;gap:40px;min-height:420px}.lab-hero-card h2{font-size:44px;line-height:1.17;margin:0 0 18px}.lab-hero-card p{color:#a8abb2}.lab-grid-art{border-radius:26px;background:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px),radial-gradient(circle at center,rgba(210,11,37,.30),transparent 40%),#0b0d10;background-size:28px 28px,28px 28px,auto;position:relative}.lab-grid-art:after{content:"R&D";position:absolute;right:28px;bottom:18px;font-size:80px;font-weight:900;color:rgba(255,255,255,.07)}
.research-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.research-card{padding:30px;border:1px solid var(--line);border-radius:26px;min-height:280px}.research-card .num{color:var(--red);font-size:12px;font-weight:900}.research-card h3{font-size:23px;margin:24px 0 12px}.research-card p{font-size:13px;color:#77797e}

/* Promote */
.news-feature{display:grid;grid-template-columns:1.15fr .85fr;border-radius:30px;overflow:hidden;border:1px solid var(--line)}.news-feature-visual{min-height:430px;background:linear-gradient(135deg,#f8e8eb,#fff);position:relative}.news-feature-visual:before{content:"2025";position:absolute;right:28px;bottom:0;font-size:130px;font-weight:900;color:rgba(210,11,37,.10)}.medal{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:170px;height:170px;border-radius:50%;display:grid;place-items:center;background:#fff;box-shadow:0 24px 65px rgba(82,23,34,.13);color:var(--red);font-size:52px;font-weight:900}.news-feature-body{padding:50px;background:#fff}.news-feature-body .type{font-size:11px;color:var(--red);font-weight:900;letter-spacing:.1em}.news-feature-body h2{font-size:34px;line-height:1.35;letter-spacing:-.045em;margin:18px 0}.news-feature-body p{font-size:14px;color:#73757a}.news-list{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:30px}.news-card{padding:26px;border:1px solid var(--line);border-radius:23px}.news-card time{font-size:11px;color:#999}.news-card h3{font-size:18px;line-height:1.45;margin:14px 0}.news-card span{font-size:11px;color:var(--red);font-weight:800}

/* Inquiry */
.inquiry-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px}.inquiry-copy h2{font-size:46px;line-height:1.18;letter-spacing:-.05em;margin:0 0 20px}.inquiry-copy p{color:#707277}.contact-channels{display:grid;gap:12px;margin-top:30px}.contact-channel{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border:1px solid var(--line);border-radius:17px;background:#fff;color:var(--ink)}.contact-channel strong{font-size:13px;color:var(--ink)}.contact-channel span{font-size:13px;color:var(--red);font-weight:900}.inquiry-form{background:#fff;border:1px solid var(--line);border-radius:30px;padding:36px;box-shadow:var(--shadow)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-field{display:grid;gap:8px;margin-bottom:16px}.form-field label{font-size:12px;font-weight:800}.form-field input,.form-field select,.form-field textarea{width:100%;border:1px solid #ddd8da;border-radius:13px;padding:13px 14px;background:#fff;outline:none}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(210,11,37,.08)}.form-field textarea{min-height:120px;resize:vertical}.consent{font-size:11px;color:#777;display:flex;gap:8px;align-items:flex-start;margin:6px 0 20px}.form-status{display:none;margin-top:14px;padding:12px;border-radius:12px;background:#effaf6;color:#087553;font-size:12px}.form-status.show{display:block}

/* scanner landing */
.scanner-landing-hero{background:#111318;color:#fff;border-radius:36px;min-height:580px;padding:55px;display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center;overflow:hidden}.scanner-landing-hero h2{font-size:48px;line-height:1.16;margin:0 0 20px}.scanner-landing-hero p{color:#b1b4bb}.face-scan{height:430px;position:relative;display:grid;place-items:center}.face-form{width:230px;height:330px;border-radius:48% 52% 42% 58%;background:repeating-radial-gradient(ellipse at center,transparent 0 8px,rgba(255,255,255,.14) 9px 10px),linear-gradient(135deg,#f2284b,#493cff);filter:saturate(.85);box-shadow:0 0 80px rgba(210,11,37,.28)}.scan-line{position:absolute;left:13%;right:13%;top:38%;height:2px;background:linear-gradient(90deg,transparent,#fff,transparent);box-shadow:0 0 16px #fff;animation:scan 3s ease-in-out infinite}.scan-label{position:absolute;left:18px;bottom:26px;font:700 11px ui-monospace,monospace;letter-spacing:.1em}.scan-score{position:absolute;right:25px;top:25px;border:1px solid rgba(255,255,255,.18);border-radius:12px;padding:10px 12px;font:700 10px ui-monospace,monospace;background:rgba(0,0,0,.25)}
@keyframes scan{0%,100%{top:24%;opacity:.4}50%{top:72%;opacity:1}}
.comparison-table{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--line);border-radius:22px;overflow:hidden}.comparison-table th,.comparison-table td{padding:18px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-size:13px;text-align:left}.comparison-table th{background:#faf6f7}.comparison-table th:first-child{width:22%}.comparison-table td:first-child{font-weight:800}.comparison-table tr:last-child td{border-bottom:0}.comparison-table th:last-child,.comparison-table td:last-child{border-right:0}.comparison-table .brand-col{background:var(--red-soft);color:var(--red);font-weight:800}

/* Toast */
.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);background:#111;color:#fff;padding:13px 18px;border-radius:999px;z-index:2000;font-size:12px;opacity:0;visibility:hidden;transition:.25s}.toast.show{opacity:1;visibility:visible;transform:translate(-50%,0)}

/* Responsive */
@media (max-width:1180px){
  .gnb{display:none}.header-phone{display:none}.menu-toggle{display:block}.header-actions{margin-left:auto}.site-header,.site-header.scrolled{height:76px}.mobile-panel{display:block;transform:translateX(100%);transition:.25s}.menu-open .mobile-panel{transform:none}
  .hero{padding-top:135px;min-height:auto}.hero-grid{grid-template-columns:1fr}.hero-copy{max-width:800px}.hero-visual{height:560px}.command-card{right:8%}.section-title{grid-template-columns:1fr;gap:20px}.solution-grid{grid-template-columns:1fr 1fr}.solution-card:last-child{grid-column:1/-1;min-height:410px}.dashboard-grid{grid-template-columns:1fr}.event-list{grid-template-columns:repeat(2,1fr)}.case-flow{grid-template-columns:repeat(3,1fr);row-gap:38px}.case-flow:before{display:none}.case-result{grid-template-columns:1fr 1fr}.benchmark-grid,.intro-grid,.solution-hero-grid,.inquiry-layout{grid-template-columns:1fr}.logo-wall{grid-template-columns:repeat(4,1fr)}.footer-top{grid-template-columns:1fr;gap:45px}.lab-hero-card{grid-template-columns:1fr}.lab-grid-art{min-height:290px}.news-feature{grid-template-columns:1fr}.news-feature-visual{min-height:320px}
}
@media (max-width:780px){
  .container{width:min(calc(100% - 34px),var(--max))}.brand img{width:138px}.header-actions .btn{display:none}.hero{padding:118px 0 70px}.hero h1{font-size:47px}.hero-seo-title{font-size:11px;margin-bottom:13px;max-width:330px}.hero-lead{font-size:16px}.hero-trust{gap:15px}.hero-visual{height:470px;margin-top:10px}.orbit-shell{width:390px;height:390px}.command-card{width:94%;right:0;bottom:0;padding:16px}.mini-map{height:130px}.command-stats{grid-template-columns:repeat(3,1fr)}.hero-caption{display:none}.recognition-card{grid-template-columns:58px 1fr;padding:24px}.award-symbol{width:54px;height:54px}.recognition-meta{display:none}.section{padding:82px 0}.section-sm{padding:60px 0}.section-title{margin-bottom:34px}.section-title h2{font-size:36px}.section-title p{font-size:15px}.solution-grid,.tech-split,.content-grid,.news-list,.research-grid,.process-grid,.value-grid{grid-template-columns:1fr}.solution-card,.solution-card:last-child{grid-column:auto;min-height:430px}.dashboard-shell{padding:13px;border-radius:25px}.dashboard-map{min-height:350px}.event-list{grid-template-columns:1fr}.dashboard-foot{grid-template-columns:1fr 1fr}.case-flow{grid-template-columns:1fr 1fr}.case-step{padding:0 6px}.case-result{grid-template-columns:1fr}.result-metric{border-left:0;border-top:1px solid var(--line);padding:15px 0 0}.benchmark-copy h2{font-size:38px}.chart-card{padding:18px}.bar-row{grid-template-columns:80px 1fr 46px}.content-toolbar{align-items:stretch;flex-direction:column}.content-search{min-width:0;width:100%}.logo-wall{grid-template-columns:repeat(2,1fr)}.consult-band{grid-template-columns:1fr;padding:38px 28px}.consult-band h2{font-size:34px}.consult-actions{justify-content:flex-start}.floating-contact{right:12px;bottom:14px}.float-main{width:72px;height:72px;font-size:9px}.float-main b{font-size:12px}.float-mini{display:none}.footer-links{grid-template-columns:1fr 1fr}.footer-bottom{grid-template-columns:1fr}.subhero{padding:130px 0 60px;min-height:360px}.subhero h1{font-size:43px}.subnav{overflow:auto;flex-wrap:nowrap;padding-bottom:4px}.subnav a{white-space:nowrap}.intro-grid{gap:32px}.intro-grid h2{font-size:35px}.lead-quote{font-size:24px}.timeline-row{grid-template-columns:90px 1fr}.timeline-year{font-size:27px}.service-matrix{grid-template-columns:1fr 1fr}.solution-nav{width:calc(100% - 34px)}.solution-hero-grid h2{font-size:37px}.solution-diagram{height:380px}.feature-list{grid-template-columns:1fr}.lab-hero-card{padding:30px}.lab-hero-card h2{font-size:35px}.news-feature-body{padding:30px}.inquiry-form{padding:25px}.form-row{grid-template-columns:1fr}.scanner-landing-hero{grid-template-columns:1fr;padding:32px}.scanner-landing-hero h2{font-size:38px}.face-scan{height:360px}.comparison-table{display:block;overflow:auto;white-space:nowrap}
}
@media (max-width:480px){
  .hero h1{font-size:40px}.hero-actions{display:grid}.hero-actions .btn{width:100%}.hero-visual{height:410px}.orbit-shell{width:320px;height:320px}.command-card{width:100%}.command-stat b{font-size:14px}.case-flow{grid-template-columns:1fr}.case-no{width:68px;height:68px}.service-matrix{grid-template-columns:1fr}.footer-links{grid-template-columns:1fr}.scanner-landing-hero{border-radius:25px;padding:25px}.face-form{width:190px;height:275px}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important;transition:none!important}}

/* =========================================================
   v4.2 추가 — 솔루션 "쉽게 말하면" 블록 (전 솔루션 페이지 공용)
   ========================================================= */
.sol-easy{padding:72px 0;background:linear-gradient(180deg,#fff 0%,var(--pink-2) 100%)}
.sol-easy-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:44px;align-items:start}
.sol-easy-kicker{display:inline-block;font-size:12px;font-weight:800;letter-spacing:.08em;color:var(--red);background:var(--red-soft);border-radius:99px;padding:6px 14px;margin-bottom:14px}
.sol-easy-copy h2{font-size:clamp(24px,2.6vw,36px);line-height:1.28;letter-spacing:-.04em;margin:0 0 14px;font-weight:850}
.sol-easy-copy p{color:#54565c;font-size:15.5px;line-height:1.8;margin:0;max-width:480px}
.sol-easy-copy .sol-easy-note{margin-top:14px;font-size:12.5px;color:var(--muted)}
.sol-easy-cases{display:grid;gap:12px}
.sol-case{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px 20px;display:flex;gap:14px;align-items:flex-start;box-shadow:0 10px 30px rgba(39,18,24,.05)}
.sol-case-ico{flex:none;width:40px;height:40px;border-radius:12px;background:var(--red-soft);display:grid;place-items:center;font-size:19px}
.sol-case b{display:block;font-size:14.5px;letter-spacing:-.02em;margin-bottom:3px}
.sol-case p{margin:0;font-size:13px;color:#63656b;line-height:1.65}
.sol-case-cta{display:flex;gap:14px;align-items:center;background:var(--dark);border-radius:18px;padding:18px 20px;color:#fff}
.sol-case-cta b{font-size:14.5px;letter-spacing:-.02em}
.sol-case-cta span{display:block;font-size:12px;color:#b9bcc4;margin-top:3px}
.sol-case-cta a{margin-left:auto;flex:none;background:var(--red);color:#fff;border-radius:99px;padding:11px 18px;font-size:13px;font-weight:800;white-space:nowrap;transition:.2s}
.sol-case-cta a:hover{background:var(--red-dark)}
@media(max-width:880px){.sol-easy-grid{grid-template-columns:1fr;gap:26px}.sol-case-cta{flex-wrap:wrap}.sol-case-cta a{margin-left:0}}

/* ==== /assets/css/draft.css?v=20260827a ==== */
:root{
  --draft-red:#d20b25;
  --draft-red-bright:#ff2846;
  --draft-ink:#111214;
  --draft-muted:#6d7077;
  --draft-soft:#f7f3f4;
  --draft-dark:#080b12;
  --draft-line:#e8e3e5;
  --draft-neon:#ff304f;
}

/* Shared IA */
.gnb{gap:3px}
.gnb-link{padding-inline:14px}
.gnb-item:hover .mega,.gnb-item:focus-within .mega{opacity:1;visibility:visible;transform:translate(-50%,0)}
.mega a{display:flex;align-items:center;justify-content:space-between;gap:18px}
.mega a:focus-visible,.gnb-link:focus-visible{outline:2px solid var(--draft-red);outline-offset:2px}
/* 상위 솔루션 메뉴 — "솔루션 전체"에 마우스를 올리면 오른쪽으로 펼쳐지는 기술 플라이아웃 */
.mega-sol{position:relative}
.mega-sol-link i{flex:0 0 auto;font-style:normal;font-size:17px;line-height:1;color:var(--red)}
.mega-sol:hover>.mega-sol-link,.mega-sol:focus-within>.mega-sol-link{background:var(--red-soft);color:var(--red);font-weight:700}
/* 솔루션 링크 오른쪽 끝과 드롭다운 바깥 테두리 사이의 15px(.mega padding 14 + border 1) 틈을
   투명 padding-left 로 덮어, 마우스가 링크에서 패널로 넘어갈 때 호버가 끊기지 않게 한다 */
.mega-fly{position:absolute;left:100%;top:-16px;padding-left:23px;opacity:0;visibility:hidden;transform:translateX(-6px);transition:opacity .18s,transform .18s,visibility .18s}
.mega-sol:hover>.mega-fly,.mega-sol:focus-within>.mega-fly{opacity:1;visibility:visible;transform:translateX(0)}
.mega-fly-in{width:452px;padding:16px;background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:0 24px 60px rgba(0,0,0,.12);max-height:calc(100vh - 150px);overflow-y:auto;overscroll-behavior:contain}
.mega-fly-g+.mega-fly-g{margin-top:9px;padding-top:9px;border-top:1px solid var(--line)}
.mega-fly-h{display:block;font-style:normal;font-size:10px;font-weight:850;letter-spacing:.12em;color:#a08e92;padding:0 10px 5px}
.mega-fly .mega-fly-i{display:grid;grid-template-columns:26px minmax(0,1fr);column-gap:11px;row-gap:1px;align-items:center;padding:8px 10px;border-radius:14px;transition:background .18s}
.mega-fly .mega-fly-i:hover,.mega-fly .mega-fly-i:focus-visible{background:var(--red-soft)}
.mega-fly-ic{grid-column:1;grid-row:1;display:grid;place-items:center;color:var(--red)}
.mega-fly-ic svg{width:24px;height:24px}
.mega-fly .mega-fly-i b{grid-column:2;grid-row:1;font-size:14px;font-weight:750;letter-spacing:-.02em;line-height:1.35;color:var(--ink);white-space:nowrap}
.mega-fly-d{grid-column:1/-1;grid-row:2;font-size:12px;font-weight:400;line-height:1.5;color:var(--muted)}
.mega-fly .mega-fly-i:hover b{color:var(--red)}
.mega-fly .mega-fly-all{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding:12px 14px;border-radius:14px;background:var(--red-soft);font-size:12px;font-weight:850;color:var(--red)}
.mega-fly .mega-fly-all:hover,.mega-fly .mega-fly-all:focus-visible{background:var(--red);color:#fff}
.mobile-group{padding:0;margin:0}
.mobile-group-toggle{width:100%;display:flex;justify-content:space-between;align-items:center;border:0;background:transparent;padding:16px 0;font:inherit;font-size:18px;font-weight:800;cursor:pointer}
.mobile-group-toggle span:last-child{transition:transform .2s;color:var(--draft-red)}
.mobile-group.open .mobile-group-toggle span:last-child{transform:rotate(45deg)}
.mobile-group .mobile-links{display:none;padding:0 0 16px}
.mobile-group.open .mobile-links{display:grid}
.mobile-links a{display:flex;justify-content:space-between;gap:12px;padding:9px 2px;color:#555}

/* Draft page primitives */
.draft-subhero{background:
  radial-gradient(circle at 78% 35%,rgba(210,11,37,.14),transparent 26%),
  linear-gradient(125deg,#fff 0%,#fff 52%,#f9eef0 100%)}
.draft-subhero .eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--draft-red);font-size:12px;font-weight:850;letter-spacing:.16em;text-transform:uppercase;margin-bottom:18px}
.draft-subhero .eyebrow:before{content:"";width:34px;height:2px;background:currentColor}
.draft-subhero h1 em{font-style:normal;color:var(--draft-red)}
.draft-section-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.65fr);align-items:end;gap:60px;margin-bottom:48px}
.draft-section-head h2{font-size:46px;line-height:1.14;letter-spacing:-.055em;margin:0}
.draft-section-head p{font-size:16px;line-height:1.75;color:var(--draft-muted);margin:0}
.draft-kicker{font-size:11px;font-weight:850;letter-spacing:.16em;text-transform:uppercase;color:var(--draft-red);margin-bottom:13px}
.draft-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.draft-card{position:relative;padding:34px;border:1px solid var(--draft-line);border-radius:28px;background:#fff;overflow:hidden;min-height:280px}
.draft-card:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--draft-red);transform:scaleY(0);transform-origin:bottom;transition:transform .25s}
.draft-card:hover:before,.draft-card:focus-within:before{transform:scaleY(1)}
.draft-card .num{display:block;color:var(--draft-red);font-size:12px;font-weight:850;letter-spacing:.12em;margin-bottom:45px}
.draft-card h3{font-size:28px;line-height:1.2;letter-spacing:-.045em;margin:0 0 16px}
.draft-card p{color:var(--draft-muted);line-height:1.75;margin:0}
.draft-card .card-link{position:absolute;left:34px;bottom:30px}
.draft-card.dark{color:#fff;border-color:#242937;background:linear-gradient(150deg,#141926,#06080d)}
.draft-card.dark p{color:#aeb4c2}
.draft-card.ai{background:linear-gradient(150deg,#d20b25,#730515);color:#fff;border-color:transparent}
.draft-card.ai p,.draft-card.ai .num{color:#fff}
.evidence-chip{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--draft-line);border-radius:999px;padding:6px 10px;font-size:10px;font-weight:800;color:#777;background:#fff}
.evidence-chip:before{content:"";width:6px;height:6px;border-radius:50%;background:#c4a354}
.evidence-chip.ready:before{background:#24a568}
.draft-anchor-nav{position:sticky;top:92px;z-index:20;display:flex;gap:8px;justify-content:center;margin:-24px auto 0;width:max-content;max-width:calc(100% - 34px);padding:8px;border:1px solid var(--draft-line);border-radius:999px;background:rgba(255,255,255,.92);box-shadow:0 12px 35px rgba(17,18,20,.08);backdrop-filter:blur(14px)}
.draft-anchor-nav a{padding:9px 16px;border-radius:999px;font-size:12px;font-weight:750;white-space:nowrap}
.draft-anchor-nav a:hover,.draft-anchor-nav a:focus-visible{background:var(--draft-ink);color:#fff}
.draft-storyline{display:grid;grid-template-columns:180px 1fr;gap:54px}
.draft-storyline aside{font-size:13px;color:#999;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.draft-storyline article{display:grid;gap:18px}
.draft-milestone{display:grid;grid-template-columns:110px 1fr;gap:30px;padding:24px 0;border-top:1px solid var(--draft-line)}
.draft-milestone:last-child{border-bottom:1px solid var(--draft-line)}
.draft-milestone b{font-size:26px;color:var(--draft-red)}
.draft-milestone h3{font-size:22px;margin:0 0 8px;letter-spacing:-.035em}
.draft-milestone p{color:var(--draft-muted);line-height:1.7;margin:0}
.capability-map{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#2b2f39;border:1px solid #2b2f39;border-radius:28px;overflow:hidden}
.capability-node{min-height:235px;padding:28px;background:#0c1018;color:#fff;display:flex;flex-direction:column;justify-content:space-between}
.capability-node span{color:#7f8799;font-size:11px;letter-spacing:.12em}
.capability-node h3{font-size:21px;margin:0;letter-spacing:-.03em}
.capability-node small{color:#aeb4c2;line-height:1.6}
.case-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:18px}
.case-chip{padding:17px;border:1px solid #303642;border-radius:16px;color:#fff;background:#111722}
.case-chip strong{display:block;font-size:14px;margin-bottom:6px}
.case-chip span{font-size:11px;color:#8f98aa}
.risk-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.risk-card{padding:30px;border-radius:24px;border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.05)}
.risk-card .risk-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:38px}
.risk-card .risk-icon{width:46px;height:46px;border-radius:15px;background:rgba(255,48,79,.14);display:grid;place-items:center;color:var(--draft-neon);font-weight:900}
.risk-card h3{font-size:23px;margin:0 0 10px}
.risk-card p{color:#aeb4c2;line-height:1.7;margin:0}
.risk-arrow{display:block;color:var(--draft-neon);font-size:12px;font-weight:800;margin:22px 0 8px}
.risk-solution{padding-top:16px;border-top:1px solid rgba(255,255,255,.12);color:#fff;font-weight:750}
/* (수정2 ⑦) 흰 배경 섹션에 놓인 risk-card — 다크 전제 색상 때문에 카드가 안 보이던 문제 */
.page-section .risk-card{border-color:var(--line);background:#fff;box-shadow:0 10px 30px rgba(20,10,14,.06)}
.page-section .risk-card p{color:#5f6167}
.page-section .risk-card .risk-icon{color:var(--red)}
.page-section .risk-solution{border-top-color:var(--line);color:var(--ink)}
.draft-cta{display:grid;grid-template-columns:1fr auto;align-items:center;gap:30px;padding:50px;border-radius:32px;background:var(--draft-red);color:#fff}
.draft-cta h2{font-size:38px;line-height:1.15;letter-spacing:-.05em;margin:0 0 10px}
.draft-cta p{margin:0;color:rgba(255,255,255,.78)}
.draft-cta .btn{background:#fff;color:#111}

@media(max-width:1180px){
  .draft-anchor-nav{top:82px}
  .capability-map{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:780px){
  .draft-section-head{grid-template-columns:1fr;gap:18px}.draft-section-head h2{font-size:36px}
  .draft-grid-3,.risk-grid{grid-template-columns:1fr}
  .draft-card{min-height:250px;padding:28px}.draft-card .num{margin-bottom:30px}
  .draft-anchor-nav{justify-content:flex-start;overflow:auto;width:calc(100% - 34px)}
  .draft-storyline{grid-template-columns:1fr;gap:18px}
  .draft-milestone{grid-template-columns:76px 1fr;gap:18px}
  .capability-map{grid-template-columns:1fr}.capability-node{min-height:190px}
  .case-strip{grid-template-columns:1fr 1fr}
  .draft-cta{grid-template-columns:1fr;padding:34px 26px}.draft-cta h2{font-size:32px}
}
@media(max-width:480px){.case-strip{grid-template-columns:1fr}.draft-milestone{grid-template-columns:1fr}.draft-milestone b{font-size:19px}}

/* Media, brochure, people */
.media-placeholder{position:relative;display:grid;place-items:center;min-height:260px;border:1px dashed #cfc7ca;border-radius:24px;background:linear-gradient(135deg,#faf7f8,#f2ecee);color:#777;text-align:center;padding:28px;overflow:hidden}
.media-placeholder:before{content:"";position:absolute;width:180px;height:180px;border-radius:50%;border:1px solid rgba(210,11,37,.16);box-shadow:0 0 0 38px rgba(210,11,37,.04)}
.media-placeholder strong,.media-placeholder span{position:relative;z-index:1}.media-placeholder strong{display:block;color:#222;font-size:18px;margin-bottom:8px}.media-placeholder span{font-size:12px;line-height:1.6}
.brochure-module{display:grid;grid-template-columns:.72fr 1.28fr;gap:50px;align-items:center;padding:46px;border-radius:32px;background:#0b0e15;color:#fff}
.brochure-cover{min-height:380px;border-radius:8px;background:linear-gradient(155deg,#e0132d,#7b0614);padding:32px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 28px 70px rgba(0,0,0,.35);transform:rotate(-2deg)}
.brochure-cover b{font-size:13px;letter-spacing:.2em}.brochure-cover strong{font-size:42px;line-height:1.05}.brochure-copy h3{font-size:34px;line-height:1.2;margin:0 0 18px}.brochure-copy p{color:#aeb4c2;line-height:1.75}.draft-disabled{opacity:.58;cursor:not-allowed}
.people-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:30px}.people-toolbar button{border:1px solid var(--draft-line);background:#fff;padding:9px 15px;border-radius:999px;font:inherit;font-size:12px;font-weight:750;cursor:pointer}.people-toolbar button.active{background:#111;color:#fff;border-color:#111}
.people-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.person-card{border:1px solid var(--draft-line);border-radius:26px;overflow:hidden;background:#fff}.person-photo{aspect-ratio:4/3;background:linear-gradient(135deg,#f6f1f2,#e8e0e2);display:grid;place-items:center;color:#8a8083;font-size:12px}.person-body{padding:25px}.person-body h3{font-size:23px;margin:0 0 6px}.person-body p{color:var(--draft-muted);margin:0 0 18px}.person-tags{display:flex;gap:6px;flex-wrap:wrap}.person-tags span{font-size:10px;padding:5px 8px;border-radius:999px;background:var(--draft-soft)}
.profile-layout{display:grid;grid-template-columns:360px 1fr;gap:70px}.profile-aside{position:sticky;top:110px;align-self:start}.profile-photo{aspect-ratio:4/5}.profile-main section{padding:32px 0;border-top:1px solid var(--draft-line)}.profile-main h2{font-size:25px;margin:0 0 20px}.profile-list{display:grid;gap:12px}.profile-list li{line-height:1.65;color:#555}

/* Products and solutions */
.division-title{display:flex;align-items:center;gap:18px;margin-bottom:34px}.division-title strong{font-size:13px;letter-spacing:.18em;color:var(--draft-red)}.division-title h2{font-size:48px;margin:0;letter-spacing:-.055em}.service-hero-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:34px}.service-summary{padding:40px;border-radius:30px;background:#fff;border:1px solid var(--draft-line)}.service-summary h3{font-size:34px;margin:0 0 16px}.service-summary p{color:var(--draft-muted);line-height:1.75}.service-process{display:grid;gap:10px;margin-top:30px}.service-process div{display:grid;grid-template-columns:64px 1fr;gap:15px;padding:14px;border-top:1px solid var(--draft-line)}.service-process b{color:var(--draft-red)}
.webgl-shell{position:relative;min-height:590px;border-radius:32px;overflow:hidden;background:radial-gradient(circle at 50% 45%,#30101a,#080b12 55%,#05060a);color:#fff;border:1px solid #242937}.webgl-shell canvas{position:absolute;inset:0;width:100%;height:100%}.webgl-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:38px 38px;mask-image:linear-gradient(to bottom,#000,transparent)}
.webgl-copy{position:absolute;left:30px;right:30px;bottom:28px;z-index:4;display:grid;grid-template-columns:1fr .9fr;gap:30px;padding:24px;border:1px solid rgba(255,255,255,.13);border-radius:22px;background:rgba(6,8,13,.74);backdrop-filter:blur(14px)}.webgl-copy h3{font-size:25px;margin:0 0 10px}.webgl-copy p{color:#aeb4c2;line-height:1.65;margin:0}.webgl-result{padding-left:22px;border-left:1px solid rgba(255,255,255,.14)}.webgl-result span{display:block;color:var(--draft-neon);font-size:10px;font-weight:850;letter-spacing:.13em;margin-bottom:8px}.webgl-result strong{line-height:1.5}
.webgl-controls{position:absolute;z-index:5;left:24px;right:24px;top:24px;display:flex;justify-content:space-between;gap:14px}.stage-buttons{display:flex;gap:7px;flex-wrap:wrap}.stage-buttons button,.webgl-controls>button{border:1px solid rgba(255,255,255,.17);background:rgba(5,6,10,.62);color:#fff;padding:9px 12px;border-radius:999px;font:inherit;font-size:10px;font-weight:750;cursor:pointer}.stage-buttons button.active{background:var(--draft-red);border-color:var(--draft-red)}
.webgl-fallback{display:none;position:absolute;inset:80px 24px 170px;z-index:3;grid-template-columns:repeat(2,1fr);gap:10px}[data-webgl-shell].show-2d .webgl-fallback,[data-webgl-shell].webgl-unavailable .webgl-fallback{display:grid}[data-webgl-shell].show-2d>canvas,[data-webgl-shell].webgl-unavailable>canvas{display:none}.webgl-fallback div{padding:22px;border-radius:18px;border:1px solid rgba(255,255,255,.13);background:#111621}.webgl-fallback b{display:block;color:var(--draft-neon);margin-bottom:6px}.webgl-fallback span{font-size:12px;color:#aeb4c2}
.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.product-card{min-height:390px;padding:32px;border-radius:28px;border:1px solid var(--draft-line);background:#fff;display:flex;flex-direction:column}.product-card.featured{background:#0b0e15;color:#fff;border-color:#202531}.product-card.pending{background:#f2eff0;color:#8b8789}.product-code{font-size:11px;letter-spacing:.16em;color:var(--draft-red);font-weight:850}.product-card h3{font-size:29px;margin:60px 0 15px}.product-card p{line-height:1.75;color:var(--draft-muted)}.product-card.featured p{color:#aeb4c2}.product-card .card-link{margin-top:auto}
.solution-hub{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.solution-tile{min-height:210px;text-align:left;padding:24px;border-radius:22px;border:1px solid var(--draft-line);background:#fff;cursor:pointer;transition:.2s}.solution-tile:hover,.solution-tile:focus-visible{transform:translateY(-4px);border-color:var(--draft-red);box-shadow:0 18px 40px rgba(30,10,15,.08)}.solution-tile .tile-icon{width:48px;height:48px;border-radius:15px;background:var(--draft-soft);display:grid;place-items:center;color:var(--draft-red);font-weight:900;margin-bottom:30px}.solution-tile span{font-size:10px;color:#999;letter-spacing:.1em}.solution-tile strong{display:block;font-size:18px;margin-top:7px}
.draft-dialog{width:min(680px,calc(100% - 34px));border:0;border-radius:28px;padding:0;box-shadow:0 32px 100px rgba(0,0,0,.3)}.draft-dialog::backdrop{background:rgba(5,6,10,.68);backdrop-filter:blur(5px)}.dialog-inner{padding:38px}.dialog-head{display:flex;justify-content:space-between;gap:20px}.dialog-head button{border:0;background:#f3eff0;width:38px;height:38px;border-radius:50%;cursor:pointer}.dialog-inner h2{font-size:34px;margin:16px 0}.dialog-inner>p{color:var(--draft-muted);line-height:1.7}.dialog-facts{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:26px 0}.dialog-facts div{padding:18px;border-radius:16px;background:var(--draft-soft)}.dialog-facts span{display:block;font-size:10px;color:#888;margin-bottom:7px}.dialog-facts strong{font-size:13px;line-height:1.55}
.draft-comparison{width:100%;border-collapse:collapse;border-radius:24px;overflow:hidden;border:1px solid var(--draft-line)}.draft-comparison th,.draft-comparison td{padding:18px;border-bottom:1px solid var(--draft-line);text-align:left}.draft-comparison th{background:#111;color:#fff}.draft-comparison th:not(:first-child),.draft-comparison td:not(:first-child){text-align:center}.draft-comparison td span{display:inline-block;padding:6px 9px;border-radius:999px;background:#f3eff0;color:#777;font-size:10px;font-weight:750}

/* Research, awards, magazine */
.evidence-hero{display:grid;grid-template-columns:1.05fr .95fr;min-height:520px;border-radius:34px;overflow:hidden;background:#090c13;color:#fff}.evidence-copy{padding:56px;display:flex;flex-direction:column;justify-content:center}.evidence-copy h2{font-size:48px;line-height:1.12;margin:0 0 18px}.evidence-copy p{color:#aeb4c2;line-height:1.75}.evidence-visual{display:grid;place-items:center;background:radial-gradient(circle,rgba(255,40,70,.35),transparent 47%),linear-gradient(145deg,#1e0710,#080a10)}.evidence-lockup{display:flex;align-items:center;gap:22px;font-size:24px;font-weight:900}.evidence-lockup i{font-style:normal;color:var(--draft-neon)}
.media-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.media-grid .media-placeholder{cursor:pointer}.media-grid .media-placeholder.wide{grid-column:span 2}.patent-wall{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.patent-card{aspect-ratio:3/4;padding:22px;border-radius:18px;border:1px solid var(--draft-line);background:#fff;display:flex;flex-direction:column;justify-content:space-between}.patent-card:before{content:"CERTIFICATE";font-size:10px;letter-spacing:.15em;color:#aaa}.patent-card strong{font-size:15px;line-height:1.45}.patent-card span{font-size:10px;color:#999}.paper-list{display:grid;gap:12px}.paper-card{display:grid;grid-template-columns:90px 1fr auto;align-items:center;gap:24px;padding:24px;border:1px solid var(--draft-line);border-radius:20px}.paper-card b{color:var(--draft-red)}.paper-card h3{margin:0 0 6px}.paper-card p{margin:0;color:var(--draft-muted)}
.gallery-filter{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:28px}.gallery-filter button{border:1px solid var(--draft-line);background:#fff;padding:9px 14px;border-radius:999px;font:inherit;font-size:11px;font-weight:750;cursor:pointer}.gallery-filter button.active{background:#111;color:#fff;border-color:#111}.award-gallery{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}.award-item{grid-column:span 4;min-height:300px;border-radius:24px;overflow:hidden;position:relative;background:linear-gradient(145deg,#efe8ea,#ddd2d5);border:0;text-align:left;padding:0;cursor:pointer}.award-item.wide{grid-column:span 8}.award-caption{position:absolute;inset:auto 14px 14px;padding:18px;border-radius:16px;background:rgba(255,255,255,.92);backdrop-filter:blur(12px)}.award-caption span{font-size:10px;color:var(--draft-red);font-weight:800}.award-caption strong{display:block;margin-top:5px}.story-board{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:18px}.story-card{min-height:300px;padding:28px;border-radius:26px;border:1px solid var(--draft-line);background:#fff;display:flex;flex-direction:column}.story-card:first-child{background:#111;color:#fff}.story-card .meta{font-size:10px;color:var(--draft-red);font-weight:850;letter-spacing:.1em}.story-card h3{font-size:24px;line-height:1.35;margin:50px 0 12px}.story-card p{color:var(--draft-muted);line-height:1.7}.story-card:first-child p{color:#aeb4c2}.story-card .card-link{margin-top:auto}
.magazine-feature{display:grid;grid-template-columns:1.15fr .85fr;border-radius:32px;overflow:hidden;background:#0b0e15;color:#fff;min-height:470px}.magazine-art{background:radial-gradient(circle at 42% 45%,rgba(255,40,70,.5),transparent 23%),linear-gradient(135deg,#170810,#05070b);display:grid;place-items:center}.magazine-mark{font-size:84px;font-weight:900;letter-spacing:-.08em;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.45)}.magazine-copy{padding:48px;display:flex;flex-direction:column;justify-content:center}.magazine-copy h2{font-size:38px;line-height:1.25;margin:15px 0}.magazine-copy p{color:#aeb4c2;line-height:1.7}.magazine-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.magazine-card{border:1px solid var(--draft-line);border-radius:24px;overflow:hidden;background:#fff}.magazine-thumb{aspect-ratio:16/10;display:grid;place-items:center;background:linear-gradient(135deg,#f3edef,#e5dadd);color:var(--draft-red);font-size:28px;font-weight:900}.magazine-card:nth-child(3n+2) .magazine-thumb{background:linear-gradient(145deg,#171b25,#080a10);color:#fff}.magazine-body{padding:24px}.magazine-type{font-size:10px;color:var(--draft-red);font-weight:850;letter-spacing:.1em}.magazine-body h3{font-size:20px;line-height:1.4;margin:10px 0}.magazine-body p{color:var(--draft-muted);font-size:13px;line-height:1.6}.magazine-meta{display:flex;justify-content:space-between;gap:12px;color:#999;font-size:10px;margin-top:22px}.pagination{display:flex;justify-content:center;gap:7px;margin-top:40px}.pagination button{width:38px;height:38px;border-radius:50%;border:1px solid var(--draft-line);background:#fff}.pagination button.active{background:#111;color:#fff}

/* Malware lab */
.malware-stage{position:relative;min-height:760px;border-radius:34px;overflow:hidden;background:radial-gradient(circle at 33% 50%,#2b0712,#080b12 48%,#030407);color:#fff;border:1px solid #252a36}.malware-stage canvas{position:absolute;left:0;top:0;width:67%;height:100%}.malware-stage.malware-unavailable canvas{display:none}.malware-orbit{position:absolute;left:0;top:0;width:67%;height:100%;touch-action:pan-y}.malware-core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:150px;height:150px;border-radius:50%;display:grid;place-items:center;text-align:center;background:radial-gradient(circle,#ff2846,#720616 45%,rgba(20,2,7,.4) 70%);box-shadow:0 0 80px rgba(255,20,55,.45);font-size:13px;font-weight:900;letter-spacing:.12em;pointer-events:none}.malware-node{position:absolute;width:66px;height:66px;border:1px solid rgba(255,255,255,.18);border-radius:19px;background:rgba(8,10,16,.9);color:#fff;display:grid;place-items:center;font:inherit;font-size:12px;font-weight:900;cursor:pointer;box-shadow:0 0 18px rgba(255,40,70,.08)}.malware-node.active{border-color:var(--draft-neon);box-shadow:0 0 28px rgba(255,40,70,.42)}.malware-node:focus-visible{outline:3px solid #fff;outline-offset:3px}.malware-panel{position:absolute;right:26px;top:26px;bottom:26px;width:34%;padding:30px;border:1px solid rgba(255,48,79,.65);border-radius:24px;background:transparent;box-shadow:0 0 30px rgba(255,35,65,.15),inset 0 0 28px rgba(255,35,65,.04);overflow:auto}.malware-panel .report-id{color:var(--draft-neon);font-size:10px;letter-spacing:.14em}.malware-panel h2{font-size:28px;line-height:1.3;margin:14px 0}.report-date{font-size:11px;color:#7f8799}.report-summary{color:#c4c8d2;line-height:1.7}.report-facts{display:grid;gap:10px;margin:26px 0}.report-facts div{padding:14px 0;border-top:1px solid rgba(255,255,255,.12)}.report-facts span{display:block;color:#7f8799;font-size:9px;letter-spacing:.1em;margin-bottom:6px}.report-facts strong{font-size:12px;line-height:1.55}.malware-controls{position:absolute;left:24px;top:24px;z-index:60;display:flex;gap:7px}.malware-controls button{min-height:44px;border:1px solid rgba(255,255,255,.18);background:rgba(5,6,10,.8);color:#fff;border-radius:999px;padding:10px 14px;font:inherit;font-size:11px;cursor:pointer}.malware-controls button:focus-visible,.stage-buttons button:focus-visible,.webgl-controls>button:focus-visible{outline:3px solid #fff;outline-offset:3px}

/* Inquiry */
.urgent-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:35px}.urgent-copy{padding:45px;border-radius:30px;background:#0b0e15;color:#fff}.urgent-copy h2{font-size:40px;line-height:1.15;margin:0 0 18px}.urgent-copy p{color:#aeb4c2;line-height:1.7}.urgent-number{font-size:34px;font-weight:900;color:#fff;margin:30px 0}.trust-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:28px}.trust-chip{padding:18px;border-radius:18px;background:#fff;border:1px solid var(--draft-line)}.trust-chip b{display:block;color:var(--draft-red);font-size:11px}.trust-chip span{font-size:12px;color:#555}.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.review-card{padding:28px;border-radius:24px;background:#fff;border:1px solid var(--draft-line)}.review-card blockquote{font-size:18px;line-height:1.65;margin:0 0 24px}.review-card cite{font-style:normal;font-size:11px;color:#888}.diagnosis{padding:38px;border-radius:30px;background:#11151e;color:#fff}.diagnosis-group{padding:22px 0;border-top:1px solid rgba(255,255,255,.12)}.diagnosis-group h3{font-size:16px;margin:0 0 14px}.diagnosis-options{display:flex;gap:8px;flex-wrap:wrap}.diagnosis-options button{border:1px solid rgba(255,255,255,.18);background:transparent;color:#fff;padding:10px 14px;border-radius:999px;font:inherit;font-size:12px}.diagnosis-options button.selected{background:var(--draft-red);border-color:var(--draft-red)}.diagnosis-result{margin-top:20px;padding:20px;border-radius:18px;background:rgba(210,11,37,.18);border:1px solid rgba(255,40,70,.4)}.diagnosis-result p{color:#c5c9d2;margin:7px 0 0}.feature-six{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.feature-six article{padding:28px;border-radius:22px;border:1px solid var(--draft-line);background:#fff}.feature-six b{color:var(--draft-red)}.feature-six h3{font-size:20px;margin:24px 0 10px}.feature-six p{color:var(--draft-muted);line-height:1.65}

@media(max-width:980px){
  .people-grid,.magazine-grid{grid-template-columns:repeat(2,1fr)}.product-grid{grid-template-columns:1fr 1fr}.product-card:last-child{grid-column:1/-1}.solution-hub{grid-template-columns:repeat(2,1fr)}
  .evidence-hero,.service-hero-grid,.urgent-layout{grid-template-columns:1fr}.media-grid{grid-template-columns:1fr 1fr}.patent-wall{grid-template-columns:repeat(2,1fr)}
  .award-item,.award-item.wide{grid-column:span 6}.story-board{grid-template-columns:1fr 1fr}.story-card:first-child{grid-column:1/-1}
  .malware-stage{min-height:980px}.malware-stage canvas{width:100%;height:62%}.malware-orbit{width:100%;height:62%}.malware-panel{left:24px;right:24px;top:auto;bottom:24px;width:auto;height:34%}
  .feature-six,.review-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:780px){
  .brochure-module,.profile-layout,.magazine-feature{grid-template-columns:1fr}.profile-aside{position:static}.people-grid,.product-grid,.media-grid,.magazine-grid,.feature-six,.review-grid{grid-template-columns:1fr}.product-card:last-child{grid-column:auto}
  .division-title h2{font-size:38px}.webgl-shell{min-height:720px}.webgl-copy{grid-template-columns:1fr}.webgl-result{border-left:0;border-top:1px solid rgba(255,255,255,.14);padding:18px 0 0}.webgl-fallback{inset:130px 18px 245px}.webgl-controls{flex-direction:column}.solution-hub{grid-template-columns:1fr 1fr}.dialog-facts{grid-template-columns:1fr}.draft-comparison{display:block;overflow:auto;white-space:nowrap}
  .evidence-copy{padding:35px 27px}.evidence-copy h2{font-size:37px}.evidence-visual{min-height:300px}.patent-wall{grid-template-columns:1fr 1fr}.paper-card{grid-template-columns:58px 1fr}.paper-card a{grid-column:2}.award-item,.award-item.wide{grid-column:span 12}.story-board{grid-template-columns:1fr}.story-card:first-child{grid-column:auto}.magazine-copy{padding:34px 26px}.magazine-feature{min-height:0}.magazine-art{min-height:280px}
  .malware-stage{min-height:930px}.malware-stage canvas{height:58%}.malware-orbit{height:58%}.malware-node{width:54px;height:54px;border-radius:15px}.malware-core{width:115px;height:115px;font-size:10px}.malware-panel{height:38%;padding:22px}.malware-panel h2{font-size:23px}
  .trust-row{grid-template-columns:1fr 1fr}
}
@media(max-width:480px){.solution-hub,.patent-wall{grid-template-columns:1fr}.webgl-fallback{grid-template-columns:1fr}.trust-row{grid-template-columns:1fr}}

/* Draft-only editorial, inquiry and scanner screens */
.editor-notice{display:flex;align-items:center;gap:18px;margin-bottom:26px;padding:18px 22px;border:1px solid #dfd8da;border-radius:18px;background:#fff}.editor-notice strong{flex:0 0 auto;color:var(--draft-red)}.editor-notice span{font-size:13px;line-height:1.55;color:#666}.editor-notice.urgent{border-color:#f2b5bd;background:#fff6f7}
.urgent-number{display:block;text-decoration:none}.inquiry-solutions{grid-template-columns:repeat(3,1fr)}.process-five{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;list-style:none;margin:0;padding:0}.process-five li{min-height:190px;padding:24px;border-radius:22px;background:#fff;border:1px solid var(--draft-line);display:flex;flex-direction:column}.process-five b{color:var(--draft-red);font-size:12px}.process-five strong{font-size:18px;margin:auto 0 10px}.process-five span{font-size:12px;line-height:1.5;color:var(--draft-muted)}
.division-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.division-card{min-height:330px;padding:38px;border-radius:28px;border:1px solid var(--draft-line);background:#fff}.division-card.dark{background:#0b0e15;border-color:#252a35;color:#fff}.division-card>span{font-size:10px;font-weight:850;letter-spacing:.14em;color:var(--draft-red)}.division-card h3{font-size:32px;margin:70px 0 14px}.division-card p{line-height:1.75;color:var(--draft-muted)}.division-card.dark p{color:#aeb4c2}.division-card small{display:block;margin-top:28px;color:#8c9099;line-height:1.6}.service-hero-grid .division-title{display:block;margin-bottom:24px}.service-hero-grid .division-title p{max-width:620px;color:var(--draft-muted);line-height:1.75}
.scanner-demo-card{min-height:480px;border-radius:32px;background:radial-gradient(circle at 50% 46%,#6d0a1c,#180711 34%,#07090f 64%);display:grid;place-items:center;color:#fff;overflow:hidden;position:relative}.scanner-demo-card>p{position:absolute;left:24px;right:24px;bottom:20px;margin:0;text-align:center;font-size:10px;color:#8e96a4}.scanner-radar{position:relative;width:280px;height:280px;border-radius:50%;border:1px solid rgba(255,255,255,.25);box-shadow:0 0 0 45px rgba(255,255,255,.035),0 0 0 90px rgba(255,255,255,.025);display:grid;place-items:center}.scanner-radar:before,.scanner-radar:after{content:"";position:absolute;background:rgba(255,255,255,.18)}.scanner-radar:before{width:1px;height:100%}.scanner-radar:after{height:1px;width:100%}.scanner-radar i{position:absolute;inset:12%;border-radius:50%;border:1px dashed var(--draft-neon)}.scanner-radar b{font-size:58px;letter-spacing:-.08em}.scanner-radar span{position:absolute;bottom:52px;color:var(--draft-neon);font-size:10px;letter-spacing:.14em;font-weight:850}
.draft-article-head{padding:170px 0 90px;background:radial-gradient(circle at 80% 30%,rgba(210,11,37,.15),transparent 28%),#faf7f8}.draft-article-head h1{font-size:64px;line-height:1.08;letter-spacing:-.06em;margin:26px 0}.draft-article-head>div>p{max-width:720px;font-size:18px;line-height:1.7;color:var(--draft-muted)}.draft-status{display:inline-flex;margin-top:48px;padding:7px 11px;border-radius:999px;background:#111;color:#fff;font-size:10px;font-weight:850;letter-spacing:.1em}.draft-article-meta{display:flex;gap:20px;flex-wrap:wrap;margin-top:34px;color:#8d8f94;font-size:11px}.draft-article-body{padding-top:70px;padding-bottom:100px}.article-prose{max-width:820px;margin:70px auto}.article-prose .lead{font-size:24px;line-height:1.65;color:#222}.article-prose h2{font-size:34px;margin:70px 0 20px}.article-prose p{font-size:16px;line-height:1.9;color:#5e6168}.article-quote{margin:55px 0;padding:38px;border-left:4px solid var(--draft-red);background:var(--draft-soft);font-size:26px;font-weight:750;line-height:1.5}.article-quote small{display:block;margin-top:18px;color:#888;font-size:11px}.article-related{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.article-related>div{padding:26px;border:1px solid var(--draft-line);border-radius:20px}.article-related span{font-size:10px;color:var(--draft-red);font-weight:850}.article-related h3{margin:18px 0 25px}
.draft-editor{padding:34px;border-radius:28px;background:#fff;border:1px solid var(--draft-line)}.editor-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:34px}.editor-main{min-width:0}.editor-side{display:grid;align-content:start;gap:12px}.editor-panel{padding:22px;border-radius:20px;background:var(--draft-soft)}.editor-panel h2{font-size:18px;margin:0 0 20px}.editor-toolbar{display:flex;gap:6px;flex-wrap:wrap;margin:18px 0 8px}.editor-toolbar button{min-height:38px;padding:7px 12px;border:1px solid var(--draft-line);border-radius:9px;background:#fff;font:inherit;font-size:11px;cursor:pointer}.draft-editor textarea{resize:vertical}
@media(max-width:980px){.process-five{grid-template-columns:repeat(3,1fr)}.editor-grid{grid-template-columns:1fr}.editor-side{grid-template-columns:1fr 1fr}.editor-side>.btn,.editor-side>.form-status{grid-column:1/-1}}
@media(max-width:780px){.inquiry-solutions,.division-grid,.article-related{grid-template-columns:1fr}.process-five{grid-template-columns:1fr 1fr}.draft-article-head{padding:130px 0 65px}.draft-article-head h1{font-size:45px}.article-prose .lead{font-size:20px}.article-quote{font-size:21px;padding:28px}.editor-side{grid-template-columns:1fr}.scanner-demo-card{min-height:380px}.scanner-radar{width:210px;height:210px}.scanner-radar b{font-size:45px}}
@media(max-width:480px){.process-five{grid-template-columns:1fr}.editor-notice{align-items:flex-start;flex-direction:column}.draft-editor{padding:20px}.draft-article-head h1{font-size:38px}}

/* Official lavarwave.co.kr content, reframed for the 8082 IA */
.official-source{border-bottom:1px solid #eadfe2;background:#fff5f6}.official-source .container{min-height:64px;display:flex;align-items:center;gap:18px;padding-top:12px;padding-bottom:12px;overflow:hidden}.official-source strong{color:var(--draft-red);font-size:12px;overflow-wrap:anywhere}.official-source span{flex:1;min-width:180px;color:#6b6d72;font-size:11px;line-height:1.5}.official-source a{margin-left:auto;white-space:nowrap;font-size:11px;font-weight:850;color:var(--draft-red)}
.official-solution-intro{display:grid;grid-template-columns:.72fr 1.28fr;gap:70px;align-items:start}.official-solution-intro h2{font-size:48px;line-height:1.12;margin:0 0 20px}.official-solution-intro>div>p{color:var(--draft-muted);line-height:1.8}.official-system-cards{display:grid;gap:10px}.official-system-cards a{display:grid;grid-template-columns:180px 1fr;gap:24px;padding:24px;border:1px solid var(--draft-line);border-radius:20px;background:#fff;transition:.2s}.official-system-cards a:hover{transform:translateX(5px);border-color:var(--draft-red)}.official-system-cards b{color:var(--draft-red)}.official-system-cards span{font-size:13px;line-height:1.6;color:#5d6066}
.official-solution-tabs{display:flex;gap:7px;overflow:auto;padding:3px 0 24px;scrollbar-width:thin}.official-solution-tabs a{flex:0 0 auto;padding:9px 13px;border:1px solid var(--draft-line);border-radius:999px;background:#fff;font-size:10px;font-weight:780}.official-solution-tabs a.active{background:#111;color:#fff;border-color:#111}
.official-tech-card{display:grid;grid-template-columns:.82fr 1.18fr;border-radius:32px;overflow:hidden;background:#0b0e15;color:#fff;min-height:560px}.official-tech-copy{padding:50px;display:flex;flex-direction:column;justify-content:center}.official-tech-copy h2{font-size:42px;line-height:1.2;margin:0 0 20px}.official-tech-copy>p{color:#b3b8c3;line-height:1.8}.official-tech-media{background:#fff;display:grid;place-items:center;min-width:0}.official-tech-media img{display:block;width:100%;height:100%;max-height:700px;object-fit:contain}
.official-flow{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:30px}.official-flow div{padding:15px;border:1px solid rgba(255,255,255,.12);border-radius:14px;background:rgba(255,255,255,.04)}.official-flow span{display:block;color:var(--draft-neon);font-size:9px;font-weight:850;margin-bottom:6px}.official-flow strong{font-size:11px;line-height:1.5}
.official-steps{display:grid;gap:22px}.official-step{display:grid;grid-template-columns:.72fr 1.28fr;min-height:390px;border:1px solid var(--draft-line);border-radius:28px;overflow:hidden;background:#fff}.official-step:nth-child(even){grid-template-columns:1.28fr .72fr}.official-step:nth-child(even) .official-step-copy{order:2}.official-step-copy{padding:42px;display:flex;flex-direction:column;justify-content:center}.official-step-copy>span{color:var(--draft-red);font-size:11px;font-weight:900}.official-step-copy h3{font-size:31px;margin:18px 0}.official-step-copy p{color:var(--draft-muted);line-height:1.75}.official-step-media{display:grid;place-items:center;background:#f7f7f7;min-width:0}.official-step-media img{display:block;width:100%;height:100%;max-height:600px;object-fit:contain}
.official-extra{display:grid;grid-template-columns:1fr auto;gap:35px;align-items:center;padding:45px;border-radius:28px;background:#fff;border:1px solid var(--draft-line)}.official-extra h2{font-size:35px;line-height:1.3;margin:0 0 14px}.official-extra p{max-width:850px;color:var(--draft-muted);line-height:1.8}
@media(max-width:980px){.official-solution-intro,.official-tech-card{grid-template-columns:1fr}.official-tech-media{min-height:420px}.official-step,.official-step:nth-child(even){grid-template-columns:1fr}.official-step:nth-child(even) .official-step-copy{order:0}.official-step-media{min-height:330px}}
@media(max-width:780px){.official-source .container{align-items:flex-start;flex-direction:column;gap:5px}.official-source a{margin-left:0}.official-solution-intro{gap:30px}.official-solution-intro h2{font-size:38px}.official-system-cards a{grid-template-columns:1fr;gap:8px}.official-tech-copy{padding:34px 26px}.official-tech-copy h2{font-size:34px}.official-flow{grid-template-columns:1fr}.official-step-copy{padding:30px 25px}.official-step-copy h3{font-size:26px}.official-extra{grid-template-columns:1fr;padding:32px 25px}}

/* Official inquiry, company, research and editorial content */
.official-inquiry-hero{overflow:hidden;background:#090b11;color:#fff}.official-inquiry-hero>.container{display:grid;grid-template-columns:.8fr 1.2fr;align-items:center;min-height:540px}.official-inquiry-copy{padding:70px 20px 70px 0}.official-inquiry-copy h2{font-size:47px;line-height:1.16;margin:16px 0 22px}.official-inquiry-copy p{max-width:560px;color:#b8bdc8;line-height:1.8}.official-inquiry-visual{align-self:stretch;min-width:0;display:grid;place-items:center}.official-inquiry-visual img{width:100%;height:100%;max-height:650px;object-fit:contain}.official-metrics{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.official-metrics>div{min-height:130px;padding:22px 15px;border-radius:20px;background:#fff;border:1px solid var(--draft-line);display:flex;flex-direction:column;justify-content:flex-end}.official-metrics b{font-size:18px;color:#111}.official-metrics span{margin-top:7px;font-size:11px;color:var(--draft-muted)}
.official-solution-visuals{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.official-solution-visuals>a{padding:0 25px 28px;border:1px solid var(--draft-line);border-radius:26px;background:#fff;overflow:hidden;transition:.22s}.official-solution-visuals>a:hover{transform:translateY(-6px);box-shadow:0 22px 50px rgba(31,14,20,.11)}.official-solution-visuals img{width:calc(100% + 50px);height:270px;margin-left:-25px;object-fit:cover;background:#f7f4f5}.official-solution-visuals span{display:block;margin-top:22px;color:var(--draft-red);font-size:10px;font-weight:850;letter-spacing:.1em}.official-solution-visuals h3{font-size:23px;margin:10px 0}.official-solution-visuals p{font-size:13px;line-height:1.7;color:var(--draft-muted)}.official-demo-band{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;margin-top:28px;border-radius:30px;overflow:hidden;background:#10131b;color:#fff}.official-demo-band img{display:block;width:100%;height:380px;object-fit:cover}.official-demo-band>div{padding:45px}.official-demo-band h2{font-size:31px;line-height:1.35;margin:0 0 25px}
.official-team{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.official-team article{margin:0;border-radius:24px;overflow:hidden;background:#f3eff0;border:1px solid var(--draft-line)}.official-team img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover}.official-team h3{margin:0;padding:18px 20px;font-size:17px;background:#fff}.official-process-bg{background:#11151c url('/assets/img/legacy/landing/process-bg.webp?v=20260905a') center/cover no-repeat;color:#fff}.official-process-bg .draft-section-head>p{color:#b8bdc8}.official-process-bg .process-five li{background:rgba(255,255,255,.94);color:#111}.official-contact-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.official-contact-grid a{min-height:150px;padding:24px;border-radius:22px;border:1px solid var(--draft-line);background:#fff;display:flex;flex-direction:column;justify-content:flex-end;transition:.2s}.official-contact-grid a:hover{border-color:var(--draft-red);transform:translateY(-4px)}.official-contact-grid b{font-size:19px}.official-contact-grid span{margin-top:8px;color:var(--draft-muted);font-size:12px}

.official-media{display:block;width:100%;border-radius:26px;background:#f4f1f2;object-fit:cover}.official-video{display:block;width:100%;border-radius:26px;background:#080a0f}.official-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.official-stat-card{min-height:240px;padding:28px;border-radius:24px;background:#11151d;color:#fff;display:flex;flex-direction:column}.official-stat-card b{font-size:46px;color:var(--draft-neon);letter-spacing:-.05em}.official-stat-card h3{font-size:18px;margin:16px 0 10px}.official-stat-card p{margin-top:auto;color:#aeb4c2;font-size:12px;line-height:1.65}.official-stat-card small{display:block;margin-top:12px;color:#747c89;font-size:9px}.official-feature-card{overflow:hidden;padding:0!important}.official-feature-card img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;background:#f7f5f6}.official-feature-card>div{padding:25px}.official-feature-card h3{margin-top:10px}.official-feature-card p{margin-bottom:0}.official-download{display:grid;grid-template-columns:.9fr 1.1fr;align-items:center;overflow:hidden;border-radius:30px;background:#11151c;color:#fff}.official-download img{display:block;width:100%;height:100%;min-height:360px;object-fit:cover}.official-download>div{padding:45px}.official-download h2{font-size:35px;line-height:1.3}.official-download p{color:#b7bdc8;line-height:1.75}

.official-image-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.official-image-card{overflow:hidden;border:1px solid var(--draft-line);border-radius:26px;background:#fff}.official-image-card img{display:block;width:100%;height:360px;object-fit:cover;background:#f5f2f3}.official-image-card>div{padding:24px}.official-image-card h3{margin:0 0 8px;font-size:20px}.official-image-card p{margin:0;color:var(--draft-muted);font-size:12px;line-height:1.7}.official-patents{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.official-patent{overflow:hidden;border-radius:22px;border:1px solid var(--draft-line);background:#fff}.official-patent img{display:block;width:100%;aspect-ratio:3/4;object-fit:contain;padding:10px;background:#f7f5f6}.official-patent h3{font-size:15px;margin:0;padding:17px}.official-app{display:grid;grid-template-columns:1.1fr .9fr;gap:35px;align-items:center}.official-app img{width:100%;max-height:620px;object-fit:contain}.official-app-points{display:grid;gap:12px}.official-app-points>div{padding:22px;border-radius:18px;background:#fff;border:1px solid var(--draft-line)}.official-app-points img{width:42px;height:42px;object-fit:contain}.official-app-points h3{margin:12px 0 7px}.official-app-points p{color:var(--draft-muted);font-size:12px;line-height:1.65}

.official-awards{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.official-award{overflow:hidden;border:1px solid var(--draft-line);border-radius:22px;background:#fff}.official-award img{display:block;width:100%;aspect-ratio:4/5;object-fit:contain;padding:10px;background:#f7f5f6}.official-award>div{padding:18px}.official-award time{font-size:10px;color:var(--draft-red);font-weight:850}.official-award h3{font-size:15px;line-height:1.5;margin:8px 0 0}.official-partners{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.official-partners div{min-height:115px;padding:14px;border:1px solid var(--draft-line);border-radius:16px;background:#fff;display:grid;place-items:center}.official-partners img{display:block;width:100%;height:70px;object-fit:contain}.official-brochure{display:grid;grid-template-columns:.75fr 1.25fr;align-items:center;overflow:hidden;border-radius:30px;background:#161922;color:#fff}.official-brochure img{display:block;width:100%;height:440px;object-fit:contain;padding:25px;background:rgba(255,255,255,.04)}.official-brochure>div{padding:45px}.official-brochure h2{font-size:36px;line-height:1.3}.official-brochure p{color:#b5bac4;line-height:1.75}

.official-magazine-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.official-magazine-card{overflow:hidden;border-radius:23px;border:1px solid var(--draft-line);background:#fff;display:flex;flex-direction:column}.official-magazine-card img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;background:#f3eff0}.official-magazine-card>div{padding:23px;display:flex;flex:1;flex-direction:column}.official-magazine-card .magazine-type{margin-bottom:10px}.official-magazine-card h3{font-size:19px;line-height:1.48;margin:0}.official-magazine-card p{color:var(--draft-muted);font-size:12px;line-height:1.65}.official-magazine-card .magazine-meta{margin-top:auto;padding-top:18px}.official-magazine-card[hidden]{display:none}.official-feature-image{display:block;width:100%;height:100%;object-fit:cover}.official-report-list{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:24px}.official-report-card{display:grid;grid-template-columns:72px 1fr;gap:16px;align-items:center;padding:18px;border:1px solid rgba(255,255,255,.15);border-radius:18px;background:rgba(255,255,255,.04);color:#fff}.official-report-card img{width:72px;height:72px;border-radius:17px;object-fit:cover}.official-report-card span{font-size:9px;color:var(--draft-neon);font-weight:850}.official-report-card h3{font-size:14px;line-height:1.45;margin:6px 0}.official-report-card time{font-size:9px;color:#737c8b}

@media(max-width:1100px){.official-metrics{grid-template-columns:repeat(3,1fr)}.official-stat-grid,.official-awards{grid-template-columns:repeat(2,1fr)}.official-patents{grid-template-columns:repeat(2,1fr)}.official-partners{grid-template-columns:repeat(4,1fr)}}
@media(max-width:980px){.official-inquiry-hero>.container,.official-demo-band,.official-download,.official-app,.official-brochure{grid-template-columns:1fr}.official-inquiry-copy{padding:60px 0 20px}.official-inquiry-visual{min-height:350px}.official-solution-visuals,.official-magazine-grid,.official-report-list{grid-template-columns:repeat(2,1fr)}.official-team{grid-template-columns:repeat(2,1fr)}.official-contact-grid{grid-template-columns:repeat(2,1fr)}.official-image-grid{grid-template-columns:1fr}.official-partners{grid-template-columns:repeat(3,1fr)}}
@media(max-width:780px){.official-inquiry-copy h2{font-size:37px}.official-metrics,.official-solution-visuals,.official-stat-grid,.official-awards,.official-magazine-grid,.official-report-list{grid-template-columns:1fr}.official-demo-band>div,.official-download>div,.official-brochure>div{padding:32px 25px}.official-team,.official-patents{grid-template-columns:1fr 1fr}.official-partners{grid-template-columns:repeat(2,1fr)}.official-image-card img{height:270px}}
@media(max-width:480px){.official-metrics,.official-team,.official-patents,.official-contact-grid,.official-partners{grid-template-columns:1fr}.official-inquiry-visual{min-height:260px}.official-stat-card{min-height:210px}}
.malware-node img{display:block;width:100%;height:100%;padding:8px;border-radius:inherit;object-fit:cover}

/* ==== /assets/css/fx.css?v=20260827b ==== */
/* =====================================================================
   LAVARWAVE FX — 세부 페이지 공용 히어로/인터랙션 프레임워크
   - WebGL 파티클 웨이브 히어로(.fx-hero + [data-fx-wave])
   - 스크롤 리빌([data-reveal]), 틸트([data-tilt]), 마그네틱([data-magnetic])
   - 읽기 진행 바(.fx-progress), 스크롤 큐, 앵커 레일
   ===================================================================== */

:root{
  --fx-dark:#07090f;
  --fx-dark-2:#0b0e15;
  --fx-red:#d20b25;
  --fx-red-bright:#ff2846;
  --fx-neon:#ff304f;
  --fx-line:rgba(255,255,255,.14);
  --fx-text-dim:#aab0bd;
}

/* ---------- Hero shell ---------- */
.fx-hero{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(1100px 520px at 82% 18%,rgba(210,11,37,.20),transparent 60%),
    radial-gradient(700px 420px at 12% 88%,rgba(210,11,37,.10),transparent 60%),
    linear-gradient(165deg,#0a0d15 0%,var(--fx-dark) 55%,#05060a 100%);
  color:#fff;
  padding:172px 0 0;
  min-height:min(92vh,860px);
  display:flex;
  flex-direction:column;
}
.fx-hero-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.fx-webgl-off .fx-hero-canvas{display:none}
.fx-hero-grid{
  position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.033) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.033) 1px,transparent 1px);
  background-size:44px 44px;
  mask-image:radial-gradient(120% 90% at 50% 0%,#000 30%,transparent 78%);
}
.fx-hero-inner{
  position:relative;z-index:3;
  display:grid;grid-template-columns:minmax(0,1.12fr) minmax(320px,.88fr);
  gap:48px;align-items:center;flex:1;
  padding-bottom:34px;
}
.fx-hero-inner.fx-solo{grid-template-columns:minmax(0,1fr)}

/* copy */
.fx-crumb{font-size:11px;color:#8b8f9b;display:flex;gap:7px;align-items:center;margin-bottom:22px;letter-spacing:.02em}
.fx-crumb a{color:#8b8f9b}
.fx-crumb a:hover{color:#fff}
.fx-crumb b{color:#d8dae0}
.fx-eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  color:var(--fx-red-bright);font-size:12px;font-weight:850;letter-spacing:.2em;text-transform:uppercase;
  margin-bottom:20px;
}
.fx-eyebrow:before{content:"";width:38px;height:2px;background:currentColor}
.fx-title{font-size:clamp(38px,4.6vw,64px);line-height:1.12;letter-spacing:-.05em;margin:0 0 22px;font-weight:850}
.fx-title em{font-style:normal;color:var(--fx-red-bright);text-shadow:0 0 34px rgba(255,40,70,.35)}
.fx-title .fx-line{display:block;overflow:hidden}
.fx-title .fx-line>span{display:inline-block;transform:translateY(112%);transition:transform .82s cubic-bezier(.19,1,.22,1)}
.fx-in .fx-title .fx-line>span{transform:none}
.fx-title .fx-line:nth-child(2)>span{transition-delay:.1s}
.fx-title .fx-line:nth-child(3)>span{transition-delay:.2s}
.fx-lead{font-size:17px;line-height:1.8;color:var(--fx-text-dim);max-width:560px;margin:0 0 30px}
.fx-hero-cta{display:flex;gap:12px;flex-wrap:wrap}
.fx-btn-ghost{border:1px solid rgba(255,255,255,.28);color:#fff;background:rgba(255,255,255,.05);backdrop-filter:blur(8px)}
.fx-btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.12)}
.fx-hero .btn-red{box-shadow:0 14px 40px rgba(210,11,37,.4)}

/* staged entrance for copy blocks */
.fx-hero .fx-crumb,.fx-hero .fx-eyebrow,.fx-hero .fx-lead,.fx-hero .fx-hero-cta,.fx-hero .fx-hero-side{
  opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s cubic-bezier(.19,1,.22,1);
}
.fx-in .fx-crumb{opacity:1;transform:none;transition-delay:.05s}
.fx-in .fx-eyebrow{opacity:1;transform:none;transition-delay:.12s}
.fx-in .fx-lead{opacity:1;transform:none;transition-delay:.3s}
.fx-in .fx-hero-cta{opacity:1;transform:none;transition-delay:.42s}
.fx-in .fx-hero-side{opacity:1;transform:none;transition-delay:.5s}

/* side slot */
.fx-hero-side{position:relative;z-index:3;min-width:0}
.fx-side-card{
  border:1px solid var(--fx-line);border-radius:26px;
  background:rgba(10,13,20,.58);backdrop-filter:blur(16px);
  padding:26px;box-shadow:0 30px 80px rgba(0,0,0,.4);
}
.fx-side-card>img{width:100%;border-radius:16px;display:block}
.fx-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.fx-fact{
  border:1px solid var(--fx-line);border-radius:18px;padding:16px 17px;
  background:rgba(255,255,255,.045);backdrop-filter:blur(10px);
  transition:border-color .25s,transform .25s;
}
.fx-fact:hover{border-color:rgba(255,48,79,.55);transform:translateY(-3px)}
.fx-fact span{display:block;font-size:10px;letter-spacing:.12em;color:#8d93a0;font-weight:800;text-transform:uppercase}
.fx-fact b{display:block;font-size:21px;letter-spacing:-.03em;margin-top:6px;color:#fff}
.fx-fact small{display:block;font-size:11px;color:var(--fx-text-dim);margin-top:3px;line-height:1.5}
.fx-fact .fx-accent{color:var(--fx-red-bright)}

/* chips row (inline key info) */
.fx-chips{display:flex;gap:9px;flex-wrap:wrap;margin:0 0 26px}
.fx-chip{
  display:inline-flex;align-items:center;gap:8px;
  border:1px solid var(--fx-line);border-radius:999px;padding:8px 15px;
  background:rgba(255,255,255,.05);backdrop-filter:blur(8px);
  font-size:12px;font-weight:750;color:#e7e9ee;white-space:nowrap;
}
.fx-chip:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--fx-red-bright);box-shadow:0 0 10px rgba(255,40,70,.8)}

/* bottom deck: anchors + scroll cue */
.fx-hero-deck{
  position:relative;z-index:4;
  display:flex;justify-content:space-between;align-items:center;gap:18px;
  padding-top:20px;padding-bottom:22px;
  border-top:1px solid rgba(255,255,255,.10);
  opacity:0;transform:translateY(14px);transition:opacity .8s ease .6s,transform .8s ease .6s;
}
.fx-in .fx-hero-deck{opacity:1;transform:none}
.fx-anchors{display:flex;gap:7px;flex-wrap:wrap}
.fx-anchors a{
  padding:9px 16px;border-radius:999px;font-size:12px;font-weight:750;
  border:1px solid var(--fx-line);color:#c9ccd5;background:rgba(255,255,255,.04);
  transition:.22s;
}
.fx-anchors a:hover,.fx-anchors a.active{background:var(--fx-red);border-color:var(--fx-red);color:#fff}
.fx-scroll-cue{display:flex;align-items:center;gap:12px;color:#7e8493;font-size:10px;letter-spacing:.22em;font-weight:800;flex:0 0 auto}
.fx-scroll-cue:after{
  content:"";width:1px;height:40px;
  background:linear-gradient(var(--fx-red-bright),transparent);
  animation:fxCue 1.8s ease-in-out infinite;
}
@keyframes fxCue{0%{transform:scaleY(.2);transform-origin:top;opacity:0}35%{transform:scaleY(1);opacity:1}100%{transform:scaleY(1);transform-origin:top;opacity:0}}

/* ---------- Reading progress bar ---------- */
.fx-progress{
  position:fixed;left:0;top:0;height:3px;width:100%;z-index:1200;
  transform-origin:0 50%;transform:scaleX(0);
  background:linear-gradient(90deg,var(--fx-red),var(--fx-red-bright));
  box-shadow:0 0 12px rgba(255,40,70,.55);
  pointer-events:none;
}

/* ---------- Scroll reveal ---------- */
[data-reveal]{opacity:0;transform:translateY(30px);transition:opacity .75s ease,transform .75s cubic-bezier(.19,1,.22,1);transition-delay:var(--rv-delay,0s);will-change:opacity,transform}
[data-reveal="left"]{transform:translateX(-36px)}
[data-reveal="right"]{transform:translateX(36px)}
[data-reveal="zoom"]{transform:scale(.94)}
[data-reveal].is-revealed{opacity:1;transform:none}

/* 좁은 화면: 좌우 리빌은 대기 상태에서 문서를 옆으로 늘려 가로 스크롤을 만든다 → 세로 리빌로 대체 */
@media (max-width: 1024px){
  [data-reveal="left"],[data-reveal="right"]{transform:translateY(30px)}
}

/* ---------- Tilt cards ---------- */
[data-tilt]{transform-style:preserve-3d;will-change:transform}
[data-tilt] .fx-tilt-glare{position:absolute;inset:0;border-radius:inherit;background:radial-gradient(420px circle at var(--gx,50%) var(--gy,50%),rgba(255,255,255,.14),transparent 42%);opacity:0;transition:opacity .3s;pointer-events:none}
[data-tilt]:hover .fx-tilt-glare{opacity:1}

/* ---------- Section header numbering accent ---------- */
.fx-sec-tag{display:inline-flex;align-items:center;gap:10px;font:850 11px/1 ui-monospace,monospace;letter-spacing:.18em;color:var(--fx-red);margin-bottom:14px}
.fx-sec-tag:after{content:"";width:46px;height:1px;background:currentColor;opacity:.4}

/* ---------- Marquee (신뢰 지표 등 반복 스트립) ---------- */
.fx-marquee{overflow:hidden;position:relative;border-block:1px solid var(--line,#e8e4e5);padding:14px 0;background:#fff}
.fx-marquee-track{display:flex;gap:44px;width:max-content;animation:fxMarquee 28s linear infinite}
.fx-marquee:hover .fx-marquee-track{animation-play-state:paused}
.fx-marquee span{display:inline-flex;align-items:center;gap:10px;font-size:13px;font-weight:800;letter-spacing:.04em;color:#3c3d42;white-space:nowrap}
.fx-marquee span i{font-style:normal;color:var(--fx-red)}
@keyframes fxMarquee{to{transform:translateX(-50%)}}

/* ---------- Dark hero + light page seam ---------- */
.fx-hero + .official-source{border-top:0}

/* ---------- Responsive ---------- */
@media (max-width:1180px){
  .fx-hero{padding-top:120px;min-height:0}
  .fx-hero-inner{grid-template-columns:1fr;gap:30px;padding-bottom:26px}
  .fx-hero-side{max-width:640px}
}
@media (max-width:780px){
  .fx-hero{padding-top:104px}
  .fx-title{font-size:clamp(32px,9vw,42px)}
  .fx-lead{font-size:15px}
  .fx-facts{grid-template-columns:1fr 1fr}
  .fx-hero-deck{flex-direction:column;align-items:flex-start;gap:12px;padding-bottom:18px}
  .fx-scroll-cue{display:none}
  .fx-anchors{overflow-x:auto;flex-wrap:nowrap;max-width:100%;padding-bottom:4px}
  .fx-anchors a{white-space:nowrap}
  .fx-chips{gap:7px}
  .fx-chip{font-size:11px;padding:7px 12px}
}
@media (max-width:480px){
  .fx-facts{grid-template-columns:1fr}
  .fx-hero-cta{display:grid;width:100%}
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  [data-reveal]{opacity:1!important;transform:none!important}
  .fx-title .fx-line>span{transform:none!important}
  .fx-hero .fx-crumb,.fx-hero .fx-eyebrow,.fx-hero .fx-lead,.fx-hero .fx-hero-cta,.fx-hero .fx-hero-side,.fx-hero-deck{opacity:1!important;transform:none!important}
  .fx-marquee-track{animation:none!important}
}

/* ---------- fx.js 미실행 안전망 ----------
   위의 등장 연출은 opacity:0 을 초기값으로 깔고 fx.js 가 .fx-in / .is-revealed 로 해제하는 구조다.
   그래서 fx.js 가 한 번이라도 실행되지 않으면(스크립트 로드 실패·JS 차단·앞선 스크립트 오류)
   히어로 카피와 [data-reveal] 본문 섹션이 영구히 보이지 않는다 — 11개 페이지가 이 구조를 쓴다.
   각 페이지 <head> 의 인라인 스크립트가 html 에 .fx-js 를 즉시 달고(첫 페인트 전이라 깜빡임 없음),
   4초 안에 fx.js 가 .fx-ready 를 달지 못하면 .fx-js 를 떼어낸다. 그때 아래 블록이 전부 되살린다.
   JS 가 아예 꺼져 있으면 .fx-js 가 처음부터 없으므로 콘텐츠는 그냥 보인 채로 시작한다. */
html:not(.fx-js) [data-reveal],
html:not(.fx-js) .fx-hero .fx-crumb,
html:not(.fx-js) .fx-hero .fx-eyebrow,
html:not(.fx-js) .fx-hero .fx-lead,
html:not(.fx-js) .fx-hero .fx-hero-cta,
html:not(.fx-js) .fx-hero .fx-hero-side,
html:not(.fx-js) .fx-hero-deck{opacity:1!important;transform:none!important}
html:not(.fx-js) .fx-title .fx-line>span{transform:none!important}

/* ==== /assets/css/tech-sims.css?v=20260826g ==== */
/* =====================================================================
   LAVARWAVE TECH SIMS — 8개 솔루션 기술의 실전 도구형 시뮬레이션 공용 스타일
   사용: tech-sims.js 의 LavarTechSims.mount(el, key)
   ===================================================================== */
.tsim{position:relative;display:flex;flex-direction:column;min-height:380px;border:1px solid #262c3a;border-radius:18px;overflow:hidden;background:#0a0d14;color:#dfe3ec;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.tsim:after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(255,255,255,.016) 0 1px,transparent 1px 3px)}
.tsim-bar{display:flex;align-items:center;gap:8px;padding:11px 14px;background:#11151f;border-bottom:1px solid #232936;font-size:11px;font-weight:700;letter-spacing:.06em;color:#aab1c0}
.tsim-bar i{width:9px;height:9px;border-radius:50%;background:#ff5f56;flex:none}
.tsim-bar i+i{background:#ffbd2e}
.tsim-bar i+i+i{background:#27c93f}
.tsim-bar b{margin-left:6px;color:#e8ebf2;font-weight:800}
.tsim-live{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-size:9px;letter-spacing:.14em;color:#ff5b72;font-weight:850}
.tsim-live:before{content:"";width:6px;height:6px;border-radius:50%;background:#ff2846;box-shadow:0 0 8px rgba(255,40,70,.9);animation:tsimBlink 1.1s ease-in-out infinite}
@keyframes tsimBlink{50%{opacity:.25}}
.tsim-body{position:relative;flex:1;padding:14px;display:flex;flex-direction:column;gap:10px;min-height:0}
.tsim-foot{padding:8px 14px;border-top:1px solid #1d2330;font-size:9.5px;letter-spacing:.08em;color:#67707f}
.tsim-metrics{display:flex;gap:8px;flex-wrap:wrap}
.tsim-metric{flex:1 1 110px;padding:9px 12px;border:1px solid #232936;border-radius:11px;background:#0e121b}
.tsim-metric span{display:block;font-size:9px;letter-spacing:.1em;color:#7b8494}
.tsim-metric b{display:block;margin-top:3px;font-size:17px;color:#fff;font-variant-numeric:tabular-nums}
.tsim-metric b.red{color:#ff5b72}
.tsim-metric b.green{color:#3ddc97}

/* 콘솔/피드 공용 */
.tsim-feed{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;gap:4px;font-size:11.5px;line-height:1.5}
.tsim-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#9aa3b4;animation:tsimIn .28s ease both}
.tsim-line .t{color:#5d6675;margin-right:8px}
.tsim-line.ok{color:#8fd6b2}
.tsim-line.warn{color:#f2c34c}
.tsim-line.threat{color:#ff7285;font-weight:700}
.tsim-line.info{color:#8fb4ff}
@keyframes tsimIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* 테이블(패킷) */
.tsim-table{flex:1;min-height:0;display:flex;flex-direction:column;font-size:10.5px}
.tsim-thead,.tsim-row{display:grid;grid-template-columns:64px 46px 58px 1fr 62px 86px;gap:8px;padding:6px 8px}
.tsim-thead{color:#6c7686;letter-spacing:.08em;font-size:9px;border-bottom:1px solid #232936}
.tsim-rows{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end}
.tsim-row{border-bottom:1px dashed #1a2030;color:#aab3c4;animation:tsimIn .25s ease both;font-variant-numeric:tabular-nums}
.tsim-row.threat{color:#ff92a0;background:rgba(255,40,70,.08)}
.tsim-row .flag{font-weight:800;letter-spacing:.04em}
.tsim-row.threat .flag{color:#ff415e}

/* 연락처(인젝션) */
.tsim-contacts{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-start;gap:4px}
.tsim-contact{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:8px;border:1px solid #232936;background:#0e121b;font-size:11px;animation:tsimIn .3s ease both}
.tsim-contact .badge{flex:none;font-size:8.5px;font-weight:850;letter-spacing:.06em;padding:2px 7px;border-radius:99px}
.tsim-contact.real{border-color:rgba(255,40,70,.5)}
.tsim-contact.real .badge{background:rgba(255,40,70,.16);color:#ff7285}
.tsim-contact.fake .badge{background:rgba(80,140,255,.14);color:#8fb4ff}
.tsim-contact .num{margin-left:auto;color:#6c7686;font-variant-numeric:tabular-nums}
.tsim-gauge{height:10px;border-radius:99px;background:#151b28;border:1px solid #232936;overflow:hidden}
.tsim-gauge i{display:block;height:100%;background:linear-gradient(90deg,#8c071b,#ff2846);transition:width .5s ease}
.tsim-gauge-label{display:flex;justify-content:space-between;font-size:10px;color:#8b94a5}
.tsim-gauge-label b{color:#ff7285}

/* 스택(더미데이터) */
.tsim-stackwrap{flex:1;display:grid;grid-template-columns:1fr 150px;gap:12px;min-height:0}
.tsim-stack{display:flex;flex-direction:column;justify-content:flex-end;gap:5px;padding:10px;border:1px dashed #2a3140;border-radius:12px;overflow:hidden}
.tsim-block{display:flex;justify-content:space-between;gap:8px;padding:7px 10px;border-radius:8px;font-size:10.5px;font-weight:700;animation:tsimIn .3s ease both}
.tsim-block.dummy{background:rgba(80,140,255,.1);border:1px solid rgba(80,140,255,.35);color:#9dbcff}
.tsim-block.real{background:rgba(255,40,70,.09);border:1px solid rgba(255,40,70,.45);color:#ffaab5}
.tsim-block.out{animation:tsimOut .4s ease-in both}
@keyframes tsimOut{to{opacity:0;transform:translateY(-30px) scale(.94)}}
.tsim-claw{font-size:10px;color:#8b94a5;text-align:center;padding:6px;border:1px solid #232936;border-radius:10px;background:#0e121b}
.tsim-claw b{display:block;color:#ff7285;font-size:13px;margin-top:4px}

/* 계정 보드(통합방어) */
.tsim-accounts{flex:1;display:flex;flex-direction:column;gap:6px;justify-content:flex-start;overflow:hidden}
.tsim-account{display:flex;align-items:center;gap:10px;padding:8px 11px;border:1px solid #232936;border-radius:10px;background:#0e121b;font-size:11px;animation:tsimIn .3s ease both}
.tsim-account .st{margin-left:auto;flex:none;font-size:9px;font-weight:850;letter-spacing:.06em;padding:3px 9px;border-radius:99px;transition:.3s}
.tsim-account .st.s0{background:rgba(255,189,46,.13);color:#ffd36b}
.tsim-account .st.s1{background:rgba(80,140,255,.13);color:#8fb4ff}
.tsim-account .st.s2{background:rgba(61,220,151,.13);color:#3ddc97}

/* 유사도 그리드(DNA) */
.tsim-dnagrid{flex:1;display:grid;grid-template-columns:repeat(3,1fr);gap:9px;min-height:0}
.tsim-cell{position:relative;border-radius:10px;overflow:hidden;border:1px solid #232936;min-height:74px}
.tsim-cell .ph{position:absolute;inset:0}
.tsim-cell .scan{position:absolute;left:0;right:0;top:-30%;height:26%;background:linear-gradient(to bottom,transparent,rgba(255,40,70,.55),rgba(255,255,255,.8));opacity:0}
.tsim-cell.scanning .scan{opacity:1;animation:tsimScan .7s linear both}
@keyframes tsimScan{from{top:-30%}to{top:110%}}
.tsim-cell .sim{position:absolute;left:6px;bottom:5px;font-size:11px;font-weight:850;color:#e8ebf2;text-shadow:0 1px 4px rgba(0,0,0,.8);font-variant-numeric:tabular-nums}
.tsim-cell .match{position:absolute;top:5px;right:5px;font-size:8.5px;font-weight:850;letter-spacing:.08em;padding:2px 7px;border-radius:99px;background:#ff2846;color:#fff;display:none}
.tsim-cell.matched{border-color:#ff415e;box-shadow:0 0 0 2px rgba(255,40,70,.28)}
.tsim-cell.matched .match{display:block}
.tsim-cell.matched .sim{color:#ff92a0}

/* 파일 트리(역분석) */
.tsim-split{flex:1;display:grid;grid-template-columns:168px 1fr;gap:12px;min-height:0}
.tsim-tree{border:1px solid #232936;border-radius:11px;background:#0e121b;padding:10px;font-size:10.5px;color:#8b94a5;overflow:hidden}
.tsim-tree div{padding:4px 6px;border-radius:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tsim-tree div.on{background:rgba(255,40,70,.12);color:#ffaab5}
.tsim-progress{height:7px;border-radius:99px;background:#151b28;overflow:hidden;border:1px solid #232936}
.tsim-progress i{display:block;height:100%;background:linear-gradient(90deg,#8c071b,#ff2846);transition:width .4s ease}

/* 키워드 */
.tsim-chips{display:flex;gap:6px;flex-wrap:wrap}
.tsim-chip{font-size:9.5px;font-weight:800;letter-spacing:.05em;padding:4px 10px;border-radius:99px;border:1px solid #2a3140;color:#8b94a5;background:#0e121b;transition:.25s}
.tsim-chip.hot{border-color:rgba(255,40,70,.6);color:#ff7285;background:rgba(255,40,70,.08)}
.tsim-line mark{background:rgba(255,40,70,.25);color:#ffaab5;border-radius:3px;padding:0 3px;font-weight:800}

@media (max-width:780px){
  .tsim{min-height:340px}
  .tsim-split{grid-template-columns:1fr}
  .tsim-tree{display:flex;gap:4px;overflow-x:auto}
  .tsim-tree div{flex:none}
  .tsim-thead,.tsim-row{grid-template-columns:52px 40px 1fr 56px 70px}
  .tsim-thead span:nth-child(3),.tsim-row span:nth-child(3){display:none}
  .tsim-stackwrap{grid-template-columns:1fr}
  .tsim-claw{order:-1}
}
@media (prefers-reduced-motion:reduce){
  .tsim-line,.tsim-row,.tsim-contact,.tsim-block,.tsim-account{animation:none!important}
  .tsim-live:before{animation:none!important}
  .tsim-cell.scanning .scan{animation:none!important;opacity:0}
}

/* ==== /assets/css/solution-top.css?v=20260901f ==== */
/* /service/solution 상단 HC Benchmark 전용 (Response Atlas 블록은 sol-theater로 대체되어 제거) */
.hm-bm-wrap {
  --hm-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
}

/* HC Benchmark */
.hm-bm-wrap { background: #fff; }
#benchmark .section-title .section-kicker { color: var(--red); }
.hm-bench-heading { grid-template-columns: minmax(500px, 1.05fr) minmax(0, .95fr); gap: 48px; }
.hm-bench-heading h2 { font-size: clamp(40px, 3.8vw, 54px); }
.hm-bench-board { overflow: hidden; border: 1px solid #d7dee8; border-radius: 28px; background: #fff; color: #111827; box-shadow: 0 34px 88px rgba(29, 43, 61, .14); }
.hm-bench-topbar { min-height: 57px; padding: 0 20px; display: flex; align-items: center; gap: 18px; background: #0b1421; color: #fff; }
.hm-bench-topbar > div { display: flex; align-items: center; gap: 6px; }
.hm-bench-topbar > div i { width: 8px; height: 8px; border-radius: 50%; background: #ff625d; }
.hm-bench-topbar > div i:nth-child(2) { background: #ffc34e; }
.hm-bench-topbar > div i:nth-child(3) { background: #43d495; }
.hm-bench-topbar > div b { margin-left: 9px; color: #c4d0dc; font: 900 8px/1 var(--hm-mono); letter-spacing: .1em; }
.hm-bench-summary { padding: 31px 30px 27px; border-bottom: 1px solid #e1e7ee; background: radial-gradient(circle at 82% 12%, rgba(58, 132, 214, .12), transparent 34%), linear-gradient(145deg, #fff, #f7f9fc); }
.hm-bench-summary > div > span { color: #2f76bd; font: 900 8px/1 var(--hm-mono); letter-spacing: .14em; }
.hm-bench-summary h3 { margin: 11px 0 0; font-size: clamp(29px, 3vw, 45px); line-height: 1.08; letter-spacing: -.055em; }
.hm-bench-table { padding: 0 18px 18px; background: #f6f8fb; }
.hm-bench-row { display: grid; grid-template-columns: 180px minmax(300px, 1fr) 230px; align-items: stretch; }
.hm-bench-row--head { min-height: 44px; align-items: center; color: #8491a2; font: 900 8px/1 var(--hm-mono); letter-spacing: .11em; }
.hm-bench-row--head > span { padding: 0 16px; }
.hm-bench-row:not(.hm-bench-row--head) { --bench: #3d89d5; min-height: 146px; margin-bottom: 10px; overflow: hidden; border: 1px solid #d9e1ea; border-left: 4px solid var(--bench); border-radius: 16px; background: #fff; box-shadow: 0 9px 24px rgba(37, 52, 72, .045); }
.hm-bench-row.is-hc2 { --bench: #796de8; }
.hm-bench-row.is-hc3 { --bench: #d51e3b; }
.hm-bench-row:not(.hm-bench-row--head) > div { min-width: 0; padding: 20px 17px; display: flex; flex-direction: column; justify-content: center; border-right: 1px solid #e4e9ef; }
.hm-bench-row:not(.hm-bench-row--head) > div:last-child { border-right: 0; }
.hm-bench-row > div:first-child > span { color: var(--bench); font: 950 32px/1 var(--hm-mono); }
.hm-bench-row > div:first-child > b { margin-top: 11px; color: #2d3b4e; font: 900 8px/1 var(--hm-mono); letter-spacing: .09em; }
.hm-bench-row > div:first-child > small { margin-top: 6px; color: #99a4b2; font: 800 8px/1 var(--hm-mono); letter-spacing: .08em; }
.hm-bench-row > div:nth-child(2) > b { font-size: 18px; }
.hm-bench-row > div:nth-child(2) > small { margin-top: 7px; color: #718094; font-size: 10px; }
.hm-bench-tags { margin-top: 14px; display: flex; flex-wrap: wrap; gap: 5px; }
.hm-bench-tags i { padding: 5px 7px; border: 1px solid #dce4ed; border-radius: 99px; background: #f8fafc; color: #7b899b; font: 800 8px/1 var(--hm-mono); font-style: normal; }
.hm-bench-row > div:nth-child(3) { background: linear-gradient(145deg, color-mix(in srgb, var(--bench) 7%, #fff), #fff 70%); }
.hm-bench-row strong { color: #111827; font: 950 clamp(37px, 3.8vw, 55px)/1 var(--hm-mono); letter-spacing: -.07em; }
.hm-bench-row strong em { margin-left: 3px; color: var(--bench); font-size: .38em; font-style: normal; letter-spacing: -.02em; }
.hm-bench-row > div:nth-child(3) > small { margin-top: 10px; color: #8794a5; font: 800 8px/1 var(--hm-mono); letter-spacing: .09em; }
.hm-bench-footer { min-height: 68px; padding: 12px 18px; display: grid; justify-items: end; border-top: 1px solid #dfe6ee; background: #fff; }
.hm-bench-footer a { min-width: 180px; padding: 12px 15px; border: 1px solid #d4dde7; border-radius: 10px; color: #27374b; font-size: 9px; font-weight: 850; text-align: center; text-decoration: none; }
.hm-bench-footer a i { margin-left: 8px; color: #2776bd; font-style: normal; }

@media (max-width: 1100px) {
  .hm-bench-heading { grid-template-columns: 1fr; gap: 20px; }
  .hm-bench-row { grid-template-columns: 150px minmax(260px, 1fr) 190px; }
}
@media (max-width: 860px) {
  .hm-bench-row { grid-template-columns: 135px minmax(220px, 1fr) 170px; }
}
@media (max-width: 760px) {
  .hm-bench-heading h2 { font-size: 36px; }
  .hm-bench-topbar { padding: 12px 14px; }
  .hm-bench-summary { padding: 25px 18px; }
  .hm-bench-summary h3 { font-size: 31px; }
  .hm-bench-table { padding: 0 10px 10px; }
  .hm-bench-row--head { display: none; }
  .hm-bench-row:not(.hm-bench-row--head) { min-height: 0; margin-top: 10px; grid-template-columns: .78fr 1.22fr; }
  .hm-bench-row:not(.hm-bench-row--head) > div { min-height: 112px; padding: 17px 15px; border-right: 1px solid #e4e9ef; border-bottom: 1px solid #e4e9ef; }
  .hm-bench-row:not(.hm-bench-row--head) > div:nth-child(2) { border-right: 0; }
  .hm-bench-row:not(.hm-bench-row--head) > div:nth-child(3) { grid-column: 1/-1; min-height: 104px; border-right: 0; border-bottom: 0; }
  .hm-bench-row > div:first-child > span { font-size: 28px; }
  .hm-bench-row > div:nth-child(2) > b { font-size: 15px; }
  .hm-bench-row strong { font-size: 38px; }
  .hm-bench-footer { justify-items: stretch; }
  .hm-bench-footer a { width: 100%; }
}
@media (max-width: 430px) {
  .hm-bench-row:not(.hm-bench-row--head) { grid-template-columns: 1fr; }
  .hm-bench-row:not(.hm-bench-row--head) > div { min-height: 0; border-right: 0; }
  .hm-bench-row:not(.hm-bench-row--head) > div:nth-child(3) { grid-column: auto; min-height: 100px; }
}

/* ==== /assets/css/svc-process.css?v=20260902j ==== */
/* ============================================================
   /service — 유포 대응 서비스 프로세스 STEP 01·02·03 대형 다크 배너
   (2026-08-28) 목업 m1/m2/m3 이식 · 접두사 spb/sp1/sp2/sp3
   ============================================================ */

.svc-steps{display:grid;gap:22px}

/* ── 공통 배너 셸 ─────────────────────────────────────────── */
.spb{
  --sp-red:#ff3857; --sp-blue:#7f92ac; --sp-ok:#39d98a;
  --sp-txt:#eef2f7; --sp-dim:#9aa7b8; --sp-line:#232a36; --sp-panel:#171b24;
  --sp-ckbox-bg:#171d28; --sp-ckbox-line:#3a4454;
  --sp-ck-on-bg:rgba(57,217,138,.13); --sp-ck-on-line:#39d98a; --sp-ck-mark:var(--sp-ok);
  --sp-mono:ui-monospace,'Cascadia Mono','Consolas','SF Mono',monospace;
  position:relative;border-radius:28px;overflow:hidden;
  border:1px solid #232a36;
  background:linear-gradient(160deg,#0d1015 0%,#12161f 55%,#171b24 100%);
  color:var(--sp-txt);
  padding:30px 32px 32px;
  box-shadow:0 26px 60px rgba(24,10,16,.16);
  -webkit-font-smoothing:antialiased;
}
.spb h3,.spb h4{margin:0;color:#fff}
.spb-head{
  position:relative;z-index:5;display:flex;align-items:flex-end;
  justify-content:space-between;gap:24px;margin-bottom:20px;
}
.spb-chip{
  display:inline-flex;align-items:center;gap:7px;
  font-size:11.5px;font-weight:800;letter-spacing:.14em;
  color:#ff6b82;background:rgba(255,56,87,.12);
  border:1px solid rgba(255,56,87,.35);
  border-radius:999px;padding:5px 13px;margin-bottom:12px;
}
.spb-chip::before{
  content:'';width:6px;height:6px;border-radius:50%;
  background:var(--sp-red);box-shadow:0 0 8px rgba(255,56,87,.8);
}
.spb-head h3{font-size:30px;font-weight:800;letter-spacing:-.03em;line-height:1.15}
.spb-desc{margin:10px 0 0;font-size:14.5px;color:var(--sp-dim);letter-spacing:-.2px;line-height:1.65;max-width:62ch}
.spb-meta{
  text-align:right;font-size:10.5px;font-weight:700;letter-spacing:.22em;
  color:#5b6675;white-space:nowrap;padding-bottom:6px;
}
.spb-meta b{display:block;margin-top:6px;font-size:24px;font-weight:800;letter-spacing:.02em;color:var(--sp-txt)}
.spb-meta b span{color:#5b6675;font-size:14px;font-weight:600}


/* ════════════════════════════════════════════════════════════
   STEP 01 — 피해 상담 및 진단 (클러스터링 WebGL)
   ════════════════════════════════════════════════════════════ */
.sp1-grid{position:relative;z-index:5;display:grid;grid-template-columns:38% 1fr;gap:18px;height:512px}

/* 좌측 상세 스텝 카드 */
.sp1-cards{display:flex;flex-direction:column;gap:12px;min-width:0}
.sp1-card{
  background:var(--sp-panel);border:1px solid var(--sp-line);border-radius:14px;
  padding:14px 16px;display:flex;flex-direction:column;min-height:0;
}
.sp1-c1{flex:1.3}.sp1-c2{flex:.95}.sp1-c3{flex:1.05}
.sp1-shead{display:flex;align-items:baseline;gap:10px;margin-bottom:4px}
.sp1-num{
  font-size:11px;font-weight:800;letter-spacing:.1em;color:#ff6b82;
  background:rgba(255,56,87,.10);border:1px solid rgba(255,56,87,.25);
  border-radius:6px;padding:2px 7px;font-family:var(--sp-mono);
}
.sp1-shead h4{font-size:16px;font-weight:700;letter-spacing:-.3px}
.sp1-cap{margin:2px 0 10px;font-size:12px;color:var(--sp-dim);letter-spacing:-.2px;line-height:1.6}
.sp1-cap-b{margin:10px 0 0}

/* (1) 담당자 배정 */
.sp1-mgrs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;flex:1}
.sp1-mgr{
  background:#12161f;border:1px solid var(--sp-line);border-radius:11px;
  padding:11px 6px 9px;text-align:center;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease;
}
.sp1-mgr:hover{transform:translateY(-4px);border-color:rgba(255,56,87,.4);box-shadow:0 12px 26px rgba(0,0,0,.4)}
.sp1-avatar{
  position:relative;width:48px;height:48px;border-radius:50%;overflow:hidden;
  border:1.5px dashed #40506a;background:#1c2230;
  display:flex;align-items:center;justify-content:center;
  font-size:17px;font-weight:700;color:#7f92ac;margin-bottom:3px;flex:none;
}
.sp1-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:50%}
.sp1-mgr.hasimg .sp1-avatar{border-style:solid;border-color:#2c3648}
.sp1-mname{font-size:13.5px;font-weight:700;letter-spacing:-.3px;color:var(--sp-txt)}
.sp1-mrole{display:block;font-style:normal;font-size:11px;color:var(--sp-dim)}
.sp1-mnote{font-size:9.5px;color:#5b6675;letter-spacing:-.2px;margin-top:2px}
.sp1-mgr.hasimg .sp1-mnote{display:none}

/* (2) 피해 진단 태그 */
.sp1-pills{display:flex;flex-wrap:wrap;gap:8px}
.sp1-pill{
  display:inline-flex;align-items:center;gap:7px;
  font-size:12.5px;font-weight:600;letter-spacing:-.2px;
  border-radius:999px;padding:7px 14px;
}
.sp1-pill i{width:7px;height:7px;border-radius:50%;flex:none}
.sp1-pill-red{color:#ff8fa0;background:rgba(255,56,87,.08);border:1px solid rgba(255,56,87,.38)}
.sp1-pill-red i{background:var(--sp-red);box-shadow:0 0 8px rgba(255,56,87,.7)}
.sp1-pill-blue{color:#aebfd6;background:rgba(127,146,172,.10);border:1px solid rgba(127,146,172,.45)}
.sp1-pill-blue i{background:var(--sp-blue);box-shadow:0 0 8px rgba(127,146,172,.7)}

/* (3) 1차 사안 분석 — 체크리스트 루프 */
.sp1-cklist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;flex:1;justify-content:center}
.sp1-ck{
  display:flex;align-items:center;gap:11px;
  font-size:13.5px;letter-spacing:-.3px;color:#c7d1de;
  background:#12161f;border:1px solid var(--sp-line);border-radius:10px;
  padding:11px 13px;
}
.sp1-box{
  flex:none;width:18px;height:18px;border-radius:5px;
  border:1.5px solid var(--sp-ckbox-line);background:var(--sp-ckbox-bg);
  display:flex;align-items:center;justify-content:center;
}
.sp1-box svg{width:11px;height:9px;opacity:0}
.sp1-box svg path{fill:none;stroke:var(--sp-ck-mark);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.sp1-ck1 .sp1-box{animation:spCkBox1 7s infinite}
.sp1-ck1 .sp1-box svg{animation:spCkMk1 7s infinite}
.sp1-ck2 .sp1-box{animation:spCkBox2 7s infinite}
.sp1-ck2 .sp1-box svg{animation:spCkMk2 7s infinite}
@keyframes spCkBox1{
  0%,16%{border-color:var(--sp-ckbox-line);background:var(--sp-ckbox-bg)}
  21%,90%{border-color:var(--sp-ck-on-line);background:var(--sp-ck-on-bg)}
  96%,100%{border-color:var(--sp-ckbox-line);background:var(--sp-ckbox-bg)}
}
@keyframes spCkMk1{
  0%,16%{opacity:0;transform:scale(.4)}
  21%,90%{opacity:1;transform:scale(1)}
  96%,100%{opacity:0;transform:scale(.4)}
}
@keyframes spCkBox2{
  0%,40%{border-color:var(--sp-ckbox-line);background:var(--sp-ckbox-bg)}
  45%,90%{border-color:var(--sp-ck-on-line);background:var(--sp-ck-on-bg)}
  96%,100%{border-color:var(--sp-ckbox-line);background:var(--sp-ckbox-bg)}
}
@keyframes spCkMk2{
  0%,40%{opacity:0;transform:scale(.4)}
  45%,90%{opacity:1;transform:scale(1)}
  96%,100%{opacity:0;transform:scale(.4)}
}

/* 우측 WebGL 스테이지 */
.sp1-stage{
  position:relative;min-width:0;
  border:1px solid var(--sp-line);border-radius:16px;
  background:#0e1116;overflow:hidden;
}
.sp1-stage canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.sp1-stage::before{
  content:'';position:absolute;inset:0;z-index:2;pointer-events:none;
  background-image:
    linear-gradient(rgba(127,146,172,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(127,146,172,.05) 1px,transparent 1px);
  background-size:46px 46px;
}
.sp1-stage::after{
  content:'';position:absolute;inset:0;z-index:3;pointer-events:none;
  background:radial-gradient(120% 95% at 50% 42%,transparent 52%,rgba(13,16,21,.6) 100%);
}
.sp1-fallback{
  position:absolute;inset:0;z-index:1;opacity:0;pointer-events:none;
  background:
    radial-gradient(230px 190px at 30% 44%,rgba(255,56,87,.22),transparent 70%),
    radial-gradient(250px 210px at 68% 60%,rgba(127,146,172,.24),transparent 70%),
    #0e1116;
  transition:opacity .3s;
}
.sp1-stage.no-gl canvas{display:none}
.sp1-stage.no-gl .sp1-fallback{opacity:1}
.sp1-stage.no-gl .sp1-clab{opacity:1 !important}
.sp1-stage.no-gl .sp1-glow{opacity:.55 !important}
.sp1-stage.no-gl .sp1-handle{transform:none !important;opacity:1 !important}

.sp1-glow{
  position:absolute;z-index:1;pointer-events:none;opacity:0;
  width:360px;height:300px;transform:translate(-50%,-50%);
}
.sp1-glowA{left:15%;top:42%;background:radial-gradient(closest-side,rgba(255,56,87,.15),transparent 72%)}
.sp1-glowB{left:55%;top:30%;background:radial-gradient(closest-side,rgba(127,146,172,.16),transparent 72%)}

.sp1-clab{
  position:absolute;z-index:4;pointer-events:none;opacity:0;
  transform:translate(-50%,-50%);text-align:center;
  background:rgba(13,16,21,.72);border-radius:10px;
  padding:7px 13px 8px;backdrop-filter:blur(3px);
}
.sp1-clab .t{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;letter-spacing:-.2px}
.sp1-clab .t i{width:7px;height:7px;border-radius:50%;flex:none}
.sp1-clab .s{margin-top:3px;font-size:10px;color:#8b98aa;letter-spacing:-.2px}
.sp1-labA{left:15%;top:27%;border:1px solid rgba(255,56,87,.4)}
.sp1-labA .t{color:#ff9aab}.sp1-labA .t i{background:var(--sp-red);box-shadow:0 0 8px rgba(255,56,87,.8)}
.sp1-labB{left:55%;top:14%;border:1px solid rgba(127,146,172,.5)}
.sp1-labB .t{color:#b9c9de}.sp1-labB .t i{background:var(--sp-blue);box-shadow:0 0 8px rgba(127,146,172,.8)}

.sp1-notice{
  position:absolute;z-index:5;top:12px;right:12px;
  font-size:10px;letter-spacing:.02em;color:#8b98aa;
  background:rgba(13,16,21,.72);border:1px solid #2a3342;
  border-radius:999px;padding:4px 10px;pointer-events:none;
}
.sp1-engine{
  position:absolute;z-index:5;left:14px;bottom:12px;
  display:flex;align-items:center;gap:8px;pointer-events:none;
  font-size:10.5px;font-weight:700;letter-spacing:.14em;color:var(--sp-blue);
}
.sp1-engine em{font-style:normal;font-weight:500;letter-spacing:0;color:#5b6675;font-size:10px}
.sp1-edot{
  width:6px;height:6px;border-radius:50%;background:var(--sp-ok);
  box-shadow:0 0 7px rgba(57,217,138,.8);
}

/* ════════════════════════════════════════════════════════════
   STEP 02 — 솔루션 진행 (프로그램 창 2종 + 점-선 WebGL 배경)
   ════════════════════════════════════════════════════════════ */
.sp2-bgglow{
  position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(620px 340px at 18% 22%,rgba(127,146,172,.075),transparent 70%),
    radial-gradient(720px 400px at 82% 78%,rgba(255,56,87,.05),transparent 70%),
    radial-gradient(900px 500px at 50% 110%,rgba(127,146,172,.06),transparent 72%);
}
.sp2-bg{position:absolute;inset:0;width:100%;height:100%;z-index:1;opacity:.6;pointer-events:none}
.spb-2.no-gl .sp2-bg{display:none}
.sp2-shade{
  position:absolute;inset:0;z-index:2;pointer-events:none;
  background:radial-gradient(120% 90% at 50% 40%,transparent 55%,rgba(9,11,16,.55) 100%);
}

/* 스테이지 / 창 공통 */
.sp2-stage{position:relative;z-index:5;height:548px;margin-top:2px}
.sp2-win{
  position:absolute;display:flex;flex-direction:column;background:var(--sp-panel);
  border:1px solid var(--sp-line);border-radius:12px;overflow:hidden;
  box-shadow:0 34px 80px rgba(0,0,0,.6),0 6px 20px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.045);
}
.sp2-winA{left:0;top:8px;width:49%;z-index:6;animation:spFloatA 9s ease-in-out infinite}
.sp2-winB{right:0;top:42px;width:58%;z-index:7;animation:spFloatB 11s ease-in-out infinite}
@keyframes spFloatA{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes spFloatB{0%,100%{transform:translateY(-4px)}50%{transform:translateY(3px)}}

.sp2-tbar{
  display:flex;align-items:center;gap:10px;height:32px;padding:0 12px;flex:none;
  background:linear-gradient(#1d2331,#181d29);border-bottom:1px solid var(--sp-line);
}
.sp2-lights{display:flex;gap:6px}
.sp2-lights i{width:10px;height:10px;border-radius:50%}
.sp2-lights .r{background:#c94b55}.sp2-lights .y{background:#a8873f}.sp2-lights .g{background:#3f8a5f}
.sp2-ttl{font-size:12px;font-weight:700;color:#c7d0dd;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sp2-ttl em{font-style:normal;color:var(--sp-red)}
.sp2-tbtns{margin-left:auto;display:flex;gap:10px;color:#5c6675;font-size:11px;font-family:var(--sp-mono)}
.sp2-mbar{
  display:flex;gap:16px;height:22px;align-items:center;padding:0 14px;flex:none;
  font-size:11px;color:#7c8798;border-bottom:1px solid var(--sp-line);background:#161a23;
}
.sp2-sbar{
  margin-top:auto;display:flex;align-items:center;gap:14px;height:25px;padding:0 12px;flex:none;
  font-size:10.5px;color:#7c8798;border-top:1px solid var(--sp-line);background:#141821;font-family:var(--sp-mono);
}
.sp2-sbar b{color:#c7d0dd;font-weight:600}
.sp2-sbar .rd{color:var(--sp-red)}
.sp2-badge{
  margin-left:auto;font-family:inherit;
  font-size:9.5px;color:#8a93a3;border:1px dashed #3a4356;border-radius:999px;padding:1px 8px;white-space:nowrap;
}

/* 창 A : LAVAR VM */
.sp2-abody{display:flex;height:404px;min-height:0}
.sp2-pwrap{
  flex:none;width:222px;display:flex;align-items:center;justify-content:center;
  border-right:1px solid var(--sp-line);
  background:radial-gradient(220px 200px at 50% 42%,rgba(127,146,172,.07),transparent 75%),#12161f;
}
.sp2-phone{
  width:188px;height:368px;border-radius:22px;background:#0a0d13;border:1px solid #2a3242;
  box-shadow:0 14px 34px rgba(0,0,0,.55),inset 0 0 0 3px #060810;position:relative;overflow:hidden;
  display:flex;flex-direction:column;
}
.sp2-pnotch{flex:none;height:16px;display:flex;justify-content:center;align-items:flex-end}
.sp2-pnotch::after{content:'';width:56px;height:9px;background:#060810;border-radius:0 0 8px 8px}
.sp2-pstatus{flex:none;display:flex;justify-content:space-between;padding:2px 12px 4px;font-size:9.5px;color:#6b7686;font-family:var(--sp-mono)}
.sp2-pscreen{flex:1;position:relative;min-height:0}
.sp2-pscreen section{
  position:absolute;inset:0;display:none;flex-direction:column;align-items:center;
  justify-content:center;gap:8px;padding:14px;text-align:center;
}
.sp2-pscreen[data-phase="boot"] .s-boot,
.sp2-pscreen[data-phase="install"] .s-install,
.sp2-pscreen[data-phase="perm"] .s-perm,
.sp2-pscreen[data-phase="monitor"] .s-mon,
.sp2-pscreen[data-phase="blocked"] .s-block{display:flex}
.sp2-pscreen .s-boot b{font-size:15px;letter-spacing:.18em;color:#c7d0dd}
.sp2-pscreen .s-boot b em{font-style:normal;color:var(--sp-red)}
.sp2-pscreen .s-boot span{font-size:10px;color:#6b7686}
.sp2-spin{width:26px;height:26px;border-radius:50%;border:2px solid #232a36;border-top-color:var(--sp-red);animation:spRot 1s linear infinite;margin-bottom:4px}
@keyframes spRot{to{transform:rotate(360deg)}}
.sp2-appic{
  width:46px;height:46px;border-radius:13px;background:linear-gradient(150deg,#33405a,#232c40);
  border:1px solid #3a4763;display:flex;align-items:center;justify-content:center;
}
.sp2-appic::after{
  content:'';width:20px;height:15px;border-radius:7px;background:#dfe6f2;
  clip-path:polygon(0 0,100% 0,100% 74%,38% 74%,18% 100%,22% 74%,0 74%);
}
.sp2-pscreen .s-install b{font-size:11.5px;color:#dfe6f2}
.sp2-pscreen .s-install .fn{font-size:9.5px;color:#6b7686;font-family:var(--sp-mono)}
.sp2-ibar{width:78%;height:5px;border-radius:3px;background:#1c222e;overflow:hidden;margin-top:6px}
.sp2-ibar i{display:block;height:100%;width:0%;border-radius:3px;background:linear-gradient(90deg,#7f92ac,#ff3857)}
.sp2-pct{font-size:9.5px;color:#8a93a3;font-family:var(--sp-mono)}
.sp2-pct em{font-style:normal;color:#dfe6f2}
.sp2-pscreen .s-perm{justify-content:flex-start;padding-top:22px}
.sp2-pmt{font-size:11px;color:#dfe6f2;margin-bottom:6px}
.sp2-pm{
  width:100%;display:flex;align-items:center;gap:7px;font-size:10px;color:#5c6675;
  border:1px solid #1c222e;border-radius:9px;padding:7px 9px;background:#0e1219;
  opacity:.35;transform:translateY(2px);transition:.3s;
}
.sp2-pm.on{opacity:1;transform:none;border-color:rgba(255,56,87,.4);color:#dfe6f2}
.sp2-pm .ic{width:7px;height:7px;border-radius:50%;background:#3a4356;flex:none}
.sp2-pm.on .ic{background:var(--sp-red);box-shadow:0 0 7px rgba(255,56,87,.7)}
.sp2-pm em{
  font-style:normal;margin-left:auto;font-size:9.5px;font-weight:700;color:var(--sp-red);
  border:1px solid rgba(255,56,87,.45);border-radius:5px;padding:1px 5px;visibility:hidden;
}
.sp2-pm.on em{visibility:visible}
.sp2-pm .en{font-size:9.5px;color:#5c6675;font-family:var(--sp-mono)}
.sp2-radar{position:relative;width:62px;height:62px;border-radius:50%;border:1px solid rgba(57,217,138,.45);margin-bottom:6px}
.sp2-radar::after{content:'';position:absolute;inset:24px;border-radius:50%;background:rgba(57,217,138,.75);box-shadow:0 0 10px rgba(57,217,138,.6)}
.sp2-radar i{position:absolute;inset:0;border-radius:50%;border:1px solid rgba(57,217,138,.55);animation:spPing 2.2s ease-out infinite}
.sp2-radar i:nth-child(2){animation-delay:1.1s}
@keyframes spPing{0%{transform:scale(.35);opacity:.9}100%{transform:scale(1.25);opacity:0}}
.sp2-pscreen .s-mon b{font-size:11.5px;color:#dfe6f2}
.sp2-pscreen .s-mon span,.sp2-pscreen .s-block span{font-size:9.5px;color:#6b7686}
.sp2-stampchip{
  font-size:19px;font-weight:900;letter-spacing:.3em;color:var(--sp-red);
  border:2px solid var(--sp-red);border-radius:6px;padding:6px 14px 6px 20px;transform:rotate(-9deg);
  box-shadow:0 0 22px rgba(255,56,87,.28),inset 0 0 14px rgba(255,56,87,.12);margin-bottom:8px;
}
.sp2-pscreen .s-block b{font-size:11.5px;color:#ffb9c4}

.sp2-alog{flex:1;display:flex;flex-direction:column;min-width:0;background:#10141c}
.sp2-alog-h{
  flex:none;display:flex;align-items:center;gap:8px;font-size:10.5px;color:#8a93a3;
  letter-spacing:.08em;padding:7px 12px;border-bottom:1px solid var(--sp-line);
}
.sp2-alog-h .dot{width:6px;height:6px;border-radius:50%;background:var(--sp-red)}
.sp2-alog-b{
  flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;
  padding:8px 12px 10px;font-family:var(--sp-mono);font-size:10.5px;line-height:1.62;
}
.sp2-ln{flex:none;white-space:nowrap;overflow:hidden;text-overflow:clip;color:#aeb9c9}
.sp2-ln .lt{color:#525c6b;margin-right:7px}
.sp2-ln .lk{display:inline-block;min-width:30px;font-weight:700;margin-right:7px;letter-spacing:.04em}
.sp2-ln.sys .lk{color:#5c6675}
.sp2-ln.run .lk{color:var(--sp-blue)}
.sp2-ln.ok .lk{color:var(--sp-ok)}
.sp2-ln.ok .lx{color:#bfe8d2}
.sp2-ln.detect .lk{color:var(--sp-red)}
.sp2-ln.warn .lk{color:var(--sp-red)}
.sp2-ln.warn .lx{color:#ffaab6}
.sp2-ln.block .lk{color:var(--sp-ok)}
.sp2-ln.block .lx{color:#bfe8d2}
.sp2-ltag{
  font-style:normal;font-size:9.5px;font-weight:700;color:var(--sp-red);
  border:1px solid rgba(255,56,87,.5);background:rgba(255,56,87,.1);border-radius:4px;
  padding:0 5px;margin-left:6px;vertical-align:1px;
}

/* 창 B : LAVAR PACKET ANALYZER */
.sp2-toolbar{
  display:flex;align-items:center;gap:3px;height:30px;padding:0 8px;flex:none;
  border-bottom:1px solid var(--sp-line);background:#181d29;
}
.sp2-tbtn{width:24px;height:22px;border-radius:5px;display:flex;align-items:center;justify-content:center;flex:none}
.sp2-tbtn:hover{background:#222a3a}
.sp2-tbtn svg{display:block}
.sp2-tsep{width:1px;height:14px;background:#2a3242;margin:0 5px;flex:none}
.sp2-fbar{
  display:flex;align-items:center;gap:8px;height:26px;padding:0 10px;flex:none;
  font-family:var(--sp-mono);font-size:10.5px;border-bottom:1px solid var(--sp-line);
  background:rgba(57,217,138,.06);
}
.sp2-fbar .fx{color:#c9efdb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sp2-fbar .fx b{color:#ffaab6;font-weight:600}
.sp2-cur{width:6px;height:12px;background:rgba(201,239,219,.75);animation:spCaret 1s steps(1) infinite;flex:none}
@keyframes spCaret{50%{opacity:0}}
.sp2-fok{
  margin-left:auto;font-size:9.5px;color:var(--sp-ok);border:1px solid rgba(57,217,138,.4);
  border-radius:4px;padding:1px 6px;white-space:nowrap;font-family:inherit;
}
.sp2-plist{flex:none;height:176px;overflow:hidden;background:#10141c}
.sp2-plist table{width:100%;border-collapse:collapse;table-layout:fixed;font-family:var(--sp-mono);margin:0}
.sp2-plist th{
  font-size:9.5px;font-weight:600;text-align:left;color:#8a93a3;background:#1b2130;
  padding:5px 7px;border-bottom:1px solid var(--sp-line);letter-spacing:.03em;
}
.sp2-plist th:nth-child(1){width:52px}
.sp2-plist th:nth-child(2){width:70px}
.sp2-plist th:nth-child(3){width:104px}
.sp2-plist th:nth-child(4){width:110px}
.sp2-plist th:nth-child(5){width:64px}
.sp2-plist td{
  font-size:10.5px;padding:3.5px 7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  border-bottom:1px solid rgba(35,42,54,.45);color:#93a0b2;border-top:0;
}
.sp2-plist tr.tcp td{color:#8b97a8}
.sp2-plist tr.tls td{color:#9db4d0;background:rgba(127,146,172,.05)}
.sp2-plist tr.dns td{color:#7fc9a4}
.sp2-plist tr.danger td{color:#ffaab6;background:rgba(255,56,87,.13)}
.sp2-plist tr.danger td:first-child{box-shadow:inset 2px 0 0 var(--sp-red)}
.sp2-plist tr.block td{color:#8fdcb4;background:rgba(57,217,138,.06)}
.sp2-plist tr.sel td{background:rgba(127,146,172,.2)}
.sp2-plist tr.danger.sel td{background:rgba(255,56,87,.22)}
.sp2-rowin{animation:spRowIn .18s ease-out}
@keyframes spRowIn{from{opacity:0;transform:translateY(-2px)}}
.sp2-pdet{
  flex:none;height:84px;padding:7px 12px;border-top:1px solid var(--sp-line);background:#12161f;
  font-family:var(--sp-mono);font-size:10.5px;line-height:1.55;color:#93a0b2;overflow:hidden;
}
.sp2-pdet .dh{font-size:9.5px;color:#5c6675;letter-spacing:.1em;margin-bottom:2px;font-family:inherit}
.sp2-pdet .tw{color:#c7d0dd}
.sp2-pdet .sub{color:#6b7686;padding-left:14px}
.sp2-pdet .red{color:#ffaab6}
.sp2-pdet div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sp2-phex{
  flex:none;height:100px;padding:6px 12px;border-top:1px solid var(--sp-line);background:#0e1219;
  font-family:var(--sp-mono);font-size:10px;line-height:1.6;overflow:hidden;transition:box-shadow .3s;
}
.sp2-phex.hot{box-shadow:inset 0 0 0 1px rgba(255,56,87,.4)}
.sp2-hx{display:flex;gap:14px;white-space:nowrap}
.sp2-hx .off{color:#525c6b}
.sp2-hx .by{color:#8b97a8;letter-spacing:.02em}
.sp2-hx .by b{color:#ffaab6;font-weight:600}
.sp2-hx .as{color:#5c6675;overflow:hidden;text-overflow:clip}
.sp2-capdot{
  display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--sp-red);
  margin-right:6px;vertical-align:0;
}

/* 투입되는 기술 8종 (다크 그리드 — 기존 #svcSysDialog 연동 버튼 유지) */
.sp2-tech{position:relative;z-index:5;margin-top:22px;padding-top:22px;border-top:1px solid #1d2430}
.sp2-tech-head{display:flex;align-items:center;gap:9px;margin-bottom:14px}
.sp2-tech-head i{
  flex:none;width:22px;height:22px;border-radius:7px;background:var(--sp-red);color:#fff;
  font-style:normal;font-family:var(--sp-mono);font-size:10.5px;font-weight:800;
  display:grid;place-items:center;
}
.sp2-tech-head b{font-size:15px;letter-spacing:-.02em;color:#fff}
.sp2-tech-head em{margin-left:auto;font-style:normal;font-size:10px;font-weight:800;letter-spacing:.06em;color:#7f8b9e}

/* ════════════════════════════════════════════════════════════
   STEP 03 — 사후 관리 (보고서 모션 + 레이더)
   ════════════════════════════════════════════════════════════ */
.sp3-htop{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.sp3-htop .spb-chip{margin-bottom:0}
.sp3-hline{width:52px;height:1px;background:linear-gradient(90deg,rgba(255,56,87,.55),transparent)}
.sp3-kicker{font-size:11px;font-weight:600;letter-spacing:.22em;color:var(--sp-blue)}
.sp3-trail{display:flex;align-items:center;gap:8px;font-size:11.5px;padding-bottom:6px;white-space:nowrap}
.sp3-trail .s{color:var(--sp-blue);border:1px solid var(--sp-line);border-radius:999px;padding:5px 11px;background:rgba(23,27,36,.6)}
.sp3-trail .s.done::before{content:'✓ ';color:var(--sp-ok);font-weight:700}
.sp3-trail .s.cur{color:var(--sp-red);border-color:rgba(255,56,87,.45);background:rgba(255,56,87,.10);font-weight:700}
.sp3-trail .arr{color:#3a4456}

/* ── 반응형 ──────────────────────────────────────────────── */
@media (max-width:1000px){
  .spb{padding:26px 24px 28px}
  .spb-head h3{font-size:26px}
  .spb-meta{display:none}
  .sp1-grid{grid-template-columns:1fr;height:auto}
  .sp1-stage{height:420px}
  .sp2-stage{height:auto;display:flex;flex-direction:column;gap:16px}
  .sp2-winA,.sp2-winB{position:static;width:100%;animation:none}
  .sp3-trail{display:none}
}
@media (max-width:680px){
  .spb{padding:22px 16px 24px;border-radius:24px}
  .spb-head{flex-direction:column;align-items:flex-start;gap:10px;margin-bottom:16px}
  .spb-head h3{font-size:22px}
  .sp1-stage{height:330px}
  .sp1-glow{width:250px;height:210px}
  .sp2-abody{flex-direction:column;height:auto}
  .sp2-pwrap{width:100%;border-right:0;border-bottom:1px solid var(--sp-line);padding:14px 0}
  .sp2-alog-b{height:198px;flex:none}
  .sp2-mbar{gap:11px;padding:0 10px}
  .sp2-plist th:nth-child(1),.sp2-plist td:nth-child(1),
  .sp2-plist th:nth-child(2),.sp2-plist td:nth-child(2){display:none}
  .sp2-plist th:nth-child(3){width:86px}
  .sp2-plist th:nth-child(4){width:92px}
  .sp2-plist th:nth-child(5){width:52px}
  .sp2-phex{height:82px}
}

/* ── 모션 최소화: 완성 상태 정지 ─────────────────────────── */
@media (prefers-reduced-motion: reduce){
  .spb *,.spb *::before,.spb *::after{animation:none !important;transition:none !important}
  .sp1-ck .sp1-box{border-color:var(--sp-ck-on-line) !important;background:var(--sp-ck-on-bg) !important}
  .sp1-ck .sp1-box svg{opacity:1 !important;transform:scale(1) !important}
  .sp1-clab{opacity:1 !important}
  .sp1-glow{opacity:.55 !important}
}

/* ==== /assets/css/home.css?v=20260905b ==== */
/* =========================================================
   LAVARWAVE HOME — 메인 페이지 전용 스타일 (site.css 뒤에 로드)
   라이트 브랜드 톤 유지 + 기술 증명 구간만 다크 관제 화면
   ========================================================= */

:root{
  --hm-console:#0d0f13;
  --hm-console-2:#14171d;
  --hm-console-3:#1a1e26;
  --hm-line-dark:rgba(255,255,255,.09);
  --hm-mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
  --hm-green:#2fd48b;
  --hm-amber:#ffb224;
  --hm-cyan:#4cc3ff;
}

/* ---------- HERO (표창) ---------- */
.hm-hero{min-height:880px;padding:168px 0 80px;position:relative;overflow:hidden;background:linear-gradient(118deg,#fff 0%,#fff 50%,#fbf4f5 100%)}
.hm-hero:before{content:"";position:absolute;width:820px;height:820px;border-radius:50%;right:-240px;top:40px;background:radial-gradient(circle at 38% 38%,rgba(255,255,255,.95) 0 10%,rgba(246,213,219,.6) 37%,rgba(255,255,255,0) 69%)}
.hm-hero-grid{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(440px,.98fr);gap:56px;align-items:center;position:relative;z-index:2}
.hm-hero .hero-lead b{color:var(--ink)}
.hm-award-strip{display:flex;gap:14px;margin-top:40px;padding-top:26px;border-top:1px solid var(--line);flex-wrap:wrap}
.hm-award-item{display:flex;gap:12px;align-items:flex-start;padding:14px 18px 14px 14px;border:1px solid var(--line);border-radius:16px;background:#fff;min-width:200px;flex:1}
.hm-award-item b{color:var(--red);font-size:15px;letter-spacing:-.02em}
.hm-award-item span{font-size:12px;color:#6b6c71;line-height:1.5}

/* hero media (기념식) */
.hm-hero-media{position:relative}
.hm-stage-media{margin:0;border-radius:28px;overflow:hidden;box-shadow:0 40px 90px rgba(40,10,16,.22);border:1px solid rgba(0,0,0,.06);background:#fff;cursor:pointer}
.hm-stage-ph{position:relative;aspect-ratio:16/10;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding-top:34px;text-align:center;color:#fff;background:radial-gradient(120% 90% at 50% 0%,#2b3040 0%,#171a22 46%,#0b0d12 100%)}
.hm-stage-ph:before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(210,11,37,.16),transparent 45%),repeating-linear-gradient(90deg,transparent 0 90px,rgba(255,255,255,.025) 90px 91px)}
.hm-stage-ph:after{content:"";position:absolute;left:50%;top:-40%;width:560px;height:560px;transform:translateX(-50%);background:radial-gradient(circle,rgba(255,214,150,.20),transparent 60%)}
.hm-stage-flag{font-size:44px;position:relative;z-index:2;filter:drop-shadow(0 8px 24px rgba(255,190,80,.35))}
.hm-stage-ph b{position:relative;z-index:2;font-size:26px;letter-spacing:-.03em}
.hm-stage-ph em{position:relative;z-index:2;font-style:normal;font-size:14px;color:#c8ccd6}
.hm-stage-replace{position:absolute;right:14px;top:14px;z-index:3;font-size:10px;letter-spacing:.06em;color:#9aa0ad;border:1px dashed rgba(255,255,255,.3);border-radius:99px;padding:6px 10px}
.hm-stage-play{position:absolute;z-index:3;left:50%;bottom:13%;transform:translateX(-50%);width:58px;height:58px;border-radius:50%;background:rgba(210,11,37,.92);box-shadow:0 14px 40px rgba(210,11,37,.45);font-size:0}
.hm-stage-play:after{content:"";position:absolute;left:56%;top:50%;transform:translate(-50%,-50%);border-style:solid;border-width:9px 0 9px 15px;border-color:transparent transparent transparent #fff}
.hm-stage-media figcaption{padding:18px 22px;display:grid;gap:3px;background:#fff}
.hm-stage-media figcaption b{font-size:15px;letter-spacing:-.02em}
.hm-stage-media figcaption span{font-size:12px;color:#77787d}
.hm-press-chip{margin-top:14px;display:flex;gap:10px;align-items:center;font-size:12px;color:#6c6d72;background:#fff;border:1px solid var(--line);border-radius:99px;padding:10px 16px;width:max-content;max-width:100%}
.hm-press-chip span{font-size:10px;font-weight:900;letter-spacing:.12em;color:var(--red)}
.hm-press-chip a{font-weight:800;color:var(--ink)}

/* ---------- 공용: 콘솔 프레임 ---------- */
.hm-console{border-radius:26px;background:#fff;border:1px solid var(--line);box-shadow:0 30px 70px rgba(40,20,26,.08);overflow:hidden}
.hm-console.dark{background:var(--hm-console);border-color:rgba(255,255,255,.07);box-shadow:0 40px 90px rgba(0,0,0,.3)}
.hm-console-bar{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line);background:#fafafa;font-family:var(--hm-mono)}
.hm-console.dark .hm-console-bar,.hm-c2-board .hm-console-bar{background:#101318;border-color:var(--hm-line-dark)}
.hm-console-bar b{font-size:12px;letter-spacing:.1em;font-weight:800;color:var(--ink)}
.hm-console.dark .hm-console-bar b,.hm-c2-board .hm-console-bar b{color:#fff}
.hm-build{font-size:10px;color:#8b8d94;letter-spacing:.03em}
.hm-console-bar .hm-chip-demo{margin-left:auto}
.hm-console-bar .hm-chip-live + .hm-chip-demo{margin-left:0}
.hm-console-bar .hm-chip-live{margin-left:auto}
.hm-dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto}
.hm-dot.r{background:#ff5f57}.hm-dot.y{background:#febc2e}.hm-dot.g{background:#28c840}
.hm-chip-live{display:inline-flex;align-items:center;gap:7px;font-size:10px;font-weight:800;letter-spacing:.08em;color:var(--red);background:rgba(210,11,37,.08);border:1px solid rgba(210,11,37,.25);border-radius:99px;padding:5px 10px;font-family:var(--hm-mono)}
.hm-console.dark .hm-chip-live,.hm-billboard .hm-chip-live{color:#ff5169;background:rgba(210,11,37,.14);border-color:rgba(255,81,105,.35)}
.hm-chip-demo{font-size:10px;font-weight:800;letter-spacing:.06em;color:#8a8c93;border:1px solid rgba(0,0,0,.12);border-radius:99px;padding:5px 10px;white-space:nowrap}
.hm-console.dark .hm-chip-demo,.hm-billboard .hm-chip-demo,.hm-c2-board .hm-chip-demo,.hm-term .hm-chip-demo{color:#7d818c;border-color:rgba(255,255,255,.16)}
.hm-pulse{width:7px;height:7px;border-radius:50%;background:currentColor;display:inline-block;animation:hmPulse 1.6s ease-in-out infinite}
@keyframes hmPulse{50%{opacity:.25}}
.hm-panel-head{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px;padding:0 0 12px}
.hm-panel-head b{font-size:13px;letter-spacing:-.01em}
.hm-panel-head span{color:#85868c;font-size:11px}
.hm-panel-head.light b{color:#fff}
.hm-panel-foot{font-size:10px;color:#8b8d94;padding:12px 2px 0;letter-spacing:.02em}
.hm-badge-red{font-size:10px;font-weight:800;color:#fff;background:var(--red);border-radius:99px;padding:5px 10px;letter-spacing:.04em}
.hm-badge-dark{font-size:10px;font-weight:800;color:#fff;background:#22242b;border-radius:99px;padding:5px 10px;letter-spacing:.04em}

/* ---------- PROOF 01: TRIAGE ---------- */
.hm-triage-grid{display:grid;grid-template-columns:1.05fr 330px 1fr;gap:18px;padding:20px}
.hm-triage-feed,.hm-triage-site{display:flex;flex-direction:column;min-width:0}
.hm-feed-list{list-style:none;margin:0;padding:0;display:grid;gap:8px;content-visibility:auto}
.hm-feed-list li{display:grid;grid-template-columns:auto 1fr auto;gap:6px 12px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:11px 14px;background:#fff;animation:hmSlideIn .45s ease}
.hm-feed-list li.new{border-color:rgba(210,11,37,.4);background:#fff8f9}
.hm-feed-time{font-family:var(--hm-mono);font-size:10px;color:#8d8f96}
.hm-feed-main{grid-column:2;font-size:12px;font-weight:700;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hm-feed-main small{display:block;font-weight:500;color:#84868d;font-size:10px;margin-top:2px}
.hm-feed-tag{font-size:9px;font-weight:900;letter-spacing:.05em;border-radius:6px;padding:4px 7px;background:#f1f1f3;color:#5c5e66}
.hm-feed-tag.hot{background:rgba(210,11,37,.1);color:var(--red)}
@keyframes hmSlideIn{from{opacity:0;transform:translateY(-8px)}}

/* phone frame */
.hm-phone{width:100%;max-width:330px;margin:0 auto;border-radius:38px;background:#0c0d10;padding:12px 12px 16px;box-shadow:0 24px 60px rgba(20,8,12,.35),inset 0 0 0 1px rgba(255,255,255,.09);position:relative}
.hm-phone-notch{width:110px;height:22px;background:#0c0d10;border-radius:0 0 14px 14px;position:absolute;left:50%;top:12px;transform:translateX(-50%);z-index:5}
.hm-phone-screen{border-radius:28px;overflow:hidden;background:#101216;min-height:430px;position:relative;display:flex;flex-direction:column}
.hm-phone-caption{text-align:center;font-size:10px;color:#8f929b;padding-top:12px;letter-spacing:.05em;font-family:var(--hm-mono)}
.hm-app-screen{position:absolute;inset:0;display:flex;flex-direction:column;opacity:0;visibility:hidden;transition:.45s ease}
.hm-app-screen.active{opacity:1;visibility:visible}
.hm-app-status{display:flex;justify-content:space-between;padding:14px 18px 8px;font-size:10px;color:#9ca0aa;font-family:var(--hm-mono)}
.hm-app-fake{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;text-align:center;padding:10px 22px;background:linear-gradient(180deg,#12151b,#0e1014)}
.hm-app-ico{font-size:38px}
.hm-app-fake b{color:#fff;font-size:17px}
.hm-app-fake em{font-style:normal;font-size:11.5px;color:#9298a4;line-height:1.6}
.hm-app-progress{width:82%;height:7px;border-radius:99px;background:#20242d;overflow:hidden;margin-top:8px}
.hm-app-progress i{display:block;height:100%;width:40%;border-radius:inherit;background:linear-gradient(90deg,#8c071b,var(--red));animation:hmProg 3.2s ease-in-out infinite}
@keyframes hmProg{0%{width:12%}70%{width:84%}100%{width:12%}}
.hm-app-pct{font-size:10px;color:#7f8490;font-family:var(--hm-mono)}
.hm-app-perm{margin:0 14px 14px;border:1px solid rgba(255,81,105,.35);background:rgba(210,11,37,.07);border-radius:16px;padding:13px 15px;display:grid;gap:6px}
.hm-app-perm b{font-size:11px;color:#ff5169;letter-spacing:.02em}
.hm-app-perm span{font-size:10.5px;color:#aeb2bc;font-family:var(--hm-mono)}
.hm-app-perm span.bad{color:#ffb3bd}
.hm-app-perm span.bad:before{content:"⚠ ";color:#ff5169}
.hm-app-exfil{flex:1;margin:6px 14px 14px;display:flex;flex-direction:column;gap:9px;padding:14px;border-radius:16px;background:#0b0d11;border:1px solid var(--hm-line-dark)}
.hm-app-exfil b{color:#ff5169;font-size:11px;letter-spacing:.06em;font-family:var(--hm-mono)}
.hm-app-exfil code{font-family:var(--hm-mono);font-size:10.5px;color:#9fd8ff;line-height:1.7;background:#0f1319;border-radius:10px;padding:9px 11px}
.hm-exfil-row{display:flex;align-items:center;gap:8px;font-family:var(--hm-mono);font-size:10.5px;color:#c3c7d0;border-bottom:1px dashed rgba(255,255,255,.08);padding:6px 2px}
.hm-exfil-row i{margin-left:auto;font-style:normal;color:#7d818c}
.hm-exfil-row em{font-style:normal;font-size:9px;font-weight:800;border-radius:5px;padding:3px 6px}
.hm-exfil-row em.blocked{background:rgba(47,212,139,.12);color:var(--hm-green)}
.hm-exfil-row em.hold{background:rgba(255,178,36,.12);color:var(--hm-amber)}
.hm-exfil-note{font-size:9px;color:#6d717c;margin-top:auto;text-align:center;letter-spacing:.04em}

/* browser mock */
.hm-browser{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff}
.hm-browser-bar{display:flex;align-items:center;gap:7px;background:#f3f3f5;border-bottom:1px solid var(--line);padding:10px 13px}
.hm-browser-bar code{font-family:var(--hm-mono);font-size:10.5px;color:#6b6d75;background:#fff;border:1px solid var(--line);border-radius:8px;padding:5px 9px;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hm-browser-body{position:relative;padding:18px;min-height:150px}
.hm-site-skel{display:grid;gap:9px}
.hm-site-skel i{display:block;height:9px;border-radius:99px;background:#ececef}
.hm-site-skel i.red{background:#f7d4d9}
.hm-site-skel i.w90{width:90%}.hm-site-skel i.w70{width:70%}.hm-site-skel i.w60{width:60%}.hm-site-skel i.w50{width:50%}.hm-site-skel i.w40{width:40%}
.hm-site-btn{width:max-content;font-size:11px;font-weight:800;color:#fff;background:#3ddc84;border-radius:8px;padding:8px 14px;margin:4px 0}
.hm-site-stamp{position:absolute;right:16px;top:14px;font-family:var(--hm-mono);font-size:12px;font-weight:800;letter-spacing:.14em;color:var(--red);border:2px solid var(--red);border-radius:8px;padding:5px 9px;transform:rotate(8deg);background:rgba(255,255,255,.85)}
.hm-site-timeline{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:7px}
.hm-site-timeline li{display:flex;gap:9px;align-items:baseline;font-size:11.5px;color:#55575e;padding:8px 11px;border-radius:11px;background:#fff;border:1px solid var(--line)}
.hm-site-timeline li span{font-family:var(--hm-mono);font-size:10px;color:#9a9ca3;flex:0 0 auto}
.hm-site-timeline li.done:before{content:"✓";color:var(--hm-green);font-weight:900}
.hm-site-timeline li.wait:before{content:"…";color:#a2a4ab;font-weight:900}
.hm-site-timeline li.wait{border-style:dashed;color:#8f9197}

/* ---------- 터미널 공용 ---------- */
.hm-term{display:flex;flex-direction:column;border-radius:18px;overflow:hidden;background:#0a0c10;border:1px solid var(--hm-line-dark);min-width:0}
.hm-term-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 16px;background:#10131a;border-bottom:1px solid var(--hm-line-dark);font-family:var(--hm-mono);font-size:10.5px;color:#8b8f9a;letter-spacing:.04em}
.hm-term-body{margin:0;flex:1;padding:16px 18px;font-family:var(--hm-mono);font-size:11.5px;line-height:1.95;color:#c9cdd6;overflow:hidden;white-space:pre-wrap;word-break:break-all}
.hm-term.tall .hm-term-body{min-height:360px;max-height:420px}
.hm-term-body .t-dim{color:#616570}
.hm-term-body .t-ok{color:var(--hm-green)}
.hm-term-body .t-warn{color:var(--hm-amber)}
.hm-term-body .t-err{color:#ff5169}
.hm-term-body .t-info{color:var(--hm-cyan)}
.hm-term-body .t-red{color:#ff5169}
.hm-caret{display:inline-block;width:7px;height:13px;background:#c9cdd6;vertical-align:-2px;animation:hmCaret 1s steps(1) infinite}
@keyframes hmCaret{50%{opacity:0}}

/* ---------- PROOF 02: AUTOBOT ---------- */
.hm-autobot-grid{display:grid;grid-template-columns:1.45fr .55fr;gap:16px;padding:18px}
.hm-autobot-grid .hm-term-body{min-height:400px;max-height:400px}
.hm-autobot-side{display:flex;flex-direction:column;gap:14px;min-width:0}
.hm-queue{background:var(--hm-console-2);border:1px solid var(--hm-line-dark);border-radius:16px;padding:15px}
.hm-queue .hm-panel-head b{color:#fff}
.hm-queue-list{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.hm-queue-list li{display:flex;align-items:center;gap:9px;font-family:var(--hm-mono);font-size:10.5px;background:#0d1016;border:1px solid var(--hm-line-dark);border-radius:10px;padding:9px 11px;color:#aeb2bc}
.hm-queue-list li.leaving{opacity:0;transform:translateX(10px);transition:.4s}
.hm-queue-list code{color:#8b90ff}
.hm-queue-list span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hm-queue-list em{font-style:normal;font-size:9px;font-weight:800;border-radius:5px;padding:3px 6px}
.sev-h{background:rgba(210,11,37,.18);color:#ff5169}
.sev-m{background:rgba(255,178,36,.14);color:var(--hm-amber)}
.sev-l{background:rgba(76,195,255,.12);color:var(--hm-cyan)}
.hm-mini-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.hm-mini-stats div{background:var(--hm-console-2);border:1px solid var(--hm-line-dark);border-radius:13px;padding:12px 14px}
.hm-mini-stats span{display:block;font-size:9.5px;color:#7d818c;letter-spacing:.06em}
.hm-mini-stats b{display:block;color:#fff;font-size:19px;margin-top:3px;font-family:var(--hm-mono);font-weight:700}
.hm-spark{background:var(--hm-console-2);border:1px solid var(--hm-line-dark);border-radius:13px;padding:12px 14px}
.hm-spark span{display:block;font-size:9.5px;color:#7d818c;letter-spacing:.06em;margin-bottom:8px}
.hm-spark canvas{width:100%;height:56px;display:block}

/* ---------- PROOF 03: 사건 리플레이 ---------- */
.hm-replay{display:grid;gap:22px}
.hm-replay-stage{display:grid;grid-template-columns:330px auto 330px 1fr;gap:18px;align-items:start;justify-content:start}
.hm-phone-chat .hm-phone-screen{background:#eef0f4;min-height:470px}
.hm-chat-head{display:flex;align-items:baseline;gap:8px;padding:16px 16px 11px;font-size:13px;border-bottom:1px solid rgba(0,0,0,.06);background:#fff}
.hm-chat-head b{letter-spacing:-.02em}
.hm-chat-head span{font-size:10.5px;color:#8d8f96}
.hm-chat-head.datalk{background:linear-gradient(135deg,#ff5d7e,#d20b25);color:#fff}
.hm-chat-head.datalk span{color:rgba(255,255,255,.8)}
.hm-chat-head.line{background:#06c755;color:#fff}
.hm-chat-head.line span{color:rgba(255,255,255,.85)}
.hm-chat-body{padding:13px;display:flex;flex-direction:column;gap:8px;overflow:hidden}
.hm-bubble{max-width:86%;font-size:11.5px;line-height:1.55;padding:9px 12px;border-radius:15px;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.06);color:#2c2d31}
.hm-bubble.me{align-self:flex-end;background:#d9e8ff}
.hm-bubble.them b{color:var(--red)}
.hm-bubble.threat{background:#2c2d33;color:#fff;border:1px solid rgba(210,11,37,.5)}
.hm-bubble.threat b{color:#ff8296}
.hm-bubble.file{display:flex;gap:10px;align-items:center;max-width:92%;border:1px solid rgba(210,11,37,.35);background:#fff7f8}
.hm-file-ico{flex:0 0 auto;width:34px;height:34px;border-radius:9px;background:#22252c;color:#fff;font-size:9px;font-weight:900;display:grid;place-items:center;letter-spacing:.04em}
.hm-bubble.file b{display:block;font-size:11px}
.hm-bubble.file em{font-style:normal;font-size:9.5px;color:#6f7176}
.hm-file-warn{margin-left:auto;font-size:8.5px;font-weight:900;color:var(--red);border:1px solid rgba(210,11,37,.5);border-radius:6px;padding:3px 6px;background:#fff}
.hm-chat-profile{display:flex;gap:10px;align-items:center;background:#fff;border:1px solid rgba(210,11,37,.3);border-radius:14px;padding:10px 12px;position:relative}
.hm-chat-avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#f7cfd6,#e7a1ad);display:grid;place-items:center;font-size:17px}
.hm-chat-profile b{display:block;font-size:12px}
.hm-chat-profile em{display:block;font-style:normal;font-size:9.5px;color:var(--red);margin-top:2px}
.hm-chat-profile i{display:block;font-style:normal;font-size:9px;color:#6f7176;margin-top:1px}
.hm-flag{position:absolute;right:10px;top:10px;font-size:8px;font-weight:900;letter-spacing:.08em;color:#fff;background:var(--red);border-radius:5px;padding:3px 6px}
.hm-sys-warn{border:1px solid rgba(210,11,37,.45);background:#fff;border-radius:14px;padding:11px 13px;font-size:10.5px;line-height:1.6;color:#4c4e55}
.hm-sys-warn b{display:block;color:var(--red);font-size:11px;margin-bottom:3px}
.hm-replay-arrow{align-self:center;display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--red);font-size:22px;font-weight:900;padding-top:180px}
.hm-replay-arrow span{font-size:9px;letter-spacing:.14em;color:#9b9da3}
/* step visibility */
.hm-replay [data-step-show]{opacity:0;transform:translateY(6px);transition:.4s ease;pointer-events:none}
.hm-replay [data-step-show].on{opacity:1;transform:none;pointer-events:auto}
/* analysis side */
.hm-replay-analysis{background:#fff;border:1px solid var(--line);border-radius:22px;padding:20px;box-shadow:var(--shadow);min-width:0}
.hm-analysis-steps{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.hm-analysis-steps li{border:1px solid var(--line);border-radius:13px;padding:11px 13px;opacity:.38;transition:.3s}
.hm-analysis-steps li.on{opacity:1;border-color:rgba(210,11,37,.4);background:#fff8f9}
.hm-analysis-steps b{display:block;font-size:11px;color:var(--red);letter-spacing:.03em}
.hm-analysis-steps span{display:block;font-size:11.5px;color:#5f6167;margin-top:3px;line-height:1.55}
.hm-replay-result{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
.hm-replay-result div{background:#faf7f8;border-radius:12px;padding:11px 12px}
.hm-replay-result span{display:block;font-size:9.5px;color:#8b8c92}
.hm-replay-result b{font-size:17px;color:var(--red)}
.hm-replay-ctrl{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.hm-play{border:0;border-radius:99px;background:var(--red);color:#fff;font-weight:800;font-size:13px;padding:13px 22px;box-shadow:0 12px 30px rgba(210,11,37,.25)}
.hm-play:hover{background:var(--red-dark)}
.hm-step-btns{display:flex;gap:6px;flex-wrap:wrap}
.hm-step-btns button{border:1px solid var(--line);background:#fff;border-radius:99px;padding:10px 15px;font-size:12px;color:#5b5d63;font-weight:700}
.hm-step-btns button.active{background:#111;border-color:#111;color:#fff}

/* ---------- PROOF 04: LOOKUP ---------- */
.hm-lookup{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center}
.hm-lookup-copy h2{font-size:clamp(34px,3.6vw,52px);line-height:1.16;letter-spacing:-.055em;margin:12px 0 18px;font-weight:850}
.hm-lookup-copy p{color:#63656b;font-size:16px;max-width:520px}
.hm-lookup-points{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:9px}
.hm-lookup-points li{font-size:13.5px;color:#4c4e55;padding-left:24px;position:relative}
.hm-lookup-points li:before{content:"✓";position:absolute;left:0;color:var(--red);font-weight:900}
.hm-lookup-widget{position:relative;background:var(--hm-console);border-radius:26px;padding:22px;border:1px solid rgba(255,255,255,.08);box-shadow:0 40px 90px rgba(0,0,0,.28)}
.hm-lookup-form{display:flex;gap:9px;align-items:center;background:#0a0c10;border:1px solid var(--hm-line-dark);border-radius:16px;padding:9px 9px 9px 16px}
.hm-lookup-form:focus-within{border-color:rgba(210,11,37,.6);box-shadow:0 0 0 3px rgba(210,11,37,.15)}
.hm-lookup-ico{color:#787c87;font-size:17px}
.hm-lookup-form input{flex:1;background:none;border:0;outline:none;color:#fff;font-size:14px;font-family:var(--hm-mono);min-width:0}
.hm-lookup-form input::placeholder{color:#5b5f6a}
.hm-lookup-presets{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin:12px 2px 0;font-size:10.5px;color:#767a85}
.hm-lookup-presets button{border:1px dashed rgba(255,255,255,.22);background:none;color:#aeb2bc;border-radius:99px;padding:6px 11px;font-size:10.5px;font-family:var(--hm-mono)}
.hm-lookup-presets button:hover{border-color:#ff5169;color:#ff5169}
.hm-lookup-body{margin-top:14px;background:var(--hm-console-2);border:1px solid var(--hm-line-dark);border-radius:18px;min-height:280px;position:relative;overflow:hidden}
.hm-lookup-idle{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:#71747f}
.hm-lookup-idle span{font-size:30px;opacity:.5}
.hm-lookup-idle b{color:#9ba0ab;font-size:14px}
.hm-lookup-idle em{font-style:normal;font-size:11px}
.hm-lookup-scan{position:absolute;inset:0;padding:26px}
.hm-scan-line{height:3px;border-radius:99px;background:#20242d;overflow:hidden;margin-bottom:22px}
.hm-scan-line i{display:block;height:100%;width:35%;background:linear-gradient(90deg,transparent,var(--red),transparent);animation:hmScanX 1.1s linear infinite}
@keyframes hmScanX{from{transform:translateX(-100%)}to{transform:translateX(400%)}}
.hm-lookup-scan ul{list-style:none;margin:0;padding:0;display:grid;gap:13px}
.hm-lookup-scan li{font-family:var(--hm-mono);font-size:12px;color:#5d616c;transition:.3s}
.hm-lookup-scan li.doing{color:#fff}
.hm-lookup-scan li.doing:after{content:"";display:inline-block;width:10px;height:10px;border:2px solid #ff5169;border-right-color:transparent;border-radius:50%;margin-left:9px;vertical-align:-1px;animation:hmSpin .7s linear infinite}
.hm-lookup-scan li.did{color:var(--hm-green)}
.hm-lookup-scan li.did:before{content:"✓ "}
@keyframes hmSpin{to{transform:rotate(360deg)}}
.hm-lookup-result{position:absolute;inset:0;padding:20px;display:flex;flex-direction:column;gap:13px}
.hm-lookup-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.hm-lookup-head>b{font-family:var(--hm-mono);font-size:16px;color:#fff;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hm-risk{display:flex;align-items:center;gap:9px;font-size:11px;color:#aeb2bc;flex:0 0 auto}
.hm-risk b{color:#ff5169;font-size:14px}
.hm-risk i{width:74px;height:7px;border-radius:99px;background:#20242d;position:relative;overflow:hidden}
.hm-risk i:after{content:"";position:absolute;inset:0;width:var(--p,0%);background:linear-gradient(90deg,#8c071b,#ff5169);border-radius:inherit;transition:width 1s ease}
.hm-lookup-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.hm-lookup-grid>div{background:#0d1016;border:1px solid var(--hm-line-dark);border-radius:13px;padding:12px}
.hm-lookup-grid span{display:block;font-size:9.5px;color:#7d818c;letter-spacing:.05em}
.hm-lookup-grid b{display:block;color:#fff;font-size:18px;margin:4px 0 2px;font-family:var(--hm-mono)}
.hm-lookup-grid em{display:block;font-style:normal;font-size:9px;color:#6d717c}
.hm-lookup-note{font-size:11.5px;line-height:1.6;color:#9298a4;background:rgba(210,11,37,.07);border:1px solid rgba(210,11,37,.25);border-radius:12px;padding:11px 13px}
.hm-lookup-note b{color:#ff8296}
.hm-lookup-cta{display:flex;gap:8px;margin-top:auto}
.hm-lookup-cta .btn{min-height:44px;font-size:13px}
.hm-lookup-cta .btn-line{border-color:rgba(255,255,255,.25);background:none;color:#fff}
.hm-widget-demo{position:absolute;right:20px;top:-11px;font-size:9px;font-weight:900;letter-spacing:.1em;color:#fff;background:#22252c;border:1px solid rgba(255,255,255,.15);border-radius:99px;padding:5px 10px}

/* ---------- PROOF 05: AGENT ---------- */
.hm-agent-grid{display:grid;grid-template-columns:.62fr 1.38fr;gap:16px;padding:18px}
.hm-agent-left{display:flex;flex-direction:column;gap:14px;min-width:0}
.hm-agent-left .hm-panel-head b{color:#fff}
.hm-cmd-list{display:grid;gap:8px}
.hm-cmd-list button{text-align:left;border:1px solid var(--hm-line-dark);background:var(--hm-console-2);border-radius:14px;padding:13px 15px;transition:.2s;display:grid;gap:3px}
.hm-cmd-list button:hover{border-color:rgba(210,11,37,.55);background:#191016}
.hm-cmd-list button.done{border-color:rgba(47,212,139,.4)}
.hm-cmd-list button.done b:after{content:" ✓";color:var(--hm-green)}
.hm-cmd-list button.running{border-color:rgba(210,11,37,.7);background:#1c1116}
.hm-cmd-list b{color:#fff;font-size:12.5px;letter-spacing:-.01em}
.hm-cmd-list span{font-family:var(--hm-mono);font-size:10px;color:#6d717c}
.hm-agent-units{background:var(--hm-console-2);border:1px solid var(--hm-line-dark);border-radius:16px;padding:15px}
.hm-agent-units ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.hm-agent-units li{display:flex;align-items:center;gap:9px;font-size:11px;color:#aeb2bc;background:#0d1016;border:1px solid var(--hm-line-dark);border-radius:11px;padding:9px 12px}
.hm-agent-units li i{width:8px;height:8px;border-radius:50%;background:#3a3e48;flex:0 0 auto}
.hm-agent-units li.active i{background:#ff5169;animation:hmPulse 1.2s infinite}
.hm-agent-units li.done i{background:var(--hm-green)}
.hm-agent-units li b{color:#fff;font-family:var(--hm-mono);font-size:10.5px}
.hm-agent-units li span{flex:1}
.hm-agent-units li em{font-style:normal;font-size:9px;font-weight:800;color:#7d818c;letter-spacing:.05em}
.hm-agent-units li.active em{color:#ff5169}
.hm-agent-units li.done em{color:var(--hm-green)}

/* ---------- PROOF 06: BENCHMARK ---------- */
/* (수정2 ⑦) 구 다크 벤치마크 잔재 규칙 제거 — 흰 배경 위 흰 글자로 헤드라인이 안 보이던 문제 수정 */
#benchmark .section-title .section-kicker{color:var(--red)}
.hm-bench-top{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}
.hm-bench-stat{position:relative;background:#181b21;border:1px solid rgba(255,255,255,.08);border-radius:22px;padding:26px 24px 22px}
.hm-bench-stat.rank1{border-color:rgba(210,11,37,.5);background:linear-gradient(160deg,#221419 0%,#181b21 55%)}
.hm-rank{position:absolute;right:16px;top:16px;font-size:9px;font-weight:900;letter-spacing:.1em;color:#ffd7a6;background:rgba(255,178,36,.12);border:1px solid rgba(255,178,36,.35);border-radius:99px;padding:5px 9px}
.hm-bench-stat>b{display:block;font-size:clamp(30px,2.8vw,42px);color:#fff;font-weight:850;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.hm-bench-label{display:block;font-size:12.5px;color:#c9ccd4;margin-top:8px;font-weight:700}
.hm-bench-stat em{display:block;font-style:normal;font-size:10px;color:#7d818c;margin-top:4px}
.hm-bench-chart{background:#14161c;border:1px solid rgba(255,255,255,.08);border-radius:24px;padding:24px 26px}
.hm-year-bars{display:grid;grid-template-columns:repeat(8,1fr);gap:12px;align-items:end;height:230px;padding:12px 4px 0}
.hm-year{display:flex;flex-direction:column;align-items:center;gap:8px;height:100%;justify-content:flex-end;min-width:0}
.hm-year i{display:block;width:100%;max-width:52px;height:calc(var(--h) * .72);border-radius:8px 8px 3px 3px;background:linear-gradient(180deg,var(--red),#7c0616);transform-origin:bottom;transform:scaleY(0);transition:transform .9s cubic-bezier(.2,.7,.3,1)}
.hm-year.now i{background:linear-gradient(180deg,#3d424e,#23262e);border:1px dashed rgba(255,255,255,.25)}
.hm-bench-chart.in .hm-year i{transform:scaleY(1)}
.hm-year b{font-size:11px;color:#e6e8ee;font-family:var(--hm-mono);font-weight:700}
.hm-year span{font-size:10px;color:#7d818c}
.hm-bench-foot{display:flex;gap:10px 26px;flex-wrap:wrap;align-items:center;border-top:1px solid rgba(255,255,255,.08);margin-top:20px;padding-top:16px;font-size:11px;color:#8c8f97}
.hm-bench-foot .method-link{margin:0 0 0 auto}

/* ---------- PROOF 07: BILLBOARD + C2 ---------- */
.hm-billboard-wrap{background:#07080c;padding:120px 0;position:relative}
.section-title.inv h2{color:#fff}
.section-title.inv p{color:#b3b5bc}
.hm-billboard{border-top:1px solid rgba(255,255,255,.09);border-bottom:1px solid rgba(255,255,255,.09);background:radial-gradient(90% 120% at 50% 0%,#101319 0%,#07080c 70%);padding:34px 0 0;margin-bottom:26px;overflow:hidden}
.hm-bb-head{display:flex;align-items:center;gap:16px;padding-bottom:22px;flex-wrap:wrap}
.hm-bb-head>b{font-size:20px;color:#fff;letter-spacing:.04em;font-weight:900}
.hm-bb-head>b span{color:var(--red)}
.hm-bb-status{display:inline-flex;align-items:center;gap:8px;font-family:var(--hm-mono);font-size:10.5px;color:var(--hm-green);letter-spacing:.05em}
.hm-bb-head .hm-chip-demo{margin-left:auto}
.hm-bb-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;padding-bottom:30px}
.hm-bb-stat{background:#0a0c11;border:1px solid rgba(255,255,255,.09);border-radius:18px;padding:20px 22px;position:relative;overflow:hidden}
.hm-bb-stat:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 3px,rgba(0,0,0,.22) 3px 4px);pointer-events:none}
.hm-bb-stat>span{display:block;font-family:var(--hm-mono);font-size:9.5px;letter-spacing:.14em;color:#767b87}
.hm-led{display:block;margin-top:9px;font-family:var(--hm-mono);font-weight:700;font-size:clamp(26px,2.6vw,38px);letter-spacing:.05em;color:#ffde7a;text-shadow:0 0 18px rgba(255,222,122,.45);font-variant-numeric:tabular-nums}
.hm-led.red{color:#ff5169;text-shadow:0 0 18px rgba(255,81,105,.5)}
.hm-bb-stat em{display:block;font-style:normal;font-size:10.5px;color:#8c909b;margin-top:7px}
.hm-bb-ticker{border-top:1px solid rgba(255,255,255,.09);background:#05060a;overflow:hidden;white-space:nowrap}
.hm-bb-ticker-track{display:inline-flex;gap:0;animation:hmTicker 36s linear infinite;padding:13px 0}
.hm-bb-ticker-track span{font-family:var(--hm-mono);font-size:11px;color:#b6bac4;letter-spacing:.05em;padding:0 28px;position:relative}
.hm-bb-ticker-track span:after{content:"·";position:absolute;right:-4px;color:#3c404b}
@keyframes hmTicker{to{transform:translateX(-50%)}}
/* C2 table */
.hm-c2-board{margin-top:0;border-radius:24px;overflow:hidden;background:var(--hm-console);border:1px solid rgba(255,255,255,.08);box-shadow:0 40px 90px rgba(0,0,0,.35)}
.hm-c2-summary{display:flex;gap:18px;align-items:center;padding:14px 20px;border-bottom:1px solid var(--hm-line-dark);font-family:var(--hm-mono);font-size:10.5px;color:#8b8f9a;flex-wrap:wrap}
.hm-c2-summary b{color:#fff;font-size:13px;margin-right:5px}
.hm-c2-summary span:first-child b{color:#ff5169}
.hm-c2-summary .right{margin-left:auto}
.hm-table-wrap{overflow-x:auto}
.hm-c2-table{width:100%;border-collapse:collapse;font-family:var(--hm-mono);font-size:11.5px;min-width:760px}
.hm-c2-table th{text-align:left;font-size:9.5px;letter-spacing:.12em;color:#6d717c;font-weight:700;padding:12px 18px;border-bottom:1px solid var(--hm-line-dark);background:#101318;white-space:nowrap}
.hm-c2-table td{padding:13px 18px;border-bottom:1px solid rgba(255,255,255,.05);color:#c3c7d0;white-space:nowrap}
.hm-c2-table tbody tr:hover{background:rgba(255,255,255,.03)}
.hm-c2-table td:first-child{color:#8b90ff}
.hm-st{font-size:10px;font-weight:800;letter-spacing:.06em;border-radius:6px;padding:4px 8px}
.hm-st.online{color:#ff5169;background:rgba(210,11,37,.14)}
.hm-st.online{animation:hmPulse 2s infinite}
.hm-st.sink{color:var(--hm-amber);background:rgba(255,178,36,.1)}
.hm-st.down{color:#7d818c;background:rgba(255,255,255,.05)}
.hm-c2-board .hm-panel-foot{padding:12px 20px 16px;color:#6d717c}

/* ---------- PROOF 08: ORIGIN TRACE ---------- */
.hm-trace-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:56px;align-items:center}
.hm-trace-copy h2{font-size:clamp(34px,3.6vw,52px);line-height:1.16;letter-spacing:-.055em;margin:12px 0 18px;font-weight:850}
.hm-trace-copy p{color:#63656b;font-size:16px}
.hm-unique{display:flex;gap:13px;align-items:center;border:1px solid rgba(210,11,37,.3);background:var(--red-soft);border-radius:16px;padding:14px 18px;margin:24px 0 20px}
.hm-unique>span{width:38px;height:38px;border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center;font-size:15px;flex:0 0 auto}
.hm-unique b{display:block;font-size:14px;letter-spacing:-.02em}
.hm-unique em{display:block;font-style:normal;font-size:11px;color:#8a5b62;margin-top:2px}
.hm-unique a{margin-left:auto;font-size:12px;font-weight:900;color:var(--red);white-space:nowrap}
.hm-trace-conf{display:grid;gap:9px}
.hm-conf-row{display:grid;grid-template-columns:130px 1fr 44px;gap:12px;align-items:center;font-family:var(--hm-mono);font-size:11.5px;color:#4c4e55}
.hm-conf-bar{height:9px;border-radius:99px;background:#efeced;overflow:hidden}
.hm-conf-bar i{display:block;height:100%;width:var(--w);border-radius:inherit;background:linear-gradient(90deg,#8c071b,var(--red))}
.hm-conf-row b{text-align:right;color:var(--ink)}
.hm-conf-note{font-size:10.5px;color:#8b8c92;margin-top:4px}

/* ---------- CS 배너 ---------- */
.hm-cs-banner{display:flex;align-items:center;gap:20px;background:linear-gradient(120deg,#16181d 0%,#2a121a 70%,#4c0a17 100%);border-radius:26px;padding:30px 36px;color:#fff;transition:.25s;border:1px solid rgba(255,255,255,.08);position:relative;overflow:hidden}
.hm-cs-banner:hover{transform:translateY(-3px);box-shadow:0 30px 60px rgba(76,10,23,.35)}
.hm-cs-banner:after{content:"CS SYSTEM";position:absolute;right:90px;top:50%;transform:translateY(-50%);font-size:64px;font-weight:900;letter-spacing:-.05em;color:rgba(255,255,255,.05);white-space:nowrap}
.hm-cs-left{display:flex;gap:18px;align-items:center;position:relative;z-index:2}
.hm-cs-play{width:52px;height:52px;border-radius:50%;background:var(--red);position:relative;box-shadow:0 10px 30px rgba(210,11,37,.4);flex:0 0 auto;font-size:0}
.hm-cs-play:after{content:"";position:absolute;left:55%;top:50%;transform:translate(-50%,-50%);border-style:solid;border-width:8px 0 8px 13px;border-color:transparent transparent transparent #fff}
.hm-cs-banner b{display:block;font-size:21px;letter-spacing:-.03em}
.hm-cs-banner .hm-cs-left span{display:block;font-size:12.5px;color:#b6b9c2;margin-top:4px}
.hm-cs-arrow{margin-left:auto;font-size:24px;position:relative;z-index:2;transition:.25s}
.hm-cs-banner:hover .hm-cs-arrow{transform:translateX(6px)}

/* ---------- TEAM ---------- */
.hm-team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.hm-person{background:#fff;border:1px solid var(--line);border-radius:22px;padding:18px;transition:.25s}
.hm-person:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.hm-person-photo{aspect-ratio:4/3.4;border-radius:16px;border:1.5px dashed #ddd3d5;background:linear-gradient(160deg,#faf6f7,#f2ecee);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;margin-bottom:14px}
.hm-person-photo span{font-size:26px;opacity:.55}
.hm-person-photo em{font-style:normal;font-size:10px;letter-spacing:.08em;color:#a9938f}
.hm-person-name{display:inline-block;font-size:16px;letter-spacing:-.02em;border-bottom:2px dashed #d9cfd1;color:#8f8286;padding:0 2px 1px}
.hm-person>span{display:block;font-size:13px;font-weight:800;color:var(--red);margin-top:5px}
.hm-person>em{display:block;font-style:normal;font-size:11.5px;color:#84868d;margin-top:4px;line-height:1.55}
.hm-team-band{margin-top:22px;display:flex;gap:16px;align-items:center;background:#111214;border-radius:20px;padding:22px 28px;color:#fff;flex-wrap:wrap}
.hm-team-band b{font-size:16px;letter-spacing:-.02em}
.hm-team-band>span{color:#a2a5ad;font-size:12.5px}
.hm-team-band .btn{margin-left:auto}

/* ---------- PARTNERSHIP ---------- */
.hm-partner-band{display:grid;grid-template-columns:.9fr 1.1fr;gap:40px;align-items:center;border:1px solid var(--line);border-radius:28px;padding:38px 42px;background:#fff}
.hm-partner-copy h2{font-size:clamp(26px,2.6vw,36px);letter-spacing:-.045em;margin:10px 0 10px}
.hm-partner-copy p{color:#6c6d72;font-size:14px;margin:0 0 14px}
.hm-partner-copy a{font-size:13px;font-weight:900;color:var(--red)}
.hm-partner-cells{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.hm-partner-cell{border:1px solid var(--line);border-radius:16px;padding:18px 20px;font-size:14px;font-weight:800;letter-spacing:-.02em}
.hm-partner-cell em{display:block;font-style:normal;font-size:11px;color:#8b8c92;font-weight:500;margin-top:4px}

/* ---------- 반응형 ---------- */
@media (max-width:1180px){
  .hm-hero{padding-top:135px;min-height:auto}
  .hm-hero-grid{grid-template-columns:1fr;gap:40px}
  .hm-hero-media{max-width:640px}
  .hm-triage-grid{grid-template-columns:1fr 1fr}
  .hm-triage-phone{grid-column:1/-1;order:3}
  .hm-autobot-grid{grid-template-columns:1fr}
  .hm-replay-stage{grid-template-columns:1fr 1fr}
  .hm-replay-arrow{display:none}
  .hm-replay-analysis{grid-column:1/-1}
  .hm-phone-chat{margin:0 auto}
  .hm-lookup{grid-template-columns:1fr;gap:34px}
  .hm-agent-grid{grid-template-columns:1fr}
  .hm-bench-top{grid-template-columns:1fr 1fr}
  .hm-bb-grid{grid-template-columns:1fr 1fr}
  .hm-trace-grid{grid-template-columns:1fr;gap:34px}
  .hm-team-grid{grid-template-columns:1fr 1fr}
  .hm-partner-band{grid-template-columns:1fr}
}
@media (max-width:780px){
  .hm-hero{padding:118px 0 60px}
  .hm-award-strip{flex-direction:column}
  .hm-stage-ph b{font-size:20px}
  .hm-stage-ph{padding-bottom:74px}
  .hm-stage-play{width:48px;height:48px;bottom:16px}
  .hm-console-bar{flex-wrap:wrap;row-gap:8px}
  .hm-build{display:none}
  .hm-triage-grid{grid-template-columns:1fr;padding:14px}
  .hm-autobot-grid{padding:14px}
  .hm-autobot-grid .hm-term-body{min-height:300px;max-height:300px}
  .hm-mini-stats{grid-template-columns:1fr 1fr}
  .hm-replay-stage{grid-template-columns:1fr}
  .hm-phone,.hm-phone-chat{max-width:310px}
  .hm-step-btns button{padding:9px 12px;font-size:11px}
  .hm-lookup-grid{grid-template-columns:1fr 1fr}
  .hm-lookup-cta{flex-direction:column}
  .hm-agent-grid{padding:14px}
  .hm-term.tall .hm-term-body{min-height:300px;max-height:340px}
  .hm-bench-top{grid-template-columns:1fr}
  .hm-year-bars{gap:6px;height:190px}
  .hm-year b{font-size:9px}
  .hm-year span{font-size:8.5px}
  .hm-billboard-wrap{padding:80px 0}
  .hm-bb-grid{grid-template-columns:1fr}
  .hm-cs-banner{padding:24px;flex-wrap:wrap}
  .hm-cs-left{align-items:flex-start}
  .hm-cs-play{width:44px;height:44px;margin-top:4px}
  .hm-cs-play:after{border-width:6px 0 6px 10px}
  .hm-cs-banner:after{display:none}
  .hm-team-grid{grid-template-columns:1fr}
  .hm-team-band .btn{margin-left:0}
  .hm-partner-cells{grid-template-columns:1fr}
  .hm-partner-band{padding:26px}
  .hm-replay-result{grid-template-columns:1fr 1fr 1fr}
}
@media (max-width:480px){
  .hm-lookup-grid{grid-template-columns:1fr 1fr}
  .hm-lookup-form{flex-wrap:wrap}
  .hm-lookup-form .btn{width:100%}
  .hm-bb-head{gap:10px}
  .hm-bb-head .hm-chip-demo{margin-left:0}
}
/* reduced motion: site.css 전역 규칙이 애니메이션 제거. 상태는 JS에서 정적 렌더 */

/* ---- 보강: hidden 속성 우선 + 조회 결과는 플로우 배치 ---- */
.hm-lookup-body [hidden]{display:none!important}
.hm-lookup-result{position:static;min-height:280px}
.hm-lookup-body{display:flex;flex-direction:column}

/* 벤치마크 차트: JS 있을 때만 애니메이션 준비 상태 */
.hm-bench-chart .hm-year i{transform:scaleY(1)}
.hm-bench-chart.pre .hm-year i{transform:scaleY(0)}
.hm-bench-chart.pre.in .hm-year i{transform:scaleY(1)}

/* =========================================================
   v4 추가 — WAR MAP 히어로 · 드래그 데모 · 워룸 · HYPER CLOUD 등
   ========================================================= */

/* ---------- WAR MAP 히어로 ---------- */
.hm-wm-hero{position:relative;min-height:100vh;display:flex;align-items:center;overflow:hidden;background:radial-gradient(120% 90% at 70% 10%,#141a2b 0%,#0a0d16 45%,#06070c 100%)}
.hm-wm-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:1}
.hm-wm-veil{position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(90deg,rgba(6,7,12,.86) 0%,rgba(6,7,12,.55) 42%,rgba(6,7,12,.12) 72%,transparent 100%)}
.hm-wm-inner{position:relative;z-index:3;padding:174px 0 90px}
.hm-wm-eyebrow{color:#ff5169}
.hm-wm-eyebrow:before{background:#ff5169}
.hm-wm-title{font-size:clamp(40px,5.6vw,86px);line-height:1.06;letter-spacing:-.06em;margin:0 0 24px;font-weight:850;color:#fff}
.hm-wm-title .hero-seo-title{display:block;margin-bottom:18px;color:#8b90a0;font-size:13px;line-height:1.5;letter-spacing:-.01em;font-weight:700;max-width:420px}
.hm-wm-main{display:block;text-shadow:0 4px 40px rgba(0,0,0,.5)}
.hm-wm-title .accent{color:#ff2d4b;text-shadow:0 0 40px rgba(255,45,75,.5)}
.hm-wm-actions{display:flex;gap:12px;flex-wrap:wrap}
.btn-glass{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.22);color:#fff;backdrop-filter:blur(8px)}
.btn-glass:hover{background:rgba(255,255,255,.13);border-color:#fff}
.hm-wm-scroll{display:flex;align-items:center;gap:12px;margin-top:52px;color:#6b7180;font-size:10px;letter-spacing:.28em;font-family:var(--hm-mono)}
.hm-wm-scroll i{width:34px;height:1px;background:linear-gradient(90deg,#ff5169,transparent);position:relative;overflow:hidden}
.hm-wm-scroll i:after{content:"";position:absolute;left:0;top:0;width:12px;height:1px;background:#ff5169;animation:hmScrollX 2s linear infinite}
@keyframes hmScrollX{from{transform:translateX(-14px)}to{transform:translateX(40px)}}
.hm-wm-stage-label{position:absolute;right:36px;bottom:34px;z-index:3;font-family:var(--hm-mono);font-size:10px;letter-spacing:.3em;color:#586074;border:1px solid rgba(255,255,255,.12);border-radius:99px;padding:8px 16px;background:rgba(6,7,12,.4)}

/* ---------- 공용 링크/뱃지 ---------- */
.hm-link-red{display:inline-block;margin-top:22px;font-size:13px;font-weight:900;color:var(--red)}

/* ---------- 인정 PR 밴드 ---------- */
.hm-recog{padding:96px 0;background:linear-gradient(180deg,#fff 0%,#fbf4f5 100%);position:relative}
.hm-recog-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.hm-recog-copy h2{font-size:clamp(30px,3.4vw,46px);line-height:1.18;letter-spacing:-.05em;margin:14px 0 16px;font-weight:850}
.hm-recog-copy p{color:#5c5e64;font-size:16px;max-width:520px}
.hm-recog-copy p b{color:var(--ink)}
.hm-recog-badges{display:flex;gap:12px;margin-top:26px;flex-wrap:wrap}
.hm-recog-badge{border:1px solid var(--line);background:#fff;border-radius:16px;padding:14px 16px;min-width:150px;flex:1}
.hm-recog-badge b{display:block;color:var(--red);font-size:20px;letter-spacing:-.02em;font-weight:850}
.hm-recog-badge span{display:block;font-size:11px;color:#75767c;line-height:1.5;margin-top:4px}
.hm-award-photo{margin:0;border-radius:26px;overflow:hidden;box-shadow:0 40px 90px rgba(40,10,16,.2);border:1px solid rgba(0,0,0,.06);background:#fff}
.hm-award-ph{position:relative;aspect-ratio:16/11;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;text-align:center;color:#fff;background:radial-gradient(120% 90% at 50% 0%,#2b3040 0%,#171a22 46%,#0b0d12 100%)}
.hm-award-ph:before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(210,11,37,.16),transparent 45%),repeating-linear-gradient(90deg,transparent 0 90px,rgba(255,255,255,.025) 90px 91px)}
.hm-award-ph:after{content:"";position:absolute;left:50%;top:-38%;width:520px;height:520px;transform:translateX(-50%);background:radial-gradient(circle,rgba(255,214,150,.2),transparent 60%)}
.hm-award-flag{font-size:42px;position:relative;z-index:2;filter:drop-shadow(0 8px 24px rgba(255,190,80,.35))}
.hm-award-ph b{position:relative;z-index:2;font-size:24px;letter-spacing:-.03em}
.hm-award-ph em{position:relative;z-index:2;font-style:normal;font-size:13px;color:#c8ccd6}
.hm-ph-tag{position:absolute;right:14px;top:14px;z-index:3;font-size:10px;letter-spacing:.06em;color:#9aa0ad;border:1px dashed rgba(255,255,255,.3);border-radius:99px;padding:6px 10px}
.hm-award-photo figcaption{padding:16px 20px;display:grid;gap:3px;background:#fff}
.hm-award-photo figcaption b{font-size:14px;letter-spacing:-.02em}
.hm-award-photo figcaption span{font-size:11.5px;color:#77787d}

/* ---------- 드래그&드롭 탈취 데모 ---------- */
.hm-drag{display:grid;grid-template-columns:1fr auto 360px;gap:22px;align-items:stretch}
.hm-drag-source{background:#fff;border:1px solid var(--line);border-radius:24px;padding:20px;display:flex;flex-direction:column}
.hm-drag-src-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:14px}
.hm-drag-src-head b{font-size:14px;letter-spacing:-.02em}
.hm-drag-src-head span{font-size:11px;color:#8b8c92}
.hm-drag-items{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.hm-drag-app{position:relative;text-align:left;border:1px solid var(--line);background:linear-gradient(160deg,#fff,#faf7f8);border-radius:18px;padding:16px 16px 14px;cursor:grab;transition:.18s;touch-action:none;display:block}
.hm-drag-app:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(40,20,26,.1);border-color:rgba(210,11,37,.3)}
.hm-drag-app:active{cursor:grabbing}
.hm-drag-app.dragging{opacity:.45}
.hm-drag-app.used{opacity:.35;filter:grayscale(.7);pointer-events:none}
.hm-drag-app.used:after{content:"분석됨";position:absolute;right:12px;top:12px;font-size:9px;font-weight:900;color:var(--hm-green);background:rgba(47,212,139,.12);border-radius:6px;padding:3px 7px}
.hm-drag-ico{display:inline-grid;place-items:center;width:46px;height:46px;border-radius:12px;background:#111318;font-size:24px;margin-bottom:10px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)}
.hm-drag-app b{display:block;font-size:13.5px;letter-spacing:-.02em}
.hm-drag-app em{display:block;font-style:normal;font-family:var(--hm-mono);font-size:10px;color:#8b8c92;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hm-drag-badge{position:absolute;right:12px;top:12px;font-size:9px;font-weight:900;letter-spacing:.06em;color:#fff;background:var(--red);border-radius:6px;padding:3px 7px}
.hm-drag-badge.dark{background:#22252c}
.hm-drag-site .hm-drag-thumb{display:block;width:100%;height:70px;border-radius:10px;border:1px solid var(--line);background:#fff;padding:10px;margin-bottom:10px;position:relative;overflow:hidden}
.hm-drag-thumb i{display:block;height:6px;border-radius:99px;background:#ececef;margin-bottom:5px}
.hm-drag-thumb i.red{background:#f7d4d9}
.hm-drag-thumb i.w90{width:90%}.hm-drag-thumb i.w60{width:60%}.hm-drag-thumb i.w40{width:40%}
.hm-drag-dl{position:absolute;right:8px;bottom:8px;font-size:8px;font-weight:800;color:#fff;background:#3ddc84;border-radius:5px;padding:3px 6px}
.hm-drag-hint{margin-top:auto;padding-top:16px;font-size:12px;color:#9092a0;text-align:center}
.hm-drag-hint b{color:var(--red)}
.hm-drag-arrow{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#c9b4b8}
.hm-drag-flow{width:56px;height:2px;background:repeating-linear-gradient(90deg,var(--red) 0 8px,transparent 8px 16px);animation:hmDragFlow .8s linear infinite}
@keyframes hmDragFlow{to{background-position:16px 0}}
.hm-drag-arrow em{font-family:var(--hm-mono);font-size:10px;letter-spacing:.2em;color:#b0b2ba}
.hm-drag-target{position:relative;display:flex;align-items:center;justify-content:center;border-radius:24px;background:var(--hm-console);border:1px solid rgba(255,255,255,.08);padding:22px;transition:.2s}
.hm-drag-target.over{border-color:var(--red);box-shadow:0 0 0 3px rgba(210,11,37,.25) inset}
.hm-drag-phone{max-width:300px}
.hm-drag-phone .hm-phone-screen{min-height:440px;background:#0b0d11}
.hm-drag-idle{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:24px;color:#787c87}
.hm-drag-target-ring{width:66px;height:66px;border-radius:50%;border:2px dashed rgba(255,255,255,.25);display:grid;place-items:center;position:relative}
.hm-drag-target-ring:after{content:"↓";font-size:26px;color:#8a8f9b}
.hm-drag-idle b{color:#c3c7d0;font-size:14px}
.hm-drag-idle em{font-style:normal;font-size:11px}
.hm-drag-run{position:absolute;inset:0;display:flex;flex-direction:column;padding:16px 15px}
.hm-drag-run-head{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.hm-drag-run-pkg{font-family:var(--hm-mono);font-size:9.5px;color:#7d818c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hm-drag-run-scan{height:3px;border-radius:99px;background:#20242d;overflow:hidden;margin-bottom:14px}
.hm-drag-run-scan i{display:block;height:100%;width:35%;background:linear-gradient(90deg,transparent,var(--red),transparent);animation:hmScanX 1.1s linear infinite}
.hm-exfil-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;flex:1;overflow:hidden}
.hm-exfil-list li{display:flex;align-items:center;gap:8px;font-family:var(--hm-mono);font-size:10.5px;color:#c3c7d0;background:#0f1319;border:1px solid var(--hm-line-dark);border-radius:10px;padding:8px 10px;animation:hmSlideIn .4s ease}
.hm-exfil-list li .ex-i{font-size:14px}
.hm-exfil-list li b{font-weight:700;color:#e6e8ee;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hm-exfil-list li em{font-style:normal;color:#7d818c}
.hm-exfil-list li .ex-x{font-size:9px;font-weight:800;border-radius:5px;padding:3px 6px;background:rgba(255,81,105,.14);color:#ff5169}
.hm-drag-run-foot{margin-top:10px;font-size:9.5px;color:#7d818c;text-align:center}
.hm-drag-run-foot span{color:#ff5169;font-weight:800}
.hm-drag-run-foot em{font-style:normal}
.hm-drag-drop-badge{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.7);font-family:var(--hm-mono);font-size:26px;font-weight:800;letter-spacing:.2em;color:#ff5169;border:2px dashed #ff5169;border-radius:14px;padding:14px 26px;opacity:0;pointer-events:none;transition:.2s;background:rgba(10,12,16,.7)}
.hm-drag-target.over .hm-drag-drop-badge{opacity:1;transform:translate(-50%,-50%) scale(1)}

/* ---------- 대형 CTA → 워룸 ---------- */
.hm-warcta{position:relative;margin-top:30px;display:flex;align-items:center;gap:26px;border-radius:26px;overflow:hidden;padding:40px 44px;cursor:pointer;color:#fff;background:linear-gradient(115deg,#0d0f14 0%,#241019 62%,#4c0a17 100%);border:1px solid rgba(255,255,255,.08);transition:.25s}
.hm-warcta:hover{transform:translateY(-3px);box-shadow:0 34px 70px rgba(76,10,23,.4)}
.hm-warcta:focus-visible{outline:3px solid #ff5169;outline-offset:3px}
.hm-warcta-grid{position:absolute;inset:0;z-index:1;background:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:38px 38px;mask:radial-gradient(120% 120% at 90% 50%,#000,transparent 75%);pointer-events:none}
.hm-warcta-main{position:relative;z-index:2;flex:1}
.hm-warcta-kicker{font-family:var(--hm-mono);font-size:11px;letter-spacing:.2em;color:#ff8296}
.hm-warcta h3{font-size:clamp(24px,3vw,38px);line-height:1.15;letter-spacing:-.04em;margin:8px 0 10px;font-weight:850}
.hm-warcta p{margin:0;color:#c9ccd4;font-size:15px;line-height:1.6}
.hm-warcta p b{color:#fff}
.hm-warcta-cta{position:relative;z-index:2;flex:0 0 auto;display:inline-flex;align-items:center;gap:10px;font-weight:800;font-size:15px;background:var(--red);border-radius:99px;padding:16px 26px;box-shadow:0 16px 40px rgba(210,11,37,.4);white-space:nowrap}
.hm-warcta-cta i{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:rgba(255,255,255,.2);font-size:11px}
.hm-warcta:hover .hm-warcta-cta{background:#fff;color:var(--red)}

/* ---------- 솔루션 4열 + LAVAR X ---------- */
.solution-grid.sol-4{grid-template-columns:repeat(4,1fr)}
.solution-grid.sol-4 .solution-card{min-height:420px;padding:28px}
.solution-grid.sol-4 .solution-card h3{font-size:23px}
.solution-index{font-family:var(--hm-mono);font-size:11px;font-weight:800;letter-spacing:.05em;color:var(--red)}
.solution-visual{margin-top:auto;height:96px;border-radius:16px;background:linear-gradient(160deg,#f6f1f2,#efe7e9);position:relative;overflow:hidden}
.sol-shield{background:linear-gradient(165deg,#fff 0%,#fff5f6 100%);border-color:rgba(210,11,37,.28)}
.shield-visual{display:grid;place-items:center;background:radial-gradient(circle at 50% 40%,#241019,#0d0f14)}
.sol-shield-mark{font-size:40px;filter:drop-shadow(0 6px 20px rgba(255,80,105,.5));animation:hmShieldPulse 2.6s ease-in-out infinite}
@keyframes hmShieldPulse{50%{transform:scale(1.08)}}

/* ---------- CEO ---------- */
.hm-ceo-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:52px;align-items:start}
.hm-ceo-media{display:flex;flex-direction:column;gap:16px}
.hm-ceo-photo{margin:0;border-radius:24px;overflow:hidden;border:1px solid var(--line);background:#fff;box-shadow:var(--shadow)}
.hm-ceo-ph{aspect-ratio:4/4.4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:linear-gradient(160deg,#f5eff0,#e9e0e2);color:#a1959a}
.hm-ceo-ph span{font-size:52px;opacity:.5}
.hm-ceo-ph em{font-style:normal;font-size:11px;letter-spacing:.06em}
.hm-ceo-photo figcaption{padding:16px 20px;background:#fff}
.hm-ceo-photo figcaption b{font-size:18px;letter-spacing:-.02em}
.hm-ceo-photo figcaption span{display:block;font-size:12px;color:#77787d;margin-top:2px}
.hm-ceo-refs{background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px 20px}
.hm-ceo-ref-head{font-size:11px;font-weight:900;letter-spacing:.1em;color:var(--red);margin-bottom:12px}
.hm-ceo-ref-item{padding:11px 0;border-top:1px solid var(--line)}
.hm-ceo-ref-item:first-of-type{border-top:0;padding-top:0}
.hm-ceo-ref-item b{display:block;font-size:14px;letter-spacing:-.02em}
.hm-ceo-ref-item span{display:block;font-size:12px;color:#75767c;margin-top:3px;line-height:1.5}
.hm-ceo-copy h2{font-size:clamp(30px,3.6vw,50px);line-height:1.14;letter-spacing:-.05em;margin:12px 0 16px;font-weight:850}
.hm-ceo-lead{font-size:17px;color:#525358;line-height:1.75;margin:0 0 24px}
.hm-ceo-cred{list-style:none;margin:0 0 24px;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.hm-ceo-cred li{border:1px solid var(--line);border-radius:14px;padding:13px 15px;background:#fff}
.hm-ceo-cred span{display:block;font-size:10px;font-weight:900;letter-spacing:.08em;color:var(--red);margin-bottom:5px}
.hm-ceo-cred b{font-size:13.5px;letter-spacing:-.02em;line-height:1.4}
.hm-ceo-quote{margin:0;border-left:3px solid var(--red);padding:4px 0 4px 22px;font-size:19px;line-height:1.6;letter-spacing:-.02em;color:#2c2d31}
.hm-ceo-quote b{color:var(--red)}
.hm-ceo-quote cite{display:block;font-style:normal;font-size:13px;color:#8b8c92;margin-top:10px}

/* ---------- HYPER CLOUD V3 ---------- */
.hm-hc-wrap{background:radial-gradient(120% 90% at 80% 0%,#0f1626 0%,#080b13 55%,#05060b 100%);color:#fff;padding:110px 0;position:relative;overflow:hidden}
.hm-hc-wrap .section-title.inv h2{color:#fff}
.hm-hc-wrap .section-kicker{color:#4cc3ff}
.hm-hc-wrap .section-title.inv p{color:#aab0c0}
.hm-hc{display:grid;grid-template-columns:190px 1fr;gap:20px;align-items:stretch;margin-bottom:24px}
.hm-hc-tray{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.09);border-radius:20px;padding:16px;display:flex;flex-direction:column;gap:10px}
.hm-hc-tray-head{font-size:11px;font-weight:900;letter-spacing:.08em;color:#8891a5}
.hm-hc-chip{display:flex;align-items:center;gap:9px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);color:#dfe3ec;border-radius:12px;padding:11px 13px;font-size:13px;font-weight:700;cursor:grab;transition:.18s;touch-action:none}
.hm-hc-chip span{font-size:17px}
.hm-hc-chip:hover{border-color:#4cc3ff;background:rgba(76,195,255,.1);transform:translateX(3px)}
.hm-hc-chip:active{cursor:grabbing}
.hm-hc-chip.used{opacity:.4;pointer-events:none}
.hm-hc-tray-note{margin-top:auto;font-size:10px;color:#69708a;line-height:1.5}
.hm-hc-canvas-wrap{position:relative;min-height:440px;border:1px solid rgba(255,255,255,.09);border-radius:20px;overflow:hidden;background:radial-gradient(circle at 50% 50%,#0c1220 0%,#070a11 70%)}
.hm-hc-canvas-wrap.over{border-color:#4cc3ff;box-shadow:inset 0 0 0 2px rgba(76,195,255,.35)}
.hm-hc-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.hm-hc-core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;width:118px;height:118px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center;color:#9fb0c8;border:2px dashed rgba(120,150,190,.4);background:rgba(10,16,28,.6);transition:.3s;pointer-events:none}
.hm-hc-core span{font-size:26px;color:#4cc3ff}
.hm-hc-core em{font-style:normal;font-size:10px;line-height:1.4}
.hm-hc-canvas-wrap.active .hm-hc-core{width:70px;height:70px;border-style:solid;border-color:rgba(76,195,255,.6);box-shadow:0 0 40px rgba(76,195,255,.4)}
.hm-hc-canvas-wrap.active .hm-hc-core em{display:none}
.hm-hc-canvas-wrap.active .hm-hc-core span{font-size:20px}
/* display:grid 가 브라우저 기본 [hidden] 을 이기던 문제 */
.hm-hc-readout[hidden]{display:none}
.hm-hc-readout{position:absolute;left:16px;bottom:16px;z-index:3;display:grid;grid-template-columns:repeat(2,auto);gap:8px 22px;background:rgba(6,9,15,.82);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:14px 18px;backdrop-filter:blur(6px)}
.hm-hc-readout div span{display:block;font-size:9.5px;color:#818aa0;letter-spacing:.05em}
.hm-hc-readout div b{font-family:var(--hm-mono);font-size:19px;color:#fff}
.hm-hc-bench{display:grid;grid-template-columns:repeat(3,1fr) 1.2fr;gap:16px}
.hm-hc-bench-stat{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.09);border-radius:18px;padding:22px 22px 18px;position:relative}
.hm-hc-bench-stat.rank1{border-color:rgba(255,45,75,.4);background:linear-gradient(160deg,rgba(60,15,25,.5),rgba(255,255,255,.02))}
.hm-hc-bench-stat>b{display:block;font-size:clamp(26px,2.6vw,38px);color:#fff;font-weight:850;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.hm-hc-bench-stat>b .unit{font-size:16px;color:#4cc3ff;margin-left:2px;letter-spacing:0}
.hm-hc-bench-stat .hm-bench-label{color:#cbd0da}
.hm-hc-bench-stat em{display:block;font-style:normal;font-size:10.5px;color:#7f889c;margin-top:5px}
.hm-hc-bench-vs{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.09);border-radius:18px;padding:20px 22px;display:flex;flex-direction:column;justify-content:center;gap:12px}
.hm-vs-row{display:grid;grid-template-columns:82px 1fr;gap:12px;align-items:center;font-size:12px;color:#cbd0da}
.hm-vs-row.muted{color:#7f889c}
.hm-vs-bar{position:relative;height:26px;border-radius:8px;background:linear-gradient(90deg,#ff2d4b,#8c0618);width:var(--w);min-width:44px;display:flex;align-items:center;transition:width 1.1s cubic-bezier(.2,.7,.3,1)}
.hm-vs-bar.sm{background:linear-gradient(90deg,#3a3e48,#23262e)}
.hm-vs-bar em{font-style:normal;position:absolute;right:10px;font-family:var(--hm-mono);font-size:11px;font-weight:700;color:#fff}
.hm-vs-bar.sm em{right:-42px;color:#9aa0ad}
.hm-vs-note{font-size:10px;color:#69708a;margin-top:2px}
.hm-hc-bench-stat .hm-rank{position:absolute;right:14px;top:14px}

/* ---------- 공공·수사 협력 ---------- */
.hm-pub-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.hm-pub-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px;transition:.22s;display:flex;flex-direction:column}
.hm-pub-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.hm-pub-lead{grid-column:span 2;background:linear-gradient(125deg,#16181d,#2a121a);color:#fff;border-color:rgba(255,255,255,.08)}
.hm-pub-lead h3{font-size:26px;letter-spacing:-.03em;margin:8px 0 12px}
.hm-pub-lead p{color:#c4c7cf;font-size:14.5px;line-height:1.65}
.hm-pub-tag{display:inline-block;font-size:10px;font-weight:900;letter-spacing:.08em;color:#ff8296;background:rgba(255,81,105,.14);border:1px solid rgba(255,81,105,.3);border-radius:99px;padding:5px 11px;width:max-content}
.hm-pub-ico{font-size:26px;margin-bottom:10px}
.hm-pub-card h3{font-size:18px;letter-spacing:-.03em;margin:0 0 8px}
.hm-pub-card p{color:#5f6167;font-size:13px;line-height:1.6;margin:0}
.hm-pub-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.hm-pub-meta span{font-family:var(--hm-mono);font-size:10px;color:#8b8c92;border:1px solid var(--line);border-radius:99px;padding:4px 9px}
.hm-pub-lead .hm-pub-meta span{color:#c4c7cf;border-color:rgba(255,255,255,.18)}
.hm-pub-slot{border-style:dashed}
.hm-slot-shot{margin-top:14px;border:1px dashed #d9cfd1;border-radius:14px;background:linear-gradient(160deg,#faf6f7,#f2ecee);aspect-ratio:16/8;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:#a9938f}
.hm-slot-shot span{font-size:24px;opacity:.6}
.hm-slot-shot em{font-style:normal;font-size:10.5px;letter-spacing:.04em}

/* ---------- C2 서버 내부 탐색 ---------- */
#c2-explorer .section-title.inv h2{color:#fff}
#c2-explorer .section-kicker{color:#ff5169}
.hm-c2x{display:grid;grid-template-columns:1.5fr .5fr;gap:22px;align-items:start}
.hm-c2x-frame{border-radius:22px;overflow:hidden;background:var(--hm-console);border:1px solid rgba(255,255,255,.08);box-shadow:0 40px 90px rgba(0,0,0,.4)}
.hm-c2x-stage{position:relative;height:492px;overflow:hidden;background:radial-gradient(120% 100% at 50% 0%,#18202c,#0c1017)}
.hm-c2x-world{position:absolute;inset:0;padding:22px;display:grid;grid-template-columns:1.25fr 1fr;grid-template-rows:1.15fr 1.15fr 1fr;gap:14px;transition:transform .7s cubic-bezier(.7,0,.2,1);transform-origin:0 0}
.hm-c2x-tile{position:relative;text-align:left;border:1px solid rgba(255,255,255,.22);background:linear-gradient(160deg,rgba(255,255,255,.13),rgba(255,255,255,.05));border-radius:14px;padding:15px 16px;overflow:hidden;transition:.2s;color:#dfe4ec;box-shadow:0 6px 20px rgba(0,0,0,.3)}
.hm-c2x-tile:hover{border-color:#ff5169;background:linear-gradient(160deg,rgba(255,81,105,.18),rgba(255,255,255,.06));box-shadow:0 0 0 1px rgba(255,81,105,.5),0 10px 26px rgba(0,0,0,.4);transform:translateY(-2px)}
.hm-c2x-tile.t-dash{grid-row:span 2}
.hm-c2x-tt{font-family:var(--hm-mono);font-size:12px;letter-spacing:.12em;color:#ff8fa0;font-weight:800;display:block;margin-bottom:10px}
.hm-c2x-mini{display:flex;flex-direction:column;gap:12px}
.hm-c2x-kpi{display:flex;align-items:baseline;gap:8px}
.hm-c2x-kpi b{font-family:var(--hm-mono);font-size:30px;color:#fff;font-weight:800}
.hm-c2x-kpi.red b{color:#ff5169}
.hm-c2x-kpi em{font-style:normal;font-size:12px;color:#9aa3b2}
.hm-c2x-bars{display:flex;align-items:flex-end;gap:6px;height:60px;margin-top:auto}
.hm-c2x-bars i{flex:1;height:var(--h);border-radius:3px 3px 0 0;background:linear-gradient(180deg,#ff5169,#7c0616)}
.hm-c2x-rows{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.hm-c2x-rows li{display:flex;justify-content:space-between;font-family:var(--hm-mono);font-size:13px;padding:7px 10px;border-radius:8px;background:rgba(0,0,0,.34)}
.hm-c2x-rows li span{color:#9fd8ff}
.hm-c2x-rows li i{font-style:normal;color:#98a2b1}
.hm-c2x-files{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.hm-c2x-files span{font-size:13px;color:#dfe4ec;background:rgba(0,0,0,.34);border-radius:8px;padding:9px 11px}
.hm-c2x-blast{display:flex;flex-direction:column;gap:4px}
.hm-c2x-blast b{color:#fff;font-size:16px}
.hm-c2x-blast em{font-style:normal;font-size:12.5px;color:#9aa3b2}
.hm-c2x-send{margin-top:9px;width:max-content;font-family:var(--hm-mono);font-size:12.5px;font-weight:800;color:#fff;background:var(--red);border-radius:7px;padding:6px 12px}
.hm-c2x-money{display:flex;flex-direction:column;gap:7px;font-family:var(--hm-mono);font-size:14px;color:#ffde7a}
.hm-c2x-world.zoomed .hm-c2x-tile{opacity:.28}
.hm-c2x-world.zoomed .hm-c2x-tile.focus{opacity:1}
.hm-c2x-scan{position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0 4px,rgba(0,0,0,.07) 4px 5px);z-index:5}
.hm-c2x-scan:after{content:"";position:absolute;left:0;right:0;height:120px;top:-120px;background:linear-gradient(180deg,transparent,rgba(255,81,105,.08),transparent);animation:hmC2Sweep 5s linear infinite}
@keyframes hmC2Sweep{to{transform:translateY(700px)}}
.hm-c2x-side{background:#14161c;border:1px solid rgba(255,255,255,.09);border-radius:20px;padding:22px;color:#c3c7d0;position:sticky;top:100px}
.hm-c2x-crumb{font-family:var(--hm-mono);font-size:12.5px;color:#ff5169;letter-spacing:.05em;margin-bottom:10px}
.hm-c2x-desc{font-size:14.5px;line-height:1.7;color:#c2c9d6;min-height:66px;margin:0 0 16px}
.hm-c2x-controls{display:flex;flex-direction:column;gap:10px}
.hm-c2x-controls [data-c2x-back]{align-self:flex-start;border:1px solid rgba(255,255,255,.2);background:none;color:#fff;border-radius:99px;padding:8px 16px;font-size:12px;font-weight:700}
.hm-c2x-menu{display:grid;gap:6px}
.hm-c2x-menu button{text-align:left;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.06);color:#dfe4ec;border-radius:11px;padding:12px 15px;font-size:14px;font-weight:700;transition:.18s}
.hm-c2x-menu button:hover,.hm-c2x-menu button.active{border-color:#ff5169;background:rgba(255,81,105,.1);color:#fff}
.hm-c2x-note{margin-top:16px;font-size:11.5px;color:#7d818c;line-height:1.6;border-top:1px solid rgba(255,255,255,.09);padding-top:14px}

/* ---------- 글로벌 ---------- */
.hm-global-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.hm-global-card{background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;display:flex;flex-direction:column;transition:.22s}
.hm-global-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.hm-global-card.wide{grid-column:span 1;grid-row:span 1}
.hm-global-shot{aspect-ratio:16/9;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:#fff;background:radial-gradient(120% 100% at 30% 0%,#2b3040,#0b0d12);position:relative}
.hm-global-shot span{font-size:38px;filter:drop-shadow(0 4px 14px rgba(0,0,0,.4))}
.hm-global-shot em{font-style:normal;font-size:10.5px;color:#9aa0ad;letter-spacing:.04em}
.hm-global-shot.sm{aspect-ratio:16/9} /* (수정2 ⑧) 카드 3장 사진 영역 높이 통일 */
.hm-global-body{padding:20px 22px 22px;display:flex;flex-direction:column;flex:1}
.hm-global-tag{font-size:10px;font-weight:900;letter-spacing:.08em;color:var(--red);margin-bottom:8px}
.hm-global-card h3{font-size:19px;letter-spacing:-.03em;margin:0 0 8px}
.hm-global-card p{font-size:13px;color:#5f6167;line-height:1.6;margin:0}
.hm-global-person{display:flex;gap:11px;align-items:center;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.hm-global-person span{width:42px;height:42px;border-radius:50%;background:linear-gradient(160deg,#f5eff0,#e4dadd);display:grid;place-items:center;font-size:19px;flex:0 0 auto}
.hm-global-person b{display:block;font-size:13px}
.hm-global-person em{display:block;font-style:normal;font-size:10.5px;color:#8b8c92;margin-top:1px}
.hm-global-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:14px}
.hm-global-meta span{font-family:var(--hm-mono);font-size:10px;color:#8b8c92;border:1px solid var(--line);border-radius:99px;padding:4px 9px}
.hm-global-card.hm-pub-slot{padding:22px}

/* ---------- 수상·특허·인증 ---------- */
.hm-cred-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.hm-cred-col{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:24px}
.hm-cred-h{font-size:15px;font-weight:850;letter-spacing:-.02em;margin-bottom:16px;color:#fff}
.hm-cred-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.hm-cred-list li{border-top:1px solid rgba(255,255,255,.08);padding-top:12px}
.hm-cred-list li:first-child{border-top:0;padding-top:0}
.hm-cred-list b{display:block;font-size:14px;letter-spacing:-.02em;color:#fff}
.hm-cred-list span{display:block;font-size:12px;color:#9aa0ad;margin-top:3px;line-height:1.5}
.hm-cred-list a.hm-cred-a{display:block;text-decoration:none;position:relative;padding-right:16px;transition:.18s}
.hm-cred-list a.hm-cred-a:after{content:"↗";position:absolute;right:0;top:1px;font-size:11px;color:#ff8296;opacity:.6;transition:.18s}
.hm-cred-list a.hm-cred-a:hover:after{opacity:1;transform:translate(2px,-2px)}
.hm-cred-list a.hm-cred-a:hover b{color:#ffc7d0}
.hm-cred-band{margin-top:22px;display:flex;gap:20px;align-items:center;background:linear-gradient(120deg,#1a1d24,#2a121a);border:1px solid rgba(255,255,255,.09);border-radius:20px;padding:24px 28px;flex-wrap:wrap}
.hm-cred-band b{display:block;font-size:18px;letter-spacing:-.02em;color:#fff}
.hm-cred-band span{display:block;font-size:13px;color:#aab0bd;margin-top:4px;max-width:640px}
.hm-cred-band .btn{margin-left:auto}

/* ---------- WAR ROOM 풀스크린 오버레이 ---------- */
.hm-warroom{position:fixed;inset:0;z-index:5000;background:radial-gradient(120% 100% at 70% 0%,#0d1220,#06070c 70%);color:#e6e8ee;display:flex;flex-direction:column;opacity:0;visibility:hidden;transition:opacity .35s ease}
.hm-warroom.open{opacity:1;visibility:visible}
body.warroom-open{overflow:hidden}
.hm-warroom-top{display:flex;align-items:center;gap:16px;padding:16px 26px;border-bottom:1px solid rgba(255,255,255,.09);background:rgba(6,8,13,.7);flex:0 0 auto}
.hm-warroom-brand{display:flex;align-items:center;gap:10px;font-family:var(--hm-mono);font-size:13px;letter-spacing:.05em;color:#aeb2bc}
.hm-warroom-brand .hm-pulse{color:#ff5169}
.hm-warroom-brand b{color:#fff;letter-spacing:.12em}
.hm-warroom-brand em{font-style:normal;color:#6d717c}
.hm-warroom-clock{margin-left:auto;font-family:var(--hm-mono);font-size:14px;color:#4cc3ff;letter-spacing:.1em}
.hm-warroom-close{border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.04);color:#fff;border-radius:99px;padding:9px 16px;font-size:12px;font-weight:700;transition:.18s}
.hm-warroom-close:hover{border-color:#ff5169;color:#ff5169}
.hm-warroom-body{flex:1;display:grid;grid-template-columns:320px 1fr 300px;gap:18px;padding:20px 26px 26px;overflow:auto;min-height:0}
.hm-wr-col{display:flex;flex-direction:column;gap:14px;min-height:0}
.hm-wr-head{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:800;letter-spacing:.02em}
.hm-wr-head b{color:#fff}
.hm-wr-head>span{font-family:var(--hm-mono);font-size:11px;color:#ff5169}
.hm-wr-head.sm{font-size:11px}
.hm-wr-head.sm b{color:#c3c7d0}
/* 좌: suspects */
.hm-wr-suspects{display:grid;gap:10px}
.hm-wr-suspect{display:flex;gap:12px;align-items:center;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.09);border-radius:14px;padding:12px;position:relative;transition:.2s}
.hm-wr-suspect.hot{border-color:#ff5169;box-shadow:0 0 0 1px rgba(255,81,105,.4)}
.hm-wr-face{width:52px;height:52px;border-radius:12px;background:linear-gradient(160deg,#20242e,#12151c);display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:22px;color:#66707f;flex:0 0 auto;position:relative;overflow:hidden}
.hm-wr-face em{font-style:normal;font-size:8px;letter-spacing:.04em;color:#586074;position:absolute;bottom:4px}
.hm-wr-info{flex:1;min-width:0}
.hm-wr-info b{display:block;font-family:var(--hm-mono);font-size:13px;color:#fff}
.hm-wr-geo{display:flex;align-items:center;gap:5px;font-size:11px;color:#ff8296;margin-top:2px}
.hm-wr-geo i{font-style:normal}
.hm-wr-info>i{display:block;font-style:normal;font-size:10px;color:#7d818c;margin-top:2px}
.hm-wr-live{position:absolute;right:10px;top:10px;font-family:var(--hm-mono);font-size:8px;font-weight:800;letter-spacing:.08em;color:#2fd48b;background:rgba(47,212,139,.12);border-radius:5px;padding:3px 6px}
.hm-wr-suspect.hot .hm-wr-live{color:#ff5169;background:rgba(255,81,105,.14)}
.hm-wr-apps{margin-top:auto}
.hm-wr-app-icons{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px}
.hm-wr-app{display:flex;align-items:center;gap:5px;font-size:11px;color:#c3c7d0;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);border-radius:99px;padding:6px 11px}
.hm-wr-app i{font-style:normal;font-size:14px}
/* 중: center */
.hm-wr-center{min-width:0}
.hm-wr-map{position:relative;height:250px;border:1px solid rgba(255,255,255,.09);border-radius:16px;overflow:hidden;background:radial-gradient(circle at 70% 40%,#0d1524,#070a11);flex:0 0 auto}
.hm-wr-map canvas{position:absolute;inset:0;width:100%;height:100%}
.hm-wr-map-label{position:absolute;left:14px;top:12px;z-index:2;font-size:11px;font-weight:700;color:#ff8296;display:flex;align-items:center;gap:6px}
.hm-wr-map-label i{font-style:normal}
.hm-wr-capture{flex:0 0 auto}
.hm-wr-shots{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:8px}
.hm-wr-shot{aspect-ratio:16/10;border:1px dashed rgba(255,255,255,.18);border-radius:12px;background:rgba(255,255,255,.03);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#66707f}
.hm-wr-shot span{font-size:20px;opacity:.6}
.hm-wr-shot em{font-style:normal;font-size:9.5px}
.hm-wr-cmd{flex:1;display:flex;flex-direction:column;min-height:0}
.hm-wr-cmd-btns{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:8px 0}
.hm-wr-cmd-btns button{text-align:left;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03);border-radius:11px;padding:10px 12px;color:#c3c7d0;transition:.18s;display:grid;gap:2px}
.hm-wr-cmd-btns button:hover{border-color:#ff5169;background:rgba(255,81,105,.08)}
.hm-wr-cmd-btns button.running{border-color:#ff5169;background:rgba(255,81,105,.12)}
.hm-wr-cmd-btns button.done{border-color:rgba(47,212,139,.4)}
.hm-wr-cmd-btns button.done b:after{content:" ✓";color:#2fd48b}
.hm-wr-cmd-btns b{color:#fff;font-size:12px;letter-spacing:-.01em}
.hm-wr-cmd-btns span{font-family:var(--hm-mono);font-size:9px;color:#7d818c}
.hm-wr-term{flex:1;margin:0;background:#080a0e;border:1px solid rgba(255,255,255,.09);border-radius:12px;padding:14px 16px;font-family:var(--hm-mono);font-size:11.5px;line-height:1.9;color:#c9cdd6;overflow:auto;white-space:pre-wrap;word-break:break-all;min-height:120px}
/* 우: stats */
.hm-wr-stats{gap:11px}
.hm-wr-stat{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.09);border-radius:14px;padding:14px 16px}
.hm-wr-stat.red{border-color:rgba(255,81,105,.35)}
.hm-wr-stat span{display:block;font-size:10.5px;color:#818aa0;letter-spacing:.04em}
.hm-wr-stat b{display:block;font-family:var(--hm-mono);font-size:20px;color:#fff;margin-top:4px;display:flex;align-items:center;gap:6px}
.hm-wr-stat.red b{color:#ff5169}
.hm-wr-stat b i{font-style:normal}
.hm-wr-stat em{display:block;font-style:normal;font-size:10px;color:#7d818c;margin-top:4px}
.hm-wr-gauge{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.09);border-radius:14px;padding:14px 16px}
.hm-wr-gauge-h{font-size:11px;color:#c3c7d0;font-weight:700;margin-bottom:10px}
.hm-wr-gauge-bar{height:8px;border-radius:99px;background:#20242d;overflow:hidden}
.hm-wr-gauge-bar i{display:block;height:100%;width:var(--p,0%);border-radius:inherit;background:linear-gradient(90deg,#8c071b,#ff5169);transition:width .6s ease}
.hm-wr-gauge span{display:block;font-family:var(--hm-mono);font-size:10px;color:#8b8f9a;margin-top:8px}
.hm-wr-cta{margin-top:auto}

/* ---------- v4 반응형 ---------- */
@media (max-width:1180px){
  .hm-recog-grid{grid-template-columns:1fr;gap:36px}
  .hm-drag{grid-template-columns:1fr;gap:16px}
  .hm-drag-arrow{flex-direction:row;padding:4px 0}
  .hm-drag-flow{width:80px}
  .hm-drag-target{max-width:420px;margin:0 auto;width:100%}
  .solution-grid.sol-4{grid-template-columns:1fr 1fr}
  .hm-ceo-grid{grid-template-columns:1fr;gap:34px}
  .hm-ceo-media{flex-direction:row;gap:16px}
  .hm-ceo-photo{flex:0 0 46%}
  .hm-ceo-refs{flex:1}
  .hm-hc{grid-template-columns:1fr}
  .hm-hc-tray{flex-direction:row;flex-wrap:wrap;align-items:center}
  .hm-hc-tray-head{width:100%}
  .hm-hc-tray-note{width:100%;margin-top:4px}
  .hm-hc-bench{grid-template-columns:1fr 1fr}
  .hm-pub-grid{grid-template-columns:1fr 1fr}
  .hm-pub-lead{grid-column:1/-1}
  .hm-c2x{grid-template-columns:1fr}
  .hm-c2x-side{position:static}
  .hm-global-grid{grid-template-columns:1fr 1fr}
  .hm-cred-grid{grid-template-columns:1fr}
  .hm-warroom-body{grid-template-columns:1fr;overflow:auto}
  .hm-wr-cmd-btns{grid-template-columns:1fr 1fr}
}
@media (max-width:780px){
  .hm-wm-inner{padding:150px 0 70px}
  .hm-wm-actions .btn{flex:1;min-width:44%}
  .hm-wm-stage-label{display:none}
  .hm-recog{padding:64px 0}
  .hm-recog-badges{flex-direction:column}
  .hm-drag-items{grid-template-columns:1fr}
  .hm-warcta{flex-direction:column;align-items:flex-start;padding:28px 24px}
  .hm-warcta-cta{width:100%;justify-content:center}
  .solution-grid.sol-4{grid-template-columns:1fr}
  .hm-ceo-media{flex-direction:column}
  .hm-ceo-cred{grid-template-columns:1fr}
  .hm-hc-bench{grid-template-columns:1fr}
  .hm-hc-canvas-wrap{min-height:360px}
  .hm-pub-grid{grid-template-columns:1fr}
  .hm-pub-lead{grid-column:auto}
  .hm-c2x-stage{height:380px}
  .hm-c2x-world{grid-template-columns:1fr;grid-auto-rows:minmax(120px,1fr);grid-template-rows:none}
  .hm-c2x-tile.t-dash{grid-row:auto}
  .hm-global-grid{grid-template-columns:1fr}
  .hm-cred-band{flex-direction:column;align-items:flex-start}
  .hm-cred-band .btn{margin-left:0}
  .hm-warroom-top{padding:12px 16px;flex-wrap:wrap}
  .hm-warroom-clock{order:3;width:100%;margin-left:0}
  .hm-warroom-body{padding:14px 16px}
  .hm-wr-cmd-btns{grid-template-columns:1fr 1fr}
  .hm-wr-shots{grid-template-columns:1fr 1fr 1fr}
}

/* =========================================================
   v4.2 추가 — 표창 협력카드 · SOS 스트립 · 리플레이 리얼리즘 ·
   솔루션 링크 · OUTCOME 지표
   ========================================================= */
/* 표창 밴드: 수사 공조 카드 */
.hm-recog-coop{display:flex;gap:14px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px 18px;margin-top:14px;position:relative}
.hm-recog-coop-ico{font-size:22px;line-height:1;margin-top:2px}
.hm-recog-coop b{display:block;font-size:14px;letter-spacing:-.02em}
.hm-recog-coop span{display:block;font-size:12px;color:#75767c;line-height:1.6;margin-top:4px;max-width:420px}
.hm-recog-coop em{font-style:normal;font-size:10px;font-weight:800;color:var(--red);border:1px solid rgba(210,11,37,.3);border-radius:99px;padding:4px 10px;white-space:nowrap;margin-left:auto}
.hm-recog .hm-link-red{display:inline-block;margin-top:18px}

/* 긴급 대응 SOS 스트립 */
.hm-sos{display:flex;gap:20px;align-items:center;flex-wrap:wrap;background:#1c1013;border:1px solid rgba(210,11,37,.45);border-radius:18px;padding:18px 22px;margin:0 0 26px;color:#fff;box-shadow:0 14px 40px rgba(210,11,37,.12)}
.hm-sos>b{font-size:15px;letter-spacing:-.02em;white-space:nowrap}
.hm-sos ol{list-style:none;display:flex;gap:18px;flex-wrap:wrap;margin:0;padding:0;flex:1;min-width:280px}
.hm-sos li{display:flex;gap:8px;align-items:center;font-size:12.5px;color:#e6dfe1;line-height:1.45}
.hm-sos li i{font-style:normal;flex:none;width:20px;height:20px;border-radius:50%;background:var(--red);color:#fff;font-size:11px;font-weight:800;display:grid;place-items:center}
.hm-sos .btn{white-space:nowrap}
@media(max-width:760px){.hm-sos{gap:12px}.hm-sos ol{flex-direction:column;gap:8px}}

/* 채팅 리얼리즘: 타임스탬프 · 읽음 · 사진 · 유출 미리보기 */
.hm-msg-t{display:block;font-size:8.5px;color:#9a9ca3;margin-top:4px;text-align:right}
.hm-msg-t i{font-style:normal;color:#f2b544;margin-right:5px;font-weight:700}
.hm-bubble.threat .hm-msg-t{color:#8d8f99}
.hm-bubble.photo{padding:6px;background:#fff}
.hm-photo-blur{display:block;width:158px;height:100px;border-radius:11px;position:relative;overflow:hidden;background:
  radial-gradient(60% 70% at 30% 35%,#e9c9cf 0%,transparent 60%),
  radial-gradient(50% 60% at 70% 60%,#d3b6c4 0%,transparent 65%),
  linear-gradient(135deg,#c9b3bb 0%,#8d7a85 100%)}
.hm-photo-blur i{position:absolute;inset:0;backdrop-filter:blur(7px);background:rgba(255,255,255,.12)}
.hm-photo-blur em{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-style:normal;font-size:9px;font-weight:700;color:#fff;background:rgba(20,16,18,.55);border-radius:99px;padding:4px 9px;white-space:nowrap}
.hm-leak{display:grid;gap:3px;margin:8px 0;background:rgba(255,255,255,.07);border:1px dashed rgba(255,130,150,.4);border-radius:10px;padding:8px 10px}
.hm-leak i{font-style:normal;font-size:10px;color:#ffc7d0;font-family:var(--hm-mono)}

/* 분석 패널: 스텝별 투입 솔루션 링크 */
.hm-step-sol{display:inline-block;margin-top:7px;font-size:10.5px;font-weight:800;color:var(--red);text-decoration:none;border:1px solid rgba(210,11,37,.28);border-radius:99px;padding:5px 11px;background:#fff;transition:.2s}
.hm-step-sol:hover{background:var(--red);color:#fff}
.hm-analysis-steps li:not(.on) .hm-step-sol{pointer-events:none}

/* 아웃라인 버튼 (리플레이 컨트롤) */
.hm-btn-outline{display:inline-flex;align-items:center;gap:6px;border:1.5px solid #111;border-radius:99px;padding:12px 20px;font-size:13px;font-weight:800;color:#111;text-decoration:none;transition:.2s;background:#fff}
.hm-btn-outline:hover{background:#111;color:#fff}

/* OUTCOME — 고객만족도 · 해결률 */
.hm-outcome-wrap{background:linear-gradient(180deg,#fff 0%,#fbf4f5 100%)}
.hm-outcome-head{max-width:640px;margin-bottom:34px}
.hm-outcome-head h2{font-size:clamp(28px,3.2vw,44px);line-height:1.18;letter-spacing:-.05em;margin:14px 0 14px;font-weight:850}
.hm-outcome-head p{color:#5c5e64;font-size:15.5px;margin:0}
.hm-outcome-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.hm-outcome-stat{background:#fff;border:1px solid var(--line);border-radius:20px;padding:26px 24px;box-shadow:var(--shadow)}
.hm-outcome-stat b{display:block;font-size:clamp(30px,3vw,44px);letter-spacing:-.04em;color:var(--red);font-weight:850;font-variant-numeric:tabular-nums}
.hm-outcome-stat b .unit{font-size:.55em;font-weight:800;margin-left:2px}
.hm-outcome-stat>span{display:block;font-size:14px;font-weight:800;margin-top:8px;color:var(--ink)}
.hm-outcome-stat em{display:block;font-style:normal;font-size:11.5px;color:#8b8c92;margin-top:4px}
@media(max-width:900px){.hm-outcome-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.hm-outcome-grid{grid-template-columns:1fr 1fr;gap:10px}.hm-outcome-stat{padding:18px 16px}}

/* =========================================================
   BLUEPRINT V2 반영 — 긴급 바 · 패턴 매칭 엔진 · 시뮬레이터 ·
   ATLAS 포털 · 벤치마크 · 다이얼로그
   ========================================================= */
/* 전역 긴급 밴드 (헤더 하단 고정) — 확대·강조판 */
@keyframes hmUrgPulse{0%{box-shadow:0 0 0 0 rgba(255,81,105,.5)}70%{box-shadow:0 0 0 9px rgba(255,81,105,0)}100%{box-shadow:0 0 0 0 rgba(255,81,105,0)}}
.hm-urgent{position:fixed;top:92px;left:0;right:0;z-index:950;color:#fff;transition:top .25s ease;
  background:linear-gradient(90deg,#8c071b 0%,var(--red) 46%,#ec1b35 100%);
  border-bottom:2px solid rgba(255,255,255,.16);box-shadow:0 14px 34px rgba(150,8,24,.38);
  animation:hmUrgBand 2.6s ease-in-out infinite}
@keyframes hmUrgBand{0%,100%{box-shadow:0 12px 30px rgba(150,8,24,.32)}50%{box-shadow:0 16px 46px rgba(210,11,37,.6)}}
.hm-urgent:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.16) 50%,transparent 80%);background-size:240% 100%;animation:hmUrgSheen 5s linear infinite}
@keyframes hmUrgSheen{0%{background-position:130% 0}100%{background-position:-130% 0}}
.site-header.scrolled + .hm-urgent{top:76px}
.hm-urgent-in{position:relative;display:flex;align-items:center;gap:16px;padding:14px 0}
.hm-urgent-siren{flex:none;font-size:27px;line-height:1;filter:drop-shadow(0 0 10px rgba(255,196,205,.55));animation:hmSiren 1.1s ease-in-out infinite;transform-origin:50% 60%}
@keyframes hmSiren{0%,100%{transform:rotate(-10deg) scale(1)}50%{transform:rotate(10deg) scale(1.14)}}
.hm-urgent-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.hm-urgent-txt b{font-size:20px;font-weight:900;letter-spacing:-.02em;line-height:1.14;text-shadow:0 2px 8px rgba(80,0,10,.32)}
.hm-urgent-sub{color:rgba(255,255,255,.94);font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hm-urgent-btn{margin-left:auto;flex:none;border:0;border-radius:99px;background:#fff;color:var(--red);font-weight:900;font-size:15px;padding:13px 26px;white-space:nowrap;box-shadow:0 8px 22px rgba(0,0,0,.22);transition:transform .18s ease,box-shadow .18s ease;display:inline-flex;align-items:center;gap:8px;cursor:pointer}
.hm-urgent-btn i{font-style:normal;transition:transform .18s ease}
.hm-urgent-btn:hover{transform:translateY(-1px);box-shadow:0 12px 30px rgba(0,0,0,.3)}
.hm-urgent-btn:hover i{transform:translate(3px,-3px)}
.hm-urgent-tel{flex:none;display:flex;flex-direction:column;text-align:right;text-decoration:none;line-height:1.15}
.hm-urgent-tel span{font-size:10px;font-weight:800;letter-spacing:.1em;color:rgba(255,255,255,.82)}
.hm-urgent-tel b{font-family:var(--hm-mono);font-size:18px;font-weight:800;color:#fff}
.hm-urgent-tel:hover b{text-decoration:underline}
@media(prefers-reduced-motion:reduce){.hm-urgent,.hm-urgent-siren,.hm-urgent:before,.hm-wm-scroll i:after{animation:none}}
@media(max-width:760px){
  .hm-urgent{top:76px}
  .hm-urgent-in{gap:11px;padding:11px 0}
  .hm-urgent-siren{font-size:22px}
  .hm-urgent-txt b{font-size:15.5px}
  .hm-urgent-sub{font-size:11px}
  .hm-urgent-btn{font-size:13px;padding:11px 17px}
  .hm-urgent-tel{display:none}
}
@media(max-width:460px){.hm-urgent-sub{display:none}.hm-urgent-btn{padding:10px 14px}}

/* 패턴 매칭 엔진 */
.hm-pm-wrap{background:linear-gradient(180deg,#fbf4f5 0%,#fff 100%)}
.hm-pm-quick{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 22px}
.hm-pm-quick-label{font-size:13px;font-weight:800;color:#75767c;margin-right:6px}
.hm-pm-chip{border:1.5px solid var(--line);background:#fff;border-radius:99px;padding:10px 16px;font-size:13px;font-weight:700;color:#4c4e55;transition:.2s}
.hm-pm-chip:hover{border-color:#111;color:#111}
.hm-pm-chip.active{background:#111;border-color:#111;color:#fff}
.hm-pm-chip.sos{border-color:rgba(210,11,37,.45);color:var(--red)}
.hm-pm-chip.sos:hover{background:var(--red);border-color:var(--red);color:#fff}
.hm-pm-shell{display:grid;grid-template-columns:290px 1fr 330px;gap:16px;align-items:start}
.hm-pm-col{background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px;box-shadow:var(--shadow);min-width:0}
.hm-pm-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}
.hm-pm-head b{font-size:12.5px;letter-spacing:.02em;color:var(--red)}
.hm-pm-head>span{font-size:10px;color:#9b9da3;font-weight:700;letter-spacing:.06em}
.hm-pm-list{display:grid;gap:8px}
.hm-pm-item[hidden]{display:none}
.hm-pm-item{display:flex;align-items:center;gap:10px;border:1.5px solid var(--line);background:#fff;border-radius:14px;padding:10px 12px;text-align:left;transition:.18s;min-height:44px}
.hm-pm-item:hover{border-color:rgba(210,11,37,.45);transform:translateY(-1px)}
.hm-pm-item.active{border-color:var(--red);background:#fff8f9;box-shadow:0 8px 22px rgba(210,11,37,.1)}
.hm-pm-ico{flex:none;width:38px;height:38px;border-radius:11px;background:#f3eef0;display:grid;place-items:center;font-size:18px;font-style:normal}
.hm-pm-item span{flex:1;min-width:0}
.hm-pm-item b{display:block;font-size:13px;letter-spacing:-.02em}
.hm-pm-item small{display:block;font-size:10.5px;color:#8d8f96;font-family:var(--hm-mono)}
.hm-pm-item em{flex:none;font-style:normal;font-size:9.5px;font-weight:800;border-radius:99px;padding:4px 8px;white-space:nowrap}
.hm-pm-item em.lv-high{background:#fdebee;color:var(--red)}
.hm-pm-item em.lv-mid{background:#fff4e3;color:#b26a00}
.hm-pm-item em.lv-low{background:#eef1f6;color:#5b6472}
.hm-pm-nomatch{border:1px dashed rgba(210,11,37,.4);border-radius:12px;padding:12px;margin-top:10px;background:#fffafb}
.hm-pm-nomatch b{display:block;font-size:12.5px;margin-bottom:4px}
.hm-pm-nomatch p{margin:0;font-size:11.5px;color:#75767c;line-height:1.6}
.hm-pm-notfound{width:100%;margin-top:10px;border:1.5px solid #111;background:#fff;border-radius:99px;padding:11px;font-size:12.5px;font-weight:800;transition:.2s}
.hm-pm-notfound:hover{background:#111;color:#fff}
.hm-pm-note{font-size:10.5px;color:#9b9da3;margin:10px 0 0;line-height:1.6}
.hm-pm-phone{border:1px solid var(--line);border-radius:18px;overflow:hidden}
.hm-pm-phone-top{display:flex;align-items:center;justify-content:space-between;background:#06c755;color:#fff;padding:10px 14px;font-size:12px}
.hm-pm-phone-top i{width:34px;height:4px;border-radius:99px;background:rgba(255,255,255,.4)}
.hm-pm-chat{background:#eef0f4;padding:13px;display:flex;flex-direction:column;gap:8px}
.hm-pm-plain{display:grid;gap:8px;margin-top:12px;background:#faf7f8;border-radius:14px;padding:13px 14px}
.hm-pm-plain-k{font-size:10px;font-weight:800;letter-spacing:.1em;color:var(--red)}
.hm-pm-plain div{display:grid;grid-template-columns:96px 1fr;gap:8px;align-items:baseline}
.hm-pm-plain b{font-size:11.5px;color:#111}
.hm-pm-plain p{margin:0;font-size:12px;color:#5f6167;line-height:1.55}
.hm-pm-conf{border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:12px}
.hm-pm-conf>span{display:inline-block;font-size:10.5px;font-weight:800;color:var(--red);background:#fdebee;border-radius:99px;padding:4px 10px}
.hm-pm-conf b{display:block;font-size:44px;letter-spacing:-.04em;color:var(--ink);font-weight:850;line-height:1.1;margin:6px 0 4px}
.hm-pm-conf b small{font-size:.5em;font-weight:800}
.hm-pm-conf p{margin:0;font-size:11.5px;color:#75767c;line-height:1.6}
.hm-pm-sols>span{display:block;font-size:10.5px;font-weight:800;letter-spacing:.06em;color:#9b9da3;margin-bottom:8px}
.hm-pm-sols ol{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.hm-pm-sols li{display:flex;gap:10px;border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.hm-pm-sols li i{flex:none;font-style:normal;font-size:10px;font-weight:800;color:var(--red)}
.hm-pm-sols a{text-decoration:none}
.hm-pm-sols b{display:inline-block;font-size:12.5px;color:var(--ink);border-bottom:1.5px solid rgba(210,11,37,.35)}
.hm-pm-sols a:hover b{color:var(--red)}
.hm-pm-sols small{display:block;font-size:10px;color:#8d8f96;margin-top:2px}
.hm-pm-sols strong{display:block;font-size:11px;color:var(--red);margin-top:3px;font-weight:700}
.hm-pm-review{margin:12px 0;border-left:3px solid var(--red);background:#faf7f8;border-radius:0 12px 12px 0;padding:11px 13px}
.hm-pm-review span{display:block;font-size:10px;font-weight:800;color:#9b9da3;margin-bottom:5px}
.hm-pm-review span em{font-style:normal;color:#b26a00;background:#fff4e3;border-radius:99px;padding:2px 7px;margin-left:5px}
.hm-pm-review p{margin:0;font-size:11.5px;color:#4c4e55;line-height:1.65}
.hm-pm-cta{display:grid;gap:8px}
.hm-pm-cta p{margin:0 0 2px;font-size:12px;font-weight:800;color:var(--ink);line-height:1.55}
.hm-pm-cta .btn,.hm-pm-cta .hm-btn-outline{justify-content:center;text-align:center}
.hm-pm-disclosure{font-size:10.5px;color:#9b9da3;margin:16px 0 0;line-height:1.6}
@media(max-width:1080px){.hm-pm-shell{grid-template-columns:1fr 1fr}.hm-pm-result{grid-column:1/-1}}
@media(max-width:720px){.hm-pm-shell{grid-template-columns:1fr}}

/* 패턴 매칭 — 01 아이콘 이미지 지원 */
.hm-pm-ico{position:relative;overflow:hidden}
.hm-pm-ico img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:inherit}
/* 패턴 매칭 — 02 중앙: 앱 화면 + 개인정보 유출 실시간 (다크 콘솔) */
.hm-pm-stage{background:linear-gradient(180deg,#0c0f15,#0a0c11);border-color:#1e2430;color:#e7ebf2}
.hm-pm-stage .hm-pm-head b{color:#ff8296}
.hm-pm-stage .hm-pm-head>span{color:#8b90a0}
.hm-pm-stage .hm-chip-demo{color:#8b90a0;border-color:rgba(255,255,255,.16)}
.hm-pm-device{border:1px solid #1e2430;border-radius:14px;overflow:hidden;background:#11151d}
.hm-pm-appbar{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#151a23;border-bottom:1px solid #1e2430}
.hm-pm-appico{flex:none;width:38px;height:38px;border-radius:10px;background:#0c0f15;display:grid;place-items:center;font-size:18px;overflow:hidden;position:relative}
.hm-pm-appico img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hm-pm-appbar>div{min-width:0}
.hm-pm-appbar b{display:block;font-size:13px;color:#fff;letter-spacing:-.02em}
.hm-pm-appbar em{display:block;font-style:normal;font-size:10px;color:#8b90a0;font-family:var(--hm-mono);overflow:hidden;text-overflow:ellipsis}
.hm-pm-appbadge{margin-left:auto;flex:none;font-size:9px;font-weight:900;color:#fff;background:var(--red);border-radius:6px;padding:4px 7px;letter-spacing:.06em}
.hm-pm-appscreen{position:relative;padding:16px 14px 18px;background:radial-gradient(120% 80% at 50% 0,#1a2130,#0e1219)}
.hm-pm-appscreen-hd{font-size:14px;font-weight:800;color:#fff;text-align:center}
.hm-pm-appscreen-sub{margin:5px 0 12px;font-size:11px;color:#9aa0ad;text-align:center;line-height:1.55}
.hm-pm-permreq{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:6px}
.hm-pm-permreq li{display:flex;align-items:center;gap:8px;font-size:11.5px;color:#c7ccd6;background:#0c0f15;border:1px solid #1e2430;border-radius:9px;padding:8px 10px}
.hm-pm-permreq li:before{content:"⚠";color:var(--hm-amber);font-size:11px;flex:none}
.hm-pm-appallow{position:relative;z-index:1;text-align:center;font-size:12.5px;font-weight:800;color:#fff;background:linear-gradient(90deg,#ec1b35,var(--red));border-radius:10px;padding:11px;box-shadow:0 6px 16px rgba(210,11,37,.35)}
.hm-pm-scan{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.hm-pm-scan i{position:absolute;left:0;right:0;height:36%;background:linear-gradient(180deg,transparent,rgba(255,81,105,.16),transparent);animation:hmPmScan 2.6s linear infinite}
@keyframes hmPmScan{0%{top:-40%}100%{top:110%}}
.hm-pm-leak{margin-top:12px}
.hm-pm-leak-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:8px}
.hm-pm-leak-head span{font-size:10.5px;font-weight:800;letter-spacing:.04em;color:#ff8296}
.hm-pm-leak-head b{display:flex;align-items:baseline;gap:4px;font-weight:850;color:#fff}
.hm-pm-leak-head b i{font-style:normal;font-size:23px;color:#ff5169;font-variant-numeric:tabular-nums;line-height:1}
.hm-pm-leak-head b small{font-size:10px;color:#8b90a0;font-weight:700}
.hm-pm-leaklist{list-style:none;margin:0;padding:0;display:grid;gap:6px;min-height:150px;align-content:start}
.hm-pm-leaklist li{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;background:#0e1219;border:1px solid #1e2430;border-radius:10px;padding:9px 11px;animation:hmPmLeakIn .4s ease both}
@keyframes hmPmLeakIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.hm-pm-leaklist .lk-i{font-size:15px}
.hm-pm-leaklist div{min-width:0}
.hm-pm-leaklist b{display:block;font-size:12px;color:#fff;font-weight:700;letter-spacing:-.01em}
.hm-pm-leaklist em{display:block;font-style:normal;font-size:10px;color:#9aa0ad;font-family:var(--hm-mono);overflow:hidden;text-overflow:ellipsis}
.hm-pm-leaklist .lk-x{flex:none;font-size:9px;font-weight:900;color:#ff8296;border:1px solid rgba(255,81,105,.4);border-radius:6px;padding:3px 6px;white-space:nowrap}
.hm-pm-leak-foot{margin-top:8px;font-size:10px;color:#67707f}
.hm-pm-leak-foot em{font-style:normal}
@media(prefers-reduced-motion:reduce){.hm-pm-scan i{animation:none;display:none}}
/* 패턴 매칭 — 03 실제 리포트 링크 */
.hm-pm-reportlink{display:inline-block;margin:12px 0 4px;font-size:11.5px;font-weight:800;color:var(--red);text-decoration:none;border-bottom:1.5px solid rgba(210,11,37,.35)}
.hm-pm-reportlink:hover{border-color:var(--red)}
.hm-pm-reportlink[hidden]{display:none}

/* 리플레이 패턴 연결 칩 */
.hm-replay-patchip{display:inline-flex;gap:8px;align-items:center;margin-top:12px;font-family:var(--hm-mono);font-size:10.5px;letter-spacing:.04em;color:#8b8c92;border:1px solid var(--line);border-radius:99px;padding:6px 13px;background:#fff}
.hm-replay-patchip b{color:var(--red);font-weight:700}

/* 산정 기준 미니 버튼 */
.hm-evid-btn{margin-top:10px;border:1px solid var(--line);background:#fff;border-radius:99px;padding:5px 11px;font-size:10.5px;font-weight:800;color:#75767c;transition:.2s}
.hm-evid-btn:hover{border-color:var(--red);color:var(--red)}

/* 5단계 대응 시뮬레이터 */
.hm-sim-wrap{padding:110px 0;background:radial-gradient(120% 90% at 70% 0%,#141a2b 0%,#0a0d16 45%,#06070c 100%)}
.hm-sim{display:grid;grid-template-columns:1fr 350px;gap:16px;align-items:stretch}
.hm-sim-scene{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.09);border-radius:22px;overflow:hidden;display:flex;flex-direction:column}
.hm-sim-toolbar{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.08);font-family:var(--hm-mono);font-size:10px;letter-spacing:.14em;color:#8b90a0}
.hm-sim-live{display:flex;align-items:center;gap:7px;color:#ffc7d0}
.hm-sim-live i{width:7px;height:7px;border-radius:50%;background:#ff5169;animation:hmUrgPulse 1.8s infinite}
.hm-sim-ctrl{display:flex;gap:6px;margin-left:auto}
.hm-sim-ctrl button{border:1px solid rgba(255,255,255,.18);background:transparent;color:#c2c6d2;border-radius:99px;padding:6px 13px;font-size:10.5px;font-weight:700;letter-spacing:0;transition:.2s}
.hm-sim-ctrl button:hover{border-color:#ff5169;color:#fff}
.hm-sim-ctrl button[aria-pressed="true"]{background:#ff5169;border-color:#ff5169;color:#fff}
.hm-sim-toolbar>b{font-size:9px;color:#586074;letter-spacing:.12em;font-weight:600}
.hm-sim-stage{position:relative;flex:1;min-height:380px}
.hm-sim-simhost{position:absolute;inset:0;padding:14px;display:flex}
.hm-sim-simhost .tsim{flex:1;min-height:0;height:100%}
.hm-sim-tool{border:1px solid var(--line);border-radius:13px;padding:12px 14px}
.hm-sim-tool>span{display:block;font-size:9.5px;font-weight:800;letter-spacing:.08em;color:#9b9da3;margin-bottom:4px}
.hm-sim-tool b{font-family:var(--hm-mono);font-size:13px;color:var(--ink);letter-spacing:.02em}
.hm-sim-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.hm-sim-fallback{position:absolute;inset:0;display:none;place-items:center}
.force-fallback .hm-sim-canvas{display:none}
.force-fallback .hm-sim-fallback{display:grid;grid-template-columns:repeat(2,max-content);gap:26px 46px;place-content:center}
.hm-sim-fallback .n{font-size:12px;font-weight:800;color:#c2c6d2;border:1px solid rgba(255,255,255,.2);border-radius:99px;padding:10px 18px;position:relative}
.hm-sim-fallback .n.a{border-color:rgba(255,81,105,.6);color:#ffc7d0}
.hm-sim-fallback .n.d{border-color:rgba(90,209,154,.6);color:#b7ecd4}
.hm-sim-readout{position:absolute;left:18px;bottom:16px;z-index:2}
.hm-sim-readout span{display:block;font-family:var(--hm-mono);font-size:9px;letter-spacing:.22em;color:#ff8296}
.hm-sim-readout b{display:block;font-size:19px;color:#fff;letter-spacing:-.02em;margin:3px 0 2px}
.hm-sim-readout small{font-size:11px;color:#8b90a0}
.hm-sim-legend{position:absolute;right:16px;bottom:16px;display:flex;gap:6px;z-index:2}
.hm-sim-legend span{font-size:9px;font-weight:800;letter-spacing:.06em;border-radius:99px;padding:4px 9px;border:1px solid transparent}
.hm-sim-legend .dg{color:#ff8296;border-color:rgba(255,81,105,.4)}
.hm-sim-legend .an{color:#9ccafc;border-color:rgba(90,169,255,.4)}
.hm-sim-legend .sf{color:#8fe6bd;border-color:rgba(90,209,154,.4)}
.hm-sim-nav{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin:0;padding:0;border-top:1px solid rgba(255,255,255,.08)}
.hm-sim-nav li+li{border-left:1px solid rgba(255,255,255,.08)}
.hm-sim-nav button{width:100%;background:transparent;border:0;padding:13px 8px;text-align:left;color:#8b90a0;transition:.2s;min-height:44px}
.hm-sim-nav button span{display:block;font-family:var(--hm-mono);font-size:9px;color:#586074}
.hm-sim-nav button b{display:block;font-size:12.5px;color:#c2c6d2;letter-spacing:-.02em;margin:2px 0 1px}
.hm-sim-nav button small{display:block;font-size:9.5px;color:#586074}
.hm-sim-nav button:hover b{color:#fff}
.hm-sim-nav button.active{background:rgba(255,81,105,.1);box-shadow:inset 0 2px 0 #ff5169}
.hm-sim-nav button.active b{color:#fff}
.hm-sim-nav button.active span{color:#ff8296}
.hm-sim-explain{background:#fff;border-radius:22px;padding:22px;display:flex;flex-direction:column;gap:12px}
.hm-sim-exhead{display:flex;justify-content:space-between;align-items:center}
.hm-sim-exhead span{font-size:10.5px;font-weight:800;letter-spacing:.08em;color:var(--red)}
.hm-sim-exhead b{font-family:var(--hm-mono);font-size:11px;color:#8b8c92}
.hm-sim-explain h3{margin:0;font-size:21px;line-height:1.32;letter-spacing:-.03em;font-weight:850}
.hm-sim-explain>p{margin:0;font-size:12.5px;color:#5f6167;line-height:1.7}
.hm-sim-plain{background:#faf7f8;border-radius:13px;padding:12px 14px}
.hm-sim-plain span{display:block;font-size:9.5px;font-weight:800;letter-spacing:.08em;color:#9b9da3;margin-bottom:4px}
.hm-sim-plain strong{font-size:14px;letter-spacing:-.02em;color:var(--ink)}
.hm-sim-proof{border:1px solid var(--line);border-radius:13px;padding:12px 14px}
.hm-sim-proof>span{display:block;font-size:9.5px;font-weight:800;letter-spacing:.08em;color:#9b9da3;margin-bottom:5px}
.hm-sim-proof b{font-size:24px;color:var(--red);letter-spacing:-.03em;font-weight:850}
.hm-sim-proof b small{font-size:.55em}
.hm-sim-proof p{margin:2px 0 0;font-size:11px;color:#75767c}
.hm-sim-proof button{margin-top:8px;border:1px solid var(--line);background:#fff;border-radius:99px;padding:6px 12px;font-size:10.5px;font-weight:800;color:#75767c}
.hm-sim-proof button:hover{border-color:var(--red);color:var(--red)}
.hm-sim-detail-toggle{border:0;background:transparent;text-align:left;font-size:11.5px;font-weight:800;color:#75767c;padding:0}
.hm-sim-detail-toggle:hover{color:var(--ink)}
.hm-sim-detail{background:#f4f2f3;border-radius:12px;padding:11px 13px}
.hm-sim-detail b{display:block;font-size:11.5px;margin-bottom:3px}
.hm-sim-detail p{margin:0;font-size:11px;color:#5f6167;line-height:1.65}
.hm-sim-next{margin-top:auto;border:0;border-radius:99px;background:var(--red);color:#fff;font-weight:800;font-size:13px;padding:13px 20px;transition:.2s}
.hm-sim-next:hover{background:var(--red-dark)}
@media(max-width:940px){.hm-sim{grid-template-columns:1fr}.hm-sim-stage{min-height:300px}.hm-sim-nav button b{font-size:10.5px}.hm-sim-nav button small{display:none}}

/* TECHNOLOGY ATLAS 포털 */
.hm-ap-wrap{padding:110px 0;background:#0e1014;color:#fff}
.hm-ap-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.hm-ap-copy h2{font-size:clamp(28px,3.2vw,44px);line-height:1.2;letter-spacing:-.05em;margin:14px 0 16px;font-weight:850}
.hm-ap-copy h2 em{font-style:normal;color:#ff5169}
.hm-ap-copy p{color:#b9bcc4;font-size:15px;line-height:1.8;max-width:520px;margin:0 0 24px}
.hm-ap-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.hm-ap-actions span{font-family:var(--hm-mono);font-size:10px;letter-spacing:.1em;color:#586074}
.hm-ap-map{position:relative;aspect-ratio:1.15/1;min-height:340px}
.hm-ap-map svg{position:absolute;inset:8%;width:84%;height:84%}
.hm-ap-map svg path{fill:none;stroke:rgba(255,81,105,.22);stroke-width:.6}
.hm-ap-core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;z-index:2}
.hm-ap-core b{display:block;font-size:13px;letter-spacing:.06em;color:#fff;line-height:1.3}
.hm-ap-core small{display:block;font-size:9.5px;color:#8b90a0;margin-top:4px}
.hm-ap-core:before{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,rgba(255,81,105,.18) 0%,transparent 70%);z-index:-1}
.hm-ap-map>a,.hm-ap-map>.hm-ap-node{position:absolute;left:var(--x);top:var(--y);display:block;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);border-radius:13px;padding:10px 13px;text-decoration:none;transition:.2s;min-width:128px;z-index:2}
.hm-ap-map>a:hover,.hm-ap-map>.hm-ap-node:hover{border-color:#ff5169;background:rgba(255,81,105,.09);transform:translateY(-2px)}
.hm-ap-map>a i,.hm-ap-map>.hm-ap-node i{font-style:normal;font-family:var(--hm-mono);font-size:9px;color:#ff8296}
.hm-ap-map>a b,.hm-ap-map>.hm-ap-node b{display:block;font-size:12.5px;color:#fff;letter-spacing:-.02em;margin:2px 0 1px}
.hm-ap-map>a small,.hm-ap-map>.hm-ap-node small{display:block;font-size:9px;color:#8b90a0}
@media(max-width:900px){.hm-ap-grid{grid-template-columns:1fr;gap:30px}.hm-ap-map{min-height:300px}}

/* 벤치마크 */
.hm-bm-wrap{background:#fff}
.hm-bm-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.hm-bm-stat{background:#fff;border:1px solid var(--line);border-radius:20px;padding:26px 24px;box-shadow:var(--shadow)}
.hm-bm-stat b{display:block;font-size:clamp(30px,3vw,44px);letter-spacing:-.04em;color:var(--ink);font-weight:850;font-variant-numeric:tabular-nums}
.hm-bm-stat b .unit{font-size:.5em;font-weight:800;margin-left:2px;color:var(--red)}
.hm-bm-stat>span{display:block;font-size:14px;font-weight:800;margin-top:8px}
.hm-bm-stat em{display:block;font-style:normal;font-size:11.5px;color:#8b8c92;margin-top:3px}
@media(max-width:760px){.hm-bm-grid{grid-template-columns:1fr}}

/* 다이얼로그 공통 */
.hm-dlg{border:0;border-radius:24px;padding:30px 30px 26px;max-width:480px;width:calc(100% - 40px);box-shadow:0 40px 120px rgba(20,8,12,.35)}
.hm-dlg::backdrop{background:rgba(14,10,12,.6);backdrop-filter:blur(4px)}
.hm-dlg-close{position:absolute;right:16px;top:16px;border:0;background:#f4f2f3;border-radius:50%;width:34px;height:34px;font-size:14px;color:#75767c}
.hm-dlg-close:hover{background:#111;color:#fff}
.hm-dlg-kicker{display:inline-block;font-size:10.5px;font-weight:800;letter-spacing:.1em;color:var(--red);background:#fdebee;border-radius:99px;padding:5px 12px;margin-bottom:12px}
.hm-dlg h2{margin:0 0 14px;font-size:24px;line-height:1.3;letter-spacing:-.04em;font-weight:850}
.hm-dlg-ctx{background:#faf7f8;border-radius:14px;padding:13px 15px;margin-bottom:14px}
.hm-dlg-ctx span{display:block;font-size:10px;font-weight:800;color:#9b9da3;letter-spacing:.06em;margin-bottom:4px}
.hm-dlg-ctx b{display:block;font-size:14px;letter-spacing:-.02em}
.hm-dlg-ctx small{display:block;font-family:var(--hm-mono);font-size:10.5px;color:#8d8f96;margin-top:2px}
.hm-dlg-actions{display:grid;gap:8px;margin-bottom:14px}
.hm-dlg-actions .btn{justify-content:center;text-align:center}
.hm-dlg-alt{display:block;text-align:center;border:1.5px solid #111;border-radius:99px;padding:12px;font-size:13px;font-weight:800;color:#111;text-decoration:none}
.hm-dlg-alt:hover{background:#111;color:#fff}
.hm-dlg ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.hm-dlg ul li{font-size:12px;color:#5f6167;padding-left:18px;position:relative;line-height:1.6}
.hm-dlg ul li:before{content:"·";position:absolute;left:6px;color:var(--red);font-weight:900}
.hm-dlg-sum{font-size:12.5px;color:#5f6167;line-height:1.7;margin:0 0 14px}
.hm-dlg-list{margin:0 0 14px;display:grid;gap:0;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.hm-dlg-list>div{display:grid;grid-template-columns:120px 1fr;gap:10px;padding:10px 14px;font-size:12px}
.hm-dlg-list>div:nth-child(even){background:#faf7f8}
.hm-dlg-list dt{color:#8b8c92;font-weight:700}
.hm-dlg-list dd{margin:0;color:var(--ink)}
.hm-dlg-note{font-size:10.5px;color:#9b9da3;margin:0;line-height:1.6}

/* ================= C2 인프라 관계망 (신규) ================= */
.hm-c2g{display:grid;grid-template-columns:1fr 320px;gap:16px;align-items:stretch}
.hm-c2g-board{background:#0b0e13;border:1px solid var(--hm-line-dark);border-radius:22px;overflow:hidden;display:flex;flex-direction:column}
.hm-c2g-board .hm-console-bar{background:#101318;border-color:var(--hm-line-dark)}
.hm-c2g-board .hm-console-bar b{color:#fff}
.hm-c2g-board .hm-console-bar .hm-chip-demo{margin-left:auto;color:#7d818c;border-color:rgba(255,255,255,.16)}
.hm-c2g-stage{position:relative;flex:1;min-height:360px;background:radial-gradient(120% 100% at 20% 50%,#141a26,#0a0d13);overflow:hidden}
.hm-c2g-links{position:absolute;inset:0;width:100%;height:100%}
.hm-c2g-link{stroke:rgba(120,150,200,.4);stroke-width:.5;stroke-dasharray:2 2;opacity:0;transition:opacity .55s ease}
.hm-c2g-link.on{opacity:1}
.hm-c2g-nodes{position:absolute;inset:0}
.hm-c2g-node{position:absolute;width:46px;height:46px;transform:translate(-50%,-50%) scale(.55);opacity:0;pointer-events:none;background:none;border:0;padding:0;cursor:pointer;transition:opacity .45s ease,transform .45s cubic-bezier(.2,.8,.3,1)}
.hm-c2g-node.on{opacity:1;transform:translate(-50%,-50%) scale(1);pointer-events:auto}
.hm-c2g-dot{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;font-size:19px;background:#0e1219;border:2px solid var(--c);transition:box-shadow .2s,border-width .2s}
.hm-c2g-node.t-app .hm-c2g-dot{animation:hmC2gPulse 2s infinite}
.hm-c2g-node:hover .hm-c2g-dot{box-shadow:0 0 14px var(--c)}
.hm-c2g-node.sel .hm-c2g-dot{border-width:3px;box-shadow:0 0 20px var(--c)}
@keyframes hmC2gPulse{0%{box-shadow:0 0 0 0 rgba(255,81,105,.5)}70%{box-shadow:0 0 0 12px rgba(255,81,105,0)}100%{box-shadow:0 0 0 0 rgba(255,81,105,0)}}
.hm-c2g-node em{position:absolute;top:calc(100% + 4px);left:50%;transform:translateX(-50%);font-style:normal;font-size:10px;font-weight:700;color:#c7ccd6;white-space:nowrap;letter-spacing:-.01em;text-shadow:0 1px 4px rgba(0,0,0,.6)}
.hm-c2g-node:hover em,.hm-c2g-node.sel em{color:#fff}
.hm-c2g-ctrl{display:flex;align-items:center;gap:12px;padding:14px 18px;border-top:1px solid var(--hm-line-dark);background:#0d1016}
.hm-c2g-run{border:0;border-radius:99px;background:var(--red);color:#fff;font-weight:800;font-size:13px;padding:11px 22px;cursor:pointer;transition:.2s;flex:none}
.hm-c2g-run:hover{background:var(--red-dark)}
.hm-c2g-run:disabled{opacity:.6;cursor:default}
.hm-c2g-reset{flex:none;border:1px solid rgba(255,255,255,.25);background:transparent;color:#c7ccd6;border-radius:99px;padding:10px 18px;font-weight:700;font-size:12.5px;cursor:pointer}
.hm-c2g-reset:hover{border-color:#fff;color:#fff}
.hm-c2g-status{font-size:12px;color:#9aa0ad;flex:1;min-width:0}
.hm-c2g-side{background:#fff;border:1px solid var(--line);border-radius:22px;padding:20px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:12px}
.hm-c2g-side-head span{display:block;font-size:9.5px;font-weight:800;letter-spacing:.04em;color:var(--red);font-family:var(--hm-mono)}
.hm-c2g-side-head b{display:block;font-size:18px;letter-spacing:-.02em;margin-top:3px}
.hm-c2g-desc{margin:0;font-size:12.5px;color:#5f6167;line-height:1.7}
.hm-c2g-legend{display:flex;flex-wrap:wrap;gap:7px 12px;padding-top:12px;border-top:1px solid var(--line);margin-top:auto}
.hm-c2g-legend span{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:#5b5d63;font-weight:600}
.hm-c2g-legend i{width:9px;height:9px;border-radius:3px;background:var(--c)}
.hm-c2g-note{font-size:10.5px;color:#9b9da3;line-height:1.6}
@media(max-width:860px){.hm-c2g{grid-template-columns:1fr}.hm-c2g-stage{min-height:330px}}
@media(prefers-reduced-motion:reduce){.hm-c2g-node,.hm-c2g-link{transition:none}.hm-c2g-node.t-app .hm-c2g-dot{animation:none}}

/* ---- 사건 리플레이 → 앱 확인 브릿지 ---- */
.hm-replay-bridge{margin-top:14px;padding:16px 17px;border-radius:16px;background:linear-gradient(150deg,#fff3f4,#fff);border:1px solid rgba(210,11,37,.28)}
.hm-replay-bridge b{display:block;font-size:14.5px;color:var(--ink);letter-spacing:-.02em}
.hm-replay-bridge p{margin:7px 0 12px;font-size:12.5px;line-height:1.65;color:#5f6167}
.hm-replay-bridge .btn{width:100%;justify-content:center}

/* ---- 앱 → 내 폰 드래그 투입 ---- */
.hm-pm-item{cursor:grab;touch-action:none}
.hm-pm-item:active{cursor:grabbing}
.hm-pm-item.dragging{opacity:.35}
.hm-pm-drag-ghost{opacity:.95;border-radius:14px;box-shadow:0 22px 50px rgba(20,10,14,.4);background:#fff;border:1px solid rgba(210,11,37,.5);display:flex;align-items:center;gap:10px;padding:11px 13px}
.hm-pm-drag-ghost em{display:none}
.hm-pm-dropcue{position:absolute;inset:0;z-index:4;display:none;place-items:center;border-radius:inherit;background:rgba(10,7,9,.72);backdrop-filter:blur(2px)}
.hm-pm-dropcue span{padding:11px 18px;border-radius:999px;background:var(--red);color:#fff;font-size:13px;font-weight:800;box-shadow:0 12px 30px rgba(210,11,37,.45)}
.hm-pm-stage.drop-hot .hm-pm-dropcue{display:grid}
.hm-pm-stage.drop-hot .hm-pm-device{outline:2px dashed var(--red);outline-offset:4px}
.hm-pm-device{position:relative}
@media(prefers-reduced-motion:reduce){.hm-pm-drag-ghost{transition:none!important}}


/* ===== 사건 리플레이 — 만난 앱 / 옮겨간 앱 유형 선택 ===== */
.hm-replay-pick{margin:0 0 26px;padding:22px 24px;border:1px solid rgba(255,255,255,.1);border-radius:20px;background:rgba(255,255,255,.035)}
.hm-rp-row{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.hm-rp-q{display:flex;align-items:center;gap:9px;margin:0 0 12px;font-size:13.5px;font-weight:800;color:#eef0f5;letter-spacing:-.01em}
.hm-rp-q em{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:6px;background:rgba(255,48,79,.16);border:1px solid rgba(255,48,79,.4);color:#ff6d82;font-style:normal;font-size:10px;font-weight:900}
.hm-rp-chips{display:flex;flex-wrap:wrap;gap:8px}
.hm-rp-chip{display:inline-flex;align-items:center;gap:8px;padding:9px 13px 9px 10px;border-radius:12px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.05);color:#c9ced9;font-size:12.5px;font-weight:700;letter-spacing:-.01em;cursor:pointer;transition:border-color .18s,background .18s,color .18s,transform .18s}
.hm-rp-chip i{display:inline-flex;width:19px;height:19px;color:#8d94a3;transition:color .18s}
.hm-rp-chip i svg{width:100%;height:100%}
.hm-rp-chip:hover{border-color:rgba(255,48,79,.5);color:#fff;transform:translateY(-1px)}
.hm-rp-chip:hover i{color:#ff6d82}
.hm-rp-chip.active{border-color:#ff304f;background:rgba(255,48,79,.14);color:#fff}
.hm-rp-chip.active i{color:#ff6d82}
.hm-rp-why{margin-top:18px;padding:15px 17px;border-radius:14px;border-left:3px solid #ff304f;background:rgba(255,48,79,.07)}
.hm-rp-why b{display:block;margin:0 0 7px;font-size:12.5px;color:#ff8a9b;letter-spacing:.01em}
.hm-rp-why p{margin:0 0 6px;font-size:13px;line-height:1.68;color:#d2d7e2}
.hm-rp-why p:last-child{margin-bottom:0;color:#a9b0bf}
.hm-rp-note{margin:14px 0 0;font-size:11.5px;line-height:1.6;color:#8b92a1}
.hm-rp-note b{color:#c9ced9}
.rp-flash{animation:rpFlash .55s ease}
@keyframes rpFlash{0%{background:rgba(255,48,79,.32)}100%{background:transparent}}
.hm-chat-head.rp-flash{animation:rpFlashHead .55s ease}
@keyframes rpFlashHead{0%{box-shadow:inset 0 0 0 2px rgba(255,48,79,.75)}100%{box-shadow:inset 0 0 0 2px transparent}}
@media(max-width:900px){.hm-rp-row{grid-template-columns:1fr;gap:20px}.hm-replay-pick{padding:18px}}
@media(prefers-reduced-motion:reduce){.rp-flash,.hm-chat-head.rp-flash{animation:none}}


/* ===== 리플레이 브릿지 — 실제 수집 위장 앱 아이콘 스트립 ===== */
.hm-replay-apps{display:flex;gap:10px;margin:14px 0 4px;padding:2px 2px 10px;overflow-x:auto;scrollbar-width:thin;scrollbar-color:rgba(255,48,79,.5) transparent}
.hm-replay-apps::-webkit-scrollbar{height:6px}
.hm-replay-apps::-webkit-scrollbar-thumb{background:rgba(255,48,79,.5);border-radius:99px}
.hm-ra-app{flex:0 0 auto;width:62px;display:flex;flex-direction:column;align-items:center;gap:6px;text-decoration:none;color:#9aa1b0;transition:transform .18s,color .18s}
.hm-ra-app img{width:44px;height:44px;border-radius:12px;background:#11141c;border:1px solid rgba(255,255,255,.14);object-fit:cover;transition:border-color .18s,box-shadow .18s}
.hm-ra-app span{font-size:10px;line-height:1.25;text-align:center;letter-spacing:-.02em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.hm-ra-app:hover{transform:translateY(-2px);color:#fff}
.hm-ra-app:hover img{border-color:#ff304f;box-shadow:0 0 0 3px rgba(255,48,79,.18)}
.hm-ra-count{margin:0 0 14px;font-size:11.5px;color:#8b92a1}
@media(max-width:900px){.hm-ra-app{width:56px}.hm-ra-app img{width:40px;height:40px}}
@media(prefers-reduced-motion:reduce){.hm-ra-app{transition:none}}


/* ============================================================
   (수정2 ①~④) 사건 리플레이 v2 — 3유형 버튼 · 아이콘 호버 팝업 · 대형 폰 2대
   라이트 섹션 위 검정 텍스트 기준으로 새로 작성
   ============================================================ */
.rp2{display:grid;gap:24px}
.rp2-pick{border:1px solid var(--line);border-radius:20px;background:#fff;padding:22px 24px;box-shadow:var(--shadow)}
.rp2-q{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px;margin:0 0 14px;font-size:15.5px;font-weight:850;color:#111;letter-spacing:-.01em}
.rp2-q em{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:7px;background:#fdebee;border:1px solid rgba(210,11,37,.4);color:var(--red);font-style:normal;font-size:11px;font-weight:900}
.rp2-q span{font-size:12.5px;font-weight:700;color:#111}
.rp2-types{display:flex;gap:12px;flex-wrap:wrap}
.rp2-typewrap{position:relative}
.rp2-type{display:flex;align-items:center;gap:10px;border:1.5px solid #d8d2d4;background:#fff;border-radius:14px;padding:13px 16px;cursor:pointer;transition:.18s}
.rp2-type b{font-size:14.5px;font-weight:800;color:#111;letter-spacing:-.02em}
.rp2-type i{font-style:normal;font-size:10.5px;font-weight:800;color:#111;border:1px solid #d8d2d4;border-radius:99px;padding:4px 9px;background:#faf7f8}
.rp2-type:hover{border-color:var(--red);transform:translateY(-1px)}
.rp2-type.active{border-color:var(--red);background:#fff5f6;box-shadow:0 10px 26px rgba(210,11,37,.12)}
.rp2-type.active i{border-color:rgba(210,11,37,.4);color:var(--red);background:#fff}
.rp2-pop{position:absolute;left:0;top:calc(100% + 8px);z-index:60;display:flex;gap:8px;flex-wrap:wrap;width:max-content;max-width:min(540px,calc(100vw - 48px));background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px;box-shadow:0 24px 60px rgba(20,8,12,.2);opacity:0;visibility:hidden;transform:translateY(-6px);transition:.2s}
.rp2-typewrap:hover .rp2-pop,.rp2-typewrap:focus-within .rp2-pop,.rp2-typewrap.open .rp2-pop{opacity:1;visibility:visible;transform:none}
.rp2-ic-item{width:52px;cursor:pointer;border:0;background:none;padding:0;display:flex;flex-direction:column;align-items:center;gap:4px}
.rp2-ic-item img{width:46px;height:46px;border-radius:12px;object-fit:cover;border:1px solid var(--line);background:#fff;transition:.15s}
.rp2-ic-item:hover img,.rp2-ic-item:focus-visible img{border-color:var(--red);transform:translateY(-2px);box-shadow:0 8px 18px rgba(210,11,37,.2)}
.rp2-why{display:block;margin:16px 0 0;padding:13px 16px;border-left:3px solid var(--red);background:#fff7f8;border-radius:0 12px 12px 0;font-size:13px;line-height:1.7;color:#111}
.rp2-why b{display:block;color:var(--red);font-size:12px;margin-bottom:4px;letter-spacing:.02em}
.rp2-note{margin:14px 0 0;font-size:12px;line-height:1.65;color:#111;font-weight:600}
/* 폰 2대 스테이지 — 분석 패널 삭제분까지 활용해 크게 */
.rp2-stage{display:grid;grid-template-columns:minmax(320px,430px) auto minmax(320px,430px);gap:22px;justify-content:center;align-items:start}
.rp2-phone{max-width:430px;width:100%}
.rp2-phone .hm-phone-screen{min-height:560px}
.rp2-body{flex:1}
.rp2-body .hm-bubble{font-size:12.5px;max-width:88%}
.rp2-arrow{align-self:center;display:flex;flex-direction:column;align-items:center;gap:9px;padding-top:210px}
.rp2-arrow-t{font-size:11px;font-weight:800;color:#111;text-align:center;line-height:1.5}
.rp2-arrow-icons{display:flex;gap:6px}
.rp2-arrow-icons img{width:30px;height:30px;border-radius:8px;object-fit:cover;border:1px solid var(--line);background:#fff}
.rp2-arrow>b{color:var(--red);font-size:24px;font-weight:900}
.rp2-hint{margin:0;font-size:13.5px;color:#111;font-weight:700}
.rp2-hint b{color:var(--red)}
/* 말풍선 순차 등장 */
.rp2-body>*{opacity:0;transform:translateY(8px);transition:.35s ease}
.rp2-body>.on{opacity:1;transform:none}
/* 파일/앱 말풍선 (클릭 → 설치 흐름) */
.rp2-file{cursor:pointer;position:relative}
.rp2-file:hover{border-color:var(--red);box-shadow:0 6px 16px rgba(210,11,37,.18)}
.rp2-file-ico{background:#fff;border:1px solid var(--line);color:var(--ink)}
.rp2-file-ico img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}
.rp2-tap{margin-left:auto;flex:none;font-size:9.5px;font-weight:900;color:#fff;background:var(--red);border-radius:99px;padding:4px 8px;animation:rp2Tap 1.6s ease infinite}
@keyframes rp2Tap{0%,100%{transform:none}50%{transform:scale(1.1)}}
.hm-sys-warn.rp2-warn{border-width:2px;border-color:var(--red);background:#fff2f4}
/* 게시글 카드 (일반 어플 시나리오) */
.rp2-post{background:#fff;border:1px solid var(--line);border-radius:14px;padding:11px 13px;font-size:12px;color:#2c2d31;max-width:92%;box-shadow:0 1px 2px rgba(0,0,0,.06)}
.rp2-post-h{display:flex;gap:8px;align-items:center;margin-bottom:6px}
.rp2-post-h i{width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,#f7cfd6,#e7a1ad);flex:none}
.rp2-post-h b{font-size:11.5px}
.rp2-post-h em{font-style:normal;font-size:9.5px;color:#8d8f96}
/* 상대가 보낸 사진(비식별) */
.rp2-photo{display:block;width:150px;height:100px;border-radius:12px;background:repeating-linear-gradient(45deg,#d8cfd2 0 8px,#cbc0c4 8px 16px);position:relative;overflow:hidden}
.rp2-photo em{position:absolute;left:6px;right:6px;bottom:6px;font-style:normal;font-size:9px;color:#5f6167;background:rgba(255,255,255,.88);border-radius:6px;padding:2px 6px;text-align:center}
/* 설치 흐름 모달 */
.rp2-modal{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;background:rgba(14,10,12,.66);backdrop-filter:blur(4px);opacity:0;visibility:hidden;transition:.25s}
.rp2-modal.open{opacity:1;visibility:visible}
.rp2-modal-inner{width:min(860px,calc(100vw - 32px));max-height:calc(100vh - 60px);overflow:auto;background:#fff;border-radius:24px;padding:28px;position:relative;box-shadow:0 40px 120px rgba(0,0,0,.4)}
.rp2-modal-x{position:absolute;right:16px;top:16px;border:0;background:#f4f2f3;border-radius:50%;width:34px;height:34px;font-size:14px;color:#75767c;cursor:pointer}
.rp2-modal-x:hover{background:#111;color:#fff}
.rp2-modal-inner h3{margin:0 30px 6px 0;font-size:21px;letter-spacing:-.03em;color:#111}
.rp2-modal-sub{margin:0 0 18px;font-size:13px;color:#111;line-height:1.6}
.rp2-steps{display:flex;gap:10px;align-items:stretch;overflow-x:auto;padding:6px 2px 10px}
.rp2-stepc{flex:0 0 150px;display:flex;flex-direction:column;gap:6px;border:1px solid var(--line);border-radius:14px;padding:10px;position:relative;background:#fff}
.rp2-stepc img{width:100%;aspect-ratio:9/16;object-fit:cover;object-position:top;border-radius:10px;background:#111}
.rp2-num{position:absolute;left:-6px;top:-6px;width:24px;height:24px;border-radius:50%;background:#111;color:#fff;font-size:11px;font-weight:900;display:grid;place-items:center;z-index:1}
.rp2-stepc.leak{background:#2a0e14;border-color:var(--red);justify-content:center;text-align:center}
.rp2-stepc.leak .rp2-num{background:var(--red)}
.rp2-leakcue{font-size:14.5px;font-weight:900;color:#ff8296;line-height:1.4}
.rp2-sc-t{font-size:12px;font-weight:800;color:#111}
.rp2-stepc.leak .rp2-sc-t{color:#fff}
.rp2-sc-s{font-size:10.5px;color:#5f6167;line-height:1.5}
.rp2-stepc.leak .rp2-sc-s{color:#ffb3bd}
.rp2-arw{align-self:center;color:var(--red);font-weight:900;font-size:18px;flex:none}
.rp2-leakbox{margin-top:16px;border:2px solid rgba(210,11,37,.4);border-radius:16px;padding:16px;background:#fff7f8}
.rp2-leakbox>b{display:block;font-size:14px;color:var(--red);margin-bottom:10px}
.rp2-leaklist{display:flex;flex-wrap:wrap;gap:8px}
.rp2-leaklist span{font-size:12px;font-weight:800;color:#fff;background:#111;border-radius:99px;padding:7px 12px}
.rp2-leak-foot{margin:10px 0 0;font-size:10.5px;color:#5f6167}
@media(max-width:1080px){
  .rp2-stage{grid-template-columns:1fr;justify-items:center}
  .rp2-arrow{flex-direction:row;padding:4px 0}
  .rp2-arrow-t br{display:none}
}
@media(prefers-reduced-motion:reduce){.rp2-body>*{transition:none}.rp2-tap{animation:none}.rp2-modal{transition:none}}

/* ============================================================
   (수정2 ⑤) 패턴 매칭 — 설치 흐름 스트립 · 링크 사이트 화면 · 권한 경고
   ============================================================ */
.hm-pm-flow{display:flex;gap:8px;align-items:stretch;overflow-x:auto;padding:12px;background:radial-gradient(120% 80% at 50% 0,#1a2130,#0e1219)}
.hm-pm-flow[hidden]{display:none}
.hm-pm-flow-step{flex:0 0 108px;display:flex;flex-direction:column;gap:4px;background:#0c0f15;border:1px solid #1e2430;border-radius:12px;padding:8px;position:relative}
.hm-pm-flow-step img{width:100%;aspect-ratio:9/16;object-fit:cover;object-position:top;border-radius:8px;background:#000}
.hm-pm-flow-step b{position:absolute;left:-5px;top:-5px;width:20px;height:20px;border-radius:50%;background:#fff;color:#111;font-size:10px;font-weight:900;display:grid;place-items:center;z-index:1}
.hm-pm-flow-step>span{font-size:10.5px;font-weight:800;color:#fff}
.hm-pm-flow-step em{font-style:normal;font-size:9.5px;color:#9aa0ad;line-height:1.45}
.hm-pm-flow-step.leak{background:#2a0e14;border-color:var(--red);justify-content:center;text-align:center}
.hm-pm-flow-step.leak b{background:var(--red);color:#fff}
.hm-pm-flow-step.leak strong{font-size:12px;font-weight:900;color:#ff8296;line-height:1.4}
.hm-pm-flow-step.leak>span{color:#fff}
.hm-pm-flow-arw{align-self:center;flex:none;color:#ff5169;font-weight:900;font-style:normal}
.hm-pm-shot{display:grid;gap:8px;padding:12px;background:#0c0f15}
.hm-pm-shot[hidden]{display:none}
.hm-pm-shot img{width:100%;max-height:340px;object-fit:cover;object-position:top;border-radius:12px;border:1px solid #1e2430;background:#000}
.hm-pm-shot em{font-style:normal;font-size:11px;color:#9aa0ad;line-height:1.6}
.hm-pm-permwarn{margin:10px 0 0;font-size:12.5px;line-height:1.6;color:#ffd7dc;background:#2a0e14;border:1px solid rgba(255,81,105,.45);border-radius:12px;padding:11px 13px}
.hm-pm-permwarn b{color:#ff8296}

/* (수정2 ⑧) 글로벌 카드 — 실제 사진 교체 시에도 크기가 무너지지 않도록 */
.hm-global-shot{position:relative;overflow:hidden}
.hm-global-shot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* (수정2 ⑦) 흐려서 잘 안 읽히던 안내·고지 문구 가독성 보강 */
.hm-pm-artifacts .hm-pm-head>span,.hm-pm-result .hm-pm-head>span{color:#6f7075}
.hm-pm-note,.hm-pm-disclosure{color:#6f7075}
.hm-msg-t{color:#75767c}
.hm-msg-t i{color:#b26a00}
.hm-chat-head.datalk span{color:rgba(255,255,255,.95)}
.hm-chat-head.line span{color:rgba(255,255,255,.95)}

/* ============================================================
   MAIN REVISION 2026-08-29 · 실사 중심 11개 항목
   ============================================================ */

/* 01-02 · 제14회 정보보호의 날 대통령 축사 히어로 */
.hm-cf-hero{background:#05070b}
.hm-cf-media{position:absolute;inset:0;z-index:1;display:block;overflow:hidden;background:#06070b}
.hm-cf-media:before{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(90deg,rgba(3,5,10,.94) 0%,rgba(3,5,10,.72) 38%,rgba(3,5,10,.22) 72%,rgba(3,5,10,.48) 100%),linear-gradient(0deg,rgba(3,5,10,.72),transparent 48%)}
.hm-cf-media:after{content:"";position:absolute;inset:0;z-index:2;background-image:linear-gradient(rgba(118,164,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(118,164,255,.08) 1px,transparent 1px);background-size:58px 58px;opacity:.28;-webkit-mask-image:linear-gradient(90deg,transparent 20%,#000 80%);mask-image:linear-gradient(90deg,transparent 20%,#000 80%)}
.hm-cf-media>img{width:100%;height:100%;object-fit:cover;object-position:center;transform:scale(1.025);animation:hmCfDrift 16s ease-in-out infinite alternate}
.hm-cf-play{position:absolute;right:clamp(38px,8vw,132px);top:50%;z-index:4;transform:translateY(-50%);display:grid;grid-template-columns:62px auto;grid-template-rows:auto auto;column-gap:16px;align-items:center;color:#fff;padding:20px 24px;border:1px solid rgba(255,255,255,.28);border-radius:22px;background:rgba(7,10,18,.5);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 24px 60px rgba(0,0,0,.35)}
.hm-cf-play i{grid-row:1/3;width:62px;height:62px;border-radius:50%;display:grid;place-items:center;font:900 10px/1 var(--hm-mono);font-style:normal;letter-spacing:.04em;background:#d20b25;box-shadow:0 0 0 9px rgba(210,11,37,.16),0 12px 36px rgba(210,11,37,.4)}
.hm-cf-play b{font-size:14px;letter-spacing:.08em}
.hm-cf-play small{font-family:var(--hm-mono);font-size:9px;letter-spacing:.16em;color:#9da9ba}
.hm-cf-media:hover .hm-cf-play i{transform:scale(1.08)}
.hm-cf-play i{transition:transform .25s ease}
.hm-cf-hero .hm-wm-veil{background:radial-gradient(60% 80% at 64% 45%,transparent 0%,rgba(4,6,11,.22) 70%,rgba(4,6,11,.55) 100%)}
@keyframes hmCfDrift{from{transform:scale(1.025) translate3d(0,0,0)}to{transform:scale(1.075) translate3d(-1.2%,.8%,0)}}

/* 03 · 기념식 가로 배너 + 2026 공공 협력 */
.hm-recog-v5{padding:86px 0 98px;background:linear-gradient(180deg,#fff 0%,#f8f3f4 100%)}
.hm-recog-visual{overflow:hidden;border-radius:30px;background:#080d18;box-shadow:0 32px 90px rgba(24,28,58,.22)}
.hm-recog-wide{position:relative;display:block;overflow:hidden;aspect-ratio:2.35/1;background:#07113d}
.hm-recog-wide:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(4,7,18,.82),transparent 46%),linear-gradient(90deg,rgba(12,19,65,.2),transparent 60%)}
.hm-recog-wide img{width:100%;height:100%;display:block;object-fit:cover;object-position:center 42%;transition:transform .7s ease}
.hm-recog-wide:hover img{transform:scale(1.02)}
.hm-recog-photo-tag{position:absolute;left:28px;bottom:24px;z-index:2;display:grid;gap:4px;color:#fff}
.hm-recog-photo-tag b{font-size:14px;letter-spacing:.12em}
.hm-recog-photo-tag small{font-size:11px;color:#cbd5ea}
.hm-recog-photo-proof{min-height:62px;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:24px;padding:0 28px;color:#fff;border-top:1px solid rgba(255,255,255,.08);background:linear-gradient(90deg,#080d18,#0f1726)}
.hm-recog-photo-proof span{display:flex;align-items:center;gap:9px;color:#80aff5;font:800 9px/1 var(--hm-mono);letter-spacing:.13em}
.hm-recog-photo-proof span i{width:7px;height:7px;border-radius:50%;background:#ef1835;box-shadow:0 0 12px rgba(239,24,53,.8)}
.hm-recog-photo-proof b{font-size:12px;letter-spacing:-.01em}
.hm-recog-photo-proof em{color:#78869a;font:700 10px/1 var(--hm-mono);font-style:normal}
.hm-recog-copy-below{margin-top:44px}
.hm-recog-copy-below h2{margin:11px 0 12px;font-size:clamp(30px,3.7vw,52px)}
.hm-recog-copy-below>p{max-width:930px;font-size:16px;line-height:1.75}
.hm-recog-years{display:grid;grid-template-columns:1.35fr repeat(3,1fr);gap:12px;margin-top:28px}
.hm-recog-years .hm-recog-badge{min-width:0;min-height:150px;position:relative;overflow:hidden;padding:22px 20px;display:flex;flex-direction:column;border-radius:19px}
.hm-recog-years .hm-recog-badge header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:auto}
.hm-recog-years .hm-recog-badge header b{font-size:22px;line-height:1}
.hm-recog-years .hm-recog-badge header em{color:#a1a3aa;font:800 8px/1 var(--hm-mono);font-style:normal;letter-spacing:.12em}
.hm-recog-years .hm-recog-badge>span{margin-top:25px;color:#6f727a;font-size:12px;line-height:1.65}
.hm-recog-years .hm-recog-badge ul{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:7px}
.hm-recog-years .hm-recog-badge li{position:relative;padding-left:13px;color:#eef3fb;font-size:11px;line-height:1.35}
.hm-recog-years .hm-recog-badge li:before{content:"";position:absolute;left:0;top:.55em;width:5px;height:5px;border-radius:50%;background:#ff4b63;box-shadow:0 0 8px rgba(255,75,99,.55)}
.hm-recog-years .hm-recog-badge.is-new{background:radial-gradient(circle at 100% 0,rgba(45,104,193,.25),transparent 48%),#0c111b;border-color:#192233;box-shadow:0 18px 40px rgba(10,14,24,.18)}
.hm-recog-years .hm-recog-badge.is-new header b{color:#fff}
.hm-recog-years .hm-recog-badge.is-new header em{color:#ff6278}
.hm-gov-head{margin-top:34px;padding-top:28px;border-top:1px solid #dedcdf;display:flex;align-items:end;justify-content:space-between;gap:24px}
.hm-gov-head span{color:#d20b25;font:800 9px/1 var(--hm-mono);letter-spacing:.15em}
.hm-gov-head h3{margin:8px 0 0;font-size:22px;letter-spacing:-.04em}
.hm-gov-head p{margin:0;color:#777a82;font-size:12px}
.hm-gov-logos{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px}
.hm-gov-logo{min-height:182px;position:relative;overflow:hidden;display:flex;flex-direction:column;padding:20px;border:1px solid #dedcdf;border-radius:20px;background:#fff;box-shadow:0 12px 34px rgba(34,27,30,.05)}
.hm-gov-logo:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,#d20b25,#ef4460 34%,transparent 85%)}
.hm-gov-logo>small{color:#9a9ca3;font:800 8px/1 var(--hm-mono);letter-spacing:.12em}
.hm-gov-mark{height:62px;margin:18px 0;display:flex;align-items:center}
.hm-gov-mark img{display:block;width:auto;max-width:100%;max-height:48px;object-fit:contain;object-position:left center}
.hm-gov-logo.is-ecrm .hm-gov-mark img{max-height:35px}
.hm-gov-role{margin-top:auto;display:flex;align-items:end;justify-content:space-between;gap:12px;padding-top:14px;border-top:1px solid #eceaec}
.hm-gov-role b{font-size:14px;line-height:1.35;letter-spacing:-.025em}
.hm-gov-role b em{color:#d20b25;font-style:normal}
.hm-gov-role span{flex:0 0 auto;color:#85878e;font-size:10px}

/* 04 · 디지털성범죄 대응 NO.1 · 용인 사옥 */
.hm-rank-wrap{padding:34px 0 76px;background:#f8f3f4}
.hm-rank-wrap>.container{max-width:1440px}
.hm-rank-banner{position:relative;min-height:468px;overflow:hidden;border:1px solid rgba(126,181,255,.18);border-radius:34px;color:#fff;background:radial-gradient(720px 400px at 76% 36%,rgba(17,103,217,.3),transparent 62%),radial-gradient(500px 340px at 20% 0%,rgba(199,21,52,.18),transparent 64%),linear-gradient(125deg,#050810 0%,#091322 58%,#07111e 100%);box-shadow:0 38px 90px rgba(8,13,22,.32);isolation:isolate}
.hm-rank-banner:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(4,8,15,.92) 0%,rgba(5,10,19,.74) 42%,rgba(5,12,23,.2) 72%,rgba(4,9,16,.52) 100%)}
.hm-rank-banner:after{content:"";position:absolute;inset:0;z-index:6;pointer-events:none;box-shadow:inset 0 0 0 1px rgba(255,255,255,.035),inset 0 -100px 140px rgba(0,0,0,.28)}
.hm-rank-grid{position:absolute;inset:0;z-index:-2;background-image:linear-gradient(rgba(94,157,245,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(94,157,245,.07) 1px,transparent 1px);background-size:38px 38px;-webkit-mask-image:linear-gradient(90deg,transparent 2%,#000 38%,#000 96%,transparent);mask-image:linear-gradient(90deg,transparent 2%,#000 38%,#000 96%,transparent)}
.hm-rank-skyline{position:absolute;top:42px;right:1.5%;bottom:82px;width:54%;z-index:-1;display:flex;align-items:end;justify-content:flex-end;gap:10px;opacity:.58;perspective:700px}
.hm-rank-skyline i{position:relative;width:10.5%;height:var(--h);border:1px solid rgba(94,171,255,.36);border-bottom:0;background:linear-gradient(180deg,rgba(60,143,249,.13),rgba(14,46,91,.03));box-shadow:inset 0 0 24px rgba(58,147,255,.08);transform:translateY(115%);opacity:0;transition:transform 1.15s cubic-bezier(.18,.75,.2,1) var(--d),opacity .7s ease var(--d)}
.hm-rank-skyline i:before{content:"";position:absolute;inset:10px 8px;background:repeating-linear-gradient(0deg,rgba(105,176,255,.21) 0 1px,transparent 1px 13px),repeating-linear-gradient(90deg,rgba(105,176,255,.13) 0 1px,transparent 1px 17px)}
.hm-rank-skyline i:nth-child(3),.hm-rank-skyline i:nth-child(5){border-color:rgba(92,176,255,.57);box-shadow:0 0 30px rgba(41,127,239,.08)}
.hm-rank-main{position:relative;z-index:2;min-height:326px;padding:50px 58px 20px;display:grid;grid-template-columns:minmax(390px,.85fr) minmax(440px,1.15fr);gap:30px;align-items:center}
.hm-rank-copy{position:relative;z-index:3}
.hm-rank-copy>span{display:flex;align-items:center;gap:9px;color:#86b9ff;font:800 9px/1 var(--hm-mono);letter-spacing:.18em}
.hm-rank-copy>span i{width:7px;height:7px;border-radius:50%;background:#ff334f;box-shadow:0 0 0 5px rgba(255,51,79,.1),0 0 18px rgba(255,51,79,.7)}
.hm-rank-copy h2{margin:16px 0 0;font-size:clamp(38px,4vw,60px);line-height:1.06;letter-spacing:-.055em}
.hm-rank-copy h2 em{display:inline-block;margin-top:4px;color:#ff3150;font-style:normal;text-shadow:0 0 30px rgba(255,41,73,.17)}
.hm-rank-copy p{margin:20px 0 0;color:#8b9aad;font-size:12px;letter-spacing:-.01em}
.hm-rank-construct{position:relative;min-height:270px;align-self:stretch;display:grid;place-items:center}
.hm-rank-coord{position:absolute;top:14px;right:16px;color:#56708f;font:700 8px/1 var(--hm-mono);letter-spacing:.14em}
.hm-rank-orbit{position:absolute;width:330px;height:230px;border:1px solid rgba(88,171,255,.2);border-radius:50%;transform:rotate(-9deg) scale(.74);opacity:0;transition:transform 1s .25s cubic-bezier(.18,.8,.2,1),opacity .7s .25s}
.hm-rank-orbit:before,.hm-rank-orbit:after{content:"";position:absolute;inset:24px -28px;border:1px solid rgba(87,166,255,.11);border-radius:50%}
.hm-rank-orbit:after{inset:58px -54px}
.hm-rank-orbit i{position:absolute;width:5px;height:5px;border-radius:50%;background:#75b9ff;box-shadow:0 0 11px #58a9ff}
.hm-rank-orbit i:nth-child(1){top:8%;left:25%}.hm-rank-orbit i:nth-child(2){right:4%;top:48%}.hm-rank-orbit i:nth-child(3){bottom:5%;left:36%}.hm-rank-orbit i:nth-child(4){left:-2%;top:42%}
.hm-rank-shield{position:relative;width:198px;height:228px;filter:drop-shadow(0 0 34px rgba(59,151,255,.3));transform:scale(.86);transition:transform 1s .2s cubic-bezier(.18,.8,.2,1)}
.hm-rank-shield:before{content:"";position:absolute;inset:0;z-index:0;clip-path:polygon(50% 0,94% 17%,88% 65%,74% 84%,50% 100%,26% 84%,12% 65%,6% 17%);background:linear-gradient(135deg,#6db7ff 0%,#1e67bf 42%,#80c7ff 100%);opacity:.8}
.hm-rank-shield:after{content:"";position:absolute;inset:3px;z-index:1;clip-path:polygon(50% 0,94% 17%,88% 65%,74% 84%,50% 100%,26% 84%,12% 65%,6% 17%);background:radial-gradient(circle at 50% 43%,#102a4a 0%,#071522 66%,#050c15 100%)}
.hm-rank-shield>i{position:absolute;inset:11px;z-index:2;opacity:0;background:linear-gradient(135deg,rgba(102,181,255,.34),rgba(21,72,131,.06));transition:transform 1s cubic-bezier(.16,.82,.2,1),opacity .65s ease}
.hm-rank-shield .p1{clip-path:polygon(50% 0,50% 43%,5% 20%);transform:translate(-70px,-62px)}
.hm-rank-shield .p2{clip-path:polygon(50% 0,95% 20%,50% 43%);transform:translate(70px,-62px)}
.hm-rank-shield .p3{clip-path:polygon(5% 20%,50% 43%,14% 67%);transform:translate(-88px,0)}
.hm-rank-shield .p4{clip-path:polygon(95% 20%,86% 67%,50% 43%);transform:translate(88px,0)}
.hm-rank-shield .p5{clip-path:polygon(14% 67%,50% 43%,50% 100%,27% 82%);transform:translate(-48px,72px)}
.hm-rank-shield .p6{clip-path:polygon(50% 43%,86% 67%,73% 82%,50% 100%);transform:translate(48px,72px)}
.hm-rank-shield>b{position:absolute;inset:0;z-index:4;display:grid;place-content:center;text-align:center;color:#d9ecff;font:900 31px/1 var(--hm-mono);letter-spacing:.12em;opacity:0;transform:scale(.66);transition:opacity .6s .7s,transform .75s .7s cubic-bezier(.18,.8,.2,1);text-shadow:0 0 22px rgba(93,178,255,.48)}
.hm-rank-shield>b:before{content:"";position:absolute;left:50%;top:50%;width:74px;height:74px;border:1px solid rgba(108,189,255,.3);border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 28px rgba(64,155,255,.13)}
.hm-rank-shield>b small{position:relative;margin-bottom:7px;color:#59dca6;font:800 8px/1 var(--hm-mono);letter-spacing:.2em}
.hm-rank-node{position:absolute;width:7px;height:7px;border:1px solid #6ab5ff;border-radius:50%;opacity:.5;box-shadow:0 0 14px rgba(89,168,255,.55)}
.hm-rank-node:after{content:"";position:absolute;top:2px;width:74px;height:1px;background:linear-gradient(90deg,rgba(92,172,255,.6),transparent)}
.hm-rank-node.n1{left:7%;top:28%}.hm-rank-node.n2{right:2%;top:42%}.hm-rank-node.n2:after{right:5px;transform:rotate(180deg)}.hm-rank-node.n3{left:18%;bottom:17%}
.hm-rank-status{position:absolute;right:18px;bottom:9px;color:#67dfa9;font:700 8px/1 var(--hm-mono);letter-spacing:.15em;font-style:normal}
.hm-rank-status:before{content:"";display:inline-block;width:5px;height:5px;margin-right:7px;border-radius:50%;background:#62dda6;box-shadow:0 0 9px #62dda6}
.hm-rank-office{position:relative;min-height:270px;margin:0;align-self:stretch;overflow:hidden;border:1px solid rgba(145,193,255,.24);border-radius:24px;background:#0a111d;box-shadow:0 24px 54px rgba(0,0,0,.3)}
.hm-rank-office:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 48%,rgba(4,8,14,.78));pointer-events:none}
.hm-rank-office img{width:100%;height:100%;display:block;object-fit:cover;object-position:center;filter:saturate(.9) contrast(1.04)}
.hm-rank-office figcaption{position:absolute;left:20px;right:20px;bottom:17px;z-index:1;display:flex;align-items:end;justify-content:space-between;gap:16px;color:#fff}
.hm-rank-office figcaption span{color:#8fc2ff;font:800 8px/1 var(--hm-mono);letter-spacing:.14em}
.hm-rank-office figcaption b{font-size:14px;letter-spacing:-.025em}
.hm-rank-stats{position:relative;z-index:3;margin:0 30px 22px;display:grid;grid-template-columns:1.08fr 1fr 1fr;border:1px solid rgba(139,193,255,.19);border-radius:20px;background:rgba(3,8,15,.76);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 18px 42px rgba(0,0,0,.2)}
.hm-rank-stats>div{position:relative;min-height:106px;padding:18px 22px;display:flex;flex-direction:column;justify-content:center;border-right:1px solid rgba(139,193,255,.13)}
.hm-rank-stats>div:last-child{border-right:0}
.hm-rank-stats>div:before{content:"";position:absolute;left:22px;top:0;width:28px;height:2px;background:#388fe9;box-shadow:0 0 12px rgba(78,165,255,.55)}
.hm-rank-stats>div.is-lead:before{background:#ff2f4f;box-shadow:0 0 12px rgba(255,47,79,.6)}
.hm-rank-stats small{color:#657890;font:800 8px/1 var(--hm-mono);letter-spacing:.13em}
.hm-rank-stats b{margin-top:9px;color:#f6f9fd;font-size:clamp(21px,2.2vw,30px);font-family:var(--hm-mono);line-height:1;letter-spacing:-.055em}
.hm-rank-stats b em{color:#ff3553;font-style:normal;font-family:inherit}.hm-rank-stats b span{color:#78baff;font-size:.5em;font-family:inherit}
.hm-rank-stats>div>span{margin-top:8px;color:#91a0b3;font-size:10px}
.hm-rank-system{position:relative;z-index:3;height:28px;margin:0 32px 12px;display:flex;align-items:center;gap:10px;color:#4f6075;font:700 8px/1 var(--hm-mono);letter-spacing:.12em}
.hm-rank-system b{color:#69dda9;font-size:8px}.hm-rank-system i{flex:1;height:1px;background:linear-gradient(90deg,rgba(88,159,232,.26),transparent)}.hm-rank-system em{font-style:normal}
.hm-rank-banner.is-built .hm-rank-skyline i{transform:translateY(0);opacity:1}
.hm-rank-banner.is-built .hm-rank-orbit{transform:rotate(-9deg) scale(1);opacity:1}
.hm-rank-banner.is-built .hm-rank-shield{transform:scale(1)}
.hm-rank-banner.is-built .hm-rank-shield>i{transform:none;opacity:1}
.hm-rank-banner.is-built .hm-rank-shield>b{opacity:1;transform:scale(1)}

/* 05 · 네 가지 세로 수법 스토리 */
.hm-channel-title{margin-bottom:34px}
.hm-channel-stories{display:grid;gap:28px}
.hm-channel-card{--route:#d20b25;overflow:hidden;border:1px solid #dddadd;border-radius:30px;background:#fff;box-shadow:0 24px 70px rgba(27,18,21,.09)}
.hm-channel-card[data-channel="open"]{--route:#e0a000}.hm-channel-card[data-channel="xtelegram"]{--route:#2d93e8}.hm-channel-card[data-channel="instagram"]{--route:#df2e7e}
.hm-channel-index{min-height:82px;padding:17px 24px;display:grid;grid-template-columns:64px 1fr auto;align-items:center;gap:18px;border-bottom:1px solid #e8e5e7;background:#faf8f9}
.hm-channel-index>span{font:900 34px/1 var(--hm-mono);color:var(--route)}
.hm-channel-index>div{display:grid;gap:5px}.hm-channel-index small{color:#9a979b;font:800 8px/1 var(--hm-mono);letter-spacing:.15em}.hm-channel-index b{font-size:16px;line-height:1.25;letter-spacing:-.035em}
.hm-channel-index>em{padding:8px 11px;border:1px solid #dfdcdf;border-radius:99px;color:#858188;background:#fff;font:800 8px/1 var(--hm-mono);letter-spacing:.08em;font-style:normal}
.hm-channel-stage{display:grid;grid-template-columns:minmax(590px,1.25fr) minmax(310px,.75fr);min-height:510px}
.hm-channel-visual{position:relative;overflow:hidden;min-height:510px;background:radial-gradient(circle at 68% 18%,#26364e 0%,#111927 42%,#080c13 100%)}
.hm-channel-visual:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:34px 34px;pointer-events:none}
.hm-channel-visual:after{content:"CASE EVIDENCE / ROUTE MAP";position:absolute;right:18px;bottom:13px;color:#415066;font:700 8px/1 var(--hm-mono);letter-spacing:.13em}
.hm-channel-insta{background:radial-gradient(circle at 22% 24%,rgba(219,42,125,.28),transparent 40%),radial-gradient(circle at 84% 76%,rgba(242,139,48,.16),transparent 42%),#0b0e17}
.hm-channel-apps{position:absolute;left:22px;top:18px;z-index:5;display:flex;gap:7px}
.hm-channel-apps img{width:42px;height:42px;border-radius:12px;object-fit:cover;background:#fff;border:1px solid rgba(255,255,255,.24);box-shadow:0 10px 24px rgba(0,0,0,.32)}
.hm-case-pair{position:absolute;inset:70px 26px 26px;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) 50px minmax(0,1fr);align-items:stretch}
.hm-case-screen{position:relative;min-width:0;height:100%;margin:0;overflow:hidden;border:1px solid rgba(255,255,255,.2);border-radius:25px;background:#f4f5f7;box-shadow:0 25px 55px rgba(0,0,0,.36)}
.hm-case-screen:first-child{transform:rotate(-1deg) translateY(8px)}.hm-case-screen:last-child{transform:rotate(1deg) translateY(-4px)}
.hm-case-badge{position:absolute;left:11px;top:11px;z-index:6;padding:6px 8px;border-radius:99px;color:#fff;background:rgba(7,11,18,.78);font:800 8px/1 var(--hm-mono);letter-spacing:.06em;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.hm-case-badge.is-live{color:#69e2ac}.hm-case-badge.is-live:before{content:"";display:inline-block;width:5px;height:5px;margin-right:5px;border-radius:50%;background:#61dca5;box-shadow:0 0 8px #61dca5}
.hm-case-top{height:94px;padding:48px 14px 12px;display:flex;align-items:center;gap:10px;border-bottom:1px solid #e5e6e8;background:#fff}
.hm-case-top>img,.hm-case-avatar{flex:0 0 auto;width:32px;height:32px;border-radius:10px;object-fit:cover;background:#f0f0f1;overflow:hidden}.hm-case-avatar img{width:100%;height:100%;object-fit:cover}
.hm-case-top>span{min-width:0;display:grid;gap:3px}.hm-case-top b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#181a1f;font-size:11px}.hm-case-top small{color:#999ca3;font-size:8px}
.hm-case-chat{padding:18px 14px 68px;display:grid;gap:10px;background:linear-gradient(180deg,#f6f7f9,#eef1f4);height:calc(100% - 94px);align-content:start}
.hm-case-chat p{max-width:86%;margin:0;padding:11px 12px;border-radius:4px 15px 15px;background:#fff;color:#25272d;box-shadow:0 4px 12px rgba(27,32,40,.06);font-size:10px;line-height:1.55}.hm-case-chat p.me{justify-self:end;border-radius:15px 15px 4px;background:var(--route);color:#fff}.hm-case-chat p b{font-weight:900}
.hm-case-chat em{justify-self:start;margin-top:4px;padding:7px 9px;border:1px solid #d9dde3;border-radius:99px;color:#667184;background:#fff;font:800 8px/1 var(--hm-mono);font-style:normal}
.hm-case-screen>img{width:100%;height:100%;display:block;object-fit:cover;object-position:top}
.hm-case-screen.is-capture:after,.hm-case-screen.is-video:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.06),transparent 25%,transparent 65%,rgba(0,0,0,.48));pointer-events:none}
.hm-case-screen figcaption{position:absolute;left:0;right:0;bottom:0;z-index:5;min-height:58px;padding:11px 13px;display:flex;align-items:center;gap:9px;color:#fff;background:linear-gradient(90deg,rgba(7,11,18,.96),rgba(12,18,28,.88));font-style:normal}
.hm-case-screen figcaption b{display:grid;place-items:center;width:25px;height:25px;border:1px solid rgba(255,255,255,.2);border-radius:50%;color:var(--route);font:900 8px/1 var(--hm-mono)}.hm-case-screen figcaption span{font-size:9px;font-weight:800}
.hm-case-route{position:relative;display:grid;place-items:center;font-style:normal}.hm-case-route:before{content:"";width:34px;height:1px;background:linear-gradient(90deg,rgba(119,169,229,.2),#72aff0)}.hm-case-route:after{content:"";position:absolute;right:7px;width:6px;height:6px;border-top:1px solid #79b7f7;border-right:1px solid #79b7f7;transform:rotate(45deg)}.hm-case-route span{position:absolute;top:42%;color:#6984a3;font:800 8px/1 var(--hm-mono);letter-spacing:.12em;transform:translateY(-16px)}
.hm-case-platform{position:absolute;left:10px;right:10px;top:47px;z-index:5;padding:8px 9px;display:grid;grid-template-columns:25px 1fr;column-gap:8px;align-items:center;border-radius:12px;color:#142033;background:rgba(255,255,255,.94);box-shadow:0 8px 25px rgba(0,0,0,.2)}.hm-case-platform img{grid-row:1/3;width:25px;height:25px;border-radius:8px}.hm-case-platform b{font-size:9px}.hm-case-platform small{font-size:8px;color:#8a9099}
.hm-video-ui{position:absolute;inset:0;z-index:4;color:#fff;pointer-events:none}.hm-video-ui span{position:absolute;right:11px;top:12px;padding:5px 7px;border-radius:99px;background:rgba(0,0,0,.55);font:700 8px/1 var(--hm-mono)}.hm-video-ui b{position:absolute;left:12px;top:48px;color:#ff6b80;font:800 8px/1 var(--hm-mono);letter-spacing:.07em}.hm-video-ui i{position:absolute;left:50%;bottom:72px;width:35px;height:35px;display:grid;place-items:center;border-radius:50%;background:#e52b45;font:800 18px/1 sans-serif;font-style:normal;transform:translateX(-50%)}
.hm-channel-copy{padding:42px 38px;display:flex;flex-direction:column;justify-content:center;border-left:1px solid #ece9eb;background:#fff}
.hm-channel-copy>small{font:800 8px/1 var(--hm-mono);letter-spacing:.15em;color:var(--route)}
.hm-channel-copy h3{margin:14px 0 16px;font-size:clamp(25px,2.4vw,35px);line-height:1.24;letter-spacing:-.05em}
.hm-channel-copy p{margin:0;color:#62646b;font-size:13px;line-height:1.8}
.hm-channel-steps{margin:25px 0 0;padding:0;list-style:none;border-top:1px solid #e7e4e6}.hm-channel-steps li{padding:11px 0;display:grid;grid-template-columns:30px 1fr;align-items:center;border-bottom:1px solid #eeecee}.hm-channel-steps b{color:var(--route);font:900 8px/1 var(--hm-mono)}.hm-channel-steps span{color:#52545b;font-size:11px;font-weight:800}
.hm-channel-disclosure{margin:18px 2px 0;color:#76777d;font-size:11px;line-height:1.7}

/* 06 · 악성앱 / SNS 탈취 흐름 */
.hm-exfil-wrap{background:#070a10;color:#fff}
.hm-exfil-wrap .section-title{margin-bottom:28px}.hm-exfil-wrap .section-title p{color:#96a0af}.hm-exfil-wrap .section-title p b{color:#fff}
.hm-exfil-legend{min-height:48px;margin-bottom:28px;padding:9px 14px;display:flex;align-items:center;gap:10px;border:1px solid #202938;border-radius:16px;background:#0b1017}.hm-exfil-legend>span{padding:8px 11px;display:flex;align-items:center;gap:7px;border:1px solid #273345;border-radius:99px;color:#a9b3c1;font-size:9px}.hm-exfil-legend>span i{width:6px;height:6px;border-radius:50%;background:#ff536b;box-shadow:0 0 9px rgba(255,83,107,.7)}.hm-exfil-legend>span.is-sns i{background:#5ca9ff;box-shadow:0 0 9px rgba(92,169,255,.7)}.hm-exfil-legend>span b{color:#fff;font:900 8px/1 var(--hm-mono)}.hm-exfil-legend>em{margin-left:auto;color:#667387;font-size:9px;font-style:normal}
.hm-exfil-case{overflow:hidden;margin-top:24px;border:1px solid #202837;border-radius:30px;background:linear-gradient(145deg,#0e131d,#090c12);box-shadow:0 30px 80px rgba(0,0,0,.28)}
.hm-exfil-case>header{min-height:120px;padding:28px 32px 24px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid #202837}.hm-exfil-case>header>div>span{font:800 9px/1 var(--hm-mono);letter-spacing:.16em;color:#ff536b}.hm-exfil-case>header h3{margin:12px 0 8px;font-size:clamp(26px,3vw,40px);letter-spacing:-.05em}.hm-exfil-case>header p{margin:0;color:#929dab;font-size:13px}.hm-exfil-case>header>em{flex:0 0 auto;padding:9px 12px;border:1px solid rgba(255,83,107,.32);border-radius:99px;color:#ff8a9b;background:rgba(255,83,107,.07);font:800 8px/1 var(--hm-mono);font-style:normal}.hm-exfil-case.social>header>em{color:#7fbdff;border-color:rgba(92,169,255,.32);background:rgba(92,169,255,.07)}
.hm-exfil-scene{min-height:420px;padding:30px;display:grid;grid-template-columns:132px 62px 230px 62px minmax(360px,1fr);align-items:center;gap:10px;background:radial-gradient(540px 260px at 78% 50%,rgba(43,116,214,.14),transparent)}
.hm-proof-chip{position:absolute;left:10px;top:10px;z-index:6;padding:5px 7px;border-radius:99px;color:#aab5c4;background:rgba(5,9,14,.84);font:800 8px/1 var(--hm-mono);letter-spacing:.06em}.hm-proof-chip.is-capture{color:#64dfa9}.hm-proof-chip.is-capture:before{content:"";display:inline-block;width:4px;height:4px;margin-right:5px;border-radius:50%;background:#5bd99f;box-shadow:0 0 7px #5bd99f}
.hm-host-node{position:relative;height:220px;padding:32px 10px 14px;border:1px solid #2e3c50;border-radius:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:linear-gradient(160deg,#0d1420,#080c12);box-shadow:inset 0 0 42px rgba(62,131,220,.08)}.hm-host-node:before,.hm-host-node:after{content:"";position:absolute;left:18px;right:18px;height:1px;background:#1e2c3f}.hm-host-node:before{top:58px}.hm-host-node:after{bottom:41px}.hm-host-node small{font:800 8px/1 var(--hm-mono);color:#68758a;letter-spacing:.11em}.hm-host-node>b{margin:13px 0 6px;font:900 44px/1 var(--hm-mono);color:#ff536b}.hm-host-node strong{font-size:10px;line-height:1.45}.hm-host-node>i{margin-top:9px;color:#677488;font:400 8px/1 var(--hm-mono);font-style:normal}.hm-host-node>em{margin-top:auto;color:#435168;font:700 8px/1 var(--hm-mono);font-style:normal;letter-spacing:.08em}
.hm-exfil-link{height:1px;position:relative;background:linear-gradient(90deg,#25364c,#4b9eff,#25364c)}.hm-exfil-link:before{content:"OUT";position:absolute;left:50%;bottom:8px;color:#51657e;font:700 8px/1 var(--hm-mono);transform:translateX(-50%)}.hm-exfil-link i{position:absolute;top:-3px;width:7px;height:7px;border-radius:50%;background:#6bb0ff;box-shadow:0 0 12px #6bb0ff;animation:hmPacket 2.2s linear infinite}.hm-exfil-link i:nth-child(2){animation-delay:.7s}.hm-exfil-link i:nth-child(3){animation-delay:1.4s}
@keyframes hmPacket{from{left:0;opacity:0}15%{opacity:1}to{left:calc(100% - 8px);opacity:0}}
.hm-exfil-phone{position:relative;height:350px;padding:6px 6px 0;border-radius:27px 27px 12px 12px;background:#020306;border:1px solid #303743;overflow:hidden;box-shadow:0 24px 54px rgba(0,0,0,.45)}.hm-exfil-phonebar{height:34px;padding:0 9px;display:flex;align-items:center;justify-content:space-between;color:#9da8b7;font:700 8px/1 var(--hm-mono);letter-spacing:.07em}.hm-exfil-phonebar b{color:#dbe4ef;font-size:8px}.hm-exfil-phone img{width:100%;height:310px;object-fit:cover;object-position:top}.hm-exfil-scan{position:absolute;left:12px;right:12px;bottom:13px;padding:8px;text-align:center;border:1px solid rgba(255,74,99,.5);border-radius:9px;background:rgba(76,7,18,.86);color:#ff9aaa;font:800 8px/1 var(--hm-mono);letter-spacing:.05em}
.hm-c2-screen{position:relative;overflow:hidden;height:350px;border:1px solid #2b3544;border-radius:18px;background:#05070a;box-shadow:0 18px 48px rgba(0,0,0,.35)}.hm-c2-top{height:40px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;border-bottom:1px solid #202837;color:#8490a0;font:800 8px/1 var(--hm-mono);letter-spacing:.08em}.hm-c2-top b{padding:5px 7px;border:1px solid #3a495d;border-radius:99px;color:#8fa1b8;font-size:8px}.hm-c2-dashboard{height:220px;display:grid;grid-template-columns:128px 1fr}.hm-c2-dashboard>aside{padding:14px 11px;display:flex;flex-direction:column;gap:8px;border-right:1px solid #1d2632;background:#080c12}.hm-c2-dashboard>aside small{margin-bottom:3px;color:#536075;font:800 8px/1 var(--hm-mono)}.hm-c2-dashboard>aside span{padding:8px 7px;display:flex;align-items:center;gap:6px;border:1px solid transparent;border-radius:7px;color:#69778a;font:700 8px/1 var(--hm-mono)}.hm-c2-dashboard>aside span.active{border-color:#29405d;color:#a9c7ea;background:#0f1925}.hm-c2-dashboard>aside i{width:5px;height:5px;border-radius:50%;background:#45566c}.hm-c2-dashboard>aside span.active i{background:#59dda4;box-shadow:0 0 7px #59dda4}.hm-c2-dashboard>aside em{margin-top:auto;color:#3e4b5c;font:600 8px/1 var(--hm-mono);font-style:normal}
.hm-c2-traffic{padding:13px}.hm-c2-traffic header,.hm-c2-traffic p{margin:0;display:grid;grid-template-columns:48px 1fr 52px;align-items:center}.hm-c2-traffic header{padding:0 7px 8px;color:#49576b;font:800 8px/1 var(--hm-mono)}.hm-c2-traffic p{min-height:36px;padding:0 7px;border-top:1px solid #17202b;color:#8290a1;font:600 8px/1 var(--hm-mono)}.hm-c2-traffic p b{color:#63aef9}.hm-c2-traffic p em{text-align:right;color:#5d6b7e;font-style:normal}.hm-c2-traffic p.alert{background:rgba(111,17,31,.17)}.hm-c2-traffic p.alert b,.hm-c2-traffic p.alert em{color:#ff677d}.hm-c2-console{height:90px;padding:12px 14px;display:grid;gap:6px;border-top:1px solid #1d2632;color:#6f98ca;font:400 8px/1.2 var(--hm-mono)}.hm-c2-console code.alert{color:#ff6379}
.hm-exfil-data{padding:24px 30px 30px;border-top:1px solid #202837;display:grid;grid-template-columns:minmax(0,1.25fr) 40px minmax(330px,.75fr);gap:14px;align-items:stretch;background:#080c12}.hm-exfil-data>header{grid-column:1/-1;display:flex;align-items:center;gap:12px;padding-bottom:4px}.hm-exfil-data>header span{color:#59728f;font:800 8px/1 var(--hm-mono);letter-spacing:.1em}.hm-exfil-data>header b{font-size:12px}.hm-exfil-data>header small{margin-left:auto;color:#59677a;font-size:8px}
.hm-exfil-data-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.hm-data-card{min-width:0;padding:12px;border:1px solid #273242;border-radius:14px;background:#0b1119}.hm-data-card>div{display:grid;gap:3px;padding-bottom:10px;border-bottom:1px solid #1f2936}.hm-data-card>div b{font-size:10px}.hm-data-card>div small{color:#687588;font-size:8px}.hm-data-card>section{height:92px;margin-top:10px;overflow:hidden}.hm-data-card.gallery section{display:grid;grid-template-columns:repeat(3,1fr);gap:3px}.hm-data-card.gallery section i{border-radius:3px;background:linear-gradient(145deg,#39485a,#121923)}.hm-data-card.gallery section i:nth-child(2),.hm-data-card.gallery section i:nth-child(5){background:linear-gradient(145deg,#6a4750,#20151a)}.hm-data-card.messages section{display:grid;gap:6px}.hm-data-card.messages p{margin:0;display:grid;grid-template-columns:17px 1fr;gap:6px;align-items:center}.hm-data-card.messages p i{width:17px;height:17px;border-radius:50%;background:#27374b}.hm-data-card.messages p span{height:8px;border-radius:99px;background:linear-gradient(90deg,#33445a 70%,transparent 70%)}.hm-data-card.calls section,.hm-data-card.contacts section{display:grid;align-content:start}.hm-data-card.calls p,.hm-data-card.contacts p{margin:0;padding:7px 0;display:grid;grid-template-columns:22px 1fr;gap:4px;align-items:center;border-bottom:1px solid #1d2632;color:#778599;font-size:8px}.hm-data-card.calls p i,.hm-data-card.contacts p i{width:18px;height:18px;display:grid;place-items:center;border-radius:50%;color:#6eaff6;background:#1c2a3b;font-style:normal;font-size:8px}.hm-data-card.contacts p i{color:#fff;background:#344256}
.hm-data-to-spread{align-self:center;color:#ff586f;text-align:center;font-size:25px;font-style:normal}.hm-spread-box{padding:14px;border:1px solid rgba(255,80,106,.3);border-radius:16px;background:#160c11}.hm-spread-box>header{padding-bottom:11px;border-bottom:1px solid rgba(255,99,121,.16);display:grid;gap:5px}.hm-spread-box>header span{color:#9b5360;font:800 8px/1 var(--hm-mono);letter-spacing:.1em}.hm-spread-box>header b{color:#ff7d90;font-size:11px}.hm-spread-screens{margin-top:12px;display:grid;grid-template-columns:1fr 1fr;gap:8px}.hm-spread-screens section{min-width:0;padding:9px;border:1px solid #34242a;border-radius:10px;background:#0f0d10}.hm-spread-screens section>div{display:flex;align-items:center;gap:6px}.hm-spread-screens img,.hm-spread-screens section>div i{width:21px;height:21px;display:grid;place-items:center;border-radius:6px;background:#244b93;color:#fff;font:800 8px/1 var(--hm-mono);font-style:normal}.hm-spread-screens section>div b{font-size:8px}.hm-spread-screens p{margin:10px 0 8px;padding:8px;border-radius:9px 9px 2px 9px;background:#d20b25;color:#fff;font-size:8px}.hm-spread-screens small{color:#6d6267;font-size:8px;line-height:1.4}.hm-spread-box>small{display:block;margin-top:11px;color:#7f6269;font-size:8px}
.hm-social-warning{margin:24px 30px 0;padding:15px 18px;display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:12px;border:1px solid rgba(255,82,106,.28);border-radius:16px;background:linear-gradient(90deg,rgba(103,13,28,.25),rgba(25,12,17,.35))}.hm-social-warning>i{width:30px;height:30px;display:grid;place-items:center;border:1px solid rgba(255,96,119,.42);border-radius:50%;color:#ff6e83;font:900 14px/1 var(--hm-mono);font-style:normal}.hm-social-warning p{margin:0;display:grid;gap:5px}.hm-social-warning p b{font-size:12px}.hm-social-warning p span{color:#9e8b91;font-size:10px}.hm-social-warning>em{color:#9d5360;font:800 8px/1 var(--hm-mono);letter-spacing:.1em;font-style:normal}
.hm-social-scene{min-height:400px;padding:24px 30px 30px;display:grid;grid-template-columns:1fr 34px 1fr 34px 1fr;align-items:stretch;gap:10px}.hm-social-arrow{align-self:center;text-align:center;color:#d94a61;font-size:24px}.hm-recorded-call,.hm-follower-panel,.hm-dm-spread{min-height:320px;border:1px solid #293343;border-radius:20px;background:#0a0f17;overflow:hidden}.hm-recorded-call{margin:0}.hm-call-top{height:42px;padding:0 13px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #202837;color:#7f8998;font:800 8px/1 var(--hm-mono)}.hm-call-top b{color:#ff536b}.hm-call-person{height:220px;position:relative;overflow:hidden;background:#0a0d12}.hm-call-person>img{width:100%;height:100%;display:block;object-fit:cover;object-position:center}.hm-call-person:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.04),transparent 55%,rgba(0,0,0,.52))}.hm-call-person span{position:absolute;right:11px;top:10px;z-index:2;padding:5px 7px;border-radius:99px;color:#ff9baa;background:rgba(0,0,0,.58);font:900 8px/1 var(--hm-mono);letter-spacing:.07em}.hm-call-person i{position:absolute;left:50%;bottom:13px;z-index:2;width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:#e52c46;color:#fff;font:800 16px/1 sans-serif;font-style:normal;transform:translateX(-50%)}.hm-recorded-call figcaption{height:58px;padding:10px 13px;display:grid;gap:4px}.hm-recorded-call figcaption strong{color:#ff647a;font:800 8px/1 var(--hm-mono)}.hm-recorded-call figcaption span{font-size:9px}
.hm-follower-head{height:76px;padding:0 15px;display:flex;gap:11px;align-items:center;border-bottom:1px solid #202837}.hm-follower-head img{width:36px;height:36px;border-radius:10px}.hm-follower-head span{display:grid;gap:4px}.hm-follower-head b{font:800 8px/1 var(--hm-mono);letter-spacing:.07em}.hm-follower-head small{color:#697487;font-size:8px}.hm-follower-panel ul{list-style:none;margin:0;padding:11px 14px}.hm-follower-panel li{display:grid;grid-template-columns:34px 1fr 22px;align-items:center;gap:8px;padding:10px 0;border-bottom:1px solid #1d2531}.hm-follower-panel li>i{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;color:#fff;background:#283447;font-size:9px;font-style:normal}.hm-follower-panel li>span{display:grid;gap:3px}.hm-follower-panel li>span b{font-size:9px}.hm-follower-panel li>span small{color:#626f81;font-size:8px}.hm-follower-panel li>em{color:#728096;font:400 8px/1 var(--hm-mono);font-style:normal}
.hm-dm-spread{padding:16px}.hm-dm-spread>header{display:flex;align-items:center;gap:9px}.hm-dm-spread>header img{width:30px;height:30px;border-radius:9px}.hm-dm-spread>header span{display:grid;gap:3px}.hm-dm-spread>header b{color:#ff667c;font-size:9px}.hm-dm-spread>header small{color:#697487;font-size:8px}.hm-dm-spread>p{margin:30px 0 22px;padding:14px;border-radius:14px 14px 3px 14px;background:#d20b25;color:#fff;font-size:10px;font-weight:800}.hm-dm-spread>div{display:flex;gap:5px}.hm-dm-spread>div span{flex:1;padding:8px 3px;text-align:center;border:1px solid #2b3645;border-radius:8px;color:#9da8b7;font-size:8px}.hm-dm-spread>small{display:block;margin-top:25px;color:#707c8d;font-size:8px;line-height:1.6}.hm-exfil-note{margin:18px 4px 0;color:#6f7b8d;font-size:10px;line-height:1.7}

/* 07 · 실제 접수-회복 프로세스 */
.hm-process-wrap{padding-bottom:110px;background:#070a10}.hm-process-wrap .section-title{margin-bottom:28px}.hm-process-wrap .section-title p{color:#939dac}.hm-process-wrap .section-title p b{color:#fff}
.hm-process-proofbar{margin-bottom:20px;padding:10px;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;border:1px solid #202937;border-radius:18px;background:#0b0f16}.hm-process-proofbar>span{min-width:0;padding:11px 12px;display:grid;grid-template-columns:25px 1fr;column-gap:8px;align-items:center;border:1px solid #252f3e;border-radius:12px;color:#697587;font-size:8px}.hm-process-proofbar i{grid-row:1/3;width:25px;height:25px;display:grid;place-items:center;border-radius:8px;color:#ff6a7f;background:#291018;font:900 8px/1 var(--hm-mono);font-style:normal}.hm-process-proofbar b{color:#dbe2ec;font-size:9px}
.hm-process-real{position:relative;display:grid;gap:20px}.hm-process-step{display:grid;grid-template-columns:82px minmax(420px,1.22fr) minmax(300px,.78fr);overflow:hidden;min-height:500px;border:1px solid #242d3a;border-radius:28px;background:linear-gradient(145deg,#0d1118,#090c12);color:#fff;box-shadow:0 28px 70px rgba(0,0,0,.22)}
.hm-process-no{padding:25px 15px;display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid #242d3a;background:#080b10}.hm-process-no span{font:900 32px/1 var(--hm-mono);color:#ff5169}.hm-process-no small{writing-mode:vertical-rl;transform:rotate(180deg);color:#596577;font:800 9.5px/1 var(--hm-mono);letter-spacing:.16em}
.hm-process-source{display:inline-flex;align-items:center;gap:5px;padding:8px 11px;border:1px solid #344154;border-radius:99px;color:#94a2b5;background:rgba(7,11,17,.84);font:900 10px/1 var(--hm-mono);letter-spacing:.07em}.hm-process-source:before{content:"";width:5px;height:5px;border-radius:50%;background:#6b7d95}.hm-process-source.is-real{color:#6fe4ae;border-color:rgba(84,218,155,.35)}.hm-process-source.is-real:before{background:#58dda0;box-shadow:0 0 8px #58dda0}.hm-process-source.is-demo{color:#7eb9ff;border-color:rgba(92,169,255,.35)}.hm-process-source.is-demo:before{background:#62adff;box-shadow:0 0 8px #62adff}
.hm-process-shot{position:relative;min-height:500px;margin:0;overflow:hidden;border-right:1px solid #242d3a;background:#111722}.hm-process-shot>img,.hm-process-shot>picture{width:100%;height:100%;display:block}.hm-process-shot>img,.hm-process-shot>picture img{width:100%;height:100%;display:block;object-fit:cover;object-position:center top;filter:saturate(.92)}.hm-process-shot:after{content:"";position:absolute;inset:55% 0 0;background:linear-gradient(transparent,rgba(3,6,10,.86))}.hm-process-shot figcaption,.hm-tech-main figcaption,.hm-tech-sub figcaption,.hm-recovery-report figcaption,.hm-recovery-review figcaption{position:absolute;z-index:3;left:17px;right:17px;bottom:15px;display:flex;align-items:center;gap:10px}.hm-process-shot figcaption b,.hm-tech-main figcaption b,.hm-tech-sub figcaption b,.hm-recovery-report figcaption b,.hm-recovery-review figcaption b{font-size:10px}.hm-process-shot figcaption a{margin-left:auto;color:#fff;font-size:9px;font-weight:800}
.hm-process-copy{padding:36px 32px;display:flex;flex-direction:column;justify-content:center}.hm-process-copy>b{color:#ff5c72;font:800 11px/1 var(--hm-mono);letter-spacing:.12em}.hm-process-copy h3{margin:14px 0;font-size:clamp(24px,2.3vw,34px);line-height:1.27;letter-spacing:-.05em}.hm-process-copy p{margin:0;color:#97a0ae;font-size:15px;line-height:1.8}.hm-process-checks{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:8px}.hm-process-checks li{padding:11px 13px;border:1px solid #252f3d;border-radius:9px;color:#a9b3c1;background:#0b1017;font-size:11.5px}.hm-process-checks li:before{content:"✓";margin-right:8px;color:#5ce0a4;font-weight:900}.hm-process-status{margin-top:20px;display:flex;align-items:center;gap:8px;color:#c4ccd7;font-size:12px}.hm-process-status i{width:7px;height:7px;border-radius:50%;background:#42dd93;box-shadow:0 0 12px #42dd93}.hm-process-link{margin-top:18px;color:#fff;font-size:13px;font-weight:800}
.hm-process-team-v2{position:relative;min-height:500px;overflow:hidden;border-right:1px solid #242d3a;background:#0c1118}.hm-team-office{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.68) brightness(.43)}.hm-process-team-v2:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,7,11,.12),rgba(4,7,11,.85) 88%)}.hm-process-team-v2>.hm-process-source{position:absolute;z-index:4;left:18px;top:18px}.hm-team-portraits{position:absolute;z-index:3;left:18px;right:18px;bottom:83px;display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.hm-team-portraits figure{position:relative;height:260px;margin:0;overflow:hidden;border:1px solid rgba(255,255,255,.2);border-radius:16px;background:#111722;box-shadow:0 18px 36px rgba(0,0,0,.3)}.hm-team-portraits figure>img{width:100%;height:100%;object-fit:cover;object-position:top}.hm-team-portraits figure:after{content:"";position:absolute;inset:50% 0 0;background:linear-gradient(transparent,rgba(5,8,12,.9))}.hm-team-portraits figcaption{position:absolute;z-index:2;left:11px;right:11px;bottom:10px;display:grid;gap:3px}.hm-team-portraits figcaption b{font-size:12px}.hm-team-portraits figcaption span{color:#8f9bac;font-size:10px}.hm-team-desk{position:absolute;z-index:4;left:18px;right:18px;bottom:17px;display:grid;grid-template-columns:auto 1fr;gap:4px 10px;padding:12px 14px;border:1px solid rgba(255,255,255,.15);border-radius:13px;background:rgba(6,9,14,.82);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.hm-team-desk small{grid-row:1/3;color:#75aff7;font:800 10px/1 var(--hm-mono);letter-spacing:.1em;align-self:center}.hm-team-desk b{font-size:13px}.hm-team-desk span{color:#7f8b9c;font-size:10px}
.hm-process-techboard{position:relative;min-height:500px;overflow:hidden;border-right:1px solid #242d3a;background:radial-gradient(circle at 60% 30%,#182233,#070a0f 72%)}.hm-tech-main{position:absolute;inset:18px 18px 88px;margin:0;overflow:hidden;border:1px solid #313d4d;border-radius:17px;background:#080b10;box-shadow:0 22px 44px rgba(0,0,0,.36)}.hm-tech-main>img{width:100%;height:100%;display:block;object-fit:cover;object-position:center}.hm-tech-main:after,.hm-tech-sub:after,.hm-recovery-report:after,.hm-recovery-review:after{content:"";position:absolute;inset:55% 0 0;background:linear-gradient(transparent,rgba(4,7,11,.9))}.hm-tech-sub{position:absolute;z-index:3;right:30px;bottom:100px;width:43%;height:178px;margin:0;overflow:hidden;border:1px solid #4a5666;border-radius:14px;background:#fff;box-shadow:0 18px 40px rgba(0,0,0,.42)}.hm-tech-sub>img{width:100%;height:100%;display:block;object-fit:cover;object-position:center top}.hm-tech-sub figcaption{left:10px;right:10px;bottom:9px;display:grid;justify-items:start;gap:5px}.hm-tech-sub figcaption b{font-size:10px}.hm-tech-redaction{position:absolute;left:18px;right:18px;bottom:18px;display:flex;align-items:center;gap:10px;padding:11px 13px;border:1px solid #273547;border-radius:12px;background:#0b1119}.hm-tech-redaction>i{width:8px;height:8px;border-radius:50%;background:#62adff;box-shadow:0 0 11px #62adff}.hm-tech-redaction>span{display:grid;gap:3px;color:#748196;font-size:10px}.hm-tech-redaction b{color:#b7c4d4;font-size:10px}
.hm-process-recovery{height:500px;min-height:0;padding:14px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:10px;border-right:1px solid #242d3a;background:#080c12}.hm-process-review-card{position:relative;min-width:0;min-height:0;margin:0;overflow:hidden;border:1px solid #2c3746;border-radius:14px;background:#fff;box-shadow:0 10px 24px rgba(22,31,44,.12)}.hm-process-review-card>img{width:100%;height:100%;display:block;object-fit:cover;object-position:center}.hm-recovery-report,.hm-recovery-review{position:relative;min-height:0;margin:0;overflow:hidden;border:1px solid #2c3746;border-radius:16px;background:#10151e}.hm-recovery-report>img,.hm-recovery-review>img{width:100%;height:100%;min-height:0;display:block;object-fit:cover;object-position:center top}.hm-recovery-report figcaption,.hm-recovery-review figcaption{left:12px;right:12px;bottom:10px}.hm-recovery-report figcaption b,.hm-recovery-review figcaption b{font-size:9px}.hm-process-note{margin:16px 2px 0;color:#687486;font-size:10px;line-height:1.7}

/* 08 · 자동 재생형 WebGL RESPONSE ATLAS */
.hm-atlas-cinema{--hm-atlas-accent:#ff536c;position:relative;overflow:hidden;padding:96px 0 90px;background:#05080e;color:#fff}.hm-atlas-cinema:before{content:"";position:absolute;inset:-25% -10% auto;height:720px;background:radial-gradient(circle at 48% 42%,rgba(28,82,129,.2),transparent 48%),radial-gradient(circle at 82% 24%,rgba(200,20,54,.09),transparent 32%);pointer-events:none}.hm-atlas-cinema *{box-sizing:border-box}.hm-atlas-cinema button,.hm-atlas-cinema a{font:inherit}.hm-atlas-cinema button:focus-visible,.hm-atlas-cinema a:focus-visible{outline:2px solid #79c5ff;outline-offset:3px}
.hm-atlas-head{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,455px);gap:70px;align-items:end}.hm-atlas-eyebrow{display:flex;align-items:center;gap:11px;margin:0 0 20px;color:#5e6b7c;font:800 8px/1 var(--hm-mono);letter-spacing:.13em}.hm-atlas-eyebrow span{color:#ff5a70}.hm-atlas-head h2{margin:0;font-size:clamp(42px,5vw,72px);line-height:1.04;letter-spacing:-.065em}.hm-atlas-head h2 em{color:#ed1738;font-style:normal}.hm-atlas-head>p{margin:0 0 7px;color:#8c98a8;font-size:14px;line-height:1.85}
.hm-atlas-player{position:relative;z-index:1;width:min(calc(100% - 48px),1600px);margin:52px auto 0;overflow:hidden;border:1px solid rgba(153,186,228,.18);border-radius:28px;background:#080c13;box-shadow:0 42px 120px rgba(0,0,0,.42),0 0 0 1px rgba(255,255,255,.02) inset}.hm-atlas-player-top{height:58px;padding:0 18px 0 21px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid rgba(255,255,255,.09);background:#0b1018;color:#708094;font:800 8px/1 var(--hm-mono);letter-spacing:.1em}.hm-atlas-live,.hm-atlas-player-state{display:flex;align-items:center;gap:10px}.hm-atlas-live>i{width:7px;height:7px;border-radius:50%;background:#50e0a4;box-shadow:0 0 13px #50e0a4}.hm-atlas-live>b{padding-left:10px;border-left:1px solid #26303d;color:#485667}.hm-atlas-player-state>span b{color:#fff}.hm-atlas-player-state button{min-height:34px;padding:0 12px;display:flex;align-items:center;gap:8px;border:1px solid #2b3849;border-radius:8px;background:#101823;color:#a8b5c5;cursor:pointer;font-size:8px;font-weight:900}.hm-atlas-player-state button:hover{border-color:#52647b;color:#fff}.hm-atlas-player-state button i{color:var(--hm-atlas-accent);font-style:normal}
.hm-atlas-scene{position:relative;height:clamp(570px,51vw,710px);overflow:hidden;isolation:isolate;background:radial-gradient(circle at 51% 49%,rgba(37,91,128,.22),transparent 29%),radial-gradient(circle at 50% 52%,rgba(16,35,55,.58),transparent 56%),#05080e}.hm-atlas-scene:after{content:"";position:absolute;z-index:11;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(5,8,14,.88),transparent 28%,transparent 71%,rgba(5,8,14,.42)),linear-gradient(0deg,rgba(5,8,14,.9),transparent 25%,transparent 82%,rgba(5,8,14,.18));box-shadow:inset 0 0 130px rgba(0,0,0,.58)}.hm-atlas-canvas{position:absolute;z-index:2;inset:0;width:100%;height:100%;display:block;opacity:1;transition:opacity .3s}.hm-atlas-no-gl .hm-atlas-canvas{opacity:0}.hm-atlas-grid{position:absolute;z-index:1;inset:0;opacity:.32;background-image:linear-gradient(rgba(116,157,198,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(116,157,198,.08) 1px,transparent 1px);background-size:42px 42px;mask-image:radial-gradient(circle at 52% 50%,#000 0,transparent 73%)}.hm-atlas-scan{position:absolute;z-index:3;left:51%;top:49%;width:410px;height:410px;border:1px solid rgba(101,187,255,.17);border-radius:50%;transform:translate(-50%,-50%) scale(.22);animation:hmAtlasSweep 4.4s ease-out infinite;pointer-events:none}
.hm-atlas-labels{position:absolute;z-index:8;inset:0}.hm-atlas-label{position:absolute;left:var(--x);top:var(--y);min-width:116px;padding:10px 12px 10px 27px;display:grid;gap:3px;border:1px solid rgba(130,158,190,.18);border-radius:10px;background:rgba(7,12,19,.76);color:#6f7d8e;transform:translate(-50%,-50%);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:opacity .35s,border-color .35s,color .35s,transform .35s}.hm-atlas-label>i{position:absolute;left:12px;top:50%;width:6px;height:6px;border-radius:50%;background:#52657a;transform:translateY(-50%)}.hm-atlas-label b{font-size:10px}.hm-atlas-label small{font:800 8px/1 var(--hm-mono);letter-spacing:.08em}.hm-atlas-label.active{z-index:2;border-color:color-mix(in srgb,var(--hm-atlas-accent) 62%,transparent);color:#fff;transform:translate(-50%,-50%) scale(1.06);box-shadow:0 0 34px color-mix(in srgb,var(--hm-atlas-accent) 15%,transparent)}.hm-atlas-label.active>i{background:var(--hm-atlas-accent);box-shadow:0 0 12px var(--hm-atlas-accent)}
.hm-atlas-core{position:absolute;z-index:9;left:51%;top:49%;width:138px;height:138px;display:grid;place-content:center;text-align:center;border:1px solid rgba(255,83,108,.42);border-radius:50%;background:radial-gradient(circle,rgba(63,12,23,.9),rgba(8,11,17,.82) 67%);box-shadow:0 0 0 16px rgba(255,83,108,.025),0 0 58px rgba(255,36,68,.12);transform:translate(-50%,-50%)}.hm-atlas-core:before,.hm-atlas-core:after{content:"";position:absolute;inset:-13px;border:1px dashed rgba(255,83,108,.19);border-radius:50%}.hm-atlas-core:after{inset:-30px;border-color:rgba(103,178,235,.09)}.hm-atlas-core span{color:#ff7084;font:900 8px/1 var(--hm-mono);letter-spacing:.12em}.hm-atlas-core b{margin-top:8px;font:900 15px/1 var(--hm-mono)}.hm-atlas-core small{margin-top:7px;color:#59677a;font:700 8px/1 var(--hm-mono)}
.hm-atlas-story{position:absolute;z-index:15;left:34px;bottom:34px;width:min(440px,40%);padding:22px 23px;border-left:2px solid var(--hm-atlas-accent);background:rgba(6,10,16,.84);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 18px 44px rgba(0,0,0,.22)}.hm-atlas-story>span{color:var(--hm-atlas-accent);font:900 8px/1 var(--hm-mono);letter-spacing:.12em}.hm-atlas-story h3{margin:13px 0 10px;font-size:clamp(25px,2.5vw,39px);line-height:1.18;letter-spacing:-.05em}.hm-atlas-story p{margin:0;color:#98a4b3;font-size:11px;line-height:1.72}.hm-atlas-tags{margin-top:17px;display:flex;flex-wrap:wrap;gap:6px}.hm-atlas-tags span{padding:6px 8px;border:1px solid #273444;border-radius:6px;background:#0a111a;color:#718096;font:800 8px/1 var(--hm-mono);letter-spacing:.06em}
.hm-atlas-product-film{position:absolute;z-index:15;right:28px;top:28px;width:clamp(232px,23vw,320px);aspect-ratio:972/840;margin:0;overflow:hidden;border:1px solid rgba(255,255,255,.23);border-radius:17px;background:#020307;box-shadow:0 24px 60px rgba(0,0,0,.43)}.hm-atlas-product-film video{width:100%;height:100%;display:block;object-fit:cover}.hm-atlas-product-film:after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(3,6,10,.88));pointer-events:none}.hm-atlas-product-film figcaption{position:absolute;z-index:2;left:13px;right:13px;bottom:12px;display:grid;grid-template-columns:1fr auto;gap:5px;color:#fff}.hm-atlas-product-film figcaption>span{grid-column:1/-1;display:flex;align-items:center;gap:6px;color:#ff7689;font:900 8px/1 var(--hm-mono);letter-spacing:.1em}.hm-atlas-product-film figcaption>span i{width:5px;height:5px;border-radius:50%;background:#ff536c;box-shadow:0 0 9px #ff536c}.hm-atlas-product-film figcaption b{font-size:10px}.hm-atlas-product-film figcaption small{align-self:end;color:#7c8999;font-size:8px}
.hm-atlas-coordinate{position:absolute;z-index:13;left:25px;top:23px;display:flex;gap:12px;color:#4f5e70;font:800 8px/1 var(--hm-mono);letter-spacing:.08em}.hm-atlas-coordinate b{color:#55dca5}.hm-atlas-legend{position:absolute;z-index:13;right:28px;bottom:28px;padding:9px 11px;display:flex;gap:13px;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:rgba(7,11,17,.75);color:#687587;font:700 8px/1 var(--hm-mono)}.hm-atlas-legend span{display:flex;align-items:center;gap:6px}.hm-atlas-legend i{width:6px;height:6px;border-radius:50%;background:#617285}.hm-atlas-legend i.core{background:#ff536c}.hm-atlas-legend i.focus{background:var(--hm-atlas-accent);box-shadow:0 0 8px var(--hm-atlas-accent)}.hm-atlas-legend i.flow{width:12px;height:1px;border-radius:0;background:#69baff}
.hm-atlas-timeline{margin:0;padding:0;display:grid;grid-template-columns:repeat(6,1fr);list-style:none;border-top:1px solid rgba(255,255,255,.09);background:#090e16}.hm-atlas-timeline li{min-width:0}.hm-atlas-timeline button{position:relative;width:100%;min-height:108px;padding:20px 16px 18px;display:grid;grid-template-columns:auto 1fr;gap:7px 11px;text-align:left;border:0;border-right:1px solid rgba(255,255,255,.08);background:transparent;color:#697789;cursor:pointer;transition:background .25s,color .25s}.hm-atlas-timeline li:last-child button{border-right:0}.hm-atlas-timeline button:hover{background:#0e1621;color:#bec8d4}.hm-atlas-timeline button>span{grid-row:1/3;color:#465567;font:900 8px/1 var(--hm-mono)}.hm-atlas-timeline button>b{font-size:11px}.hm-atlas-timeline button>small{font-size:8px;color:#566476}.hm-atlas-timeline button>i{position:absolute;left:0;right:0;top:0;height:2px;background:#1b2633;overflow:hidden}.hm-atlas-timeline button>i:after{content:"";display:block;width:100%;height:100%;background:var(--hm-atlas-accent);transform:scaleX(0);transform-origin:left}.hm-atlas-timeline button.active{background:linear-gradient(180deg,color-mix(in srgb,var(--hm-atlas-accent) 10%,transparent),transparent);color:#fff}.hm-atlas-timeline button.active>span{color:var(--hm-atlas-accent)}.hm-atlas-player.is-playing .hm-atlas-timeline button.active>i:after{animation:hmAtlasProgress 4.4s linear both}
.hm-atlas-foot{position:relative;z-index:1;margin-top:16px;display:flex;align-items:center;justify-content:space-between;gap:24px}.hm-atlas-foot p{margin:0;display:flex;align-items:flex-start;gap:9px;color:#667487;font-size:9px;line-height:1.6}.hm-atlas-foot p i{width:7px;height:7px;flex:none;margin-top:3px;border-radius:50%;background:#f0ad59;box-shadow:0 0 9px rgba(240,173,89,.55)}.hm-atlas-foot a{flex:none;color:#cbd5e1;font-size:10px;font-weight:900;text-decoration:none}.hm-atlas-foot a span{margin-left:7px;color:#ff5d74}
@keyframes hmAtlasSweep{0%{transform:translate(-50%,-50%) scale(.22);opacity:0}18%{opacity:.65}100%{transform:translate(-50%,-50%) scale(1.85);opacity:0}}@keyframes hmAtlasProgress{to{transform:scaleX(1)}}
@media(max-width:1100px){.hm-atlas-head{grid-template-columns:1fr;gap:26px}.hm-atlas-head>p{max-width:720px}.hm-atlas-product-film{width:250px}.hm-atlas-story{width:min(430px,48%)}.hm-atlas-label{min-width:100px;padding-inline:25px 9px}.hm-atlas-label b{font-size:9px}}
@media(max-width:760px){.hm-atlas-cinema{padding:68px 0 70px}.hm-atlas-head{gap:20px}.hm-atlas-head h2{font-size:39px}.hm-atlas-head>p{font-size:12px;line-height:1.7}.hm-atlas-player{width:calc(100% - 20px);margin-top:34px;border-radius:19px}.hm-atlas-player-top{height:52px;padding-inline:12px}.hm-atlas-live>b{display:none}.hm-atlas-live>span{font-size:8px}.hm-atlas-player-state{gap:7px}.hm-atlas-player-state>span{font-size:8px}.hm-atlas-player-state button{min-height:30px;padding-inline:9px}.hm-atlas-player-state button span{display:none}.hm-atlas-scene{height:640px}.hm-atlas-labels{display:none}.hm-atlas-core{left:50%;top:49%;width:116px;height:116px}.hm-atlas-core:after{inset:-22px}.hm-atlas-story{left:17px;right:17px;top:23px;bottom:auto;width:auto;padding:18px}.hm-atlas-story h3{font-size:29px}.hm-atlas-story p{font-size:10px}.hm-atlas-product-film{right:16px;top:auto;bottom:18px;width:166px;border-radius:13px}.hm-atlas-product-film figcaption{left:10px;right:10px;bottom:9px}.hm-atlas-product-film figcaption small{display:none}.hm-atlas-coordinate{left:16px;top:auto;bottom:26px;display:grid;gap:5px}.hm-atlas-coordinate span{display:none}.hm-atlas-legend{display:none}.hm-atlas-timeline{grid-template-columns:1fr 1fr}.hm-atlas-timeline button{min-height:82px;padding:16px 13px;border-bottom:1px solid rgba(255,255,255,.08)}.hm-atlas-timeline li:nth-child(2n) button{border-right:0}.hm-atlas-timeline button>b{font-size:10px}.hm-atlas-foot{align-items:flex-start;flex-direction:column}.hm-atlas-foot a{align-self:flex-end}}
@media(max-width:420px){.hm-atlas-head h2{font-size:35px}.hm-atlas-scene{height:610px}.hm-atlas-story h3{font-size:26px}.hm-atlas-tags span{font-size:8px}.hm-atlas-product-film{width:148px}.hm-atlas-core{top:52%;width:106px;height:106px}.hm-atlas-core b{font-size:12px}.hm-atlas-timeline button{padding-inline:11px}.hm-atlas-timeline button>small{font-size:8px}}

/* 09 · PUBLIC DEFENSE LAB — 8개 기술 S/W 체험 */
.hm-agent-section{background:#f3f5f8}.hm-agent-heading{grid-template-columns:minmax(520px,1.08fr) minmax(0,.92fr);gap:48px}.hm-agent-heading h2{font-size:clamp(40px,3.8vw,52px);letter-spacing:-.055em}.hm-agent-lab{--agent-accent:#ff536c;overflow:hidden;border:1px solid #1c2633;border-radius:28px;background:#080c12;color:#fff;box-shadow:0 38px 100px rgba(12,19,30,.27)}.hm-agent-lab *{box-sizing:border-box}.hm-agent-lab button{font:inherit}.hm-agent-lab button:focus-visible{outline:2px solid #7fc0ff;outline-offset:2px}
.hm-agent-topbar{height:56px;padding:0 19px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #202a37;background:#0b1017;color:#738196;font:800 8px/1 var(--hm-mono);letter-spacing:.1em}.hm-agent-brand,.hm-agent-safety,.hm-agent-safety>span{display:flex;align-items:center}.hm-agent-brand{gap:6px}.hm-agent-brand>i{width:8px;height:8px;border-radius:50%;background:#ff5c57}.hm-agent-brand>i:nth-child(2){background:#ffbd42}.hm-agent-brand>i:nth-child(3){background:#38d58e}.hm-agent-brand>b{margin-left:8px;color:#c1cad7}.hm-agent-safety{gap:14px}.hm-agent-safety>span{gap:6px}.hm-agent-safety i{width:6px;height:6px;border-radius:50%;background:#5aa7ff;box-shadow:0 0 9px rgba(90,167,255,.7)}.hm-agent-safety>span:last-child{color:#65dca8}.hm-agent-safety>span:last-child i{background:#50dda0;box-shadow:0 0 9px rgba(80,221,160,.7)}
.hm-agent-layout{display:grid;grid-template-columns:220px minmax(0,1fr) 262px;align-items:stretch}.hm-agent-nav{min-width:0;padding:16px 13px 14px;display:flex;flex-direction:column;border-right:1px solid #202a37;background:#090d13}.hm-agent-nav-head{padding:4px 7px 12px;display:flex;justify-content:space-between;gap:8px;color:#536074;font:800 8px/1 var(--hm-mono);letter-spacing:.12em}.hm-agent-nav-head b{color:#ff647a;font-weight:800}.hm-agent-tabs{display:grid;gap:5px}.hm-agent-tabs>button{width:100%;min-height:55px;padding:9px 10px;display:grid;grid-template-columns:31px 1fr;align-items:center;gap:8px;border:1px solid transparent;border-radius:12px;background:transparent;color:#a8b3c2;text-align:left;cursor:pointer;transition:border-color .2s,background .2s,color .2s}.hm-agent-tabs>button>i{font:800 8px/1 var(--hm-mono);font-style:normal;color:#53647a}.hm-agent-tabs>button>span{min-width:0;display:grid;gap:4px}.hm-agent-tabs>button b{overflow:hidden;color:inherit;font-size:10px;line-height:1.2;white-space:nowrap;text-overflow:ellipsis}.hm-agent-tabs>button small{overflow:hidden;color:#566478;font:700 8px/1 var(--hm-mono);letter-spacing:.08em;white-space:nowrap;text-overflow:ellipsis}.hm-agent-tabs>button:hover,.hm-agent-tabs>button.active{border-color:#2b3a4e;background:#101824;color:#fff}.hm-agent-tabs>button.active{box-shadow:inset 3px 0 0 var(--agent-accent)}.hm-agent-tabs>button.active>i{color:var(--agent-accent)}.hm-agent-tabs>button.active small{color:#8293aa}.hm-agent-nav-note{margin:auto 4px 0;padding:13px 12px;border:1px solid #263244;border-radius:12px;background:#0b121b;color:#657286;font-size:8px;line-height:1.65}.hm-agent-nav-note b{display:block;margin-bottom:5px;color:#6caeff;font:800 8px/1 var(--hm-mono);letter-spacing:.08em}
.hm-agent-workspace{min-width:0;background:#070a0f}.hm-agent-workhead{min-height:145px;padding:23px 22px 20px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:24px;border-bottom:1px solid #202a37;background:radial-gradient(circle at 82% 12%,rgba(55,127,213,.12),transparent 34%),#0a0f16}.hm-agent-workhead>div{min-width:0}.hm-agent-workhead span{color:#66adff;font:800 8px/1 var(--hm-mono);letter-spacing:.12em}.hm-agent-workhead h3{margin:10px 0 7px;font-size:clamp(20px,2vw,28px);line-height:1.22;letter-spacing:-.045em}.hm-agent-workhead p{max-width:620px;margin:0;color:#8795a8;font-size:10px;line-height:1.65}.hm-agent-workhead>button{min-width:140px;min-height:44px;padding:0 16px;border:1px solid #dd1732;border-radius:11px;background:#d8122d;color:#fff;font-size:9px;font-weight:900;cursor:pointer;box-shadow:0 12px 28px rgba(216,18,45,.23);transition:.2s}.hm-agent-workhead>button:hover{background:#ed1d3b;transform:translateY(-1px)}.hm-agent-workhead>button:disabled{cursor:wait;opacity:.72;transform:none}
.hm-agent-simframe{min-height:468px;padding:18px;display:flex;background:radial-gradient(circle at 50% 16%,rgba(44,91,149,.13),transparent 46%),#06090e}.hm-agent-simhost{min-width:0;flex:1;display:flex}.hm-agent-simhost .tsim{width:100%;height:100%;min-height:432px;border-radius:16px;box-shadow:0 22px 50px rgba(0,0,0,.28)}.hm-agent-simhost .tsim-live{color:#75b5ff}.hm-agent-simhost .tsim-live:before{background:#5aa8ff;box-shadow:0 0 8px rgba(90,168,255,.9)}.hm-agent-runbar{min-height:66px;padding:12px 18px;display:grid;grid-template-columns:auto minmax(160px,1fr);align-items:center;gap:22px;border-top:1px solid #202a37;background:#080c12}.hm-agent-runbar>div:first-child{display:grid;gap:5px}.hm-agent-runbar>div:first-child span{color:#566478;font:800 8px/1 var(--hm-mono);letter-spacing:.1em}.hm-agent-runbar>div:first-child b{color:#70dfa9;font:800 9px/1 var(--hm-mono)}.hm-agent-progress{display:grid;grid-template-columns:38px 1fr;align-items:center;gap:10px}.hm-agent-progress>span{color:#dce5f0;font:900 10px/1 var(--hm-mono);text-align:right}.hm-agent-progress>i{height:6px;overflow:hidden;border-radius:99px;background:#192432}.hm-agent-progress>i em{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2f77cc,#6cb6ff);box-shadow:0 0 16px rgba(95,176,255,.42);transition:width .35s ease}
.hm-agent-inspector{min-width:0;padding:15px;display:flex;flex-direction:column;gap:14px;border-left:1px solid #202a37;background:#090d13}.hm-agent-evidence{position:relative;height:153px;margin:0;overflow:hidden;border:1px solid #2a3646;border-radius:14px;background:#101722}.hm-agent-evidence>img{width:100%;height:100%;display:block;object-fit:cover;object-position:center top;filter:saturate(.78) brightness(.7)}.hm-agent-evidence:after{content:"";position:absolute;inset:35% 0 0;background:linear-gradient(transparent,rgba(5,8,13,.94))}.hm-agent-evidence figcaption{position:absolute;z-index:2;left:11px;right:11px;bottom:10px;display:grid;gap:5px}.hm-agent-evidence figcaption span{justify-self:start;padding:5px 7px;border:1px solid rgba(99,174,255,.38);border-radius:99px;background:rgba(6,10,16,.78);color:#7dbaff;font:800 8px/1 var(--hm-mono);letter-spacing:.06em}.hm-agent-evidence figcaption b{overflow:hidden;color:#eef3f9;font:800 8px/1 var(--hm-mono);letter-spacing:.07em;white-space:nowrap;text-overflow:ellipsis}.hm-agent-inspector-body{min-width:0;display:flex;flex:1;flex-direction:column;gap:14px}.hm-agent-scope{padding:13px;border:1px solid #242f3f;border-radius:13px;background:#0b111a}.hm-agent-scope>header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:10px;border-bottom:1px solid #202a37}.hm-agent-scope>header span{color:#5b697c;font:800 8px/1 var(--hm-mono);letter-spacing:.1em}.hm-agent-scope>header b{color:#73dfa9;font:800 8px/1 var(--hm-mono)}.hm-agent-scope dl{margin:7px 0 0}.hm-agent-scope dl>div{padding:7px 0;display:grid;grid-template-columns:50px minmax(0,1fr);gap:7px;border-bottom:1px solid #1b2430}.hm-agent-scope dl>div:last-child{border-bottom:0}.hm-agent-scope dt{color:#536175;font:800 8px/1.4 var(--hm-mono)}.hm-agent-scope dd{min-width:0;margin:0;overflow:hidden;color:#a8b3c2;font:700 8px/1.4 var(--hm-mono);text-align:right;text-overflow:ellipsis;white-space:nowrap}.hm-agent-steps{list-style:none;margin:0;padding:0;display:grid;gap:7px}.hm-agent-steps li{min-height:42px;padding:8px 10px;display:grid;grid-template-columns:25px 1fr;align-items:center;gap:8px;border:1px solid #212b39;border-radius:10px;background:#0b1017;color:#687587;font-size:8px}.hm-agent-steps li>i{width:25px;height:25px;display:grid;place-items:center;border:1px solid #2a3748;border-radius:8px;color:#5d6d82;font:800 8px/1 var(--hm-mono);font-style:normal}.hm-agent-steps li.is-current{border-color:#315078;color:#bad4f5;background:#0d1622}.hm-agent-steps li.is-current>i{border-color:#4a8ad7;color:#71b3ff}.hm-agent-steps li.is-done{color:#8edeb7}.hm-agent-steps li.is-done>i{border-color:#307458;background:#123326;color:#68dfa7}.hm-agent-disclosure{min-height:58px;padding:13px 18px;display:flex;align-items:center;gap:10px;border-top:1px solid #202a37;background:#0b1017}.hm-agent-disclosure>i{width:7px;height:7px;flex:none;border-radius:50%;background:#5faeff;box-shadow:0 0 11px rgba(95,174,255,.72)}.hm-agent-disclosure p{margin:0;color:#758399;font-size:8px;line-height:1.55}.hm-agent-disclosure b{margin-right:8px;color:#92bde9;font:800 8px/1 var(--hm-mono);letter-spacing:.08em}

/* 팀 실사 */
.hm-person-photo img{width:100%;height:100%;display:block;object-fit:cover;object-position:top}

@media(max-width:1100px){
  .hm-cf-play{right:30px}
  .hm-rank-main{grid-template-columns:minmax(330px,.9fr) minmax(330px,1.1fr);padding-left:38px;padding-right:38px}.hm-rank-copy h2{font-size:clamp(34px,4.8vw,52px)}.hm-rank-skyline{width:62%}.hm-rank-stats{margin-left:22px;margin-right:22px}
  .hm-channel-stage{grid-template-columns:1fr}.hm-channel-visual{min-height:510px}.hm-channel-copy{border-left:0;border-top:1px solid #e4e1e3}
  .hm-exfil-scene{grid-template-columns:104px 42px 196px 42px minmax(310px,1fr);padding:22px}.hm-exfil-data{grid-template-columns:1fr;padding:22px}.hm-exfil-data>header{grid-column:1}.hm-exfil-data-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.hm-data-to-spread{transform:rotate(90deg)}.hm-spread-box{min-width:0}.hm-social-scene{grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);}.hm-follower-panel+.hm-social-arrow{display:none}.hm-dm-spread{grid-column:1/-1;min-height:230px}.hm-dm-spread>p{margin:22px 0 18px}
  .hm-process-proofbar{grid-template-columns:1fr 1fr}.hm-process-step{grid-template-columns:74px 1fr}.hm-process-copy{grid-column:1/-1;border-top:1px solid #242d3a}.hm-process-no{min-height:500px}.hm-process-shot,.hm-process-team-v2,.hm-process-techboard{min-height:500px;border-right:0}.hm-process-recovery{height:560px;border-right:0}
  .hm-agent-heading,.hm-hcb-heading{grid-template-columns:1fr;gap:20px}.hm-agent-layout{grid-template-columns:200px minmax(0,1fr)}.hm-agent-inspector{grid-column:1/-1;padding:16px;display:grid;grid-template-columns:280px minmax(0,1fr);border-left:0;border-top:1px solid #202a37}.hm-agent-inspector-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}.hm-agent-evidence{height:178px}.hm-agent-nav-note{display:none}.hm-hcb-panel-grid{grid-template-columns:minmax(250px,.9fr) minmax(0,1.1fr)}.hm-hcb-output{grid-column:1/-1;min-height:118px;display:grid;grid-template-columns:1fr auto;align-items:center}.hm-hcb-output>span,.hm-hcb-output>p{grid-column:1}.hm-hcb-output>strong{grid-column:2;grid-row:1/4;margin:0}.hm-hcb-output>em{margin-top:9px}.hm-hcb-footer{grid-template-columns:1fr}
}
@media(max-width:760px){
  .hm-cf-hero{min-height:760px}.hm-cf-media>img{object-position:62% center}.hm-cf-media:before{background:linear-gradient(0deg,rgba(3,5,10,.96) 0%,rgba(3,5,10,.7) 64%,rgba(3,5,10,.32) 100%)}.hm-cf-play{top:146px;right:18px;grid-template-columns:42px auto;padding:12px 14px;border-radius:15px}.hm-cf-play i{width:42px;height:42px}.hm-cf-play b{font-size:10px}.hm-cf-play small{font-size:8px}.hm-cf-hero .hm-wm-inner{padding-top:278px}.hm-cf-hero .hm-wm-title{font-size:42px}.hm-cf-hero .hm-wm-stage-label{right:16px;bottom:16px}
  .hm-recog-v5{padding:58px 0 66px}.hm-recog-visual{border-radius:20px}.hm-recog-wide{aspect-ratio:1.5/1}.hm-recog-photo-tag{left:16px;bottom:14px}.hm-recog-photo-tag b{font-size:10px}.hm-recog-photo-tag small{font-size:8px}.hm-recog-photo-proof{min-height:54px;grid-template-columns:1fr auto;gap:12px;padding:0 16px}.hm-recog-photo-proof b{display:none}.hm-recog-copy-below{margin-top:28px}.hm-recog-years{grid-template-columns:1fr 1fr;gap:10px}.hm-recog-years .hm-recog-badge{min-height:138px;padding:19px 17px}.hm-recog-years .hm-recog-badge.is-new{grid-column:1/-1;min-height:158px}.hm-recog-years .hm-recog-badge>span{margin-top:20px}.hm-gov-head{display:block;margin-top:28px;padding-top:24px}.hm-gov-head p{margin-top:9px;line-height:1.6}.hm-gov-logos{grid-template-columns:1fr;gap:10px}.hm-gov-logo{min-height:154px;padding:18px}.hm-gov-mark{height:52px;margin:16px 0}.hm-gov-role{padding-top:12px}.hm-gov-role b{font-size:13px}
  .hm-rank-wrap{padding-bottom:54px}.hm-rank-banner{min-height:0;border-radius:24px}.hm-rank-main{min-height:0;padding:32px 22px 8px;grid-template-columns:1fr;gap:0}.hm-rank-copy>span{font-size:8px;letter-spacing:.13em}.hm-rank-copy h2{font-size:35px;line-height:1.08}.hm-rank-copy p{max-width:270px;margin-top:15px;font-size:10px;line-height:1.55}.hm-rank-office{min-height:220px;margin-top:24px;border-radius:18px}.hm-rank-office figcaption{left:15px;right:15px;bottom:14px;align-items:flex-start;flex-direction:column;gap:6px}.hm-rank-stats{grid-template-columns:1fr;margin:14px}.hm-rank-stats>div{min-height:92px;padding:16px 18px;border-right:0;border-bottom:1px solid rgba(139,193,255,.13)}.hm-rank-stats>div:last-child{border-bottom:0}.hm-rank-stats>div:before{left:18px}.hm-rank-stats b{font-size:25px}.hm-rank-system{margin:0 18px 10px}.hm-rank-system em{display:none}
  .hm-channel-card{border-radius:22px}.hm-channel-index{min-height:0;padding:16px 17px;grid-template-columns:42px 1fr;gap:9px}.hm-channel-index>span{font-size:25px}.hm-channel-index>div{gap:4px}.hm-channel-index b{font-size:14px}.hm-channel-index>em{grid-column:2;justify-self:start;padding:6px 8px;font-size:8px}.hm-channel-stage{grid-template-columns:1fr}.hm-channel-visual{min-height:690px}.hm-channel-apps{left:16px;top:15px}.hm-channel-apps img{width:36px;height:36px;border-radius:10px}.hm-case-pair{inset:64px 38px 18px;grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) 34px minmax(0,1fr)}.hm-case-screen:first-child,.hm-case-screen:last-child{transform:none}.hm-case-route{transform:rotate(90deg)}.hm-case-route span{display:none}.hm-case-top{height:80px;padding:42px 12px 9px}.hm-case-chat{height:calc(100% - 80px);padding:14px 12px 62px}.hm-case-chat p{font-size:9px}.hm-case-screen figcaption{min-height:52px;padding:9px 11px}.hm-channel-copy{padding:28px 22px;border-left:0;border-top:1px solid #e4e1e3}.hm-channel-copy h3{font-size:26px}.hm-channel-copy p{font-size:13px}.hm-channel-steps{margin-top:21px}
  .hm-exfil-legend{align-items:flex-start;flex-direction:column;padding:14px}.hm-exfil-legend>em{margin:3px 2px 0;line-height:1.5}.hm-exfil-case{border-radius:22px}.hm-exfil-case>header{min-height:0;padding:25px 22px;display:block}.hm-exfil-case>header h3{font-size:28px;line-height:1.12}.hm-exfil-case>header>em{display:inline-block;margin-top:17px}.hm-exfil-scene{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);padding:18px;gap:14px}.hm-host-node{height:174px}.hm-host-node>b{font-size:36px}.hm-host-node>em{display:none}.hm-exfil-phone{height:300px}.hm-exfil-phone img{height:264px}.hm-exfil-link{display:none}.hm-c2-screen{grid-column:1/-1;height:342px}.hm-c2-dashboard{height:222px;grid-template-columns:96px 1fr}.hm-c2-dashboard>aside{padding:12px 7px}.hm-c2-dashboard>aside span{padding:7px 4px;font-size:8px}.hm-c2-traffic{padding:10px 8px}.hm-c2-traffic header,.hm-c2-traffic p{grid-template-columns:40px 1fr 44px}.hm-c2-console{height:80px}.hm-exfil-data{grid-template-columns:1fr;padding:17px}.hm-exfil-data>header{display:grid;grid-template-columns:1fr;gap:7px}.hm-exfil-data>header small{margin-left:0}.hm-exfil-data-grid{grid-template-columns:1fr 1fr}.hm-data-to-spread{transform:rotate(90deg)}.hm-spread-box{width:100%}.hm-social-warning{margin:18px 18px 0;padding:14px;grid-template-columns:34px 1fr}.hm-social-warning>em{display:none}.hm-social-scene{grid-template-columns:1fr;padding:18px}.hm-social-arrow{display:block;transform:rotate(90deg)}.hm-follower-panel+.hm-social-arrow{display:block}.hm-dm-spread{grid-column:auto}.hm-recorded-call,.hm-follower-panel,.hm-dm-spread{min-height:300px}.hm-call-person{height:240px}.hm-recorded-call figcaption{height:60px}.hm-dm-spread>p{margin:30px 0 22px}
  .hm-process-proofbar{grid-template-columns:1fr 1fr;padding:8px}.hm-process-proofbar>span{padding:9px 8px;grid-template-columns:22px 1fr;column-gap:6px}.hm-process-proofbar i{width:22px;height:22px}.hm-process-step{grid-template-columns:1fr;min-height:0;border-radius:22px}.hm-process-no{min-height:0;padding:14px 18px;flex-direction:row;align-items:center;border-right:0;border-bottom:1px solid #242d3a}.hm-process-no small{writing-mode:initial;transform:none}.hm-process-shot{min-height:440px;display:grid;grid-template-rows:390px 50px;border-right:0;border-bottom:1px solid #242d3a}.hm-process-shot>picture{height:390px}.hm-process-shot>picture img{object-position:center bottom}.hm-process-shot:after{display:none}.hm-process-shot figcaption{position:relative;left:auto;right:auto;bottom:auto;padding:10px 12px;background:#0b1017}.hm-process-team-v2{min-height:500px;border-right:0;border-bottom:1px solid #242d3a}.hm-process-techboard{min-height:440px;border-right:0;border-bottom:1px solid #242d3a}.hm-process-recovery{height:430px;padding:14px;display:flex;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;scrollbar-width:thin;border-right:0;border-bottom:1px solid #242d3a}.hm-process-review-card{height:100%;flex:0 0:min(82%,330px);scroll-snap-align:center}.hm-process-copy{grid-column:auto;padding:28px 22px}.hm-process-copy h3{font-size:27px}.hm-team-portraits{left:12px;right:12px;bottom:80px;gap:6px}.hm-team-portraits figure{height:250px;border-radius:12px}.hm-team-portraits figcaption{left:8px;right:8px}.hm-team-desk{left:12px;right:12px}.hm-tech-main{inset:14px 14px 83px}.hm-tech-sub{right:22px;bottom:95px;width:52%;height:145px}.hm-tech-redaction{left:14px;right:14px;bottom:14px}.hm-process-shot figcaption{gap:7px}.hm-process-shot figcaption b{font-size:10px}.hm-process-shot figcaption a{font-size:10px}
  .hm-agent-heading h2,.hm-hcb-heading h2{font-size:36px}.hm-agent-topbar{height:52px;padding:0 13px}.hm-agent-brand>b{font-size:8px}.hm-agent-safety{gap:8px;font-size:8px}.hm-agent-safety>span:first-child{display:none}.hm-agent-layout{grid-template-columns:1fr}.hm-agent-nav{padding:12px;border-right:0;border-bottom:1px solid #202a37}.hm-agent-nav-head{padding:2px 3px 10px}.hm-agent-tabs{display:flex;gap:7px;overflow-x:auto;padding-bottom:3px;scroll-snap-type:x proximity;scrollbar-width:none}.hm-agent-tabs::-webkit-scrollbar{display:none}.hm-agent-tabs>button{min-width:158px;min-height:58px;flex:0 0 158px;scroll-snap-align:start}.hm-agent-tabs>button.active{box-shadow:inset 0 3px 0 var(--agent-accent)}.hm-agent-workhead{min-height:0;padding:21px 17px 17px;grid-template-columns:1fr;gap:16px}.hm-agent-workhead h3{font-size:24px}.hm-agent-workhead p{font-size:11px}.hm-agent-workhead>button{width:100%;min-height:46px}.hm-agent-simframe{min-height:410px;padding:10px}.hm-agent-simhost .tsim{min-height:388px;border-radius:13px}.hm-agent-runbar{padding:12px 13px;grid-template-columns:1fr;gap:10px}.hm-agent-progress{grid-template-columns:35px 1fr}.hm-agent-inspector{grid-column:auto;padding:13px;grid-template-columns:1fr}.hm-agent-evidence{height:190px}.hm-agent-inspector-body{grid-template-columns:1fr}.hm-agent-disclosure{align-items:flex-start;padding:14px}.hm-agent-disclosure p{font-size:8px}.hm-agent-disclosure b{display:block;margin:0 0 4px}.hm-hcb-topbar{padding:11px 13px;align-items:flex-start;flex-direction:column}.hm-hcb-topbar>p{width:100%;justify-content:space-between}.hm-hcb-lead{padding:25px 18px;grid-template-columns:1fr;gap:22px}.hm-hcb-lead h3{font-size:31px}.hm-hcb-lead dl{min-width:0;width:100%}.hm-hcb-lead dl>div{padding:12px 8px}.hm-hcb-tabs{padding:11px;grid-template-columns:1fr;gap:9px}.hm-hcb-tabs>button{min-height:0;padding:17px}.hm-hcb-question{min-height:0}.hm-hcb-metric{margin-top:18px}.hm-hcb-panel>header{padding:0 15px}.hm-hcb-panel-grid{padding:13px;grid-template-columns:1fr}.hm-hcb-objective{padding:17px}.hm-hcb-protocol{grid-template-columns:1fr}.hm-hcb-protocol li{grid-template-columns:28px 1fr;grid-template-rows:auto;align-items:center}.hm-hcb-output{grid-column:auto;min-height:140px;display:flex}.hm-hcb-output>strong{margin-top:18px}.hm-hcb-output>em{margin-top:auto}.hm-hcb-footer{padding:12px}.hm-hcb-meta{grid-template-columns:1fr}.hm-hcb-meta>p{border-right:0;border-bottom:1px solid #222d3c}.hm-hcb-meta>p:last-child{border-bottom:0}.hm-hcb-rights{min-height:80px}
}
@media(prefers-reduced-motion:reduce){.hm-cf-media>img,.hm-exfil-link i,.hm-atlas-scan,.hm-atlas-timeline button>i:after,.hm-hcb-panel{animation:none}.hm-rank-skyline i,.hm-rank-shield>i{transform:none!important;opacity:1!important}.hm-rank-orbit{transform:rotate(-9deg) scale(1);opacity:1}.hm-rank-shield>b{opacity:1;transform:none}.hm-atlas-label,.hm-atlas-canvas,.hm-agent-progress>i em,.hm-agent-tabs>button,.hm-hcb-tabs>button{transition:none}.hm-agent-workhead>button:hover,.hm-hcb-tabs>button:hover{transform:none}}

/* =========================================================
   11 · PUBLIC REFERENCE ARCHIVE — 공개 근거 기반 레퍼런스
   ========================================================= */
#public.hm-ref-section{position:relative;overflow:hidden;scroll-margin-top:152px;background:linear-gradient(180deg,#f7f4f5 0%,#fff 48%,#f8f6f7 100%)}
#public.hm-ref-section:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(83,59,66,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(83,59,66,.035) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,black,transparent 76%)}
#public .container{position:relative;z-index:1}
#public .hm-ref-title{align-items:end}
#public .hm-ref-title p{max-width:520px}
#public .hm-ref-title .section-kicker{letter-spacing:.14em}

.hm-ref-feature{margin-top:42px;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);min-height:530px;overflow:hidden;border:1px solid #242833;border-radius:30px;background:#0d1016;color:#fff;box-shadow:0 36px 90px rgba(31,20,25,.2)}
.hm-ref-feature-media{position:relative;min-height:530px;margin:0;overflow:hidden;background:#151922}
.hm-ref-feature-media:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 50%,rgba(13,16,22,.62) 100%),linear-gradient(0deg,rgba(4,6,10,.82),transparent 42%);pointer-events:none}
.hm-ref-feature-media img{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover;object-position:left center}
.hm-ref-feature-media figcaption{position:absolute;z-index:1;left:24px;bottom:22px;display:flex;align-items:center;gap:10px;color:#dce0e7;font-size:11px;font-weight:700;letter-spacing:-.01em}
.hm-ref-feature-media figcaption span{padding:7px 9px;border:1px solid rgba(255,255,255,.24);border-radius:6px;background:rgba(8,10,15,.72);color:#ff8091;font:900 8px/1 var(--hm-mono);letter-spacing:.12em}
.hm-ref-feature-copy{position:relative;padding:52px 48px;display:flex;flex-direction:column;justify-content:center;background:radial-gradient(circle at 90% 8%,rgba(210,11,37,.18),transparent 36%),linear-gradient(145deg,#151820,#0d1016 62%)}
.hm-ref-feature-copy:before{content:"";position:absolute;left:0;top:46px;bottom:46px;width:1px;background:linear-gradient(transparent,rgba(255,255,255,.18),transparent)}
.hm-ref-feature-top{display:flex;align-items:center;justify-content:space-between;gap:16px}
.hm-ref-case-no{color:#758092;font:800 9px/1 var(--hm-mono);letter-spacing:.12em}
.hm-ref-verified{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid rgba(77,212,143,.28);border-radius:99px;background:rgba(77,212,143,.07);color:#77dfa9;font-size:9px;font-weight:800;white-space:nowrap}
.hm-ref-verified i{width:6px;height:6px;border-radius:50%;background:#4dd48f;box-shadow:0 0 0 4px rgba(77,212,143,.1)}
.hm-ref-overline{margin:44px 0 12px;color:#ff6076;font:900 9px/1.2 var(--hm-mono);letter-spacing:.12em;text-transform:uppercase}
.hm-ref-feature-copy h3{margin:0;color:#fff;font-size:clamp(38px,3.55vw,52px);line-height:1.08;letter-spacing:-.055em}
.hm-ref-feature-desc{margin:25px 0 0;color:#b7bec9;font-size:14px;line-height:1.78;word-break:keep-all}
.hm-ref-source-note{margin:16px 0 0;padding-top:14px;border-top:1px solid rgba(255,255,255,.09);color:#6f7887;font-size:10px;line-height:1.55}
.hm-ref-actions{margin-top:29px;display:flex;flex-wrap:wrap;gap:9px}
.hm-ref-action{min-height:42px;padding:0 16px;display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1px solid rgba(255,255,255,.17);border-radius:10px;color:#d8dde5;font-size:11px;font-weight:800;text-decoration:none;transition:.2s ease}
.hm-ref-action.is-primary{border-color:#d20b25;background:#d20b25;color:#fff}
.hm-ref-action:hover{transform:translateY(-2px);border-color:#ff6076;color:#fff}
.hm-ref-action:focus-visible,.hm-ref-card a:focus-visible,.hm-ref-ledger a:focus-visible{outline:2px solid #d20b25;outline-offset:3px}

.hm-ref-record-head{margin:58px 0 20px;display:grid;grid-template-columns:1fr auto;align-items:end;gap:30px}
.hm-ref-record-head>div>span{display:block;margin-bottom:10px;color:#b10a21;font:900 9px/1 var(--hm-mono);letter-spacing:.13em}
.hm-ref-record-head h3{margin:0;font-size:27px;line-height:1.2;letter-spacing:-.04em}
.hm-ref-record-head>p{margin:0 0 2px;color:#777980;font-size:12px}
.hm-ref-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.hm-ref-card{min-width:0;min-height:270px;display:grid;grid-template-columns:minmax(210px,.44fr) minmax(0,.56fr);overflow:hidden;border:1px solid #e2dde0;border-radius:22px;background:#fff;box-shadow:0 14px 36px rgba(43,27,34,.05);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.hm-ref-card:hover{transform:translateY(-4px);border-color:#d4c8cc;box-shadow:0 24px 52px rgba(43,27,34,.1)}
.hm-ref-card-media{position:relative;min-height:270px;margin:0;overflow:hidden;background:#ece8ea}
.hm-ref-card-media:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(13,15,20,.54),transparent 40%);pointer-events:none}
.hm-ref-card-media img{width:100%;height:100%;display:block;object-fit:cover;object-position:center;transition:transform .45s ease}
.hm-ref-card:hover .hm-ref-card-media img{transform:scale(1.025)}
.hm-ref-card-media figcaption{position:absolute;z-index:1;left:14px;right:14px;bottom:13px;color:#fff;font-size:9px;font-weight:700;line-height:1.35;text-shadow:0 2px 8px rgba(0,0,0,.45)}
.hm-ref-card-body{min-width:0;padding:25px 24px 23px;display:flex;flex-direction:column}
.hm-ref-meta{display:flex;align-items:center;justify-content:space-between;gap:12px}
.hm-ref-meta span{color:#b10a21;font-size:9px;font-weight:900;letter-spacing:.03em}
.hm-ref-meta time{color:#9a9ba0;font:800 8px/1 var(--hm-mono);letter-spacing:.04em}
.hm-ref-card-body h3{margin:18px 0 10px;font-size:19px;line-height:1.35;letter-spacing:-.035em;word-break:keep-all}
.hm-ref-card-body p{margin:0;color:#666970;font-size:11.5px;line-height:1.68;word-break:keep-all}
.hm-ref-card-body>a{margin-top:auto;padding-top:18px;align-self:flex-start;color:#181a1f;font-size:10px;font-weight:900;text-decoration:none;border-bottom:1px solid #181a1f}
.hm-ref-card-body>a span{margin-left:6px;color:#d20b25}

.hm-ref-ledger{margin-top:18px;display:grid;grid-template-columns:250px minmax(0,1fr);overflow:hidden;border:1px solid #242b36;border-radius:24px;background:#0e1219;color:#fff;box-shadow:0 20px 48px rgba(23,26,32,.12)}
.hm-ref-ledger-head{padding:26px 27px;display:flex;flex-direction:column;justify-content:center;border-right:1px solid #242b36;background:radial-gradient(circle at 0 0,rgba(210,11,37,.18),transparent 58%)}
.hm-ref-ledger-head span{color:#ff667a;font:900 8px/1.3 var(--hm-mono);letter-spacing:.11em}
.hm-ref-ledger-head strong{margin-top:10px;color:#fff;font-size:20px;letter-spacing:-.04em}
.hm-ref-ledger-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.hm-ref-ledger-list>a{min-width:0;min-height:118px;padding:22px 20px;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto 1fr;gap:14px;border-right:1px solid #242b36;color:#fff;text-decoration:none;transition:background .2s ease}
.hm-ref-ledger-list>a:last-child{border-right:0}
.hm-ref-ledger-list>a:hover{background:#151b24}
.hm-ref-ledger-list time{color:#78869a;font:800 8px/1 var(--hm-mono);letter-spacing:.06em}
.hm-ref-ledger-list span{grid-column:1/-1;color:#aab3c0;font-size:10px;line-height:1.55;word-break:keep-all}
.hm-ref-ledger-list b{display:block;margin-bottom:5px;color:#eef2f7;font-size:11px}
.hm-ref-ledger-list i{grid-column:2;grid-row:1;color:#ff667a;font:800 12px/1 var(--hm-mono);font-style:normal}

@media(max-width:1100px){
  .hm-ref-feature{grid-template-columns:1fr;min-height:0}
  .hm-ref-feature-media{min-height:480px}
  .hm-ref-feature-copy:before{display:none}
  .hm-ref-card{grid-template-columns:1fr;grid-template-rows:auto 1fr}
  .hm-ref-card-media{min-height:0;aspect-ratio:16/9}
  .hm-ref-ledger{grid-template-columns:1fr}
  .hm-ref-ledger-head{border-right:0;border-bottom:1px solid #242b36}
}
@media(max-width:760px){
  #public .hm-ref-title{align-items:start}
  #public .hm-ref-title p{max-width:none}
  .hm-ref-feature{margin-top:28px;border-radius:22px}
  .hm-ref-feature-media{min-height:248px}
  .hm-ref-feature-media figcaption{left:15px;bottom:14px;gap:7px;font-size:9px}
  .hm-ref-feature-media figcaption span{padding:6px 7px;font-size:8px}
  .hm-ref-feature-copy{padding:29px 22px 27px}
  .hm-ref-overline{margin-top:30px}
  .hm-ref-feature-copy h3{font-size:31px;line-height:1.12}
  .hm-ref-feature-desc{margin-top:19px;font-size:12.5px;line-height:1.7}
  .hm-ref-source-note{font-size:9px}
  .hm-ref-actions{display:grid;grid-template-columns:1fr 1fr;margin-top:23px}
  .hm-ref-action{padding:0 10px;font-size:9.5px}
  .hm-ref-record-head{margin:42px 0 17px;display:block}
  .hm-ref-record-head h3{font-size:23px}
  .hm-ref-record-head>p{margin-top:9px;font-size:10.5px;line-height:1.55}
  .hm-ref-grid{grid-template-columns:1fr;gap:12px}
  .hm-ref-card{min-height:0;border-radius:19px}
  .hm-ref-card-media{aspect-ratio:16/9}
  .hm-ref-card-body{padding:22px 20px 21px}
  .hm-ref-card-body h3{margin-top:15px;font-size:18px}
  .hm-ref-card-body p{font-size:11px}
  .hm-ref-card-body>a{margin-top:20px}
  .hm-ref-ledger{margin-top:14px;border-radius:19px}
  .hm-ref-ledger-head{padding:23px 20px}
  .hm-ref-ledger-list{grid-template-columns:1fr}
  .hm-ref-ledger-list>a{min-height:0;padding:18px 20px;grid-template-columns:58px 1fr auto;grid-template-rows:auto;align-items:center;gap:12px;border-right:0;border-bottom:1px solid #242b36}
  .hm-ref-ledger-list>a:last-child{border-bottom:0}
  .hm-ref-ledger-list span{grid-column:2;font-size:9.5px}
  .hm-ref-ledger-list i{grid-column:3;grid-row:1}
  .hm-ref-ledger-list b{font-size:10px}
}

/* =========================================================
   12 · FOUNDER / CEO — 공개 이력 기반 리더십 프로필
   ========================================================= */
#ceo.hm-c12-section{position:relative;overflow:hidden;scroll-margin-top:152px;background:#090b10;color:#fff}
#ceo.hm-c12-section:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 96% 6%,rgba(210,11,37,.18),transparent 29%),linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:auto,46px 46px,46px 46px;mask-image:linear-gradient(to bottom,black,transparent 82%)}
#ceo .container{position:relative;z-index:1}
.hm-c12-heading{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(380px,.9fr);align-items:end;gap:68px}
.hm-c12-heading .section-kicker{color:#ff5e74;letter-spacing:.15em}
.hm-c12-heading h2{margin:14px 0 0;color:#fff;font-size:clamp(46px,5vw,72px);line-height:1.03;letter-spacing:-.065em}
.hm-c12-heading h2 span{color:#ff6076}
.hm-c12-intro>p{max-width:520px;margin:0;color:#a9b0bc;font-size:15px;line-height:1.8;word-break:keep-all}
.hm-c12-verified{margin-top:23px;display:flex;align-items:center;flex-wrap:wrap;gap:9px}
.hm-c12-verified>span,.hm-c12-verified>a{min-height:38px;padding:0 13px;display:inline-flex;align-items:center;gap:8px;border:1px solid #2a303a;border-radius:9px;color:#c9d0da;font-size:10px;font-weight:800;text-decoration:none}
.hm-c12-verified>span{border-color:rgba(79,216,150,.27);background:rgba(79,216,150,.06);color:#72dda9}
.hm-c12-verified>span i{width:6px;height:6px;border-radius:50%;background:#4fd896;box-shadow:0 0 0 4px rgba(79,216,150,.1)}
.hm-c12-verified>a{transition:.2s ease}
.hm-c12-verified>a b{color:#ff6076}
.hm-c12-verified>a:hover{border-color:#ff6076;color:#fff;transform:translateY(-2px)}

.hm-c12-portrait{position:relative;margin:52px 0 0;aspect-ratio:16/9;overflow:hidden;border:1px solid #252a33;border-radius:30px;background:#11141a;box-shadow:0 38px 96px rgba(0,0,0,.38)}
.hm-c12-portrait:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,6,9,.28),transparent 54%),linear-gradient(0deg,rgba(4,6,9,.92),transparent 42%);pointer-events:none}
.hm-c12-portrait>img{width:100%;height:100%;display:block;object-fit:cover;object-position:center 48%}
.hm-c12-portrait figcaption{position:absolute;z-index:2;left:34px;bottom:31px;display:grid;gap:4px}
.hm-c12-portrait figcaption span{color:#ff667b;font:900 8px/1 var(--hm-mono);letter-spacing:.15em}
.hm-c12-portrait figcaption strong{margin-top:7px;color:#fff;font-size:34px;line-height:1;letter-spacing:-.045em}
.hm-c12-portrait figcaption em{color:#c0c6cf;font-size:11px;font-style:normal}
.hm-c12-photo-source{position:absolute;z-index:3;right:22px;top:22px;padding:10px 12px;display:flex;align-items:center;gap:10px;border:1px solid rgba(255,255,255,.2);border-radius:9px;background:rgba(7,9,13,.65);backdrop-filter:blur(12px);color:#e1e5eb;font-size:9px;font-weight:800;text-decoration:none;transition:.2s ease}
.hm-c12-photo-source span{color:#ff667b;font:900 8px/1 var(--hm-mono);letter-spacing:.1em}
.hm-c12-photo-source b{color:#ff667b}
.hm-c12-photo-source:hover{border-color:#ff667b;background:rgba(15,10,15,.84)}

.hm-c12-body{margin-top:18px;display:grid;grid-template-columns:minmax(320px,.72fr) minmax(0,1.28fr);gap:18px}
.hm-c12-statement,.hm-c12-activity{border:1px solid #242a35;border-radius:24px;background:#0e1218}
.hm-c12-statement{padding:35px 32px;display:flex;flex-direction:column;background:radial-gradient(circle at 0 100%,rgba(210,11,37,.15),transparent 47%),#0e1218}
.hm-c12-label{color:#ff6076;font:900 8px/1 var(--hm-mono);letter-spacing:.13em;text-transform:uppercase}
.hm-c12-statement h3{margin:23px 0 14px;color:#fff;font-size:27px;line-height:1.25;letter-spacing:-.045em}
.hm-c12-statement>p{margin:0;color:#929cab;font-size:12px;line-height:1.75;word-break:keep-all}
.hm-c12-statement blockquote{margin:31px 0 0;padding:22px 0 0;border-top:1px solid #29303a;color:#f5f7fa;font-size:24px;font-weight:800;line-height:1.42;letter-spacing:-.04em}
.hm-c12-statement>a{margin-top:auto;padding-top:28px;align-self:flex-start;color:#aeb7c4;font-size:10px;font-weight:800;text-decoration:none}
.hm-c12-statement>a span{margin-left:7px;color:#ff6076}
.hm-c12-statement>a:hover{color:#fff}
.hm-c12-activity{padding:29px}
.hm-c12-activity>header{display:flex;align-items:end;justify-content:space-between;gap:22px;margin-bottom:19px}
.hm-c12-activity>header span,.hm-c12-cases>header span{display:block;margin-bottom:9px;color:#ff6076;font:900 8px/1 var(--hm-mono);letter-spacing:.13em}
.hm-c12-activity>header h3,.hm-c12-cases>header h3{margin:0;color:#fff;font-size:22px;letter-spacing:-.035em}
.hm-c12-activity>header p{margin:0 0 2px;color:#677284;font-size:9px;white-space:nowrap}
.hm-c12-activity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.hm-c12-activity-grid>a{position:relative;min-width:0;min-height:152px;padding:18px 36px 17px 18px;display:flex;flex-direction:column;border:1px solid #262e3a;border-radius:15px;background:#11161e;color:#fff;text-decoration:none;transition:.2s ease}
.hm-c12-activity-grid>a:hover{transform:translateY(-3px);border-color:#b32135;background:#151922}
.hm-c12-activity-grid time{color:#7c899b;font:800 8px/1 var(--hm-mono)}
.hm-c12-activity-grid span{margin-top:18px;color:#d34e62;font:900 8px/1.2 var(--hm-mono);letter-spacing:.1em}
.hm-c12-activity-grid strong{margin-top:8px;color:#dce2ea;font-size:12px;line-height:1.5;letter-spacing:-.02em;word-break:keep-all}
.hm-c12-activity-grid i{position:absolute;right:15px;top:15px;color:#ff6076;font:800 11px/1 var(--hm-mono);font-style:normal}

.hm-c12-cases{margin-top:18px;padding:30px;border:1px solid #242a35;border-radius:24px;background:#0e1218}
.hm-c12-cases>header{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:19px}
.hm-c12-cases>header p{max-width:350px;margin:0;color:#707a89;font-size:10px;text-align:right}
.hm-c12-case-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.hm-c12-case-grid>a{position:relative;min-width:0;min-height:185px;padding:24px 58px 22px 24px;display:flex;flex-direction:column;border:1px solid #e0dade;border-radius:17px;background:#f8f5f6;color:#17191e;text-decoration:none;transition:.2s ease}
.hm-c12-case-grid>a:hover{transform:translateY(-3px);border-color:#d20b25;box-shadow:0 18px 36px rgba(0,0,0,.18)}
.hm-c12-case-grid>a>span{color:#b20b21;font:900 8px/1 var(--hm-mono);letter-spacing:.1em}
.hm-c12-case-grid strong{margin-top:17px;font-size:19px;line-height:1.35;letter-spacing:-.035em;word-break:keep-all}
.hm-c12-case-grid p{margin:10px 0 0;color:#666a72;font-size:11px;line-height:1.65;word-break:keep-all}
.hm-c12-case-grid i{position:absolute;right:20px;top:22px;color:#b20b21;font-size:9px;font-weight:900;font-style:normal}
.hm-c12-verified>a:focus-visible,.hm-c12-photo-source:focus-visible,.hm-c12-statement>a:focus-visible,.hm-c12-activity-grid>a:focus-visible,.hm-c12-case-grid>a:focus-visible{outline:2px solid #ff6076;outline-offset:3px}

@media(max-width:1000px){
  .hm-c12-heading{grid-template-columns:1fr;gap:26px}
  .hm-c12-intro>p{max-width:680px}
  .hm-c12-portrait{aspect-ratio:16/10}
  .hm-c12-body{grid-template-columns:1fr}
  .hm-c12-statement>a{margin-top:28px}
}
@media(max-width:760px){
  #ceo.hm-c12-section{padding:82px 0}
  .hm-c12-heading{gap:21px}
  .hm-c12-heading h2{font-size:37px;line-height:1.08}
  .hm-c12-intro>p{font-size:13px;line-height:1.72}
  .hm-c12-verified{display:grid;grid-template-columns:1fr 1fr}
  .hm-c12-verified>span,.hm-c12-verified>a{padding:0 10px;justify-content:center;font-size:9px}
  .hm-c12-portrait{margin-top:32px;aspect-ratio:4/5;border-radius:22px}
  .hm-c12-portrait>img{object-position:67% center}
  .hm-c12-portrait figcaption{left:19px;bottom:20px}
  .hm-c12-portrait figcaption strong{font-size:28px}
  .hm-c12-photo-source{right:13px;top:13px;padding:9px 10px;font-size:8px}
  .hm-c12-photo-source span{display:none}
  .hm-c12-body{margin-top:12px;gap:12px}
  .hm-c12-statement,.hm-c12-activity{border-radius:19px}
  .hm-c12-statement{padding:27px 22px}
  .hm-c12-statement h3{font-size:23px}
  .hm-c12-statement blockquote{font-size:20px}
  .hm-c12-activity{padding:23px 18px}
  .hm-c12-activity>header,.hm-c12-cases>header{display:block}
  .hm-c12-activity>header p{margin-top:8px;white-space:normal}
  .hm-c12-activity-grid{grid-template-columns:1fr}
  .hm-c12-activity-grid>a{min-height:132px}
  .hm-c12-cases{margin-top:12px;padding:23px 18px;border-radius:19px}
  .hm-c12-cases>header p{margin-top:8px;text-align:left}
  .hm-c12-case-grid{grid-template-columns:1fr}
  .hm-c12-case-grid>a{min-height:0;padding:22px 50px 21px 20px}
  .hm-c12-case-grid strong{font-size:17px}
}

/* =========================================================
   13 · GLOBAL FOOTPRINT — 공개 근거 기반 해외 기록
   ========================================================= */
#global.hm-g13-section{position:relative;overflow:hidden;scroll-margin-top:152px;padding:126px 0 132px;background:#f4f1f2;color:#111318}
#global.hm-g13-section:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 93% 4%,rgba(210,11,37,.1),transparent 28%),linear-gradient(rgba(18,20,25,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(18,20,25,.035) 1px,transparent 1px);background-size:auto,52px 52px,52px 52px;mask-image:linear-gradient(to bottom,black,transparent 60%)}
#global .container{position:relative;z-index:1}
.hm-g13-head{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(370px,.72fr);align-items:end;gap:72px}
.hm-g13-head .section-kicker{color:#bd1027;letter-spacing:.15em}
.hm-g13-head h2{margin:14px 0 0;color:#111318;font-size:clamp(46px,5vw,70px);line-height:1.04;letter-spacing:-.065em}
.hm-g13-head h2 span{color:#bd1027}
.hm-g13-intro>p{max-width:520px;margin:0;color:#5f636b;font-size:15px;line-height:1.8;word-break:keep-all}
.hm-g13-verified{width:max-content;margin-top:22px;min-height:36px;padding:0 13px;display:inline-flex;align-items:center;gap:9px;border:1px solid rgba(19,22,28,.13);border-radius:9px;background:rgba(255,255,255,.68);color:#4f555e;font:850 9px/1 var(--hm-mono);letter-spacing:.08em}
.hm-g13-verified i{width:7px;height:7px;border-radius:50%;background:#2eb77a;box-shadow:0 0 0 4px rgba(46,183,122,.11)}

.hm-g13-route{position:relative;margin-top:48px;overflow:hidden;border:1px solid #282e38;border-radius:25px;background:#0b0e14;color:#fff;box-shadow:0 28px 64px rgba(28,18,21,.16)}
.hm-g13-route:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 82% 0,rgba(210,11,37,.22),transparent 30%),linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:auto,32px 32px,32px 32px}
.hm-g13-route-top{position:relative;z-index:1;min-height:49px;padding:0 22px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid rgba(255,255,255,.09);font:850 8px/1 var(--hm-mono);letter-spacing:.13em}
.hm-g13-route-top span{color:#ff6076}
.hm-g13-route-top b{color:#737d8c;font-weight:800}
.hm-g13-route ol{position:relative;z-index:1;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));list-style:none}
.hm-g13-route ol:before{content:"";position:absolute;z-index:0;left:16.66%;right:16.66%;top:25px;height:1px;background:linear-gradient(90deg,#9c1b2e,#ff6076 50%,#9c1b2e)}
.hm-g13-route li{position:relative;z-index:1;min-width:0;padding:51px 27px 25px;text-align:center;border-right:1px solid rgba(255,255,255,.08)}
.hm-g13-route li:last-child{border-right:0}
.hm-g13-route li:before{content:"";position:absolute;left:50%;top:19px;width:11px;height:11px;transform:translateX(-50%);border:3px solid #0b0e14;border-radius:50%;background:#ff6076;box-shadow:0 0 0 1px rgba(255,96,118,.75),0 0 18px rgba(255,96,118,.48)}
.hm-g13-route-no{position:absolute;left:20px;top:18px;color:#555e6c;font:850 8px/1 var(--hm-mono)}
.hm-g13-route li>div{display:grid;gap:7px}
.hm-g13-route li>div b{overflow:hidden;color:#f4f6f9;font:900 14px/1 var(--hm-mono);letter-spacing:.02em;text-overflow:ellipsis}
.hm-g13-route li>div em{color:#717b8a;font:800 8px/1.2 var(--hm-mono);font-style:normal;letter-spacing:.11em}
.hm-g13-route time{margin-top:17px;display:inline-flex;padding:6px 9px;border:1px solid rgba(255,255,255,.11);border-radius:6px;color:#b9c0ca;font:800 8px/1 var(--hm-mono)}

.hm-g13-records{margin-top:18px;display:grid;grid-template-columns:1.06fr 1.06fr .88fr;gap:18px}
.hm-g13-card{min-width:0;overflow:hidden;display:flex;flex-direction:column;border:1px solid #ded9db;border-radius:23px;background:#fff;box-shadow:0 18px 46px rgba(43,24,30,.06);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.hm-g13-card:hover{transform:translateY(-4px);border-color:#c9bec1;box-shadow:0 25px 58px rgba(43,24,30,.11)}
.hm-g13-media{position:relative;overflow:hidden;margin:0;aspect-ratio:16/10;background:#16191f}
.hm-g13-media:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(5,7,10,.04) 42%,rgba(5,7,10,.86) 100%)}
.hm-g13-media img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .5s ease}
.hm-g13-card:hover .hm-g13-media img{transform:scale(1.025)}
.hm-g13-media--document{background:#eee9e8}
.hm-g13-media--document img{object-position:center 35%}
.hm-g13-media figcaption{position:absolute;z-index:2;left:18px;right:18px;bottom:16px;display:flex;align-items:end;justify-content:space-between;gap:14px;color:#fff}
.hm-g13-media figcaption span{color:#ff667b;font:900 8px/1 var(--hm-mono);letter-spacing:.1em}
.hm-g13-media figcaption b{font:850 8px/1 var(--hm-mono);letter-spacing:.08em}
.hm-g13-body{min-height:360px;padding:25px 24px 23px;display:flex;flex:1;flex-direction:column}
.hm-g13-eyebrow{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#8a8f97;font:850 8px/1 var(--hm-mono);letter-spacing:.08em}
.hm-g13-eyebrow span{color:#bd1027}
.hm-g13-body h3{margin:22px 0 0;color:#17191e;font-size:21px;line-height:1.24;letter-spacing:-.035em;word-break:keep-all}
.hm-g13-body h3 small{margin-top:8px;display:block;color:#bd1027;font-size:10px;font-weight:850;letter-spacing:.02em}
.hm-g13-body>p{margin:15px 0 0;color:#656a72;font-size:12px;line-height:1.72;word-break:keep-all}
.hm-g13-facts{margin:24px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid #e8e4e5;border-bottom:1px solid #e8e4e5}
.hm-g13-facts>div{min-width:0;padding:15px 12px 15px 0}
.hm-g13-facts>div+div{padding-left:14px;border-left:1px solid #e8e4e5}
.hm-g13-facts dt{color:#a0a3a9;font:850 8px/1 var(--hm-mono);letter-spacing:.1em}
.hm-g13-facts dd{margin:7px 0 0;overflow-wrap:anywhere;color:#2c3037;font-size:10px;font-weight:800;line-height:1.45}
.hm-g13-links{margin-top:auto;padding-top:22px;display:flex;align-items:center;flex-wrap:wrap;gap:9px 15px}
.hm-g13-links a{color:#4b5058;font-size:9px;font-weight:850;text-decoration:none;transition:color .18s ease}
.hm-g13-links a span{margin-left:4px;color:#bd1027;font-family:var(--hm-mono)}
.hm-g13-links a:hover{color:#bd1027}
.hm-g13-links a:focus-visible{outline:2px solid #bd1027;outline-offset:4px;border-radius:2px}

@media(max-width:1080px){
  .hm-g13-head{grid-template-columns:1fr;gap:27px}
  .hm-g13-intro>p{max-width:680px}
  .hm-g13-records{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hm-g13-card--patent{grid-column:1/-1;display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr)}
  .hm-g13-card--patent .hm-g13-media{min-height:370px;aspect-ratio:auto}
  .hm-g13-card--patent .hm-g13-body{min-height:370px}
}
@media(max-width:720px){
  #global.hm-g13-section{padding:82px 0 88px}
  .hm-g13-head{gap:21px}
  .hm-g13-head h2{font-size:37px;line-height:1.08}
  .hm-g13-intro>p{font-size:13px;line-height:1.72}
  .hm-g13-route{margin-top:32px;border-radius:20px}
  .hm-g13-route-top{padding:0 17px}
  .hm-g13-route-top b{font-size:8px}
  .hm-g13-route ol{grid-template-columns:1fr}
  .hm-g13-route ol:before{display:none}
  .hm-g13-route li{min-height:96px;padding:23px 72px 21px 55px;text-align:left;border-right:0;border-bottom:1px solid rgba(255,255,255,.08)}
  .hm-g13-route li:last-child{border-bottom:0}
  .hm-g13-route li:before{left:24px;top:50%;transform:translateY(-50%)}
  .hm-g13-route-no{display:none}
  .hm-g13-route time{position:absolute;right:17px;top:50%;margin:0;transform:translateY(-50%)}
  .hm-g13-records{margin-top:12px;grid-template-columns:1fr;gap:12px}
  .hm-g13-card,.hm-g13-card--patent{grid-column:auto;display:flex;border-radius:20px}
  .hm-g13-card--patent .hm-g13-media,.hm-g13-media{min-height:0;aspect-ratio:16/10}
  .hm-g13-card--patent .hm-g13-body,.hm-g13-body{min-height:0;padding:23px 20px 21px}
  .hm-g13-body h3{font-size:19px}
  .hm-g13-facts{margin-top:21px}
  .hm-g13-links{padding-top:20px}
}
@media(prefers-reduced-motion:reduce){
  .hm-g13-card,.hm-g13-media img{transition:none}
  .hm-g13-card:hover{transform:none}
  .hm-g13-card:hover .hm-g13-media img{transform:none}
}

/* =========================================================
   14 · OFFICIAL RECORDS — 발급 문서와 공개 원문 보관함
   ========================================================= */
#credentials.hm-c14-section{position:relative;overflow:hidden;scroll-margin-top:152px;padding:126px 0 132px;background:#080a0f;color:#fff}
#credentials.hm-c14-section:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 96% 3%,rgba(207,162,88,.16),transparent 28%),radial-gradient(circle at 4% 52%,rgba(210,11,37,.12),transparent 30%),linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:auto,auto,48px 48px,48px 48px;mask-image:linear-gradient(to bottom,black,transparent 76%)}
#credentials .container{position:relative;z-index:1}
.hm-c14-head{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(370px,.72fr);align-items:end;gap:72px}
.hm-c14-head .section-kicker{color:#e7bd72;letter-spacing:.15em}
.hm-c14-head h2{margin:14px 0 0;color:#fff;font-size:clamp(46px,5vw,70px);line-height:1.04;letter-spacing:-.065em}
.hm-c14-head h2 span{color:#e7bd72}
.hm-c14-intro>p{max-width:520px;margin:0;color:#a2a9b4;font-size:15px;line-height:1.8;word-break:keep-all}
.hm-c14-verified{width:max-content;margin-top:22px;min-height:36px;padding:0 13px;display:inline-flex;align-items:center;gap:9px;border:1px solid rgba(231,189,114,.24);border-radius:9px;background:rgba(231,189,114,.055);color:#d7c39d;font:850 9px/1 var(--hm-mono);letter-spacing:.08em}
.hm-c14-verified i{width:7px;height:7px;border-radius:50%;background:#e7bd72;box-shadow:0 0 0 4px rgba(231,189,114,.1)}

.hm-c14-vault{margin-top:50px;display:grid;grid-template-columns:minmax(0,1.36fr) minmax(330px,.64fr);gap:18px}
.hm-c14-feature,.hm-c14-patent-card{min-width:0;overflow:hidden;border:1px solid #262c36;border-radius:26px;background:#11151d;box-shadow:0 32px 80px rgba(0,0,0,.28)}
.hm-c14-feature{min-height:650px;display:grid;grid-template-columns:minmax(285px,.44fr) minmax(0,.56fr)}
.hm-c14-feature-document{position:relative;margin:0;padding:38px 32px 28px;display:flex;flex-direction:column;justify-content:center;background:radial-gradient(circle at 50% 36%,rgba(231,189,114,.18),transparent 50%),#e7e2dc}
.hm-c14-feature-document:before{content:"";position:absolute;inset:17px;border:1px solid rgba(112,83,41,.19);pointer-events:none}
.hm-c14-feature-document img{position:relative;z-index:1;width:100%;max-height:540px;display:block;object-fit:contain;filter:drop-shadow(0 24px 32px rgba(48,31,13,.22))}
.hm-c14-feature-document figcaption{position:relative;z-index:1;margin-top:18px;display:flex;align-items:center;justify-content:space-between;gap:15px;color:#6b5534;font:850 8px/1 var(--hm-mono);letter-spacing:.08em}
.hm-c14-feature-document figcaption span{color:#9e762f}
.hm-c14-feature-copy{padding:47px 42px 42px;display:flex;flex-direction:column;background:radial-gradient(circle at 100% 0,rgba(210,11,37,.14),transparent 38%),#11151d}
.hm-c14-type{margin:0;display:flex;align-items:center;justify-content:space-between;gap:18px;color:#757f8e;font:850 8px/1 var(--hm-mono);letter-spacing:.1em}
.hm-c14-type span{color:#e7bd72}
.hm-c14-feature-copy h3{margin:37px 0 0;color:#fff;font-size:clamp(26px,2.35vw,35px);line-height:1.3;letter-spacing:-.045em;word-break:keep-all}
.hm-c14-feature-copy>p:not(.hm-c14-type){margin:19px 0 0;color:#929cab;font-size:12px;line-height:1.8;word-break:keep-all}
.hm-c14-facts{margin:34px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid #2b323e;border-bottom:1px solid #2b323e}
.hm-c14-facts>div{min-width:0;padding:18px 13px 18px 0}
.hm-c14-facts>div+div{padding-left:13px;border-left:1px solid #2b323e}
.hm-c14-facts dt,.hm-c14-patent-meta dt{color:#697484;font:850 8px/1 var(--hm-mono);letter-spacing:.1em}
.hm-c14-facts dd,.hm-c14-patent-meta dd{margin:8px 0 0;color:#e6e9ee;font-size:10px;font-weight:800;line-height:1.45;overflow-wrap:anywhere}
.hm-c14-source{margin-top:auto;padding-top:28px;align-self:flex-start;color:#d2d6dd;font-size:10px;font-weight:850;text-decoration:none;transition:color .18s ease}
.hm-c14-source span{margin-left:6px;color:#e7bd72;font-family:var(--hm-mono)}
.hm-c14-source:hover{color:#e7bd72}

.hm-c14-patent-card{display:flex;flex-direction:column}
.hm-c14-patent-card>figure{position:relative;min-height:385px;margin:0;padding:28px;display:flex;align-items:center;justify-content:center;background:#e8e5e0}
.hm-c14-patent-card>figure:before{content:"";position:absolute;inset:15px;border:1px solid rgba(57,61,67,.14)}
.hm-c14-patent-card>figure img{position:relative;z-index:1;width:auto;max-width:100%;height:330px;display:block;object-fit:contain;filter:drop-shadow(0 22px 30px rgba(38,30,20,.2))}
.hm-c14-patent-card>figure figcaption{position:absolute;z-index:2;left:21px;bottom:17px;color:#80622f;font:850 8px/1 var(--hm-mono);letter-spacing:.1em}
.hm-c14-patent-copy{min-height:265px;padding:29px 27px 27px;display:flex;flex-direction:column}
.hm-c14-patent-copy h3{margin:23px 0 0;color:#fff;font-size:19px;line-height:1.42;letter-spacing:-.035em;word-break:keep-all}
.hm-c14-patent-meta{margin:25px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #2b323e;border-bottom:1px solid #2b323e}
.hm-c14-patent-meta>div{min-width:0;padding:16px 11px 16px 0}
.hm-c14-patent-meta>div+div{padding-left:12px;border-left:1px solid #2b323e}

.hm-c14-record-grid{margin-top:18px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.hm-c14-record{position:relative;min-width:0;overflow:hidden;display:flex;flex-direction:column;border:1px solid #272e39;border-radius:22px;background:#10141b;color:#fff;text-decoration:none;transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease}
.hm-c14-record:hover{transform:translateY(-4px);border-color:#7b6846;box-shadow:0 24px 52px rgba(0,0,0,.3)}
.hm-c14-record-media,.hm-c14-record-mark{height:195px;overflow:hidden;background:#ece9e6}
.hm-c14-record-media img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .45s ease}
.hm-c14-record:hover .hm-c14-record-media img{transform:scale(1.025)}
.hm-c14-record--dart .hm-c14-record-media img{object-fit:contain;padding:20px;background:#f7f7f7}
.hm-c14-record--iso .hm-c14-record-media img{object-position:center 35%}
.hm-c14-record-mark{position:relative;padding:27px;display:flex;flex-direction:column;justify-content:flex-end;background:radial-gradient(circle at 82% 12%,rgba(210,11,37,.34),transparent 35%),linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px),#090c12;background-size:auto,28px 28px,28px 28px}
.hm-c14-record-mark:before{content:"";position:absolute;right:28px;top:26px;width:12px;height:12px;border:2px solid #ff6076;border-radius:50%;box-shadow:0 0 0 7px rgba(255,96,118,.07),0 0 25px rgba(255,96,118,.35)}
.hm-c14-record-mark span{color:#ff6076;font:900 9px/1 var(--hm-mono);letter-spacing:.13em}
.hm-c14-record-mark b{margin-top:10px;color:#fff;font:900 25px/1 var(--hm-mono);letter-spacing:-.04em}
.hm-c14-record-body{min-height:208px;padding:25px 24px 24px;display:flex;flex-direction:column}
.hm-c14-record-body>span{color:#e7bd72;font:850 8px/1 var(--hm-mono);letter-spacing:.1em}
.hm-c14-record-body h3{margin:20px 0 0;color:#fff;font-size:20px;line-height:1.34;letter-spacing:-.035em}
.hm-c14-record-body p{margin:auto 28px 0 0;color:#8d96a3;font-size:10.5px;line-height:1.6;word-break:keep-all}
.hm-c14-record-body p b{color:#c9ced6;font-family:var(--hm-mono);font-size:9px}
.hm-c14-record>i{position:absolute;right:20px;bottom:20px;color:#e7bd72;font:850 11px/1 var(--hm-mono);font-style:normal}

.hm-c14-award-strip{margin-top:18px;min-height:204px;padding:20px 26px 20px 20px;display:grid;grid-template-columns:118px minmax(0,1fr) auto;align-items:center;gap:29px;border:1px solid #2a303a;border-radius:22px;background:linear-gradient(120deg,#11161e,#17130f);color:#fff}
.hm-c14-award-strip figure{width:105px;height:150px;margin:0;overflow:hidden;border:1px solid rgba(231,189,114,.35);border-radius:9px;background:#fff;box-shadow:0 14px 35px rgba(0,0,0,.32)}
.hm-c14-award-strip figure img{width:100%;height:100%;display:block;object-fit:cover;object-position:top}
.hm-c14-award-strip>div>span{color:#e7bd72;font:850 8px/1 var(--hm-mono);letter-spacing:.11em}
.hm-c14-award-strip h3{margin:14px 0 0;color:#fff;font-size:21px;line-height:1.35;letter-spacing:-.035em}
.hm-c14-award-strip p{margin:10px 0 0;color:#7f8997;font-size:10.5px}
.hm-c14-award-strip>a{min-height:43px;padding:0 17px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(231,189,114,.3);border-radius:9px;color:#e7bd72;font-size:10px;font-weight:850;text-decoration:none;transition:.18s ease}
.hm-c14-award-strip>a span{margin-left:7px;font-family:var(--hm-mono)}
.hm-c14-award-strip>a:hover{border-color:#e7bd72;background:rgba(231,189,114,.07)}
.hm-c14-source:focus-visible,.hm-c14-record:focus-visible,.hm-c14-award-strip>a:focus-visible{outline:2px solid #e7bd72;outline-offset:4px}

@media(max-width:1080px){
  .hm-c14-head{grid-template-columns:1fr;gap:27px}
  .hm-c14-intro>p{max-width:680px}
  .hm-c14-vault{grid-template-columns:1fr}
  .hm-c14-patent-card{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr)}
  .hm-c14-patent-card>figure{min-height:410px}
  .hm-c14-patent-copy{min-height:410px;padding:38px 34px}
  .hm-c14-record-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hm-c14-record--iso{grid-column:1/-1;display:grid;grid-template-columns:minmax(300px,.72fr) minmax(0,1.28fr)}
  .hm-c14-record--iso .hm-c14-record-media{height:auto;min-height:270px}
  .hm-c14-record--iso .hm-c14-record-body{min-height:270px}
}
@media(max-width:760px){
  #credentials.hm-c14-section{padding:82px 0 88px}
  .hm-c14-head{gap:21px}
  .hm-c14-head h2{font-size:37px;line-height:1.08}
  .hm-c14-intro>p{font-size:13px;line-height:1.72}
  .hm-c14-vault{margin-top:32px;gap:12px}
  .hm-c14-feature,.hm-c14-patent-card{display:flex;flex-direction:column;border-radius:20px}
  .hm-c14-feature-document{min-height:510px;padding:31px 26px 24px}
  .hm-c14-feature-document img{max-height:430px}
  .hm-c14-feature-copy{padding:31px 22px 26px}
  .hm-c14-feature-copy h3{margin-top:27px;font-size:25px}
  .hm-c14-facts{grid-template-columns:1fr}
  .hm-c14-facts>div{padding:14px 0}
  .hm-c14-facts>div+div{padding-left:0;border-left:0;border-top:1px solid #2b323e}
  .hm-c14-source{margin-top:24px;padding-top:0}
  .hm-c14-patent-card>figure{min-height:390px;padding:25px}
  .hm-c14-patent-card>figure img{height:330px}
  .hm-c14-patent-copy{min-height:0;padding:27px 21px 24px}
  .hm-c14-patent-copy h3{font-size:18px}
  .hm-c14-record-grid{margin-top:12px;grid-template-columns:1fr;gap:12px}
  .hm-c14-record--iso{grid-column:auto;display:flex}
  .hm-c14-record--iso .hm-c14-record-media,.hm-c14-record-media,.hm-c14-record-mark{height:190px;min-height:0}
  .hm-c14-record--iso .hm-c14-record-body,.hm-c14-record-body{min-height:195px;padding:23px 20px 22px}
  .hm-c14-award-strip{margin-top:12px;padding:21px 18px;grid-template-columns:86px 1fr;gap:18px;border-radius:20px}
  .hm-c14-award-strip figure{width:82px;height:116px}
  .hm-c14-award-strip h3{font-size:17px}
  .hm-c14-award-strip p{display:none}
  .hm-c14-award-strip>a{grid-column:1/-1;width:100%}
}
@media(max-width:420px){
  .hm-c14-feature-document{min-height:460px}
  .hm-c14-feature-document img{max-height:390px}
  .hm-c14-patent-card>figure{min-height:350px}
  .hm-c14-patent-card>figure img{height:290px}
  .hm-c14-patent-meta{grid-template-columns:1fr}
  .hm-c14-patent-meta>div{padding:13px 0}
  .hm-c14-patent-meta>div+div{padding-left:0;border-left:0;border-top:1px solid #2b323e}
}
@media(prefers-reduced-motion:reduce){
  .hm-c14-record,.hm-c14-record-media img{transition:none}
  .hm-c14-record:hover{transform:none}
  .hm-c14-record:hover .hm-c14-record-media img{transform:none}
}

/* =========================================================
   17 · CONTENT INTELLIGENCE ROOM — 실제 공개 자료 큐레이션
   ========================================================= */
#content-room.hm-c17-section{position:relative;overflow:hidden;scroll-margin-top:152px;padding:126px 0 132px;background:linear-gradient(180deg,#fff 0%,#fff 52%,#f8f6f7 100%);color:#111318}
#content-room.hm-c17-section:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 4% 4%,rgba(210,11,37,.08),transparent 28%),linear-gradient(rgba(18,20,25,.032) 1px,transparent 1px),linear-gradient(90deg,rgba(18,20,25,.032) 1px,transparent 1px);background-size:auto,52px 52px,52px 52px;mask-image:linear-gradient(to bottom,black,transparent 64%)}
#content-room .container{position:relative;z-index:1}
.hm-c17-head{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(370px,.72fr);align-items:end;gap:72px}
.hm-c17-head .section-kicker{color:#bd1027;letter-spacing:.15em}
.hm-c17-head h2{margin:14px 0 0;color:#111318;font-size:clamp(46px,5vw,70px);line-height:1.04;letter-spacing:-.065em;word-break:keep-all}
.hm-c17-head h2 span{color:#bd1027}
.hm-c17-intro>p{max-width:520px;margin:0;color:#5f636b;font-size:15px;line-height:1.8;word-break:keep-all}
.hm-c17-verified{width:max-content;margin-top:22px;min-height:36px;padding:0 13px;display:inline-flex;align-items:center;gap:9px;border:1px solid rgba(19,22,28,.13);border-radius:9px;background:rgba(255,255,255,.72);color:#4f555e;font:850 9px/1 var(--hm-mono);letter-spacing:.08em}
.hm-c17-verified i{width:7px;height:7px;border-radius:50%;background:#2eb77a;box-shadow:0 0 0 4px rgba(46,183,122,.11)}

.hm-c17-grid{margin-top:50px;display:grid;grid-template-columns:minmax(0,1.16fr) minmax(390px,.84fr);gap:18px;align-items:stretch}
.hm-c17-feature,.hm-c17-story{min-width:0;overflow:hidden;border:1px solid #ddd8da;border-radius:25px;background:#fff;color:#17191e;text-decoration:none;box-shadow:0 18px 46px rgba(43,24,30,.06);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.hm-c17-feature:hover,.hm-c17-story:hover{transform:translateY(-4px);border-color:#c8bec1;box-shadow:0 26px 58px rgba(43,24,30,.11)}
.hm-c17-feature{min-height:694px;display:flex;flex-direction:column}
.hm-c17-feature>figure{position:relative;overflow:hidden;height:372px;margin:0;background:#1a080a}
.hm-c17-feature>figure:after,.hm-c17-story>figure:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(6,8,12,.02) 48%,rgba(6,8,12,.72) 100%)}
.hm-c17-feature>figure img,.hm-c17-story>figure img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .45s ease}
.hm-c17-feature:hover>figure img,.hm-c17-story:hover>figure img{transform:scale(1.025)}
.hm-c17-feature figcaption{position:absolute;z-index:2;left:20px;right:20px;bottom:18px;display:flex;align-items:center;justify-content:space-between;gap:16px;color:#fff}
.hm-c17-feature figcaption span{color:#ff6c80;font:900 8px/1 var(--hm-mono);letter-spacing:.12em}
.hm-c17-feature figcaption time{font:850 8px/1 var(--hm-mono);letter-spacing:.08em}
.hm-c17-feature-copy{min-height:320px;padding:31px 31px 27px;display:flex;flex:1;flex-direction:column}
.hm-c17-type{display:flex;align-items:center;justify-content:space-between;gap:15px;color:#9a9da3;font:850 8px/1 var(--hm-mono);letter-spacing:.09em}
.hm-c17-type>span{color:#bd1027}
.hm-c17-type>b{font-weight:850}
.hm-c17-feature h3{margin:25px 0 0;color:#17191e;font-size:31px;line-height:1.23;letter-spacing:-.045em;word-break:keep-all}
.hm-c17-feature h3 span{color:#bd1027;font:900 21px/1.3 var(--hm-mono);letter-spacing:-.045em}
.hm-c17-feature-copy>p{margin:16px 0 0;color:#656970;font-size:12px;line-height:1.7;word-break:keep-all}
.hm-c17-tags{margin-top:20px;display:flex;flex-wrap:wrap;gap:6px}
.hm-c17-tags span{padding:6px 8px;border:1px solid #e2dcde;border-radius:7px;background:#faf8f8;color:#777b82;font:800 8px/1 var(--hm-mono)}
.hm-c17-read{margin-top:auto;padding-top:24px;color:#3d4148;font-size:10px;font-weight:900}
.hm-c17-read span{margin-left:5px;color:#bd1027;font-family:var(--hm-mono)}

.hm-c17-side{min-width:0;display:grid;grid-template-rows:repeat(2,minmax(0,1fr));gap:18px}
.hm-c17-story{display:grid;grid-template-columns:minmax(155px,.44fr) minmax(0,.56fr)}
.hm-c17-story>figure{position:relative;overflow:hidden;min-height:0;margin:0;background:#0d1117}
.hm-c17-story>figure>span{position:absolute;z-index:2;left:14px;bottom:13px;padding:6px 8px;border:1px solid rgba(255,255,255,.25);border-radius:6px;background:rgba(9,12,17,.68);color:#fff;font:900 8px/1 var(--hm-mono);letter-spacing:.1em;backdrop-filter:blur(7px)}
.hm-c17-story--press figure img{object-position:center}
.hm-c17-story--guide figure img{object-position:center}
.hm-c17-story-copy{min-width:0;padding:25px 23px 22px;display:flex;flex-direction:column}
.hm-c17-story-copy>div{display:flex;align-items:center;justify-content:space-between;gap:11px;color:#999da4;font:850 8px/1 var(--hm-mono);letter-spacing:.08em}
.hm-c17-story-copy>div span{min-width:0;color:#bd1027;overflow-wrap:anywhere}
.hm-c17-story-copy h3{margin:22px 0 0;color:#1c1e23;font-size:19px;line-height:1.38;letter-spacing:-.035em;word-break:keep-all}
.hm-c17-story-copy>p{margin:13px 0 0;color:#6b6f76;font-size:10px;line-height:1.65;word-break:keep-all}
.hm-c17-story-copy>b{margin-top:auto;padding-top:18px;color:#4f545b;font-size:9px}
.hm-c17-story-copy>b span{margin-left:4px;color:#bd1027;font-family:var(--hm-mono)}

.hm-c17-malware{position:relative;overflow:hidden;margin-top:18px;min-height:204px;display:grid;grid-template-columns:245px minmax(0,1fr) 195px;border:1px solid #272e39;border-radius:23px;background:#0b0f15;color:#fff;text-decoration:none;box-shadow:0 24px 58px rgba(38,22,27,.14);transition:transform .22s ease,border-color .22s ease}
.hm-c17-malware:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 88% 0,rgba(210,11,37,.25),transparent 30%),linear-gradient(rgba(255,255,255,.028) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.028) 1px,transparent 1px);background-size:auto,28px 28px,28px 28px}
.hm-c17-malware:hover{transform:translateY(-3px);border-color:#62424a}
.hm-c17-malware>*{position:relative;z-index:1}
.hm-c17-apps{display:flex;align-items:center;justify-content:center;border-right:1px solid #272e39}
.hm-c17-apps img{width:72px;height:72px;display:block;object-fit:cover;border:4px solid #131922;border-radius:17px;box-shadow:0 13px 28px rgba(0,0,0,.34)}
.hm-c17-apps img+img{margin-left:-25px}
.hm-c17-apps img:nth-child(2){transform:translateY(-8px)}
.hm-c17-apps>span{position:absolute;left:20px;right:20px;bottom:16px;color:#5e6a7b;font:850 8px/1 var(--hm-mono);letter-spacing:.1em;text-align:center}
.hm-c17-malware-copy{padding:35px 33px}
.hm-c17-malware-copy>span{color:#ff6076;font:900 8px/1 var(--hm-mono);letter-spacing:.1em}
.hm-c17-malware-copy h3{margin:22px 0 0;color:#fff;font-size:25px;line-height:1.25;letter-spacing:-.04em;word-break:keep-all}
.hm-c17-malware-copy p{margin:14px 0 0;color:#7f8997;font-size:10.5px;line-height:1.65;word-break:keep-all}
.hm-c17-malware-open{padding:33px 25px;display:flex;flex-direction:column;justify-content:center;border-left:1px solid #272e39}
.hm-c17-malware-open>span{color:#626e7f;font:850 8px/1 var(--hm-mono);letter-spacing:.1em}
.hm-c17-malware-open>b{margin-top:14px;color:#f0f2f5;font-size:16px}
.hm-c17-malware-open>i{margin-top:21px;color:#ff6076;font:900 18px/1 var(--hm-mono);font-style:normal}

.hm-c17-archive{margin-top:18px;min-height:112px;padding:22px 24px 22px 27px;display:flex;align-items:center;justify-content:space-between;gap:30px;border:1px solid #ddd7d9;border-radius:20px;background:rgba(255,255,255,.82)}
.hm-c17-archive>div>span{color:#bd1027;font:900 8px/1 var(--hm-mono);letter-spacing:.11em}
.hm-c17-archive>div>b{margin-top:10px;display:block;color:#2f3339;font-size:14px;letter-spacing:-.02em}
.hm-c17-archive>div>p{margin:6px 0 0;color:#85888e;font-size:9.5px}
.hm-c17-archive nav{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:8px}
.hm-c17-archive nav a{min-height:43px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;gap:13px;border:1px solid #d8d0d2;border-radius:9px;background:#fff;color:#444950;font-size:9.5px;font-weight:900;text-decoration:none;transition:border-color .18s ease,color .18s ease,transform .18s ease}
.hm-c17-archive nav a:first-child{border-color:#bd1027;background:#bd1027;color:#fff}
.hm-c17-archive nav a span{font-family:var(--hm-mono)}
.hm-c17-archive nav a:hover{transform:translateY(-2px);border-color:#bd1027;color:#bd1027}
.hm-c17-archive nav a:first-child:hover{color:#fff;background:#d20b25}
.hm-c17-feature:focus-visible,.hm-c17-story:focus-visible,.hm-c17-malware:focus-visible,.hm-c17-archive nav a:focus-visible{outline:2px solid #bd1027;outline-offset:4px}

@media(max-width:1150px){
  .hm-c17-head{grid-template-columns:1fr;gap:27px}
  .hm-c17-intro>p{max-width:680px}
  .hm-c17-grid{grid-template-columns:1fr}
  .hm-c17-feature{min-height:0}
  .hm-c17-side{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto}
  .hm-c17-story{min-height:330px}
  .hm-c17-malware{grid-template-columns:220px minmax(0,1fr) 180px}
}
@media(max-width:820px){
  .hm-c17-side{grid-template-columns:1fr}
  .hm-c17-story{min-height:320px;grid-template-columns:minmax(180px,.42fr) minmax(0,.58fr)}
  .hm-c17-malware{grid-template-columns:185px minmax(0,1fr)}
  .hm-c17-malware-open{grid-column:1/-1;min-height:72px;padding:0 22px;flex-direction:row;align-items:center;justify-content:space-between;border-left:0;border-top:1px solid #272e39}
  .hm-c17-malware-open>b,.hm-c17-malware-open>i{margin:0}
  .hm-c17-archive{align-items:flex-start;flex-direction:column}
  .hm-c17-archive nav{width:100%;justify-content:flex-start}
}
@media(max-width:760px){
  #content-room.hm-c17-section{padding:82px 0 88px}
  .hm-c17-head{gap:21px}
  .hm-c17-head h2{font-size:37px;line-height:1.08}
  .hm-c17-intro>p{font-size:13px;line-height:1.72}
  .hm-c17-grid{margin-top:32px;gap:12px}
  .hm-c17-feature,.hm-c17-story{border-radius:20px}
  .hm-c17-feature>figure{height:280px}
  .hm-c17-feature-copy{min-height:300px;padding:26px 21px 23px}
  .hm-c17-feature h3{font-size:26px}
  .hm-c17-feature h3 span{font-size:18px}
  .hm-c17-side{gap:12px}
  .hm-c17-malware{margin-top:12px;border-radius:20px}
  .hm-c17-malware-copy{padding:29px 22px}
  .hm-c17-malware-copy h3{font-size:22px}
  .hm-c17-archive{margin-top:12px;padding:22px 19px;border-radius:18px}
  .hm-c17-archive nav a{flex:1;min-width:190px}
}
@media(max-width:560px){
  .hm-c17-feature>figure{height:235px}
  .hm-c17-feature figcaption{left:15px;right:15px;bottom:14px}
  .hm-c17-type{align-items:flex-start;flex-direction:column}
  .hm-c17-feature h3{font-size:24px}
  .hm-c17-story{display:flex;flex-direction:column}
  .hm-c17-story>figure{height:225px;flex:0 0 225px}
  .hm-c17-story-copy{min-height:250px;padding:24px 20px 21px}
  .hm-c17-story-copy h3{font-size:19px}
  .hm-c17-malware{grid-template-columns:1fr}
  .hm-c17-apps{min-height:176px;border-right:0;border-bottom:1px solid #272e39}
  .hm-c17-malware-open{grid-column:auto}
  .hm-c17-archive nav{display:grid;grid-template-columns:1fr}
  .hm-c17-archive nav a{width:100%;min-width:0}
}
@media(prefers-reduced-motion:reduce){
  .hm-c17-feature,.hm-c17-story,.hm-c17-malware,.hm-c17-feature img,.hm-c17-story img,.hm-c17-archive nav a{transition:none}
  .hm-c17-feature:hover,.hm-c17-story:hover,.hm-c17-malware:hover,.hm-c17-archive nav a:hover{transform:none}
  .hm-c17-feature:hover img,.hm-c17-story:hover img{transform:none}
}

/* =========================================================
   18 · PARTNERSHIP NETWORK — 공개 근거 기반 협력 기록
   ========================================================= */
#partnership.hm-p18-section{position:relative;overflow:hidden;scroll-margin-top:152px;padding:128px 0 132px;background:#fff;color:#162f43}
#partnership.hm-p18-section:before{content:"";position:absolute;width:clamp(260px,38vw,520px);height:clamp(140px,20vw,270px);right:clamp(-72px,-4vw,-42px);top:72px;border:clamp(30px,4vw,54px) solid rgba(84,181,232,.18);border-left-color:transparent;border-bottom-color:transparent;border-radius:50%;filter:drop-shadow(0 20px 34px rgba(56,164,220,.08));transform:rotate(-13deg);pointer-events:none}
#partnership.hm-p18-section:after{content:"";position:absolute;width:clamp(220px,31vw,420px);height:clamp(120px,17vw,230px);left:clamp(-96px,-6vw,-58px);bottom:82px;border:clamp(24px,3.2vw,42px) solid rgba(28,143,207,.12);border-top-color:transparent;border-right-color:transparent;border-radius:50%;filter:drop-shadow(0 18px 30px rgba(28,143,207,.07));transform:rotate(18deg);pointer-events:none}
#partnership .container{position:relative;z-index:1}
.hm-p18-head{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(370px,.72fr);align-items:end;gap:72px}
.hm-p18-head .section-kicker{color:#0874b6;letter-spacing:.15em}
.hm-p18-head h2{margin:14px 0 0;color:#132d42;font-size:clamp(45px,4.8vw,68px);line-height:1.05;letter-spacing:-.064em;word-break:keep-all}
.hm-p18-head h2 span{color:#0874b6}
.hm-p18-intro>p{max-width:540px;margin:0;color:#627487;font-size:15px;line-height:1.82;word-break:keep-all}
.hm-p18-intro>a{width:max-content;margin-top:23px;min-height:43px;padding:0 15px;display:inline-flex;align-items:center;gap:18px;border:1px solid #c9dfec;border-radius:9px;background:rgba(255,255,255,.92);color:#175577;font-size:10px;font-weight:900;text-decoration:none;box-shadow:0 9px 24px rgba(30,126,181,.07);transition:border-color .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease}
.hm-p18-intro>a span{color:#0874b6;font-family:var(--hm-mono)}
.hm-p18-intro>a:hover{transform:translateY(-2px);border-color:#53aede;color:#075f94;box-shadow:0 13px 28px rgba(30,126,181,.12)}

.hm-p18-grid{margin:48px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;list-style:none}
.hm-p18-grid>li{min-width:0}
.hm-p18-card{height:100%;min-width:0;overflow:hidden;display:flex;flex-direction:column;border:1px solid #d9e7f0;border-radius:21px;background:rgba(255,255,255,.94);color:#163248;text-decoration:none;box-shadow:0 18px 44px rgba(25,111,164,.09);transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease}
.hm-p18-card:hover{transform:translateY(-4px);border-color:#86c7e9;box-shadow:0 28px 58px rgba(25,111,164,.16)}
.hm-p18-card>figure{position:relative;overflow:hidden;height:202px;margin:0;background:#eaf4fa}
.hm-p18-card>figure:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(4,6,9,.02) 38%,rgba(4,6,9,.84) 100%)}
.hm-p18-card>figure img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .42s ease,filter .42s ease}
.hm-p18-card:hover>figure img{transform:scale(1.025);filter:saturate(1.06)}
.hm-p18-card figcaption{position:absolute;z-index:2;left:15px;right:15px;bottom:14px;display:grid;color:#fff}
.hm-p18-card figcaption>time{color:#d8dde5;font:800 8px/1 var(--hm-mono);letter-spacing:.055em}
.hm-p18-card-body{min-height:246px;padding:24px 21px 21px;display:flex;flex:1;flex-direction:column}
.hm-p18-card-body>span{min-width:0;color:#4c7893;font:900 8px/1.25 var(--hm-mono);letter-spacing:.07em;overflow-wrap:anywhere}
.hm-p18-card-body h3{margin:20px 0 0;color:#132d42;font-size:23px;line-height:1.14;letter-spacing:-.042em;word-break:keep-all}
.hm-p18-card-body p{margin:14px 0 0;color:#647687;font-size:11.5px;line-height:1.68;word-break:keep-all}
.hm-p18-card-body>b{margin-top:auto;padding-top:23px;color:#185f87;font-size:9.5px}
.hm-p18-card-body>b i{margin-left:5px;color:#0874b6;font:900 13px/1 var(--hm-mono);font-style:normal}

.hm-p18-foot{margin-top:18px;min-height:92px;padding:20px 23px 20px 26px;display:flex;align-items:center;justify-content:space-between;gap:30px;border:1px solid #d9e7f0;border-radius:17px;background:rgba(244,250,253,.9);box-shadow:0 14px 32px rgba(25,111,164,.06)}
.hm-p18-foot>div{display:grid;grid-template-columns:8px auto;align-items:center;column-gap:11px}
.hm-p18-foot>div>i{grid-row:1/3;width:7px;height:7px;border-radius:50%;background:#259ed6;box-shadow:0 0 0 5px rgba(37,158,214,.1)}
.hm-p18-foot>div>span{color:#24506b;font:900 8px/1 var(--hm-mono);letter-spacing:.09em}
.hm-p18-foot>div>p{margin:7px 0 0;color:#718394;font-size:9.5px}
.hm-p18-foot>a{min-height:43px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;gap:18px;border:1px solid #c9dfec;border-radius:9px;background:#fff;color:#185f87;font-size:9.5px;font-weight:900;text-decoration:none;transition:border-color .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease}
.hm-p18-foot>a span{color:#0874b6;font-family:var(--hm-mono)}
.hm-p18-foot>a:hover{transform:translateY(-2px);border-color:#53aede;color:#075f94;box-shadow:0 10px 22px rgba(30,126,181,.1)}
.hm-p18-intro>a:focus-visible,.hm-p18-card:focus-visible,.hm-p18-foot>a:focus-visible{outline:2px solid #0874b6;outline-offset:4px}

@media(max-width:1150px){
  .hm-p18-head{grid-template-columns:1fr;gap:27px}
  .hm-p18-intro>p{max-width:700px}
  .hm-p18-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hm-p18-card>figure{height:260px}
  .hm-p18-card-body{min-height:220px}
}
@media(max-width:760px){
  #partnership.hm-p18-section{padding:82px 0 88px}
  .hm-p18-head{gap:21px}
  .hm-p18-head h2{font-size:37px;line-height:1.08}
  .hm-p18-intro>p{font-size:13px;line-height:1.72}
  .hm-p18-grid{margin-top:28px;gap:10px}
  .hm-p18-card{border-radius:18px}
  .hm-p18-card>figure{height:205px}
  .hm-p18-card-body{min-height:230px;padding:22px 18px 19px}
  .hm-p18-foot{margin-top:12px;align-items:flex-start;flex-direction:column;padding:21px 19px}
  .hm-p18-foot>a{width:100%}
}
@media(max-width:620px){
  .hm-p18-intro>a{width:100%;justify-content:space-between}
  .hm-p18-grid{grid-template-columns:1fr}
  .hm-p18-card>figure{height:auto;aspect-ratio:1.65/1}
  .hm-p18-card-body{min-height:218px}
}
@media(prefers-reduced-motion:reduce){
  .hm-p18-intro>a,.hm-p18-card,.hm-p18-card img,.hm-p18-foot>a{transition:none}
  .hm-p18-intro>a:hover,.hm-p18-card:hover,.hm-p18-foot>a:hover{transform:none}
  .hm-p18-card:hover>figure img{transform:none}
}

/* =========================================================
   19 · CONSULTATION GATEWAY — 상황별 공식 상담 경로
   ========================================================= */
#consult-now.hm-c19-section{position:relative;scroll-margin-top:152px;padding:72px 0 108px;background:linear-gradient(180deg,#f7f5f6 0,#fff 100%)}
#consult-now.hm-c19-section:before{content:"";position:absolute;inset:72px 0 auto;height:360px;pointer-events:none;background:radial-gradient(circle at 5% 0,rgba(210,11,37,.08),transparent 30%),linear-gradient(rgba(19,22,28,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(19,22,28,.03) 1px,transparent 1px);background-size:auto,52px 52px,52px 52px;mask-image:linear-gradient(to bottom,black,transparent)}
#consult-now .container{position:relative;z-index:1}
.hm-c19-shell{overflow:hidden;border:1px solid #ded8da;border-radius:31px;background:#fff;box-shadow:0 34px 82px rgba(43,24,30,.14)}
.hm-c19-main{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(470px,.98fr)}
.hm-c19-copy{min-width:0;padding:58px 58px 55px}
.hm-c19-status{width:max-content;max-width:100%;min-height:38px;padding:0 12px;display:flex;align-items:center;gap:9px;border:1px solid #e2dcde;border-radius:9px;background:#fbf9fa;color:#70747c;font:850 8px/1 var(--hm-mono);letter-spacing:.075em}
.hm-c19-status>i{flex:0 0 auto;width:7px;height:7px;border-radius:50%;background:#31b97a;box-shadow:0 0 0 5px rgba(49,185,122,.09)}
.hm-c19-status>b{padding-left:9px;border-left:1px solid #ddd7d9;color:#bd1027;font-weight:900}
.hm-c19-copy h2{margin:29px 0 0;color:#13151a;font-size:clamp(43px,4.3vw,60px);line-height:1.06;letter-spacing:-.062em;word-break:keep-all}
.hm-c19-copy h2 span{color:#bd1027}
.hm-c19-copy>p{max-width:585px;margin:23px 0 0;color:#61656c;font-size:14px;line-height:1.82;word-break:keep-all}
.hm-c19-safe{margin-top:31px;max-width:590px;padding:17px 18px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:16px;border:1px solid #e2dcde;border-radius:12px;background:#faf8f8}
.hm-c19-safe>span{margin-top:3px;color:#bd1027;font:900 8px/1 var(--hm-mono);letter-spacing:.09em}
.hm-c19-safe>p{margin:0;color:#72767d;font-size:10.5px;line-height:1.65;word-break:keep-all}

.hm-c19-actions{min-width:0;padding:24px;display:flex;flex-direction:column;gap:11px;border-left:1px solid #dfd9db;background:linear-gradient(145deg,#f8f5f6,#f2eff0)}
.hm-c19-phone{position:relative;overflow:hidden;min-height:176px;padding:29px 29px 27px;display:flex;flex-direction:column;justify-content:space-between;border:1px solid #bd1027;border-radius:20px;background:linear-gradient(135deg,#df1731 0,#b60921 67%,#8f071b 100%);color:#fff;text-decoration:none;box-shadow:0 18px 38px rgba(183,9,32,.2);transition:transform .2s ease,box-shadow .2s ease}
.hm-c19-phone:before{content:"";position:absolute;width:280px;height:280px;right:-105px;top:-145px;border:1px solid rgba(255,255,255,.17);border-radius:50%;box-shadow:0 0 0 48px rgba(255,255,255,.035),0 0 0 96px rgba(255,255,255,.018);pointer-events:none}
.hm-c19-phone:after{content:"";position:absolute;right:26px;bottom:26px;width:8px;height:8px;border-radius:50%;background:#fff;box-shadow:0 0 0 6px rgba(255,255,255,.1);pointer-events:none}
.hm-c19-phone>span,.hm-c19-phone>em{position:relative;z-index:1}
.hm-c19-phone small{display:block;color:rgba(255,255,255,.7);font:900 8px/1 var(--hm-mono);letter-spacing:.1em}
.hm-c19-phone strong{margin-top:18px;display:block;color:#fff;font:950 clamp(35px,3.6vw,48px)/.95 var(--hm-mono);letter-spacing:-.065em}
.hm-c19-phone>em{width:max-content;padding-top:16px;border-top:1px solid rgba(255,255,255,.2);color:#fff;font-size:10px;font-style:normal;font-weight:900}
.hm-c19-phone>em i{margin-left:9px;font:900 13px/1 var(--hm-mono);font-style:normal}
.hm-c19-phone:hover{transform:translateY(-3px);box-shadow:0 25px 48px rgba(183,9,32,.27)}
.hm-c19-route-grid{min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;flex:1}
.hm-c19-route-grid>a{min-width:0;min-height:202px;padding:23px 21px 20px;display:flex;flex-direction:column;border:1px solid #ddd6d8;border-radius:17px;background:#fff;color:#17191e;text-decoration:none;box-shadow:0 11px 26px rgba(43,24,30,.045);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.hm-c19-route-grid>a>span{color:#bd1027;font:900 8px/1.25 var(--hm-mono);letter-spacing:.07em;overflow-wrap:anywhere}
.hm-c19-route-grid>a>strong{margin-top:17px;color:#1b1d22;font-size:19px;line-height:1.28;letter-spacing:-.035em;word-break:keep-all}
.hm-c19-route-grid>a>p{margin:11px 0 0;color:#767a81;font-size:10px;line-height:1.6;word-break:keep-all}
.hm-c19-route-grid>a>em{margin-top:auto;padding-top:18px;color:#50545b;font-size:9.5px;font-style:normal;font-weight:900}
.hm-c19-route-grid>a>em i{margin-left:5px;color:#bd1027;font:900 12px/1 var(--hm-mono);font-style:normal}
.hm-c19-route-grid>a:hover{transform:translateY(-3px);border-color:#bd1027;box-shadow:0 18px 34px rgba(43,24,30,.09)}

.hm-c19-foot{min-height:100px;padding:20px 27px 20px 30px;display:flex;align-items:center;justify-content:space-between;gap:30px;border-top:1px solid #2b323c;background:#0d1219;color:#fff}
.hm-c19-live{display:grid;grid-template-columns:8px minmax(0,1fr);align-items:center;gap:13px}
.hm-c19-live>i{width:7px;height:7px;border-radius:50%;background:#45d695;box-shadow:0 0 0 6px rgba(69,214,149,.08)}
.hm-c19-live>span{display:grid;gap:7px}
.hm-c19-live b{color:#e9ecf0;font-size:11px}
.hm-c19-live small{color:#727e8e;font-size:9.5px}
.hm-c19-first{min-height:48px;padding:0 17px;display:flex;align-items:center;gap:14px;border:1px solid #303845;border-radius:10px;background:#111720}
.hm-c19-first>span{color:#ff6076;font:900 8px/1 var(--hm-mono);letter-spacing:.09em}
.hm-c19-first>b{padding-left:14px;border-left:1px solid #333b46;color:#c6cbd3;font-size:9.5px;word-break:keep-all}
.hm-c19-phone:focus-visible,.hm-c19-route-grid>a:focus-visible{outline:2px solid #bd1027;outline-offset:4px}
.hm-c19-phone:focus-visible{outline-color:#fff;outline-offset:-5px}

@media(max-width:1080px){
  .hm-c19-main{grid-template-columns:1fr}
  .hm-c19-copy{padding-bottom:43px}
  .hm-c19-copy>p{max-width:720px}
  .hm-c19-safe{max-width:720px}
  .hm-c19-actions{border-top:1px solid #dfd9db;border-left:0}
  .hm-c19-phone{min-height:165px}
}
@media(max-width:760px){
  #consult-now.hm-c19-section{padding:44px 0 82px;background:linear-gradient(180deg,#f7f5f6 0,#fff 100%)}
  .hm-c19-shell{border-radius:24px}
  .hm-c19-copy{padding:39px 27px 34px}
  .hm-c19-status{font-size:8px}
  .hm-c19-copy h2{margin-top:24px;font-size:36px;line-height:1.08}
  .hm-c19-copy>p{margin-top:19px;font-size:12.5px;line-height:1.72}
  .hm-c19-safe{margin-top:24px;grid-template-columns:1fr;gap:8px}
  .hm-c19-actions{padding:15px}
  .hm-c19-phone{min-height:158px;padding:26px 23px 23px;border-radius:18px}
  .hm-c19-phone strong{font-size:38px}
  .hm-c19-route-grid>a{min-height:208px;padding:21px 18px 19px}
  .hm-c19-foot{align-items:flex-start;flex-direction:column;padding:23px 21px}
  .hm-c19-first{width:100%;min-height:58px;justify-content:space-between}
}
@media(max-width:590px){
  .hm-c19-status{width:100%;display:grid;grid-template-columns:8px minmax(0,1fr);padding:9px 11px;line-height:1.3}
  .hm-c19-status>i{grid-row:1/3}
  .hm-c19-status>b{padding:0;border-left:0}
  .hm-c19-route-grid{grid-template-columns:1fr}
  .hm-c19-route-grid>a{min-height:180px}
  .hm-c19-first{align-items:flex-start;flex-direction:column;justify-content:center;gap:7px}
  .hm-c19-first>b{padding:0;border-left:0}
}
@media(max-width:390px){
  .hm-c19-copy{padding-left:21px;padding-right:21px}
  .hm-c19-copy h2{font-size:32px}
  .hm-c19-phone strong{font-size:34px}
}
@media(prefers-reduced-motion:reduce){
  .hm-c19-phone,.hm-c19-route-grid>a{transition:none}
  .hm-c19-phone:hover,.hm-c19-route-grid>a:hover{transform:none}
}

/* =========================================================
   21 · RESPONSE DIALOGS — 긴급 행동 안내·수치 공개 상태
   ========================================================= */
.hm-u21-dialog.hm-dlg{box-sizing:border-box;width:min(720px,calc(100% - 32px));max-width:none;max-height:min(88dvh,820px);margin:auto;padding:0;overflow:auto;border:1px solid #dcd7d9;border-radius:27px;background:#fff;color:#17191e;box-shadow:0 38px 110px rgba(8,10,14,.38)}
.hm-u21-dialog::backdrop{background:rgba(6,8,12,.72);backdrop-filter:blur(7px)}
.hm-u21-dialog[open]{animation:hmU21In .24s cubic-bezier(.2,.75,.25,1) both}
@keyframes hmU21In{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}
.hm-u21-close{position:absolute;right:18px;top:18px;z-index:4;width:44px;height:44px;padding:0;display:grid;place-items:center;border:1px solid rgba(255,255,255,.19);border-radius:50%;background:rgba(255,255,255,.1);color:#fff;font-size:16px;cursor:pointer;transition:background .18s ease,color .18s ease,transform .18s ease}
.hm-u21-close:hover{transform:rotate(4deg);background:#fff;color:#14171c}
.hm-u21-dialog:focus{outline:none}
.hm-u21-dialog h2[tabindex="-1"]:focus{outline:none}
.hm-u21-emg-head,.hm-u21-evd-head{position:relative;overflow:hidden;padding:39px 78px 36px 42px}
.hm-u21-emg-head{background:radial-gradient(circle at 92% 5%,rgba(255,79,105,.24),transparent 32%),linear-gradient(138deg,#1a0d12 0,#10141b 68%,#0b1017 100%);color:#fff}
.hm-u21-emg-head:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:34px 34px;mask-image:linear-gradient(90deg,transparent,black)}
.hm-u21-emg-head>span,.hm-u21-evd-head>span{position:relative;z-index:1;display:flex;align-items:center;gap:10px;font:900 10px/1.3 var(--hm-mono);letter-spacing:.1em}
.hm-u21-emg-head>span{color:#ff7689}
.hm-u21-emg-head>span i,.hm-u21-evd-head>span i{width:7px;height:7px;border-radius:50%;background:#45d695;box-shadow:0 0 0 5px rgba(69,214,149,.1)}
.hm-u21-emg-head h2,.hm-u21-evd-head h2{position:relative;z-index:1;margin:24px 0 0;font-size:clamp(31px,4.2vw,46px);line-height:1.08;letter-spacing:-.055em;word-break:keep-all}
.hm-u21-emg-head h2{color:#fff;font-weight:750}
.hm-u21-emg-head h2 b{color:#ff6077;font-weight:950}
.hm-u21-emg-head p,.hm-u21-evd-head p{position:relative;z-index:1;max-width:640px;margin:18px 0 0;font-size:14.5px;line-height:1.68;word-break:keep-all}
.hm-u21-emg-head p{color:#aab1bd}
.hm-u21-body{padding:28px 32px 31px;background:#fff}
.hm-u21-context[hidden]{display:none}
.hm-u21-context{padding:15px 17px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:5px 16px;border:1px solid #e1dcde;border-radius:13px;background:#faf8f8}
.hm-u21-context>span{grid-row:1/3;align-self:center;color:#bd1027;font:900 10px/1.3 var(--hm-mono);letter-spacing:.08em}
.hm-u21-context>b{color:#22252a;font-size:14px;line-height:1.35}
.hm-u21-context>small{color:#777b82;font-size:11.5px;line-height:1.55}
.hm-u21-steps{margin:18px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;list-style:none}
.hm-u21-steps>li{min-width:0;min-height:152px;padding:17px 16px 16px;border:1px solid #e1dcde;border-radius:15px;background:#fff}
.hm-u21-steps span{color:#bd1027;font:900 10px/1.2 var(--hm-mono);letter-spacing:.08em}
.hm-u21-steps b{margin-top:11px;display:block;color:#22252a;font-size:15px;line-height:1.35;word-break:keep-all}
.hm-u21-steps p{margin:8px 0 0;color:#74787f;font-size:13px;line-height:1.66;word-break:keep-all}
.hm-u21-actions{margin-top:11px;display:grid;grid-template-columns:1.08fr repeat(2,minmax(0,1fr));gap:9px}
.hm-u21-actions>a{min-width:0;min-height:82px;padding:15px 16px;display:flex;flex-direction:column;justify-content:center;position:relative;border:1px solid #ded8da;border-radius:14px;background:#f9f7f8;color:#1d2025;text-decoration:none;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.hm-u21-actions>a>span{color:#9a3a48;font:900 10px/1.25 var(--hm-mono);letter-spacing:.075em}
.hm-u21-actions>a>b{margin-top:9px;color:inherit;font-size:15px;line-height:1.25}
.hm-u21-actions>a>i{position:absolute;right:15px;bottom:15px;color:#bd1027;font:900 13px/1 var(--hm-mono);font-style:normal}
.hm-u21-actions>a:hover{transform:translateY(-2px);border-color:#bd1027;box-shadow:0 13px 26px rgba(48,22,29,.09)}
.hm-u21-actions .hm-u21-call{border-color:#bd1027;background:linear-gradient(135deg,#d9142e,#a8071d);color:#fff}
.hm-u21-actions .hm-u21-call>span{color:rgba(255,255,255,.72)}
.hm-u21-actions .hm-u21-call>b{font:950 25px/1 var(--hm-mono);letter-spacing:-.05em}
.hm-u21-caution{margin:15px 0 0;padding:14px 16px;border-left:3px solid #bd1027;background:#faf7f8;color:#74787f;font-size:12.5px;line-height:1.62;word-break:keep-all}
.hm-u21-caution b{margin-right:7px;color:#3a3d43;font-weight:900}
.hm-u21-evd-head{background:radial-gradient(circle at 92% 0,rgba(210,11,37,.09),transparent 35%),#f7f5f6;color:#17191e;border-bottom:1px solid #ded8da}
.hm-u21-evd-head>span{color:#bd1027}
.hm-u21-evd-head>span i{background:#bd1027;box-shadow:0 0 0 5px rgba(189,16,39,.08)}
.hm-u21-evd-head h2{color:#17191e;font-size:clamp(30px,3.8vw,42px)}
.hm-u21-evd-head p{color:#676b72}
.hm-u21-evidence .hm-u21-close{border-color:#ddd7d9;background:#fff;color:#5e6269}
.hm-u21-evidence .hm-u21-close:hover{background:#17191e;color:#fff}
.hm-u21-review{padding:17px 18px;display:grid;grid-template-columns:125px minmax(0,1fr);gap:5px 18px;border:1px solid #e2d6d9;border-radius:14px;background:#fff7f8}
.hm-u21-review>span{grid-row:1/3;align-self:center;color:#a80b20;font:900 10px/1.3 var(--hm-mono);letter-spacing:.09em}
.hm-u21-review>b{color:#bd1027;font-size:14px}
.hm-u21-review>p{margin:0;color:#6c7077;font-size:12.5px;line-height:1.6}
.hm-u21-list{margin:15px 0 0;overflow:hidden;border:1px solid #ded9db;border-radius:14px;background:#fff}
.hm-u21-list>div{display:grid;grid-template-columns:142px minmax(0,1fr);gap:16px;padding:13px 16px;border-bottom:1px solid #ebe7e8}
.hm-u21-list>div:last-child{border-bottom:0}
.hm-u21-list>div:nth-child(even){background:#faf9f9}
.hm-u21-list dt{color:#858990;font-size:12px;font-weight:800}
.hm-u21-list dd{margin:0;color:#2a2d32;font-size:13px;line-height:1.5;font-weight:750;word-break:keep-all}
.hm-u21-dialog button:focus-visible,.hm-u21-dialog a:focus-visible{outline:3px solid #ff6077;outline-offset:3px}

/* =========================================================
   22 · LATEST UPDATE — 비모달 최신 소식 카드
   ========================================================= */
.hm-promo.hm-u22-promo{left:18px;right:auto;bottom:18px;z-index:1150;width:min(408px,calc(100vw - 36px));pointer-events:none;opacity:0;transform:translateY(18px) scale(.985);transition:opacity .26s ease,transform .32s cubic-bezier(.2,.75,.25,1)}
.hm-promo.hm-u22-promo.open{pointer-events:auto;opacity:1;transform:none}
.hm-u22-card{box-sizing:border-box;width:100%;max-height:calc(100dvh - 36px);overflow:auto;border:1px solid #dcd6d8;border-radius:24px;background:#fff;box-shadow:0 28px 82px rgba(13,10,13,.33)}
.hm-u22-head{position:relative;overflow:hidden;min-height:139px;padding:25px 72px 24px 25px;display:flex;align-items:flex-end;background:radial-gradient(circle at 100% 0,rgba(255,86,111,.25),transparent 42%),linear-gradient(140deg,#180d12,#0d1219 74%);color:#fff}
.hm-u22-head:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:28px 28px;mask-image:linear-gradient(90deg,transparent,black)}
.hm-u22-head>div{position:relative;z-index:1}
.hm-u22-head span{display:flex;align-items:center;gap:9px;color:#ff7388;font:900 8px/1.25 var(--hm-mono);letter-spacing:.1em}
.hm-u22-head span i{width:6px;height:6px;border-radius:50%;background:#45d695;box-shadow:0 0 0 5px rgba(69,214,149,.09)}
.hm-u22-head h2{margin:16px 0 0;color:#fff;font-size:27px;line-height:1.08;letter-spacing:-.045em}
.hm-u22-close{position:absolute;right:17px;top:17px;z-index:2;width:44px;height:44px;padding:0;display:grid;place-items:center;border:1px solid rgba(255,255,255,.18);border-radius:50%;background:rgba(255,255,255,.09);color:#fff;font-size:15px;cursor:pointer;transition:background .18s ease,color .18s ease}
.hm-u22-close:hover{background:#fff;color:#15181e}
.hm-u22-feature{margin:12px 12px 0;overflow:hidden;display:grid;grid-template-columns:150px minmax(0,1fr);border:1px solid #ded9db;border-radius:17px;background:#fff;color:#17191e;text-decoration:none;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.hm-u22-feature figure{position:relative;min-height:146px;margin:0;overflow:hidden;background:#17191e}
.hm-u22-feature figure:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(9,11,15,.48))}
.hm-u22-feature figure img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .32s ease}
.hm-u22-feature figure>span{position:absolute;left:11px;bottom:10px;z-index:1;min-height:23px;padding:0 8px;display:flex;align-items:center;border:1px solid rgba(255,255,255,.32);border-radius:6px;background:rgba(11,14,19,.68);color:#fff;font:900 8px/1 var(--hm-mono);letter-spacing:.08em}
.hm-u22-feature>div{min-width:0;padding:17px 16px 15px;display:flex;flex-direction:column}
.hm-u22-feature time,.hm-u22-briefs time{color:#bd1027;font:900 8px/1.3 var(--hm-mono);letter-spacing:.075em}
.hm-u22-feature strong{margin-top:11px;color:#202328;font-size:14px;line-height:1.42;letter-spacing:-.025em;word-break:keep-all}
.hm-u22-feature em{margin-top:auto;padding-top:13px;color:#686c73;font-size:9.5px;font-style:normal;font-weight:850}
.hm-u22-feature em i,.hm-u22-briefs em i{margin-left:5px;color:#bd1027;font:900 11px/1 var(--hm-mono);font-style:normal}
.hm-u22-feature:hover{transform:translateY(-2px);border-color:#bd1027;box-shadow:0 14px 28px rgba(43,20,27,.1)}
.hm-u22-feature:hover figure img{transform:scale(1.035)}
.hm-u22-briefs{margin:9px 12px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.hm-u22-briefs>a{min-width:0;min-height:131px;padding:15px 14px 13px;display:flex;flex-direction:column;border:1px solid #e0dbdc;border-radius:14px;background:#faf9f9;color:#1d2025;text-decoration:none;transition:transform .18s ease,border-color .18s ease,background .18s ease}
.hm-u22-briefs strong{margin-top:10px;font-size:12px;line-height:1.45;letter-spacing:-.02em;word-break:keep-all}
.hm-u22-briefs em{margin-top:auto;padding-top:11px;color:#777b82;font-size:9px;font-style:normal;font-weight:850}
.hm-u22-briefs>a:hover{transform:translateY(-2px);border-color:#bd1027;background:#fff}
.hm-u22-foot{min-height:62px;margin-top:12px;padding:0 17px;display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid #e4dfe0;background:#fbfafa}
.hm-u22-foot label{min-height:44px;display:flex;align-items:center;gap:8px;color:#74787f;font-size:10.5px;cursor:pointer;user-select:none}
.hm-u22-foot input{width:17px;height:17px;margin:0;accent-color:#bd1027}
.hm-u22-foot>a{min-height:44px;display:flex;align-items:center;gap:8px;color:#34373d;font-size:10.5px;font-weight:900;text-decoration:none}
.hm-u22-foot>a i{color:#bd1027;font:900 12px/1 var(--hm-mono);font-style:normal}
.hm-u22-card a:focus-visible,.hm-u22-card button:focus-visible,.hm-u22-card input:focus-visible{outline:3px solid #ff6077;outline-offset:3px}

@media(max-width:620px){
  .hm-u21-dialog.hm-dlg{width:calc(100% - 20px);max-height:calc(100dvh - 20px);border-radius:23px}
  .hm-u21-emg-head,.hm-u21-evd-head{padding:26px 62px 22px 22px}
  .hm-u21-emg-head h2,.hm-u21-evd-head h2{font-size:31px;margin-top:16px}
  .hm-u21-emg-head p,.hm-u21-evd-head p{margin-top:13px}
  .hm-u21-body{padding:17px 18px 19px}
  .hm-u21-steps{margin-top:13px;gap:8px}
  .hm-u21-steps>li{padding:14px 15px 13px}
  .hm-u21-actions{margin-top:8px;gap:8px}
  .hm-u21-caution{margin-top:12px;padding:12px 14px}
  .hm-u21-context{grid-template-columns:1fr;gap:7px}
  .hm-u21-context>span{grid-row:auto}
  .hm-u21-steps,.hm-u21-actions{grid-template-columns:1fr}
  .hm-u21-steps>li{min-height:0}
  .hm-u21-actions>a{min-height:72px}
  .hm-u21-review{grid-template-columns:1fr;gap:8px}
  .hm-u21-review>span{grid-row:auto}
  .hm-u21-list>div{grid-template-columns:1fr;gap:6px}
  .hm-promo.hm-u22-promo{left:10px;right:10px;bottom:calc(98px + env(safe-area-inset-bottom));width:auto}
  .hm-u22-card{max-height:calc(100dvh - 118px);border-radius:20px}
}
@media(max-width:430px){
  .hm-u22-head{min-height:126px;padding-left:21px}
  .hm-u22-head h2{font-size:24px}
  .hm-u22-feature{grid-template-columns:112px minmax(0,1fr)}
  .hm-u22-feature figure{min-height:154px}
  .hm-u22-feature>div{padding-left:13px;padding-right:13px}
  .hm-u22-feature strong{font-size:12.5px}
  .hm-u22-briefs{grid-template-columns:1fr}
  .hm-u22-briefs>a{min-height:105px}
  .hm-u22-foot{align-items:flex-start;flex-direction:column;gap:2px;padding-top:9px;padding-bottom:9px}
}
@media(prefers-reduced-motion:reduce){
  .hm-u21-dialog[open]{animation:none}
  .hm-u21-close,.hm-u21-actions>a,.hm-u22-promo,.hm-u22-feature,.hm-u22-feature figure img,.hm-u22-briefs>a{transition:none}
  .hm-u21-close:hover,.hm-u21-actions>a:hover,.hm-u22-feature:hover,.hm-u22-briefs>a:hover{transform:none}
  .hm-u22-feature:hover figure img{transform:none}
}

/* =========================================================
   2026-08-31 · 요청 0–11 최종 정리
   ========================================================= */

/* 패턴 매칭: 모바일 돌출을 만들던 설치·권한 패널을 제거한 2열 구성 */
.hm-pm-shell{grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr);gap:18px}
.hm-pm-result{grid-column:auto}

/* 접수 흐름: SNS / IPA / APK WebGL 라우터 */
.hm-process-wrap .section-title{grid-template-columns:1fr}
.hm-process-wrap .section-title>div{max-width:920px}
.hm-intake-webgl{position:relative;min-width:0;min-height:500px;overflow:hidden;isolation:isolate;border-right:1px solid #242d3a;background:radial-gradient(circle at 76% 50%,#123454 0,#081525 38%,#050b14 72%);color:#fff}
.hm-intake-webgl canvas{position:absolute;z-index:0;inset:0;width:100%;height:100%;display:block}
.hm-intake-webgl.is-fallback canvas{display:none}
.hm-intake-webgl.is-fallback{background:radial-gradient(circle at 76% 50%,rgba(55,135,205,.38),transparent 25%),linear-gradient(135deg,#071526,#050b13)}
.hm-intake-grid{position:absolute;z-index:1;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(3,8,14,.42),transparent 48%,rgba(3,8,14,.15)),repeating-linear-gradient(0deg,transparent 0 35px,rgba(131,190,239,.035) 35px 36px)}
.hm-intake-bar{position:absolute;z-index:3;left:0;right:0;top:0;height:54px;padding:0 17px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid rgba(158,200,237,.15);background:rgba(4,11,20,.67);font:800 9.5px/1 var(--hm-mono);letter-spacing:.11em;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px)}
.hm-intake-bar span{display:flex;align-items:center;gap:8px;color:#a4c4de}.hm-intake-bar span i{width:7px;height:7px;border-radius:50%;background:#52dca4;box-shadow:0 0 12px #52dca4}.hm-intake-bar b{padding:6px 8px;border:1px solid rgba(110,178,229,.24);border-radius:99px;color:#6fa9d5}
.hm-intake-lanes{position:absolute;z-index:4;left:17px;top:78px;width:46%;margin:0;padding:0;display:grid;gap:14px;list-style:none}
.hm-intake-lanes li{--intake:#47b9fa;position:relative;min-height:88px;padding:14px 40px 13px 15px;display:grid;align-content:center;gap:5px;border:1px solid color-mix(in srgb,var(--intake) 30%,transparent);border-radius:14px;background:linear-gradient(110deg,color-mix(in srgb,var(--intake) 11%,rgba(6,15,26,.88)),rgba(6,15,26,.68));box-shadow:0 15px 30px rgba(0,0,0,.14);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}
.hm-intake-lanes li.is-ipa{--intake:#9b84ff}.hm-intake-lanes li.is-apk{--intake:#ff5269}
.hm-intake-lanes li>span{color:var(--intake);font:900 9.5px/1 var(--hm-mono);letter-spacing:.12em}.hm-intake-lanes li>b{font-size:12px;letter-spacing:-.02em}.hm-intake-lanes li>small{color:#73879b;font-size:9.5px}.hm-intake-lanes li>i{position:absolute;right:16px;top:50%;width:11px;height:11px;border:2px solid var(--intake);border-radius:50%;box-shadow:0 0 16px color-mix(in srgb,var(--intake) 70%,transparent);transform:translateY(-50%)}
.hm-intake-core{position:absolute;z-index:4;left:76%;top:50%;width:138px;height:138px;padding:0 18px;display:grid;place-content:center;text-align:center;border:1px solid rgba(115,190,245,.42);border-radius:50%;background:radial-gradient(circle,rgba(21,65,103,.94),rgba(6,16,28,.88) 68%);box-shadow:0 0 0 14px rgba(68,159,226,.035),0 0 44px rgba(55,158,232,.2);transform:translate(-50%,-50%)}
.hm-intake-core:before,.hm-intake-core:after{content:"";position:absolute;inset:-13px;border:1px dashed rgba(115,190,245,.23);border-radius:50%}.hm-intake-core:after{inset:-29px;border-color:rgba(115,190,245,.1)}
.hm-intake-core span{color:#7ac5fa;font:900 9.5px/1 var(--hm-mono);letter-spacing:.09em}.hm-intake-core b{margin-top:8px;font-size:18px}.hm-intake-core small{margin-top:7px;color:#68849a;font:700 9.5px/1.35 var(--hm-mono)}
.hm-intake-route{position:absolute;z-index:4;left:17px;right:17px;bottom:48px;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);overflow:hidden;border:1px solid rgba(129,183,224,.15);border-radius:10px;background:rgba(5,13,23,.7);list-style:none}.hm-intake-route li{min-height:34px;padding:0 10px;display:flex;align-items:center;gap:7px;border-right:1px solid rgba(129,183,224,.12);color:#71869a;font-size:9.5px}.hm-intake-route li:last-child{border-right:0}.hm-intake-route b{color:#66baf7;font:900 9.5px/1 var(--hm-mono)}
.hm-intake-webgl>footer{position:absolute;z-index:4;left:17px;right:17px;bottom:14px;display:flex;align-items:center;justify-content:space-between;color:#536b80;font:800 9.5px/1 var(--hm-mono);letter-spacing:.1em}.hm-intake-webgl>footer b{color:#53d9a4}

/* Atlas 설명 제거 후 제목·링크 정렬 */
.hm-atlas-head{grid-template-columns:1fr}
.hm-atlas-head>div{max-width:980px}
.hm-atlas-foot{justify-content:flex-end}

/* 밝은 공식 솔루션 랩 */
.hm-agent-section{background:linear-gradient(180deg,#f7f9fc 0%,#edf2f8 100%);color:#111827}
.hm-agent-heading h2{color:#111827}.hm-agent-heading>p{color:#59667a}
.hm-agent-families{margin:-14px 0 22px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.hm-agent-families>a{position:relative;min-height:122px;padding:20px 74px 18px 20px;display:grid;align-content:center;gap:7px;overflow:hidden;border:1px solid #dce3ec;border-radius:18px;background:rgba(255,255,255,.88);color:#111827;text-decoration:none;box-shadow:0 14px 34px rgba(36,55,80,.06);transition:.2s}
.hm-agent-families>a:before{content:"";position:absolute;right:-34px;top:-42px;width:120px;height:120px;border:22px solid rgba(58,130,212,.07);border-radius:50%}.hm-agent-families>a:nth-child(2):before{border-color:rgba(202,23,52,.07)}.hm-agent-families>a:nth-child(3):before{border-color:rgba(28,160,115,.08)}
.hm-agent-families>a:hover{border-color:#aebdce;transform:translateY(-2px);box-shadow:0 18px 42px rgba(36,55,80,.1)}
.hm-agent-families span{color:#3377bd;font:900 8px/1 var(--hm-mono);letter-spacing:.11em}.hm-agent-families>a:nth-child(2) span{color:#bd233d}.hm-agent-families>a:nth-child(3) span{color:#178a65}.hm-agent-families b{font-size:18px}.hm-agent-families small{color:#6b778a;font-size:10px}.hm-agent-families em{position:absolute;right:18px;bottom:18px;color:#8290a2;font:800 8px/1 var(--hm-mono);font-style:normal;letter-spacing:.07em}
.hm-agent-lab{border-color:#d5dde8;background:#fff;color:#111827;box-shadow:0 34px 80px rgba(40,57,80,.14)}
.hm-agent-topbar{border-color:#dfe5ed;background:#fff}.hm-agent-brand>b{color:#465568}.hm-agent-safety{color:#8492a3}.hm-agent-safety>span{border-color:#d9e2ec;background:#f7f9fc}.hm-agent-safety>span:first-child{color:#15855f}
.hm-agent-layout{background:#fff}
.hm-agent-nav{border-color:#dce3eb;background:#f5f8fb}.hm-agent-nav-head{border-color:#dce3eb}.hm-agent-nav-head span{color:#79879a}.hm-agent-nav-head b{color:#445369}
.hm-agent-tab-group{padding:11px 4px 4px;display:block;color:#8492a5;font:900 8px/1 var(--hm-mono);letter-spacing:.11em}
.hm-agent-tabs>button{border-color:#dbe3ec;background:#fff;color:#1b2636}.hm-agent-tabs>button:hover{border-color:#aebdce;background:#fbfdff}.hm-agent-tabs>button.active{border-color:var(--agent-accent);background:color-mix(in srgb,var(--agent-accent) 8%,#fff);box-shadow:inset 3px 0 0 var(--agent-accent),0 8px 18px rgba(38,71,109,.06)}
.hm-agent-tabs>button>i{border-color:#d4dde8;background:#f4f7fa;color:#617187}.hm-agent-tabs>button>span b{color:#1b2636}.hm-agent-tabs>button>span small{color:#8794a5}.hm-agent-tabs>button.active>span b{color:#111827}
.hm-agent-nav-note{border-color:#d9e2ec;background:#fff;color:#738196}.hm-agent-nav-note b{color:#3379c1}
.hm-agent-workspace{background:#fff}.hm-agent-workhead{border-color:#dce4ed;background:radial-gradient(circle at 82% 12%,rgba(65,135,214,.1),transparent 34%),#fff}.hm-agent-workhead span{color:#337dca}.hm-agent-workhead h3{color:#111827}.hm-agent-workhead p{color:#66758a}
.hm-agent-simframe{background:linear-gradient(180deg,#e9eff6,#f6f8fb)}.hm-agent-simhost .tsim{border-color:#cbd5e2;box-shadow:0 20px 45px rgba(35,50,72,.16)}
.hm-agent-runbar{border-color:#dbe3ec;background:#fff}.hm-agent-runbar>div:first-child span{color:#7b899b}.hm-agent-runbar>div:first-child b{color:#16875f}.hm-agent-progress>span{color:#263548}.hm-agent-progress>i{background:#e4eaf1}
.hm-agent-inspector{border-color:#dce3eb;background:#f5f8fb}.hm-agent-evidence{border-color:#cad5e1;background:#e9eef4}.hm-agent-evidence>img{filter:saturate(.9) brightness(.84)}
.hm-agent-scope{border-color:#d9e2ec;background:#fff}.hm-agent-scope>header{border-color:#e2e8f0}.hm-agent-scope>header span{color:#77869a}.hm-agent-scope>header b{color:#15885f}.hm-agent-scope dl>div{border-color:#e7ecf2}.hm-agent-scope dt{color:#8290a2}.hm-agent-scope dd{color:#344357}
.hm-agent-steps li{border-color:#dce4ed;background:#fff;color:#6c7b8e}.hm-agent-steps li>i{border-color:#d4deea;color:#718196}.hm-agent-steps li.is-current{border-color:#8eb8e6;background:#edf6ff;color:#245d99}.hm-agent-steps li.is-current>i{border-color:#6ca7e2;color:#246db5}.hm-agent-steps li.is-done{border-color:#a8d9c6;background:#effaf5;color:#167653}.hm-agent-steps li.is-done>i{border-color:#6dbb9d;background:#dff4eb;color:#147351}
.hm-agent-disclosure{border-color:#dce3eb;background:#fff}.hm-agent-disclosure p{color:#6d7c8f}.hm-agent-disclosure b{color:#2c6fae}

/* HC1 / HC2 / HC3 — 탭이 아닌 공개 벤치마크 보드 */
.hm-bench-heading{grid-template-columns:minmax(500px,1.05fr) minmax(0,.95fr);gap:48px}.hm-bench-heading h2{font-size:clamp(40px,3.8vw,54px)}
.hm-bench-board{overflow:hidden;border:1px solid #d7dee8;border-radius:28px;background:#fff;color:#111827;box-shadow:0 34px 88px rgba(29,43,61,.14)}
.hm-bench-topbar{min-height:57px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;gap:18px;background:#0b1421;color:#fff}.hm-bench-topbar>div,.hm-bench-topbar>p{display:flex;align-items:center}.hm-bench-topbar>div{gap:6px}.hm-bench-topbar>div i{width:8px;height:8px;border-radius:50%;background:#ff625d}.hm-bench-topbar>div i:nth-child(2){background:#ffc34e}.hm-bench-topbar>div i:nth-child(3){background:#43d495}.hm-bench-topbar>div b{margin-left:9px;color:#c4d0dc;font:900 8px/1 var(--hm-mono);letter-spacing:.1em}.hm-bench-topbar>p{margin:0;gap:8px}.hm-bench-topbar>p span,.hm-bench-topbar>p em{padding:6px 8px;border:1px solid #2c3a4e;border-radius:99px;color:#8392a5;font:800 8px/1 var(--hm-mono);font-style:normal;letter-spacing:.08em}.hm-bench-topbar>p span:first-child{border-color:rgba(76,219,158,.34);color:#6fe0ab}
.hm-bench-summary{padding:31px 30px 27px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:42px;border-bottom:1px solid #e1e7ee;background:radial-gradient(circle at 82% 12%,rgba(58,132,214,.12),transparent 34%),linear-gradient(145deg,#fff,#f7f9fc)}.hm-bench-summary>div>span{color:#2f76bd;font:900 8px/1 var(--hm-mono);letter-spacing:.14em}.hm-bench-summary h3{margin:11px 0 0;font-size:clamp(29px,3vw,45px);line-height:1.08;letter-spacing:-.055em}.hm-bench-summary dl{min-width:300px;margin:0;display:grid;grid-template-columns:repeat(3,1fr);overflow:hidden;border:1px solid #d9e2ec;border-radius:13px;background:#fff}.hm-bench-summary dl>div{padding:14px 13px;border-right:1px solid #e1e7ee}.hm-bench-summary dl>div:last-child{border-right:0}.hm-bench-summary dt{color:#8592a3;font:800 8px/1 var(--hm-mono);letter-spacing:.08em}.hm-bench-summary dd{margin:7px 0 0;color:#243348;font:900 10px/1 var(--hm-mono)}
.hm-bench-table{padding:0 18px 18px;background:#f6f8fb}.hm-bench-row{display:grid;grid-template-columns:180px minmax(300px,1fr) 230px 140px;align-items:stretch}.hm-bench-row--head{min-height:44px;align-items:center;color:#8491a2;font:900 8px/1 var(--hm-mono);letter-spacing:.11em}.hm-bench-row--head>span{padding:0 16px}
.hm-bench-row[role="row"] article{display:block}.hm-bench-row:not(.hm-bench-row--head){--bench:#3d89d5;min-height:146px;margin-bottom:10px;overflow:hidden;border:1px solid #d9e1ea;border-left:4px solid var(--bench);border-radius:16px;background:#fff;box-shadow:0 9px 24px rgba(37,52,72,.045)}.hm-bench-row.is-hc2{--bench:#796de8}.hm-bench-row.is-hc3{--bench:#d51e3b}.hm-bench-row:not(.hm-bench-row--head)>div{min-width:0;padding:20px 17px;display:flex;flex-direction:column;justify-content:center;border-right:1px solid #e4e9ef}.hm-bench-row:not(.hm-bench-row--head)>div:last-child{border-right:0}
.hm-bench-row>div:first-child>span{color:var(--bench);font:950 32px/1 var(--hm-mono)}.hm-bench-row>div:first-child>b{margin-top:11px;color:#2d3b4e;font:900 8px/1 var(--hm-mono);letter-spacing:.09em}.hm-bench-row>div:first-child>small{margin-top:6px;color:#99a4b2;font:800 8px/1 var(--hm-mono);letter-spacing:.08em}
.hm-bench-row>div:nth-child(2)>b{font-size:18px}.hm-bench-row>div:nth-child(2)>small{margin-top:7px;color:#718094;font-size:10px}.hm-bench-tags{margin-top:14px;display:flex;flex-wrap:wrap;gap:5px}.hm-bench-tags i{padding:5px 7px;border:1px solid #dce4ed;border-radius:99px;background:#f8fafc;color:#7b899b;font:800 8px/1 var(--hm-mono);font-style:normal}
.hm-bench-row>div:nth-child(3){background:linear-gradient(145deg,color-mix(in srgb,var(--bench) 7%,#fff),#fff 70%)}.hm-bench-row strong{color:#111827;font:950 clamp(37px,3.8vw,55px)/1 var(--hm-mono);letter-spacing:-.07em}.hm-bench-row strong em{margin-left:3px;color:var(--bench);font-size:.38em;font-style:normal;letter-spacing:-.02em}.hm-bench-row>div:nth-child(3)>small{margin-top:10px;color:#8794a5;font:800 8px/1 var(--hm-mono);letter-spacing:.09em}
.hm-bench-row button{min-height:39px;padding:0 12px;border:1px solid #ced8e4;border-radius:10px;background:#fff;color:#405167;font-size:9px;font-weight:850;cursor:pointer;transition:.18s}.hm-bench-row button:hover{border-color:var(--bench);color:var(--bench);background:color-mix(in srgb,var(--bench) 5%,#fff)}
.hm-bench-footer{min-height:68px;padding:12px 18px;display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:10px;border-top:1px solid #dfe6ee;background:#fff}.hm-bench-footer p{margin:0;padding:8px 12px;border-right:1px solid #e1e7ee}.hm-bench-footer span{display:block;color:#8c98a8;font:800 8px/1 var(--hm-mono);letter-spacing:.09em}.hm-bench-footer b{display:block;margin-top:6px;color:#445469;font:800 8px/1 var(--hm-mono)}.hm-bench-footer a{padding:12px 15px;border:1px solid #d4dde7;border-radius:10px;color:#27374b;font-size:9px;font-weight:850;text-decoration:none}.hm-bench-footer a i{margin-left:8px;color:#2776bd;font-style:normal}

@media(max-width:1100px){
  .hm-intake-webgl{min-height:500px;border-right:0}
  .hm-agent-families{grid-template-columns:1fr}
  .hm-agent-families>a{min-height:106px}
  .hm-bench-heading{grid-template-columns:1fr;gap:20px}
  .hm-bench-row{grid-template-columns:150px minmax(260px,1fr) 190px 126px}
}
@media(max-width:860px){
  .hm-pm-shell{grid-template-columns:1fr}.hm-pm-result{grid-column:auto}
  .hm-bench-row{grid-template-columns:135px minmax(220px,1fr) 170px 112px}
}
@media(max-width:760px){
  .hm-intake-webgl{min-height:500px;border-bottom:1px solid #242d3a}
  .hm-intake-lanes{left:13px;top:72px;width:53%;gap:10px}.hm-intake-lanes li{min-height:84px;padding:12px 30px 11px 12px}.hm-intake-lanes li>b{font-size:10px}.hm-intake-lanes li>small{font-size:9.5px}.hm-intake-lanes li>i{right:11px}
  .hm-intake-core{left:79%;width:108px;height:108px;padding:0 12px}.hm-intake-core:after{inset:-20px}.hm-intake-core b{font-size:15px}.hm-intake-core span{font-size:9.5px}
  .hm-intake-route{left:13px;right:13px;bottom:47px}.hm-intake-route li{padding:0 7px;font-size:9.5px}.hm-intake-webgl>footer{left:13px;right:13px}
  .hm-agent-heading h2,.hm-bench-heading h2{font-size:36px}
  .hm-agent-families{margin-top:-2px}.hm-agent-families>a{min-height:112px;padding:18px 66px 17px 17px}.hm-agent-families b{font-size:16px}
  .hm-agent-tab-group{display:none}
  .hm-agent-nav,.hm-agent-inspector{border-color:#dce3eb}.hm-agent-tabs>button.active{box-shadow:inset 0 3px 0 var(--agent-accent)}
  .hm-agent-workhead>button{color:#fff}.hm-agent-simframe{padding:10px}
  .hm-bench-topbar{padding:12px 14px;align-items:flex-start;flex-direction:column}.hm-bench-topbar>p{width:100%;justify-content:space-between}
  .hm-bench-summary{padding:25px 18px;grid-template-columns:1fr;gap:20px}.hm-bench-summary h3{font-size:31px}.hm-bench-summary dl{min-width:0;width:100%}
  .hm-bench-table{padding:0 10px 10px}.hm-bench-row--head{display:none}.hm-bench-row:not(.hm-bench-row--head){min-height:0;margin-top:10px;grid-template-columns:.78fr 1.22fr}.hm-bench-row:not(.hm-bench-row--head)>div{min-height:112px;padding:17px 15px;border-right:1px solid #e4e9ef;border-bottom:1px solid #e4e9ef}.hm-bench-row:not(.hm-bench-row--head)>div:nth-child(2){border-right:0}.hm-bench-row:not(.hm-bench-row--head)>div:nth-child(3){border-bottom:0}.hm-bench-row:not(.hm-bench-row--head)>div:last-child{border-bottom:0}.hm-bench-row>div:first-child>span{font-size:28px}.hm-bench-row>div:nth-child(2)>b{font-size:15px}.hm-bench-row strong{font-size:38px}.hm-bench-row button{width:100%}
  .hm-bench-footer{grid-template-columns:1fr}.hm-bench-footer p{border-right:0;border-bottom:1px solid #e4e9ef}.hm-bench-footer a{text-align:center}
}
@media(max-width:430px){
  .hm-intake-lanes{width:55%}.hm-intake-core{left:80%;width:92px;height:92px}.hm-intake-core:before{inset:-8px}.hm-intake-core:after{inset:-16px}.hm-intake-core small{display:none}
  .hm-intake-route li{gap:4px}.hm-intake-route b{font-size:9.5px}
  .hm-bench-row:not(.hm-bench-row--head){grid-template-columns:1fr}.hm-bench-row:not(.hm-bench-row--head)>div{min-height:0;border-right:0}.hm-bench-row:not(.hm-bench-row--head)>div:nth-child(3){min-height:100px;border-bottom:1px solid #e4e9ef}.hm-bench-row:not(.hm-bench-row--head)>div:last-child{min-height:66px}
}
@media(prefers-reduced-motion:reduce){
  .hm-agent-families>a,.hm-bench-row button{transition:none}.hm-agent-families>a:hover{transform:none}
}

/* =========================================================
   2026-08-31 · 메인 최종 보정 01–10
   ========================================================= */

/* 공공 협력 아래 25개 공식 로고 무한 슬라이드 */
.hm-partner-showcase{margin-top:25px;padding:22px 0 20px;border-top:1px solid #e3e6ea;border-bottom:1px solid #e3e6ea}
.hm-partner-head{padding:0 2px 16px;display:flex;align-items:end;justify-content:space-between;gap:20px}
.hm-partner-head>div>span{color:#a3182c;font:900 8px/1 var(--hm-mono);letter-spacing:.12em}.hm-partner-head h3{margin:8px 0 0;color:#14171c;font-size:24px;letter-spacing:-.04em}.hm-partner-head h3 b{color:#d1132e}.hm-partner-head p{margin:0;color:#747b86;font-size:10px}
.hm-partner-marquee{position:relative;overflow:hidden;padding:2px 0;mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.hm-partner-flow{width:max-content;display:flex;gap:10px;animation:hmPartnerMarquee 48s linear infinite;will-change:transform}
.hm-partner-run{--hm-partner-card-w:164px;--hm-partner-card-h:82px;display:grid;grid-template-columns:repeat(9,var(--hm-partner-card-w));grid-template-rows:repeat(3,var(--hm-partner-card-h));grid-auto-flow:row;gap:10px}
.hm-partner-run figure,.hm-partner-run::before,.hm-partner-run::after{box-sizing:border-box;width:var(--hm-partner-card-w);height:var(--hm-partner-card-h);margin:0;padding:10px 12px;display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid #e2e6eb;border-radius:14px;background-color:#fff;box-shadow:0 8px 24px rgba(27,38,54,.045)}
.hm-partner-run::before,.hm-partner-run::after{content:"";order:2;background-repeat:no-repeat;background-position:center;background-origin:content-box;background-size:contain}
.hm-partner-run::before{background-image:url("/assets/img/home-2026/partners/police-official.png")}
.hm-partner-run::after{background-image:url("/assets/img/home-2026/partners/gincon.svg")}
.hm-partner-run figure>img{width:100%;height:100%;max-width:100%;max-height:100%;display:block;object-fit:contain;transform:none!important}
.hm-partner-police img{transform:none!important}.hm-partner-noi-lockup{width:100%;display:grid;grid-template-columns:37px minmax(0,1fr);align-items:center;gap:8px}.hm-partner-noi-lockup>i{width:37px;height:37px;display:block;overflow:hidden}.hm-partner-noi-lockup>i img{width:130px;max-width:none;max-height:none;transform:none!important}.hm-partner-noi-lockup>span{min-width:0;display:grid;gap:4px}.hm-partner-noi-lockup b{color:#174f8d;font-size:14px;line-height:1;letter-spacing:-.04em;white-space:nowrap}.hm-partner-noi-lockup small{color:#34689e;font:800 8px/1 var(--hm-mono);letter-spacing:-.015em;white-space:nowrap}
@keyframes hmPartnerMarquee{to{transform:translate3d(calc(-50% - 5px),0,0)}}

/* 전 국가대표 컬링팀 공식 배너 */
.hm-curling-banner{position:relative;margin-top:22px;display:block;overflow:hidden;border-radius:22px;background:#111;color:#fff;text-decoration:none;box-shadow:0 18px 48px rgba(21,28,39,.18)}.hm-curling-banner picture{width:100%;aspect-ratio:2000/964;display:block}.hm-curling-banner img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .5s ease}.hm-curling-banner:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,10,13,.92),rgba(8,10,13,.44) 42%,transparent 70%);pointer-events:none}.hm-curling-banner:hover img{transform:scale(1.012)}
.hm-curling-copy{position:absolute;z-index:2;left:clamp(22px,4vw,54px);top:50%;display:grid;gap:9px;transform:translateY(-50%)}.hm-curling-copy small{color:#ff6c82;font:900 8px/1 var(--hm-mono);letter-spacing:.15em}.hm-curling-copy strong{font-size:clamp(24px,3.2vw,43px);line-height:1.08;letter-spacing:-.055em}.hm-curling-copy strong i{color:#ff536c;font-style:normal}.hm-curling-copy em{color:#c5cbd4;font-size:11px;font-style:normal}

/* 경찰청 ECRM 공개 기록 */
.hm-ecrm-record{position:relative;overflow:hidden;margin-top:18px;display:grid;grid-template-columns:minmax(0,.82fr) minmax(430px,1.18fr);border:1px solid #dfe5ec;border-radius:24px;background:linear-gradient(135deg,#fff8f6 0%,#fff 47%,#f2f7ff 100%);box-shadow:0 20px 52px rgba(28,43,64,.11)}
.hm-ecrm-record:before{content:"";position:absolute;width:340px;height:340px;left:-210px;bottom:-230px;border:52px solid rgba(210,19,46,.055);border-radius:50%;pointer-events:none}.hm-ecrm-record:after{content:"";position:absolute;width:360px;height:360px;right:-250px;top:-230px;border:54px solid rgba(34,101,180,.07);border-radius:50%;pointer-events:none}
.hm-ecrm-copy{position:relative;z-index:1;padding:clamp(38px,5vw,72px);display:flex;flex-direction:column;justify-content:center}.hm-ecrm-kicker{display:flex;align-items:center;gap:9px;color:#1c609f;font:900 8px/1 var(--hm-mono);letter-spacing:.13em}.hm-ecrm-kicker>i{width:7px;height:7px;border-radius:50%;background:#d3132e;box-shadow:0 0 0 5px rgba(211,19,46,.08)}
.hm-ecrm-copy h3{margin:22px 0 0;color:#17191e;font-size:clamp(35px,3.6vw,52px);line-height:1.08;letter-spacing:-.058em;word-break:keep-all}.hm-ecrm-copy h3 b{color:#d3132e}.hm-ecrm-copy>p{max-width:560px;margin:22px 0 0;color:#5d6877;font-size:13px;line-height:1.82;word-break:keep-all}
.hm-ecrm-meta{margin-top:28px;padding-top:18px;display:flex;align-items:center;flex-wrap:wrap;gap:9px 18px;border-top:1px solid #dce3eb}.hm-ecrm-meta time{color:#d3132e;font:900 10px/1 var(--hm-mono)}.hm-ecrm-meta span{color:#66788d;font:850 8px/1 var(--hm-mono);letter-spacing:.09em}
.hm-ecrm-copy>a{width:max-content;min-height:45px;margin-top:24px;padding:0 16px;display:inline-flex;align-items:center;gap:16px;border:1px solid #ccd8e5;border-radius:10px;background:#fff;color:#203c5a;font-size:10px;font-weight:900;text-decoration:none;box-shadow:0 9px 22px rgba(37,71,107,.07);transition:transform .2s,border-color .2s,color .2s}.hm-ecrm-copy>a i{color:#d3132e;font:900 13px/1 var(--hm-mono);font-style:normal}.hm-ecrm-copy>a:hover{transform:translateY(-2px);border-color:#79a9d6;color:#155c9c}.hm-ecrm-copy>a:focus-visible{outline:2px solid #2476bd;outline-offset:4px}
.hm-ecrm-shot{position:relative;z-index:1;margin:0;padding:34px;display:flex;flex-direction:column;justify-content:center;border-left:1px solid #dfe5ec;background:linear-gradient(145deg,rgba(255,255,255,.58),rgba(233,241,251,.78))}.hm-ecrm-shot>img{width:100%;height:auto;display:block;border:1px solid rgba(35,54,78,.1);border-radius:18px;background:#fff;box-shadow:0 24px 58px rgba(31,48,70,.16)}.hm-ecrm-shot figcaption{padding:14px 3px 0;display:flex;align-items:center;justify-content:space-between;gap:15px}.hm-ecrm-shot figcaption span{color:#263d57;font-size:9px;font-weight:900}.hm-ecrm-shot figcaption time{color:#75869a;font:800 8px/1 var(--hm-mono);letter-spacing:.07em}

/* 그 앱: 삭제된 권한 패널 대신 실사 중심의 모바일 안전형 화면 흐름 */
.hm-pm-shell{grid-template-columns:minmax(245px,.72fr) minmax(290px,.84fr) minmax(330px,1.16fr);gap:14px;align-items:stretch}.hm-pm-result{grid-column:auto}.hm-pm-preview{padding:18px;display:flex;flex-direction:column;background:linear-gradient(180deg,#fafbfd,#f2f5f8)}
.hm-pm-preview-shot{position:relative;min-height:300px;margin:0;overflow:hidden;border:1px solid #d8dde5;border-radius:18px;background:#171b23;box-shadow:0 16px 34px rgba(25,35,49,.13)}.hm-pm-preview-shot>img{width:100%;height:100%;display:block;object-fit:cover;object-position:center top}.hm-pm-preview-shot:after{content:"";position:absolute;inset:50% 0 0;background:linear-gradient(transparent,rgba(8,11,16,.88))}.hm-pm-preview-shot figcaption{position:absolute;z-index:2;left:14px;right:14px;bottom:13px;display:grid;gap:5px;color:#fff}.hm-pm-preview-shot figcaption span{color:#ff6d82;font:900 8px/1 var(--hm-mono);letter-spacing:.11em}.hm-pm-preview-shot figcaption b{font-size:15px}
.hm-pm-preview-flow{list-style:none;margin:13px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.hm-pm-preview-flow li{min-width:0;padding:10px 8px;display:grid;grid-template-columns:22px 1fr;align-items:center;gap:7px;border:1px solid #dce2e9;border-radius:10px;background:#fff}.hm-pm-preview-flow i{width:22px;height:22px;display:grid;place-items:center;border-radius:7px;background:#fff0f2;color:#ce1731;font:900 8px/1 var(--hm-mono);font-style:normal}.hm-pm-preview-flow span{min-width:0;display:grid;gap:3px}.hm-pm-preview-flow b{font-size:8px;white-space:nowrap}.hm-pm-preview-flow small{overflow:hidden;color:#7d8795;font-size:8px;white-space:nowrap;text-overflow:ellipsis}.hm-pm-preview>p{margin:13px 2px 0;color:#596474;font-size:10px;line-height:1.7}

/* 접수부터 회복까지: 전체 라이트 테마 */
.hm-process-wrap{padding:104px 0 110px;background:linear-gradient(180deg,#f8fafc 0%,#eef3f8 100%);color:#141820}.hm-process-wrap .section-title h2{color:#11151b}.hm-process-wrap .section-title p{color:#657184}.hm-process-wrap .section-title p b{color:#1b2634}
.hm-process-proofbar{border-color:#dbe3ec;background:rgba(255,255,255,.86);box-shadow:0 12px 32px rgba(35,54,78,.055)}.hm-process-proofbar>span{border-color:#dce4ed;background:#fff;color:#68778b}.hm-process-proofbar i{color:#cf1732;background:#fff0f2}.hm-process-proofbar b{color:#26364a}
.hm-process-step{border-color:#d8e1eb;background:#fff;color:#121720;box-shadow:0 24px 64px rgba(35,51,73,.10)}.hm-process-no{border-color:#dce4ed;background:#f6f8fb}.hm-process-no span{color:#d31531}.hm-process-no small{color:#748398}
.hm-process-source{border-color:#cfd9e5;background:rgba(255,255,255,.9);color:#637287}.hm-process-source.is-real{border-color:#9ed8c0;color:#137451}.hm-process-source.is-demo{border-color:#a9cbed;color:#286aa8}
.hm-process-copy>b{color:#c81732}.hm-process-copy h3{color:#151a22}.hm-process-copy p{color:#5f6d80}.hm-process-checks li{border-color:#dce4ed;background:#f8fafc;color:#445267}.hm-process-checks li:before{color:#16845f}.hm-process-status{color:#344357}.hm-process-status i{background:#28bd7a;box-shadow:0 0 0 5px rgba(40,189,122,.12)}.hm-process-link{color:#b7132b}
.hm-intake-webgl{border-color:#d8e1eb;background:radial-gradient(circle at 76% 50%,#dceeff 0,#eef6fd 40%,#f8fbfe 76%);color:#142033}.hm-intake-webgl.is-fallback{background:radial-gradient(circle at 76% 50%,rgba(105,179,234,.2),transparent 26%),linear-gradient(135deg,#f8fbfe,#eaf3fb)}.hm-intake-grid{background:linear-gradient(90deg,rgba(238,246,252,.38),transparent 48%,rgba(240,247,252,.18)),repeating-linear-gradient(0deg,transparent 0 35px,rgba(50,113,163,.07) 35px 36px)}
.hm-intake-bar{border-color:rgba(71,118,157,.16);background:rgba(255,255,255,.82)}.hm-intake-bar span{color:#3e607e}.hm-intake-bar b{border-color:#bfd5e6;color:#3377ad;background:#f5faff}
.hm-intake-lanes li{background:linear-gradient(110deg,color-mix(in srgb,var(--intake) 8%,#fff),rgba(255,255,255,.94));box-shadow:0 14px 30px rgba(44,79,108,.08)}.hm-intake-lanes li>b{color:#1d2b3a}.hm-intake-lanes li>small{color:#687d91}.hm-intake-core{border-color:#80bce6;background:radial-gradient(circle,#fff,#edf7ff 68%);box-shadow:0 0 0 14px rgba(68,159,226,.06),0 20px 45px rgba(48,119,172,.12)}.hm-intake-core span{color:#2778b6}.hm-intake-core b{color:#163148}.hm-intake-core small{color:#60809a}.hm-intake-route{border-color:#cbddea;background:rgba(255,255,255,.86)}.hm-intake-route li{border-color:#d6e4ee;color:#60768b}.hm-intake-webgl>footer{color:#668097}.hm-intake-webgl>footer b{color:#16835e}
.hm-process-team-v2{border-color:#d8e1eb;background:#edf2f6}.hm-team-office{filter:saturate(.9) brightness(.92)}.hm-process-team-v2:after{background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(244,248,252,.93) 90%)}.hm-team-portraits figure{border-color:rgba(255,255,255,.8);background:#e9eef4;box-shadow:0 16px 34px rgba(34,52,73,.17)}.hm-team-portraits figure:after{background:linear-gradient(transparent,rgba(244,248,252,.94))}.hm-team-portraits figcaption b{color:#1b2635}.hm-team-portraits figcaption span{color:#637286}.hm-team-desk{border-color:rgba(195,207,220,.9);background:rgba(255,255,255,.88);box-shadow:0 10px 28px rgba(35,53,75,.08)}.hm-team-desk small{color:#2b72b7}.hm-team-desk b{color:#1c2837}.hm-team-desk span{color:#66768a}
.hm-process-techboard{border-color:#d8e1eb;background:radial-gradient(circle at 60% 30%,#e4edf7,#f7f9fc 72%)}.hm-tech-main{border-color:#cbd6e1;background:#e7edf4;box-shadow:0 20px 42px rgba(37,54,75,.17)}.hm-tech-sub{border-color:#becbd8;box-shadow:0 16px 36px rgba(37,54,75,.2)}.hm-tech-redaction{border-color:#d2dce7;background:#fff}.hm-tech-redaction>span{color:#66768a}.hm-tech-redaction b{color:#2b3a4d}
.hm-process-recovery{border-color:#d8e1eb;background:#edf2f7}.hm-process-review-card,.hm-recovery-report,.hm-recovery-review{border-color:#cad5e0;background:#fff;box-shadow:0 12px 28px rgba(36,53,74,.09)}

/* 첫 방문 정보보호의 날 배너 + 주최·주관 */
.hm-promo.hm-u22-promo{width:min(620px,calc(100vw - 36px))}.hm-u22-card{max-height:calc(100dvh - 36px)}.hm-u22-head{min-height:118px;padding:22px 72px 20px 24px}.hm-u22-head h2{font-size:28px}
.hm-u22-feature.is-infosec{display:block}.hm-u22-feature.is-infosec figure{min-height:0;aspect-ratio:2560/1593}.hm-u22-feature.is-infosec figure img{width:100%;height:100%;display:block;object-fit:cover}.hm-u22-feature.is-infosec>div{padding:16px 18px 17px}.hm-u22-feature.is-infosec strong{font-size:17px;line-height:1.35}
.hm-u22-hosts{margin:12px 12px 0;padding:14px;border:1px solid #dedfe3;border-radius:17px;background:#f8f9fb}.hm-recog-hosts{margin:18px 0 0;padding:18px;border-radius:22px;background:#fff;box-shadow:0 16px 42px rgba(34,27,30,.07)}.hm-u22-hosts>header{display:flex;align-items:center;justify-content:space-between;gap:12px}.hm-u22-hosts>header b{color:#b8112a;font:900 8px/1 var(--hm-mono);letter-spacing:.1em}.hm-u22-hosts>header span{color:#737b87;font-size:8px}.hm-u22-hosts>div{margin-top:11px;display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.hm-u22-hosts figure{min-width:0;min-height:70px;margin:0;padding:8px 5px 7px;display:grid;grid-template-rows:34px auto;place-items:center;gap:5px;border:1px solid #e0e4e9;border-radius:10px;background:#fff}.hm-u22-hosts img{max-width:100%;max-height:30px;display:block;object-fit:contain}.hm-u22-hosts figcaption{color:#4f5968;font-size:8px;line-height:1.25;text-align:center;word-break:keep-all}

/* HC 벤치마크: 핵심 3열만 남김 */
.hm-bench-summary{grid-template-columns:1fr}.hm-bench-row{grid-template-columns:180px minmax(300px,1fr) 230px}.hm-bench-footer{grid-template-columns:1fr;justify-items:end}.hm-bench-footer a{min-width:180px;text-align:center}

/* 교체된 세로 CEO 사진을 원본 비율로 노출 */
.hm-c12-portrait{aspect-ratio:16/8.8;background:radial-gradient(circle at 78% 35%,#343941 0,#161a21 42%,#0c0f14 100%)}.hm-c12-portrait:after{background:linear-gradient(90deg,rgba(6,8,12,.96) 0,rgba(6,8,12,.88) 34%,rgba(6,8,12,.18) 72%,rgba(6,8,12,.05)),linear-gradient(0deg,rgba(4,6,9,.86),transparent 45%)}.hm-c12-portrait>img{width:44%;height:100%;margin-left:auto;object-fit:contain;object-position:center bottom}.hm-c12-photo-source{cursor:default}.hm-c12-photo-source:hover{border-color:rgba(255,255,255,.2);background:rgba(7,9,13,.65)}

@media(max-width:1100px){
  .hm-pm-shell{grid-template-columns:1fr 1fr}.hm-pm-result{grid-column:1/-1}
  .hm-bench-row{grid-template-columns:150px minmax(260px,1fr) 190px}
  .hm-ecrm-record{grid-template-columns:minmax(0,.85fr) minmax(390px,1.15fr)}.hm-ecrm-copy{padding:42px 36px}.hm-ecrm-shot{padding:25px}
}
@media(max-width:860px){
  .hm-bench-row{grid-template-columns:135px minmax(220px,1fr) 170px}
}
@media(max-width:760px){
  .hm-partner-head{align-items:flex-start;flex-direction:column;gap:7px}.hm-partner-run{--hm-partner-card-w:152px;--hm-partner-card-h:78px}.hm-partner-run figure{padding:9px 11px}.hm-curling-copy{left:21px;right:20px}.hm-curling-copy strong{font-size:27px}.hm-curling-copy em{font-size:9px}
  .hm-ecrm-record{grid-template-columns:1fr;border-radius:20px}.hm-ecrm-copy{padding:38px 25px 32px}.hm-ecrm-copy h3{font-size:38px}.hm-ecrm-shot{padding:22px;border-top:1px solid #dfe5ec;border-left:0}.hm-ecrm-shot figcaption{align-items:flex-start;flex-direction:column;gap:6px}
  .hm-pm-shell{grid-template-columns:1fr}.hm-pm-result{grid-column:auto}.hm-pm-preview-shot{min-height:390px}.hm-pm-preview-flow{grid-template-columns:1fr}.hm-pm-preview-flow li{min-height:49px}.hm-pm-preview-flow b{font-size:9px}.hm-pm-preview-flow small{font-size:8px}
  .hm-process-copy{border-color:#dce4ed}.hm-process-no{border-color:#dce4ed}.hm-intake-webgl,.hm-process-team-v2,.hm-process-techboard,.hm-process-recovery{border-color:#d8e1eb}.hm-process-shot figcaption{background:#f7f9fc}
  .hm-bench-summary{gap:0}.hm-bench-row:not(.hm-bench-row--head){grid-template-columns:.78fr 1.22fr}.hm-bench-row:not(.hm-bench-row--head)>div:nth-child(3){grid-column:1/-1;min-height:104px;border-right:0;border-bottom:0}.hm-bench-row:not(.hm-bench-row--head)>div:last-child{min-height:104px}.hm-bench-footer{justify-items:stretch}.hm-bench-footer a{width:100%}
  .hm-c12-portrait{aspect-ratio:4/5;background:#11151b}.hm-c12-portrait:after{background:linear-gradient(0deg,rgba(4,6,9,.9),transparent 44%)}.hm-c12-portrait>img{width:100%;height:100%;margin:0;object-fit:cover;object-position:center top}
}
@media(max-width:620px){
  .hm-promo.hm-u22-promo{width:auto}.hm-u22-card{max-height:calc(100dvh - 118px)}.hm-u22-head{min-height:104px}.hm-u22-head h2{font-size:24px}.hm-u22-feature.is-infosec strong{font-size:15px}.hm-u22-hosts>div{grid-template-columns:repeat(2,1fr)}.hm-u22-hosts figure:last-child{grid-column:1/-1}.hm-u22-hosts figcaption{font-size:8px}
  .hm-curling-banner picture{aspect-ratio:840/964}.hm-curling-banner:after{background:linear-gradient(0deg,rgba(8,10,13,.88),rgba(8,10,13,.12) 72%)}.hm-curling-copy{top:auto;bottom:20px;transform:none}.hm-curling-copy strong{font-size:25px}.hm-curling-copy em{max-width:260px}
  .hm-ecrm-copy{padding:34px 22px 29px}.hm-ecrm-copy h3{font-size:34px}.hm-ecrm-copy>p{font-size:12px}.hm-ecrm-copy>a{width:100%;justify-content:space-between}.hm-ecrm-shot{padding:14px}.hm-ecrm-shot>img{border-radius:14px}
}
@media(max-width:430px){
  .hm-bench-row:not(.hm-bench-row--head){grid-template-columns:1fr}.hm-bench-row:not(.hm-bench-row--head)>div:nth-child(3){grid-column:auto}.hm-bench-row:not(.hm-bench-row--head)>div:last-child{min-height:100px}
}
@media(prefers-reduced-motion:reduce){
  .hm-partner-flow{animation:none}.hm-partner-marquee{overflow-x:auto;mask-image:none}.hm-partner-run[aria-hidden="true"]{display:none}.hm-curling-banner img,.hm-ecrm-copy>a{transition:none}
}

/* 모바일 후기 갤러리 최종 보정 */
@media(max-width:760px){
  .hm-process-recovery{scrollbar-width:none}
  .hm-process-recovery::-webkit-scrollbar{display:none}
  .hm-process-review-card{width:calc(100% - 42px);min-width:calc(100% - 42px);max-width:330px;height:100%;flex:0 0 calc(100% - 42px);scroll-snap-align:center}
  .hm-process-review-card>img{object-fit:contain}
}

/* R33: 강제 <br> 로 눌러 놓았던 제목들을 한 줄로.
   .section-title 은 2열(제목 .65fr = 1440에서 397px)이라 <br> 를 지우면 오히려 4~5줄 탑이 된다.
   본문 단락이 짧은 세 섹션만 같은 페이지의 .hm-process-wrap(2632행) 선례대로 1열로 풀고
   글자 상한을 58 → 52px 로 내려 1440/1280 에서 한 줄에 담는다.
   1180px 이하는 site.css 에서 이미 1열 + 36px 이므로 데스크톱만 손댄다. */
@media (min-width:1181px){
  #case-replay .section-title,
  #exfil-stories .section-title,
  #hybrid-analysis .section-title,
  #solutions .section-title{grid-template-columns:1fr;gap:20px}
  #case-replay .section-title h2,
  #exfil-stories .section-title h2,
  #hybrid-analysis .section-title h2,
  #solutions .section-title h2{font-size:clamp(36px,3.6vw,52px)}
}

/* ==== /assets/css/hybrid-analysis.css?v=20260831a ==== */
/* Product / Service page — Hybrid Analysis sandbox module */
.hybrid-analysis-module{
  --anz-ink:#e9ecf3;
  --anz-dim:#8a92a4;
  --anz-line:rgba(255,255,255,.11);
  --anz-red:#ff2f4d;
  --anz-red-d:#d20b25;
  --anz-cyan:#4fd8ff;
  --anz-green:#37d99a;
  --anz-amber:#ffb340;
  --anz-mono:ui-monospace,SFMono-Regular,Menlo,monospace;
}

.hybrid-analysis-module .anz-vm{border:1px solid var(--anz-line);border-radius:26px;overflow:hidden;background:#070a10;color:var(--anz-ink)}
.hybrid-analysis-module .anz-vm-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:20px 24px;border-bottom:1px solid var(--anz-line);background:linear-gradient(180deg,rgba(255,255,255,.045),transparent)}
.hybrid-analysis-module .anz-vm-dots{display:flex;gap:6px}
.hybrid-analysis-module .anz-vm-dots i{width:11px;height:11px;border-radius:50%;background:#2a3040}
.hybrid-analysis-module .anz-vm-dots i:first-child{background:#ff5f57}
.hybrid-analysis-module .anz-vm-dots i:nth-child(2){background:#febc2e}
.hybrid-analysis-module .anz-vm-dots i:nth-child(3){background:#28c840}
.hybrid-analysis-module .anz-vm-title{font-family:var(--anz-mono);font-size:12px;font-weight:700;letter-spacing:.06em;color:#c6ccd8}
.hybrid-analysis-module .anz-vm-state{margin-left:auto;display:inline-flex;align-items:center;gap:7px;font-family:var(--anz-mono);font-size:10px;font-weight:700;letter-spacing:.1em;border-radius:99px;padding:5px 11px;background:rgba(255,179,64,.13);color:var(--anz-amber);border:1px solid rgba(255,179,64,.34)}
.hybrid-analysis-module .anz-vm-grid{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:0}
.hybrid-analysis-module .anz-vm-in{padding:22px 24px;border-right:1px solid var(--anz-line);display:flex;flex-direction:column;gap:15px}
.hybrid-analysis-module .anz-drop{border:1.5px dashed rgba(255,255,255,.2);border-radius:16px;padding:26px 18px;text-align:center;transition:.18s;background:rgba(255,255,255,.015)}
.hybrid-analysis-module .anz-drop.is-over{border-color:var(--anz-cyan);background:rgba(79,216,255,.06)}
.hybrid-analysis-module .anz-drop b{display:block;font-size:13.5px;font-weight:800;color:#e9ecf3}
.hybrid-analysis-module .anz-drop span{display:block;margin-top:6px;font-size:11.5px;line-height:1.6;color:var(--anz-dim)}
.hybrid-analysis-module .anz-drop input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.hybrid-analysis-module .anz-drop label{display:inline-block;margin-top:12px;font-size:12px;font-weight:800;color:var(--anz-cyan);border:1px solid rgba(79,216,255,.4);border-radius:99px;padding:9px 16px;cursor:pointer}
.hybrid-analysis-module .anz-drop label:hover{background:rgba(79,216,255,.1)}
.hybrid-analysis-module .anz-drop input:focus-visible + label{outline:2px solid var(--anz-cyan);outline-offset:2px;background:rgba(79,216,255,.12)}
.hybrid-analysis-module .anz-rate-why{margin:9px 0 0;font-size:11.5px;line-height:1.65;color:#9aa1b0}
.hybrid-analysis-module .anz-hash{display:grid;gap:7px}
.hybrid-analysis-module .anz-hash label{font-family:var(--anz-mono);font-size:10px;font-weight:700;letter-spacing:.1em;color:var(--anz-dim)}
.hybrid-analysis-module .anz-hash input{width:100%;font-family:var(--anz-mono);font-size:12px;color:#e9ecf3;background:rgba(255,255,255,.04);border:1px solid var(--anz-line);border-radius:11px;padding:12px 13px}
.hybrid-analysis-module .anz-hash input:focus{outline:2px solid var(--anz-cyan);outline-offset:1px}
.hybrid-analysis-module .anz-run{width:100%;border:0;border-radius:12px;padding:14px;font:inherit;font-size:13.5px;font-weight:800;color:#fff;background:var(--anz-red-d);cursor:pointer;transition:.16s}
.hybrid-analysis-module .anz-run:hover{background:var(--anz-red)}
.hybrid-analysis-module .anz-run:disabled{background:#2a3040;color:#6d7484;cursor:not-allowed}
.hybrid-analysis-module .anz-run:focus-visible{outline:2px solid #fff;outline-offset:2px}
.hybrid-analysis-module .anz-api{border-top:1px solid var(--anz-line);padding-top:14px;font-size:11.5px;line-height:1.7;color:#79808f}
.hybrid-analysis-module .anz-api b{display:block;margin-bottom:6px;color:#c6ccd8;font-size:11px;letter-spacing:.04em}
.hybrid-analysis-module .anz-api code{font-family:var(--anz-mono);font-size:10.5px;color:var(--anz-cyan);word-break:break-all}
.hybrid-analysis-module .anz-vm-out{display:grid;grid-template-rows:auto 1fr auto;min-width:0}
.hybrid-analysis-module .anz-pipe{display:flex;gap:0;padding:16px 22px;border-bottom:1px solid var(--anz-line);overflow-x:auto}
.hybrid-analysis-module .anz-pipe-step{flex:1 0 auto;min-width:104px;position:relative;padding-right:16px}
.hybrid-analysis-module .anz-pipe-step::after{content:"";position:absolute;right:6px;top:9px;width:8px;height:8px;border-top:1.5px solid #2a3040;border-right:1.5px solid #2a3040;transform:rotate(45deg)}
.hybrid-analysis-module .anz-pipe-step:last-child{padding-right:0}
.hybrid-analysis-module .anz-pipe-step:last-child::after{display:none}
.hybrid-analysis-module .anz-pipe-step i{width:20px;height:20px;border-radius:50%;border:1.5px solid #2a3040;color:#6d7484;font-style:normal;font-family:var(--anz-mono);font-size:10px;font-weight:800;display:grid;place-items:center;transition:.2s}
.hybrid-analysis-module .anz-pipe-step b{display:block;margin-top:8px;font-size:11.5px;font-weight:700;color:#737a89;transition:.2s}
.hybrid-analysis-module .anz-pipe-step.on i{border-color:var(--anz-cyan);color:var(--anz-cyan);box-shadow:0 0 0 4px rgba(79,216,255,.12)}
.hybrid-analysis-module .anz-pipe-step.on b{color:var(--anz-cyan)}
.hybrid-analysis-module .anz-pipe-step.done i{border-color:var(--anz-green);background:rgba(55,217,154,.14);color:var(--anz-green)}
.hybrid-analysis-module .anz-pipe-step.done b{color:#9fb3ab}
.hybrid-analysis-module .anz-log{margin:0;padding:18px 22px;min-height:246px;max-height:340px;overflow:auto;font-family:var(--anz-mono);font-size:11.5px;line-height:1.85;color:#9aa1b0;background:#05070c}
.hybrid-analysis-module .anz-log div{display:flex;gap:10px;white-space:pre-wrap;word-break:break-word}
.hybrid-analysis-module .anz-log time{flex:0 0 auto;color:#747a86}
.hybrid-analysis-module .anz-log .ok{color:var(--anz-green)}
.hybrid-analysis-module .anz-log .warn{color:var(--anz-amber)}
.hybrid-analysis-module .anz-log .bad{color:#ff8b9c}
.hybrid-analysis-module .anz-log .cy{color:var(--anz-cyan)}
.hybrid-analysis-module .anz-verdict{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:16px 22px;border-top:1px solid var(--anz-line)}
.hybrid-analysis-module .anz-verdict-badge{font-family:var(--anz-mono);font-size:11px;font-weight:800;letter-spacing:.1em;border-radius:99px;padding:7px 14px;background:#1a1f2b;color:#818795}
.hybrid-analysis-module .anz-verdict.done .anz-verdict-badge{background:rgba(255,47,77,.16);color:#ff8b9c;border:1px solid rgba(255,47,77,.4)}
.hybrid-analysis-module .anz-verdict p{margin:0;font-size:12px;line-height:1.65;color:var(--anz-dim);min-width:0}
.hybrid-analysis-module .anz-score{margin-left:auto;font-family:var(--anz-mono);font-size:12px;color:#c6ccd8;white-space:nowrap}
.hybrid-analysis-module .anz-score b{font-size:20px;font-weight:850;color:#fff}

@media(max-width:900px){
  .hybrid-analysis-module .anz-vm-grid{grid-template-columns:1fr}
  .hybrid-analysis-module .anz-vm-in{border-right:0;border-bottom:1px solid var(--anz-line)}
}

@media(max-width:520px){
  .hybrid-analysis-module .anz-vm-head,
  .hybrid-analysis-module .anz-vm-in,
  .hybrid-analysis-module .anz-pipe,
  .hybrid-analysis-module .anz-log,
  .hybrid-analysis-module .anz-verdict{padding-left:16px;padding-right:16px}
  .hybrid-analysis-module .anz-vm-state{margin-left:0}
}

/* ==== /assets/css/malapp-intel.css?v=20260903r ==== */
/* ============================================================
   MALICIOUS APP INTELLIGENCE — 위장 앱 조회 콘솔 (mai)
   검색바 / 프로파일 카드 / 이름 변경 타임라인 / 유사 앱 성좌 / 실행화면 갤러리
   ============================================================ */

.mai{
  --mai-bg:#05080e;
  --mai-bg2:#080d15;
  --mai-line:#16222f;
  --mai-line2:#1e2c3d;
  --mai-ink:#dde6f1;
  --mai-dim:#7b8ba3;
  --mai-dim2:#5f7288;
  --mai-cy:#4cc3ff;
  --mai-vi:#a78bff;
  --mai-rd:#ff4d6a;
  --mai-am:#ffc65c;
  --mai-gr:#5ad19a;
  --mai-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  position:relative;
  margin-top:26px;
  border:1px solid var(--mai-line);
  border-radius:24px;
  overflow:hidden;
  background:
    radial-gradient(120% 90% at 14% -6%,rgba(40,74,112,.32),transparent 60%),
    radial-gradient(90% 70% at 92% 4%,rgba(120,70,150,.16),transparent 62%),
    linear-gradient(180deg,#080d15,#05080e);
  box-shadow:0 34px 92px rgba(10,26,44,.28),inset 0 1px 0 rgba(255,255,255,.045);
  color:var(--mai-ink);
  font-family:inherit;
}
.mai *{box-sizing:border-box}
.mai [hidden]{display:none !important}
.mai ::-webkit-scrollbar{height:8px;width:8px}
.mai ::-webkit-scrollbar-track{background:rgba(255,255,255,.03)}
.mai ::-webkit-scrollbar-thumb{background:#1f3145;border-radius:99px}

/* ── 상단 바 ─────────────────────────────────────────── */
.mai-top{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  padding:14px 20px;border-bottom:1px solid var(--mai-line);
  background:linear-gradient(180deg,rgba(255,255,255,.045),transparent);
}
.mai-brand{
  font-family:var(--mai-mono);font-size:11px;font-weight:800;letter-spacing:.1em;
  color:#9fb4cc;text-transform:uppercase;
}
.mai-brand i{font-style:normal;color:var(--mai-cy)}
.mai-stats{display:flex;flex-wrap:wrap;gap:7px;margin-left:auto}
.mai-stat{
  display:inline-flex;align-items:baseline;gap:6px;
  border:1px solid var(--mai-line2);border-radius:99px;padding:4px 11px;
  background:rgba(255,255,255,.03);
  font-family:var(--mai-mono);font-size:10px;letter-spacing:.06em;color:var(--mai-dim);
}
.mai-stat b{font-size:11.5px;font-weight:800;color:#cfe0f2}

/* ── 검색 영역 ───────────────────────────────────────── */
.mai-search{
  display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr) minmax(0,1fr);
  gap:12px;padding:20px;border-bottom:1px solid var(--mai-line);
}
.mai-field{position:relative;min-width:0}
.mai-field > svg{
  position:absolute;left:16px;top:50%;transform:translateY(-50%);
  width:18px;height:18px;color:var(--mai-cy);opacity:.85;pointer-events:none
}
.mai-input{
  width:100%;height:100%;min-height:86px;
  padding:14px 46px 14px 46px;
  border:1px solid var(--mai-line2);border-radius:16px;
  background:rgba(255,255,255,.035);
  color:#f0f6ff;font:800 19px/1.3 inherit;letter-spacing:-.01em;
  -webkit-appearance:none;appearance:none;
}
.mai-input::placeholder{color:#5f7288;font-weight:600;font-size:16px;letter-spacing:0}
.mai-input::-webkit-search-cancel-button{display:none}
.mai-input:focus{outline:none;border-color:rgba(76,195,255,.62);background:rgba(76,195,255,.07);box-shadow:0 0 0 4px rgba(76,195,255,.13)}
.mai-clear{
  position:absolute;right:12px;top:50%;transform:translateY(-50%);
  width:28px;height:28px;border-radius:50%;border:1px solid var(--mai-line2);
  background:rgba(255,255,255,.05);color:#9fb4cc;cursor:pointer;
  font:700 14px/1 var(--mai-mono);
}
.mai-clear:hover{color:#fff;border-color:var(--mai-cy)}

/* 후보 목록 */
.mai-sug{
  position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:24;
  margin:0;padding:6px;list-style:none;
  border:1px solid var(--mai-line2);border-radius:16px;
  background:#070c14;box-shadow:0 26px 60px rgba(0,0,0,.62);
  max-height:300px;overflow:auto;
}
.mai-sug li{margin:0}
.mai-sug button{
  display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:11px;
  width:100%;padding:8px 10px;border:0;border-radius:11px;background:transparent;
  text-align:left;color:var(--mai-ink);cursor:pointer;font:inherit;
}
.mai-sug button:hover,.mai-sug li.is-on button{background:rgba(76,195,255,.12)}
.mai-sug img,.mai-sug .mai-ph{width:34px;height:34px;border-radius:9px;object-fit:cover;background:#101a26;border:1px solid var(--mai-line2)}
.mai-ph{display:grid;place-items:center;font:800 12px/1 var(--mai-mono);color:#41556c}
.mai-sug b{display:block;font-size:13.5px;font-weight:800;color:#e8f1fb;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mai-sug em{display:block;font-style:normal;font-size:10.5px;color:var(--mai-dim2);letter-spacing:.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mai-sug .mai-sug-meta{font-family:var(--mai-mono);font-size:10px;color:var(--mai-dim);white-space:nowrap;text-align:right}
.mai-sug .mai-sug-meta i{display:block;font-style:normal;color:var(--mai-cy);font-weight:800}

/* 드롭존 */
.mai-drop{
  position:relative;display:flex;flex-direction:column;justify-content:center;gap:4px;
  min-height:86px;padding:13px 16px;
  border:1.4px dashed rgba(120,160,205,.30);border-radius:16px;
  background:rgba(255,255,255,.02);cursor:pointer;
  transition:border-color .18s ease,background .18s ease;
}
.mai-drop:hover{border-color:rgba(76,195,255,.5);background:rgba(76,195,255,.05)}
.mai-drop.is-over{border-color:var(--mai-cy);background:rgba(76,195,255,.11);border-style:solid}
.mai-drop input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.mai-drop b{font-size:13px;font-weight:800;color:#dbe8f6}
.mai-drop span{font-size:11px;line-height:1.55;color:var(--mai-dim2)}
.mai-drop em{
  font-style:normal;font-family:var(--mai-mono);font-size:10.5px;line-height:1.5;
  color:var(--mai-cy);word-break:break-all;
}
.mai-drop em.is-warn{color:var(--mai-am)}
.mai-drop:focus-within{border-color:var(--mai-cy);box-shadow:0 0 0 3px rgba(76,195,255,.16)}

/* ── 신규 이름 티커 ──────────────────────────────────── */
.mai-ticker{
  display:flex;align-items:center;gap:14px;
  padding:9px 20px;border-bottom:1px solid var(--mai-line);
  background:rgba(255,255,255,.018);overflow:hidden;
}
.mai-ticker-label{
  flex:0 0 auto;font-family:var(--mai-mono);font-size:9.5px;font-weight:800;
  letter-spacing:.14em;color:var(--mai-am);text-transform:uppercase;
}
.mai-ticker-view{position:relative;flex:1 1 auto;min-width:0;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 5%,#000 92%,transparent)}
.mai-ticker-track{display:flex;gap:10px;width:max-content;will-change:transform}
.mai-tick{
  display:inline-flex;align-items:center;gap:8px;white-space:nowrap;
  border:1px solid var(--mai-line2);border-radius:99px;padding:4px 12px;
  background:rgba(255,255,255,.03);font-size:11.5px;color:#c3d3e5;cursor:pointer;
}
.mai-tick:hover{border-color:var(--mai-am);color:#fff}
.mai-tick time{font-family:var(--mai-mono);font-size:10px;color:var(--mai-dim2)}
.mai-tick i{font-style:normal;font-size:9.5px;letter-spacing:.06em;color:var(--mai-vi)}

/* ── 본문 ────────────────────────────────────────────── */
.mai-body{padding:20px;min-height:344px}

.mai-empty{display:grid;gap:16px;padding:26px 4px 12px;text-align:center;justify-items:center}
.mai-empty h3{margin:0;font-size:19px;font-weight:800;color:#e6eefa;letter-spacing:-.015em}
.mai-empty p{margin:0;max-width:640px;font-size:13.5px;line-height:1.75;color:var(--mai-dim)}
.mai-quick{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.mai-quick button{
  border:1px solid var(--mai-line2);border-radius:99px;padding:8px 15px;
  background:rgba(255,255,255,.03);color:#c9d9ea;font:700 12.5px/1 inherit;cursor:pointer;
}
.mai-quick button:hover{border-color:var(--mai-cy);color:#fff;background:rgba(76,195,255,.1)}
.mai-empty-fams{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;max-width:760px}
.mai-empty-fams span{
  font-family:var(--mai-mono);font-size:10px;letter-spacing:.05em;color:var(--mai-dim2);
  border:1px solid var(--mai-line);border-radius:6px;padding:3px 8px;
}
.mai-empty-fams span b{color:#93a8c0;font-weight:800}

.mai-none{padding:34px 10px;text-align:center;color:var(--mai-dim)}
.mai-none b{display:block;font-size:16px;color:#e6eefa;margin-bottom:8px}
.mai-none p{margin:0 auto;max-width:560px;font-size:13px;line-height:1.75}

/* 결과 그리드 */
.mai-result{display:grid;grid-template-columns:minmax(0,392px) minmax(0,1fr);gap:16px;align-items:start}
.mai-result > .mai-gallery{grid-column:1 / -1}

/* ── 프로파일 카드 ───────────────────────────────────── */
.mai-card{
  border:1px solid var(--mai-line2);border-radius:19px;overflow:hidden;
  background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.012));
}
.mai-card-head{display:grid;grid-template-columns:74px minmax(0,1fr);gap:14px;padding:18px;border-bottom:1px solid var(--mai-line)}
.mai-card-icon{
  width:74px;height:74px;border-radius:18px;object-fit:cover;
  border:1px solid var(--mai-line2);background:#0d1620;
  box-shadow:0 0 0 4px rgba(76,195,255,.10),0 10px 26px rgba(0,0,0,.4);
}
.mai-card-icon.mai-ph{font-size:20px}
.mai-card-name{min-width:0}
.mai-card-name h3{margin:0;font-size:23px;font-weight:900;letter-spacing:-.02em;color:#fff;line-height:1.2;word-break:break-word}
.mai-card-alias{margin:7px 0 0;font-size:11.5px;line-height:1.6;color:var(--mai-dim)}
.mai-card-alias b{color:#9fc9e8;font-weight:700}
.mai-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.mai-badge{
  display:inline-flex;align-items:center;gap:5px;
  border-radius:99px;padding:3.5px 10px;
  font-family:var(--mai-mono);font-size:9.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  border:1px solid;
}
.mai-badge.fam{color:var(--mai-vi);border-color:rgba(167,139,255,.42);background:rgba(167,139,255,.12)}
.mai-badge.on{color:var(--mai-rd);border-color:rgba(255,77,106,.45);background:rgba(255,77,106,.13)}
.mai-badge.off{color:var(--mai-gr);border-color:rgba(90,209,154,.42);background:rgba(90,209,154,.12)}
.mai-badge.unk{color:var(--mai-dim);border-color:var(--mai-line2);background:rgba(255,255,255,.03)}
.mai-badge.plat{color:#8fb6d6;border-color:rgba(143,182,214,.32);background:rgba(143,182,214,.09)}

/* 관측 등급 */
.mai-grade{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:13px;align-items:center;padding:14px 18px;border-bottom:1px solid var(--mai-line)}
.mai-grade-dial{position:relative;width:62px;height:62px}
.mai-grade-dial svg{width:62px;height:62px;transform:rotate(-90deg)}
.mai-grade-dial b{position:absolute;inset:0;display:grid;place-items:center;font:900 16px/1 inherit;color:#fff}
.mai-grade-txt{min-width:0}
.mai-grade-txt strong{display:block;font-size:13px;font-weight:800;color:#e6eefa}
.mai-grade-txt span{display:block;margin-top:4px;font-size:11px;line-height:1.6;color:var(--mai-dim)}
.mai-help{
  display:inline-grid;place-items:center;width:15px;height:15px;margin-left:5px;vertical-align:-2px;
  padding:0;-webkit-appearance:none;appearance:none;
  border-radius:50%;border:1px solid var(--mai-line2);background:rgba(255,255,255,.05);
  font:800 9px/1 var(--mai-mono);color:var(--mai-dim);cursor:help;
}
.mai-help:hover,.mai-help:focus{color:#fff;border-color:var(--mai-cy);outline:none}
.mai-help .mai-tip{
  position:absolute;left:14px;right:14px;bottom:calc(100% - 4px);
  padding:11px 13px;border-radius:12px;border:1px solid var(--mai-line2);
  background:#070c14;box-shadow:0 20px 46px rgba(0,0,0,.62);
  font:500 11px/1.65 inherit;color:#b9c9dc;text-align:left;letter-spacing:0;
  opacity:0;visibility:hidden;transition:opacity .15s ease;z-index:30;pointer-events:none;
}
.mai-help:hover .mai-tip,.mai-help:focus .mai-tip,.mai-help.is-open .mai-tip{opacity:1;visibility:visible}

/* 스파크라인 */
.mai-spark{padding:14px 18px;border-bottom:1px solid var(--mai-line)}
.mai-spark-h{display:flex;align-items:baseline;gap:8px;margin-bottom:9px}
.mai-spark-h b{font-family:var(--mai-mono);font-size:9.5px;font-weight:800;letter-spacing:.14em;color:var(--mai-dim2);text-transform:uppercase}
.mai-spark-h span{margin-left:auto;font-family:var(--mai-mono);font-size:10px;color:var(--mai-dim)}
.mai-spark svg{display:block;width:100%;height:58px;overflow:visible}
.mai-spark-ax{display:flex;justify-content:space-between;margin-top:5px;font-family:var(--mai-mono);font-size:9.5px;color:var(--mai-dim2)}

/* 항목 리스트 */
.mai-rows{padding:6px 18px 16px}
.mai-row{padding:11px 0;border-bottom:1px solid rgba(255,255,255,.055)}
.mai-row:last-child{border-bottom:0}
.mai-row > b{display:block;font-family:var(--mai-mono);font-size:9.5px;font-weight:800;letter-spacing:.14em;color:var(--mai-dim2);text-transform:uppercase;margin-bottom:7px}
.mai-chips{display:flex;flex-wrap:wrap;gap:6px}
.mai-chip{
  display:inline-flex;align-items:center;gap:6px;
  border:1px solid var(--mai-line2);border-radius:8px;padding:5px 9px;
  background:rgba(255,255,255,.03);font-size:11.5px;color:#c6d6e7;
}
.mai-chip u{text-decoration:none;font-family:var(--mai-mono);font-size:10px;color:var(--mai-dim2)}
.mai-chip.dom{font-family:var(--mai-mono);font-size:10.5px;color:#9ec9e6;word-break:break-all}
.mai-chip.steal{border-color:rgba(255,198,92,.28);color:#f0d8a8;background:rgba(255,198,92,.07)}
.mai-chip.ip{font-family:var(--mai-mono);font-size:10.5px;color:#c8b6f5;border-color:rgba(167,139,255,.26);background:rgba(167,139,255,.07)}
.mai-bar{display:flex;height:7px;border-radius:99px;overflow:hidden;background:rgba(255,255,255,.06);margin-top:2px}
.mai-bar i{display:block;height:100%}
.mai-bar i.and{background:linear-gradient(90deg,#4cc3ff,#2e8fd0)}
.mai-bar i.ios{background:linear-gradient(90deg,#a78bff,#7c5ce8)}
.mai-bar-l{display:flex;gap:14px;margin-top:7px;font-family:var(--mai-mono);font-size:10px;color:var(--mai-dim)}
.mai-bar-l b{color:#cfe0f2}
.mai-bar-l s{text-decoration:none;display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:5px;vertical-align:0}

.mai-cta{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin:0;padding:15px 18px;border-top:1px solid var(--mai-line);
  background:linear-gradient(180deg,rgba(255,77,106,.10),rgba(255,77,106,.03));
}
.mai-cta p{margin:0;font-size:12px;line-height:1.6;color:#e3c3ca}
.mai-cta-act{display:flex;align-items:center;gap:9px;flex:0 0 auto}
.mai-cta a{
  flex:0 0 auto;border-radius:11px;padding:11px 17px;
  background:#d20b25;color:#fff;font:800 12.5px/1 inherit;text-decoration:none;white-space:nowrap;
}
.mai-cta a:hover{background:#ff2f4d}
.mai-copy{
  flex:0 1 auto;min-width:0;max-width:100%;
  border:1px solid rgba(255,255,255,.24);border-radius:11px;padding:10px 14px;
  background:rgba(255,255,255,.06);color:#f0d7dc;font:700 12px/1 inherit;cursor:pointer;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.mai-copy:hover{border-color:#fff;color:#fff}

/* ── 우측 패널 ───────────────────────────────────────── */
.mai-side{display:grid;gap:16px;min-width:0}
.mai-panel{
  border:1px solid var(--mai-line2);border-radius:19px;overflow:hidden;
  background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.01));
  min-width:0;
}
.mai-panel-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:14px 18px;border-bottom:1px solid var(--mai-line)}
.mai-panel-h b{font-size:13.5px;font-weight:800;color:#e8f1fb}
.mai-panel-h span{font-family:var(--mai-mono);font-size:10px;letter-spacing:.06em;color:var(--mai-dim2)}
.mai-panel-h .mai-count{
  margin-left:auto;border:1px solid rgba(255,198,92,.4);border-radius:99px;padding:4px 11px;
  background:rgba(255,198,92,.12);color:var(--mai-am);
  font:800 11px/1 inherit;white-space:nowrap;
}
.mai-panel-b{padding:16px 18px}
.mai-panel-note{margin:0;font-size:12px;line-height:1.7;color:var(--mai-dim)}

/* 타임라인 */
.mai-tlrail{position:relative;display:flex;gap:0;overflow-x:auto;padding:6px 2px 14px;scroll-snap-type:x proximity}
.mai-tlrail::before{content:"";position:absolute;left:0;right:0;top:34px;height:1px;background:linear-gradient(90deg,rgba(76,195,255,.05),rgba(76,195,255,.55),rgba(167,139,255,.55),rgba(167,139,255,.05))}
.mai-tlnode{
  position:relative;flex:0 0 118px;display:grid;justify-items:center;gap:7px;
  padding:0 6px;background:transparent;border:0;cursor:pointer;color:inherit;font:inherit;
  scroll-snap-align:start;
}
.mai-tlnode img,.mai-tlnode .mai-ph{width:46px;height:46px;border-radius:13px;object-fit:cover;border:1px solid var(--mai-line2);background:#0d1620;transition:transform .18s ease,box-shadow .18s ease}
.mai-tlnode:hover img,.mai-tlnode:hover .mai-ph{transform:translateY(-3px);box-shadow:0 8px 22px rgba(76,195,255,.28)}
.mai-tlnode i{
  display:block;width:9px;height:9px;border-radius:50%;
  background:#0b1220;border:2px solid var(--mai-cy);box-shadow:0 0 10px rgba(76,195,255,.7)
}
.mai-tlnode b{font-size:11.5px;font-weight:700;color:#cddcec;text-align:center;line-height:1.35;word-break:break-word;max-width:104px}
.mai-tlnode time{font-family:var(--mai-mono);font-size:9.5px;color:var(--mai-dim2)}
.mai-tlnode.is-cur i{border-color:var(--mai-rd);box-shadow:0 0 12px rgba(255,77,106,.8)}
.mai-tlnode.is-cur b{color:#fff}
.mai-tlnode.is-cur img,.mai-tlnode.is-cur .mai-ph{border-color:var(--mai-rd);box-shadow:0 0 0 3px rgba(255,77,106,.22)}

/* 성좌 */
.mai-cs .mai-panel-b{padding:0}
.mai-csvg{display:block;width:100%;height:330px;touch-action:pan-y}
.mai-csvg .lnk{stroke-linecap:round;fill:none}
.mai-csvg .nd{cursor:pointer}
.mai-csvg .nd circle.hit{fill:transparent}
.mai-csvg .nd text{font-family:inherit;font-size:10px;font-weight:700;fill:#b6c8dc;pointer-events:none}
.mai-csvg .nd:hover text,.mai-csvg .nd:focus text{fill:#fff}
.mai-csvg .nd:focus{outline:none}
.mai-csvg .nd:focus circle.dot{stroke:#fff;stroke-width:2}
.mai-csvg .ctr text{font-size:12px;font-weight:900;fill:#fff}
.mai-cslegend{display:flex;flex-wrap:wrap;gap:14px;padding:10px 18px 14px;border-top:1px solid var(--mai-line);font-family:var(--mai-mono);font-size:10px;color:var(--mai-dim)}
.mai-cslegend s{text-decoration:none;display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:0}

/* 갤러리 */
.mai-gallery{
  border:1px solid var(--mai-line2);border-radius:19px;overflow:hidden;
  background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.01));
}
.mai-shots{display:flex;gap:12px;overflow-x:auto;padding:16px 18px;scroll-snap-type:x proximity}
.mai-shot{flex:0 0 auto;width:168px;scroll-snap-align:start}
.mai-shot img{
  display:block;width:168px;height:300px;object-fit:cover;object-position:top center;
  border-radius:13px;border:1px solid var(--mai-line2);background:#0d1620;
}
.mai-shot span{display:block;margin-top:7px;font-family:var(--mai-mono);font-size:9.5px;letter-spacing:.06em;color:var(--mai-dim2)}
.mai-shot.dl img{height:210px}
.mai-shot.ico img{height:168px;object-position:center}

/* ── 반응형 ──────────────────────────────────────────── */
@media(max-width:1180px){
  .mai-search{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .mai-field{grid-column:1 / -1}
}
@media(max-width:880px){
  .mai{border-radius:18px}
  .mai-top{padding:12px 14px}
  .mai-stats{margin-left:0;width:100%}
  .mai-search{grid-template-columns:minmax(0,1fr);padding:14px;gap:10px}
  .mai-field{grid-column:auto}
  .mai-input{min-height:64px;font-size:17px;padding:12px 42px}
  .mai-ticker{padding:8px 14px;gap:10px}
  .mai-body{padding:14px}
  .mai-result{grid-template-columns:minmax(0,1fr)}
  .mai-result > .mai-gallery{grid-column:auto}
  .mai-card-head{grid-template-columns:60px minmax(0,1fr);padding:14px;gap:11px}
  .mai-card-icon{width:60px;height:60px;border-radius:15px}
  .mai-card-name h3{font-size:20px}
  .mai-csvg{height:300px}
  .mai-cta{flex-direction:column;align-items:stretch}
  .mai-cta-act{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .mai-cta a{text-align:center}
  .mai-copy{text-align:center}
  .mai-shot,.mai-shot img{width:142px}
  .mai-shot img{height:256px}
}
@media(max-width:520px){
  .mai-ticker-label{display:none}
  .mai-grade{grid-template-columns:auto minmax(0,1fr);padding:12px 14px}
  .mai-rows,.mai-spark{padding-left:14px;padding-right:14px}
}

@media(prefers-reduced-motion:reduce){
  .mai-ticker-track{transform:none !important}
  .mai *{transition-duration:.01ms !important}
}

/* 파일명 일치 제안 버튼(카드 자동 열림 대신) */
.mai .mai-inline-btn{display:inline-flex;align-items:center;margin-left:6px;padding:3px 9px;border-radius:999px;border:1px solid rgba(110,170,255,.45);background:rgba(60,120,220,.16);color:#cfe3ff;font:700 11px/1.3 inherit;font-family:inherit;cursor:pointer;vertical-align:middle}
.mai .mai-inline-btn:hover,.mai .mai-inline-btn:focus-visible{background:rgba(60,120,220,.3);outline:none}

/* ==== /assets/css/service-dark.css?v=20260901i ==== */
/*
 * /service 전용 라이트 캔버스 (2026-09-01 밝은톤 전환)
 *
 * body.service-page 아래에서만 적용한다. 고정 헤더와 공용 푸터는 이 파일에서
 * 색을 재정의하지 않는다. 원칙: 페이지·섹션·카드는 밝은 톤,
 * 기술 "스크린"류(클러스터 스테이지·VM/패킷 창·영상·콘솔·벤치마크 보드)는
 * 다크 스크린으로 남겨 대비를 만든다.
 */

body.service-page{
  --svl-bg:#f5f9fc;
  --svl-bg-soft:#eef5f9;
  --svl-panel:#ffffff;
  --svl-line:#e1eaf1;
  --svl-line-strong:#d3e0e9;
  --svl-text:#15242f;
  --svl-muted:#5d7284;
  --svl-red:#d20b25;
  background:
    radial-gradient(900px 520px at 84% 8%,rgba(150,205,240,.18),transparent 68%),
    var(--svl-bg);
  overflow-x:hidden;overflow-x:clip; /* 스크롤 시네마 풀블리드(100vw)로 인한 가로 스크롤 방지 */
}

body.service-page main{
  position:relative;
  background:var(--svl-bg);
  color:var(--svl-text);
}

body.service-page main > .page-section{
  background:var(--svl-bg);
  color:var(--svl-text);
}

/* 서비스 프로세스 캔버스 — overflow:hidden 금지(스크롤 시네마의 position:sticky가 깨진다) */
body.service-page #services{
  position:relative;
  border-top:1px solid var(--svl-line);
  border-bottom:1px solid var(--svl-line);
  background:
    radial-gradient(760px 480px at 7% 8%,rgba(210,11,37,.05),transparent 68%),
    radial-gradient(760px 500px at 94% 86%,rgba(90,155,210,.10),transparent 70%),
    linear-gradient(180deg,#fbfdfe 0%,var(--svl-bg) 100%);
}

body.service-page #services::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background-image:
    linear-gradient(rgba(30,80,120,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(30,80,120,.035) 1px,transparent 1px);
  background-size:48px 48px;
  mask-image:linear-gradient(to bottom,#000,transparent 78%);
}

body.service-page #services > .container{
  position:relative;
  z-index:1;
}

body.service-page #services .division-title h2,
body.service-page #services .draft-section-head h2{
  color:var(--svl-text);
}

body.service-page #services .division-title strong,
body.service-page #services .draft-kicker{
  color:var(--svl-red);
}

body.service-page #services .draft-section-head p{
  color:var(--svl-muted);
}

/* 파일 인텔리전스(SHA-256) 섹션 — 밝은 껍데기, 내부 콘솔은 다크 유지 */
body.service-page #hybrid-analysis,
body.service-page .service-hybrid{
  position:relative;
  overflow:hidden;
  border-top:1px solid var(--svl-line);
  border-bottom:1px solid var(--svl-line);
  background:
    radial-gradient(720px 430px at 84% 10%,rgba(79,186,235,.10),transparent 68%),
    linear-gradient(180deg,#fbfdfe 0%,var(--svl-bg) 100%);
  color:var(--svl-text);
}

body.service-page #hybrid-analysis > .container,
body.service-page .service-hybrid > .container{
  position:relative;
  z-index:1;
}

body.service-page #hybrid-analysis .draft-section-head h2,
body.service-page .service-hybrid .draft-section-head h2{
  color:var(--svl-text);
}

body.service-page #hybrid-analysis .draft-section-head p,
body.service-page .service-hybrid .draft-section-head p{
  color:var(--svl-muted);
}

/* 데모 사이 분류 레일 */
body.service-page .demo-wrap{
  background:var(--svl-bg);
  color:var(--svl-text);
}

body.service-page .demo-cat{
  border-top:1px solid var(--svl-line);
  color:var(--svl-text);
}

body.service-page .demo-cat-copy{
  color:var(--svl-muted);
}

body.service-page .demo-cat > a{
  color:#7d90a0;
}

body.service-page .demo-cat > a:hover,
body.service-page .demo-cat > a:focus-visible{
  color:var(--svl-red);
}

body.service-page #exfil{
  border-bottom:1px solid var(--svl-line);
  background:
    radial-gradient(720px 360px at 82% 48%,rgba(210,11,37,.05),transparent 70%),
    linear-gradient(180deg,#fbfdfe 0%,var(--svl-bg) 100%);
  color:var(--svl-text);
}

body.service-page #exfil .section-title h2{
  color:var(--svl-text);
}

body.service-page #exfil .section-title > p{
  color:var(--svl-muted);
}

/* 제품 카드 — draft.css 기본(라이트 카드)으로 되돌리고 배경만 잇는다 */
body.service-page #products.section-soft,
body.service-page #products{
  border-top:1px solid var(--svl-line);
  border-bottom:1px solid var(--svl-line);
  background:
    radial-gradient(700px 420px at 92% 4%,rgba(90,155,210,.10),transparent 68%),
    linear-gradient(180deg,var(--svl-bg-soft) 0%,var(--svl-bg) 100%);
  color:var(--svl-text);
}

body.service-page #products .division-title h2{
  color:var(--svl-text);
}

body.service-page #products .division-title strong,
body.service-page #products .product-code{
  color:var(--svl-red);
}

body.service-page #products .product-card{
  box-shadow:0 20px 50px rgba(60,100,135,.09);
}

/* 마지막 CTA — 붉은 카드는 유지, 주변만 라이트로 */
body.service-page .service-final-cta{
  border-top:1px solid var(--svl-line);
  background:
    radial-gradient(680px 320px at 50% 100%,rgba(210,11,37,.06),transparent 72%),
    var(--svl-bg);
}

body.service-page .service-final-cta .draft-cta{
  border:1px solid rgba(210,11,37,.25);
  background:linear-gradient(135deg,#d20b25 0%,#a9081e 100%);
  box-shadow:0 34px 80px rgba(160,20,40,.22);
}

body.service-page .service-final-cta .draft-cta h2{
  color:#fff;
}

body.service-page .service-final-cta .draft-cta p{
  color:rgba(255,255,255,.78);
}

/* ── HYPER CLOUD — 밝은 껍데기 + 다크 네온 스테이지 유지 ── */
body.service-page .hm-hc-wrap{
  background:
    radial-gradient(120% 90% at 80% 0%,rgba(150,205,240,.22),transparent 55%),
    linear-gradient(180deg,#fbfdfe,var(--svl-bg));
  color:var(--svl-text);
}

body.service-page .hm-hc-wrap .section-title.inv h2{color:var(--svl-text)}
body.service-page .hm-hc-wrap .section-kicker{color:#1172a3}
body.service-page .hm-hc-wrap .section-title.inv p{color:var(--svl-muted)}

body.service-page .hm-hc-tray{
  background:var(--svl-panel);
  border-color:var(--svl-line);
  box-shadow:0 16px 40px rgba(60,100,135,.08);
}
body.service-page .hm-hc-tray-head{color:#7d90a0}
body.service-page .hm-hc-chip{
  border-color:var(--svl-line-strong);
  background:#f6fafc;
  color:#28414f;
}
body.service-page .hm-hc-chip:hover{
  border-color:#1994c9;
  background:rgba(25,148,201,.08);
}
body.service-page .hm-hc-tray-note{color:#8b9cab}
/* 스테이지는 다크 스크린 유지 — 라이트 페이지 위 모니터처럼 보이게 그림자만 */
body.service-page .hm-hc-canvas-wrap{
  border-color:#12202e;
  box-shadow:0 26px 60px rgba(25,55,80,.22);
}

/* ── HC 벤치마크 — 요청: 흰 보드를 검은 보드로 반전 ── */
body.service-page .hm-bm-wrap{background:linear-gradient(180deg,#fbfdfe,var(--svl-bg))}
body.service-page .hm-bench-board{
  border-color:#1b2635;
  background:#0b1018;
  color:#e8eef6;
  box-shadow:0 34px 88px rgba(20,40,60,.30);
}
body.service-page .hm-bench-summary{
  border-bottom-color:#1d2836;
  background:
    radial-gradient(circle at 82% 12%,rgba(58,132,214,.16),transparent 40%),
    linear-gradient(145deg,#0e1521,#0b1018);
}
body.service-page .hm-bench-summary>div>span{color:#5aa7e8}
body.service-page .hm-bench-summary h3{color:#fff}
body.service-page .hm-bench-summary dl{border-color:#223046;background:#0e1521}
body.service-page .hm-bench-summary dl>div{border-right-color:#1d2a3c}
body.service-page .hm-bench-summary dt{color:#7286a0}
body.service-page .hm-bench-summary dd{color:#dfe8f4}
body.service-page .hm-bench-table{background:#070c14}
body.service-page .hm-bench-row--head{color:#66788e}
body.service-page .hm-bench-row:not(.hm-bench-row--head){
  border-color:#223048;
  background:#101826;
  box-shadow:0 9px 24px rgba(0,0,0,.24);
}
body.service-page .hm-bench-row:not(.hm-bench-row--head)>div{border-right-color:#1d2a3c;border-bottom-color:#1d2a3c}
body.service-page .hm-bench-row>div:first-child>b{color:#cfdae8}
body.service-page .hm-bench-row>div:first-child>small{color:#5f7287}
body.service-page .hm-bench-row>div:nth-child(2)>b{color:#e8eef6}
body.service-page .hm-bench-row>div:nth-child(2)>small{color:#7c8ea3}
body.service-page .hm-bench-tags i{border-color:#2a3a50;background:#0d1522;color:#8fa2b8}
body.service-page .hm-bench-row>div:nth-child(3){
  background:linear-gradient(145deg,color-mix(in srgb,var(--bench) 14%,#0e1520),#0e1520 70%);
}
body.service-page .hm-bench-row strong{color:#fff}
body.service-page .hm-bench-row>div:nth-child(3)>small{color:#74889d}
body.service-page .hm-bench-footer{border-top-color:#1d2836;background:#0a0f18}
body.service-page .hm-bench-footer span{color:#66788e}
body.service-page .hm-bench-footer b{color:#aebdd0}
body.service-page .hm-bench-footer p{border-right-color:#1d2836;border-bottom-color:#1d2836}
body.service-page .hm-bench-footer a{border-color:#2a3a50;color:#dbe5f0}

/* ── STEP 배너(공통 셸) — 라이트 ── */
body.service-page .spb{
  --sp-ckbox-bg:#ffffff;
  --sp-ckbox-line:#c3d2dd;
  --sp-ck-on-bg:rgba(23,166,115,.12);
  --sp-ck-on-line:#17a673;
  --sp-ck-mark:#0f8a5f;
  border-color:var(--svl-line);
  background:linear-gradient(165deg,#ffffff 0%,#f3f8fb 58%,#edf4f9 100%);
  color:#1a2a37;
  box-shadow:0 24px 60px rgba(56,96,128,.10);
}
body.service-page .spb h3,
body.service-page .spb h4{color:#13232f}
body.service-page .spb-desc{color:#63788a}
body.service-page .spb-chip{
  color:#c40f28;
  background:rgba(210,11,37,.07);
  border-color:rgba(210,11,37,.25);
}
body.service-page .spb-chip::before{background:#d20b25;box-shadow:0 0 8px rgba(210,11,37,.35)}
body.service-page .spb-meta{color:#8fa1b0}
body.service-page .spb-meta b{color:#16293a}
body.service-page .spb-meta b span{color:#9db0be}

/* STEP 01 — 좌측 카드 라이트, 우측 클러스터 스테이지는 다크 스크린 유지 */
body.service-page .sp1-card{background:var(--svl-panel);border-color:var(--svl-line)}
body.service-page .sp1-num{color:#c40f28;background:rgba(210,11,37,.07)}
body.service-page .sp1-cap{color:#687d8e}
body.service-page .sp1-mgr{background:#f4f8fb;border-color:#e3ecf2}
body.service-page .sp1-avatar{background:#e8f1f7;color:#335063}
body.service-page .sp1-mname{color:#1b2c39}
body.service-page .sp1-mrole{color:#7a8fa0}
body.service-page .sp1-pill{background:#f4f8fb;border-color:#dde9f0;color:#335063}
body.service-page .sp1-ck{background:#f4f8fb;border-color:#e3ecf2;color:#243a4b}
body.service-page .sp1-stage{border-color:#132433;box-shadow:0 22px 54px rgba(25,55,80,.22)}

/* STEP 02 — 셸 라이트, LAVAR VM·PACKET 창은 실제 프로그램처럼 다크 유지 */
body.service-page .spb-2 .sp2-bg,
body.service-page .spb-2 .sp2-bgglow,
body.service-page .spb-2 .sp2-shade{display:none}
body.service-page .sp2-live{
  color:#335063;
  border-color:#dde9f0;
  background:#f4f8fb;
}
body.service-page .sp2-win{box-shadow:0 22px 54px rgba(25,55,80,.20)}

/* CS 시어터 셸 — 라이트 카드, 영상 스크린은 블랙 유지 */
body.service-page .svc-cs-shell{
  background:linear-gradient(160deg,#ffffff,#eef5fa);
  border-color:var(--svl-line);
  color:var(--svl-text);
}
body.service-page .svc-cs-shell .webgl-grid{
  background-image:
    linear-gradient(rgba(30,80,120,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(30,80,120,.05) 1px,transparent 1px);
}
body.service-page .svc-cs-shell .stage-buttons button,
body.service-page .svc-cs-shell .webgl-controls>button{
  background:#fff;
  border-color:#d8e3ec;
  color:#2c4356;
}
body.service-page .svc-cs-shell .stage-buttons button.active{
  background:var(--draft-red,#d20b25);
  border-color:var(--draft-red,#d20b25);
  color:#fff;
}
body.service-page .svc-cs-shell .webgl-fallback div{
  background:#f6f9fc;
  border-color:#e0eaf1;
}
body.service-page .svc-cs-shell .webgl-fallback b{color:#c40f28}
body.service-page .svc-cs-shell .webgl-fallback span{color:#5f7484}
body.service-page .svc-cs-shell .stage-buttons button:focus-visible,
body.service-page .svc-cs-shell .webgl-controls>button:focus-visible{outline:3px solid var(--svl-red);outline-offset:3px}
/* 인포바 — legacy 직접 열람에서도 라이트 카드 (service-merged와 동일 톤) */
body.service-page .svc-cs-infobar{
  background:rgba(255,255,255,.86);
  border-color:var(--svl-line);
  box-shadow:0 18px 44px rgba(60,100,135,.10);
}
body.service-page .svc-cs-infobar h3{color:#13232f}
body.service-page .svc-cs-infobar p{color:#5d7284}
body.service-page .svc-cs-infobar .webgl-result{border-left-color:var(--svl-line)}
body.service-page .svc-cs-infobar .webgl-result span{color:#c40f28}
body.service-page .svc-cs-infobar .webgl-result strong{color:#22384a}

@media(max-width:780px){
  body.service-page #services,
  body.service-page #hybrid-analysis,
  body.service-page .service-hybrid,
  body.service-page #products{
    background-color:var(--svl-bg);
  }
}

/* ==== /assets/css/service-merged.css?v=20260901i ==== */
/* /service/solution — 기존 제품·서비스 콘텐츠 통합 (라이트 캔버스) */
body.product-service-page{
  background:#f5f9fc;
}

.merged-service-content{
  min-height:220px;
  background:#f5f9fc;
  color:#15242f;
}

.merged-service-loading{
  width:min(calc(100% - 40px),1180px);
  margin:0 auto;
  padding:72px 0;
  color:#7d90a0;
  font-size:13px;
  letter-spacing:.04em;
  border-top:1px solid #e1eaf1;
}

.merged-service-loading::before{
  content:"";
  display:inline-block;
  width:7px;
  height:7px;
  margin-right:10px;
  border-radius:50%;
  background:#ff3857;
  box-shadow:0 0 14px rgba(255,56,87,.72);
  animation:mergedServicePulse 1.2s ease-in-out infinite;
}

.merged-service-content.is-ready .merged-service-loading{
  display:none;
}

.merged-service-content.is-error .merged-service-loading{
  color:#c40f28;
}

.merged-service-content.is-error .merged-service-loading::before{
  animation:none;
}

@keyframes mergedServicePulse{
  0%,100%{opacity:1}
  50%{opacity:.28}
}

/* atlas.css의 demo-cat 기본 레이아웃 — 통합 페이지에는 atlas.css가 로드되지 않는다 */
.product-service-page .demo-cat{display:flex;align-items:center;gap:14px;padding:26px 0 10px}
.product-service-page .demo-cat-tag{flex:none;padding:8px 12px;border-radius:8px;background:#111214;color:#fff;font:800 11px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.08em}
.product-service-page .demo-cat-tag.an{background:#0e2733;color:#5bcaff}
.product-service-page .demo-cat-tag.in{background:#1c1430;color:#a889ff}
.product-service-page .demo-cat-tag.op{background:#111214;color:#f2f6fb}
.product-service-page .demo-cat-copy{color:#6f7075;font-size:12px;font-weight:700}
.product-service-page .demo-cat>a{margin-left:auto;color:#7d90a0;font-size:11px;font-weight:800;text-decoration:none;white-space:nowrap}
.product-service-page .demo-cat>a:hover{color:#d20b25}
@media(max-width:780px){
  .product-service-page .demo-cat{flex-wrap:wrap;gap:10px}
  .product-service-page .demo-cat-copy{font-size:11px}
}

/* 기존 서비스 프로세스의 비디오 시어터 — 통합 페이지 안에서도 원형 유지 */
.product-service-page .svc-cs-shell{
  display:flex;
  flex-direction:column;
  gap:16px;
  min-height:0;
  max-width:1040px;
  margin-left:auto;
  margin-right:auto;
  padding:24px 26px 28px;
}

.product-service-page .svc-cs-shell .webgl-controls{
  position:relative;
  inset:auto;
}

.product-service-page .svc-cs-shell .webgl-fallback{
  position:relative;
  inset:auto;
  z-index:4;
  grid-template-columns:repeat(4,1fr);
}

.product-service-page .svc-cs-screen{
  position:relative;
  z-index:4;
  overflow:hidden;
  border:1px solid #16232e;
  border-radius:18px;
  background:#000;
  box-shadow:0 30px 80px rgba(25,55,80,.28);
}

.product-service-page .svc-cs-screen video{
  display:block;
  width:100%;
  aspect-ratio:16/9;
  background:#000;
}

.product-service-page .svc-cs-infobar{
  position:relative;
  z-index:4;
  display:grid;
  grid-template-columns:1.15fr .95fr auto;
  gap:24px;
  align-items:center;
  padding:20px 24px;
  border:1px solid #e1eaf1;
  border-radius:20px;
  background:rgba(255,255,255,.86);
  backdrop-filter:blur(14px);
  box-shadow:0 18px 44px rgba(60,100,135,.10);
}

.product-service-page .svc-cs-infobar h3{
  margin:0 0 8px;
  color:#13232f;
  font-size:22px;
}

.product-service-page .svc-cs-infobar p{
  margin:0;
  color:#5d7284;
  font-size:13.5px;
  line-height:1.65;
}

.product-service-page .svc-cs-infobar .webgl-result{
  border-left:1px solid #e1eaf1;
}

.product-service-page .svc-cs-infobar .webgl-result span{
  color:#c40f28;
}

.product-service-page .svc-cs-infobar .webgl-result strong{
  color:#22384a;
}

.product-service-page .svc-cs-infobar .btn{
  white-space:nowrap;
}

/* 기존 솔루션 영역 — 통합 페이지의 라이트 톤으로 연결 */
.product-service-page #is-this-crime,
.product-service-page #systems,
.product-service-page #compare,
.product-service-page #live-demo{
  color:#15242f;
  border-top:1px solid #e1eaf1;
  background:#f5f9fc;
}

.product-service-page #is-this-crime{
  background:linear-gradient(180deg,#fdf7f8,#fff 60%);
}

.product-service-page #systems{
  background:
    radial-gradient(700px 420px at 10% 10%,rgba(210,11,37,.045),transparent 70%),
    #f7fafc;
}

.product-service-page #compare{
  background:
    radial-gradient(720px 420px at 88% 8%,rgba(90,155,210,.10),transparent 70%),
    #f5f9fc;
}

.product-service-page #live-demo{
  background:#f5f9fc;
}

.product-service-page #systems .draft-section-head h2,
.product-service-page #compare .draft-section-head h2{
  color:#13232f;
}

.product-service-page #systems .draft-section-head p,
.product-service-page #compare .draft-section-head p{
  color:#5d7284;
}

.product-service-page .draft-comparison{
  overflow:hidden;
  background:#fff;
}

.product-service-page .site-footer{
  margin-top:0;
}

@media(max-width:980px){
  .product-service-page .svc-cs-infobar{
    grid-template-columns:1fr;
    gap:16px;
  }
  .product-service-page .svc-cs-infobar .webgl-result{
    padding-top:16px;
    padding-left:0;
    border-top:1px solid rgba(255,255,255,.14);
    border-left:0;
  }
  .product-service-page .svc-cs-infobar .btn{
    justify-self:start;
  }
}

@media(max-width:780px){
  .product-service-page .svc-cs-shell{
    padding:18px 16px 20px;
  }
  .product-service-page .svc-cs-shell .webgl-fallback{
    grid-template-columns:1fr 1fr;
  }
}

@media(max-width:480px){
  .product-service-page .svc-cs-shell .webgl-fallback{
    grid-template-columns:1fr;
  }
}

@media(prefers-reduced-motion:reduce){
  .merged-service-loading::before{animation:none}
}

/* ==== /assets/css/product-service-refresh.css?v=20260905c ==== */
/* 2026-09-01 — Product / Service cinematic and service-process refresh. */

/* ── HERO v3 — LIGHT-TRAIL DOME (다크 시네마틱, 나머지 페이지는 라이트) ── */
.product-service-page .sol-hero{
  min-height:min(100vh,1000px);
  color:#e9eef6;
  background:
    radial-gradient(120% 55% at 62% 96%,rgba(216,124,52,.15),transparent 58%),
    linear-gradient(180deg,#020409 0%,#050a14 48%,#0a1020 74%,#160f1e 100%);
}
.product-service-page .sol-hero::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(1000px 640px at 64% 58%,rgba(62,122,224,.10),transparent 66%),
    radial-gradient(620px 300px at 64% 94%,rgba(255,150,60,.09),transparent 72%);
}
.product-service-page .sol-hero .fx-hero-inner,
.product-service-page .sol-hero .sol-hero-hud,
.product-service-page .sol-hero .fx-hero-deck{position:relative;z-index:5}
.product-service-page .sol-hero .fx-hero-copy{max-width:640px}
.product-service-page .sol-hero .fx-title em{color:#ff3f5a;text-shadow:0 0 34px rgba(255,63,90,.35)}
.product-service-page .sol-hero-vig{
  z-index:2;background:
    radial-gradient(135% 105% at 60% 45%,transparent 52%,rgba(2,4,9,.6) 100%),
    linear-gradient(to bottom,rgba(2,4,9,.5),transparent 16% 84%,rgba(2,4,9,.35));
}
.product-service-page .sol-hero-alarm{
  z-index:2;background:radial-gradient(560px 420px at 66% 38%,rgba(255,64,86,.42),rgba(255,64,86,.10) 42%,transparent 75%);
}
.product-service-page .sol-hero-gl{z-index:1}
/* WebGL 미지원 폴백 — 돔 자리의 발광 */
.product-service-page .sol-hero.sol-hero-nogl::before{
  background:
    radial-gradient(520px 420px at 64% 52%,rgba(70,140,255,.20),transparent 65%),
    radial-gradient(340px 220px at 64% 76%,rgba(255,150,60,.16),transparent 70%),
    radial-gradient(700px 380px at 64% 96%,rgba(120,70,40,.18),transparent 70%);
}
/* 씬 태그 — v3 배치 (돔 64% · 침입 신호 우상단) */
.product-service-page .sol-tag{
  z-index:4;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px;font-weight:800;
  letter-spacing:.16em;color:#8fa5bd;background:rgba(8,13,22,.62);border:1px solid rgba(120,150,190,.24);
  border-radius:999px;padding:5px 10px;opacity:0;transition:opacity .4s,color .4s;backdrop-filter:blur(6px);
}
.product-service-page .sol-tag-phone{left:64%;top:30%;opacity:1}
.product-service-page .sol-tag-attacker{left:84%;top:9%;color:#ff8296;border-color:rgba(255,80,110,.3);opacity:1}
/* 워룸 패널 — 다크 글래스 */
.sol-warroom{
  position:absolute;z-index:4;right:4.6%;top:19%;width:min(390px,32vw);opacity:0;transform:translateY(18px) scale(.97);
  border:1px solid rgba(120,150,190,.20);border-radius:18px;background:rgba(6,10,18,.62);
  box-shadow:0 28px 80px rgba(0,0,0,.5),inset 0 1px rgba(255,255,255,.06);backdrop-filter:blur(14px);
  transition:opacity .55s ease,transform .55s ease;pointer-events:none;
}
.sol-hero .sol-warroom{opacity:1;transform:none}
.sol-warroom-head{height:42px;padding:0 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(120,150,190,.16);font:700 9px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.14em;color:#75879c}
.sol-warroom-head span{display:flex;align-items:center;gap:7px;color:#cfdcea}
.sol-warroom-head i{width:6px;height:6px;border-radius:50%;background:#ff3f5a;box-shadow:0 0 10px rgba(255,63,90,.8)}
.sol-warroom-grid{display:grid;grid-template-columns:1fr 1fr;padding:13px;gap:8px}
.sol-warroom-grid div{padding:12px;border:1px solid rgba(120,150,190,.14);border-radius:10px;background:rgba(12,18,30,.55)}
.sol-warroom-grid small{display:block;margin-bottom:6px;font:700 8px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.13em;color:#66788d}
.sol-warroom-grid strong{font:800 11px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace;color:#e8eff7}
.sol-warroom-grid div:first-child strong{color:#ff5b72}

@media(max-width:1100px){
  .sol-warroom{display:none}
  .product-service-page .sol-hero{min-height:840px}
}
@media(max-width:680px){
  .product-service-page .sol-hero{min-height:860px}
  .product-service-page .sol-tag{display:none}
}
@media (max-height:820px) and (min-width:681px){
  .product-service-page .sol-hero{padding-top:clamp(96px,13vh,132px)}
  .product-service-page .sol-hero .fx-title{font-size:clamp(32px,3.4vw,46px)}
  .product-service-page .sol-hero .fx-lead{margin-bottom:14px}
  .product-service-page .sol-hero .fx-chips{margin-bottom:14px}
  .product-service-page .sol-hero .sol-hero-hud{padding-bottom:10px}
}

/* ── Live known-file lookup ───────────────────────────────── */
.hybrid-analysis-module .anz-live-card{
  padding:22px;border:1px solid rgba(79,216,255,.22);border-radius:16px;
  background:linear-gradient(145deg,rgba(79,216,255,.07),rgba(255,255,255,.015));
}
.hybrid-analysis-module .anz-live-card>span{display:block;margin-bottom:10px;font:800 9px/1 var(--anz-mono);letter-spacing:.16em;color:var(--anz-cyan)}
.hybrid-analysis-module .anz-live-card b{display:block;font-size:15px;color:#f1f4f8}
.hybrid-analysis-module .anz-live-card p{margin:8px 0 0;font-size:12px;line-height:1.7;color:#8e98aa}
.hybrid-analysis-module .anz-source{margin-top:auto;padding-top:14px;border-top:1px solid var(--anz-line);display:grid;grid-template-columns:auto 1fr;gap:5px 10px;align-items:center;font-family:var(--anz-mono)}
.hybrid-analysis-module .anz-source span{font-size:9px;letter-spacing:.15em;color:#687284}
.hybrid-analysis-module .anz-source b{font-size:11px;color:#c9d1dd}
.hybrid-analysis-module .anz-source i{grid-column:2;font-style:normal;font-size:9px;letter-spacing:.1em;color:#647083}
.hybrid-analysis-module .anz-verdict[data-status="found"] .anz-verdict-badge{background:rgba(55,217,154,.14);color:#63e6b0;border:1px solid rgba(55,217,154,.35)}
.hybrid-analysis-module .anz-verdict[data-status="missing"] .anz-verdict-badge{background:rgba(255,179,64,.12);color:#ffc168;border:1px solid rgba(255,179,64,.3)}
.hybrid-analysis-module .anz-verdict[data-status="error"] .anz-verdict-badge{background:rgba(255,47,77,.13);color:#ff8b9c;border:1px solid rgba(255,47,77,.35)}
.hybrid-analysis-module .anz-score b{font-size:12px;letter-spacing:.08em;color:#94daf2}

/* ── STEP 01 cluster intelligence overlays ───────────────── */
.sp1-identity-map{position:absolute;inset:0;z-index:4;opacity:0;pointer-events:none;transition:opacity .25s}
.sp1-stage.is-clustered .sp1-identity-map{opacity:1}
.sp1-handle{
  position:absolute;padding:4px 7px;border-radius:6px;background:rgba(11,16,24,.74);border:1px solid rgba(113,146,170,.23);
  font:700 9.5px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.02em;color:#b7c6d5;
  backdrop-filter:blur(5px);will-change:transform,opacity;
}
.sp1-handle::before{content:"";position:absolute;width:4px;height:4px;border-radius:50%;top:50%;left:-9px;background:#ff3857;box-shadow:0 0 7px rgba(255,56,87,.8)}
.sp1-handle.h1{left:18%;top:32%}.sp1-handle.h2{left:31%;top:59%}.sp1-handle.h3{left:39%;top:77%}
.sp1-handle.h4{left:51%;top:22%}.sp1-handle.h5{left:70%;top:71%}.sp1-handle.h6{left:84%;top:27%}
.sp1-handle.h4::before,.sp1-handle.h5::before,.sp1-handle.h6::before{background:#8fb3d8;box-shadow:0 0 7px rgba(143,179,216,.8)}
.sp1-target{
  position:absolute;z-index:6;right:13px;bottom:48px;width:226px;padding:12px 13px;border-radius:12px;
  border:1px solid rgba(255,56,87,.30);background:rgba(10,14,21,.88);box-shadow:0 18px 38px rgba(0,0,0,.34);
  backdrop-filter:blur(10px);opacity:0;transform:translateY(10px);transition:opacity .35s,transform .35s;pointer-events:none;
}
.sp1-stage.is-clustered .sp1-target{opacity:1;transform:none}
.sp1-target-head{display:flex;align-items:center;gap:7px;font:800 9.5px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.13em;color:#8190a4}
.sp1-target-head i{width:5px;height:5px;border-radius:50%;background:#ff3857;box-shadow:0 0 0 4px rgba(255,56,87,.11)}
.sp1-target-head b{margin-left:auto;color:#ff8a9b}
.sp1-target>strong{display:block;margin-top:10px;font:800 15px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;color:#fff}
.sp1-target-rule{height:1px;margin:11px 0;background:linear-gradient(90deg,rgba(255,56,87,.48),rgba(127,146,172,.1))}
.sp1-target>small{display:block;margin-bottom:7px;font:700 9.5px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em;color:#657387}
.sp1-target ul{list-style:none;margin:0;padding:0;display:grid;gap:5px}
.sp1-target li{display:flex;gap:8px;font:600 9.5px/1.25 ui-monospace,SFMono-Regular,Menlo,monospace;color:#aebccc}
.sp1-target li span{color:#56667b}

/* ── STEP 03 — 대응 완료 보고서 (light report sheet) ──────── */
.spb.sp3-light{
  border-color:#f1ddd7;
  background:
    radial-gradient(760px 320px at 14% 0%,rgba(255,255,255,.92),transparent 70%),
    linear-gradient(165deg,#fdf5f2 0%,#fbeeeb 58%,#f9e9e6 100%);
  color:#33241f;box-shadow:0 26px 60px rgba(96,44,33,.10);
}
.spb.sp3-light h3,.spb.sp3-light h4{color:#221510}
.spb.sp3-light .spb-desc{color:#8a6f66}
.spb.sp3-light .sp3-kicker{color:#b08a7e}
.spb.sp3-light .sp3-hline{background:linear-gradient(90deg,rgba(210,11,37,.5),transparent)}
.spb.sp3-light .spb-chip{color:#c40f28;background:rgba(210,11,37,.07);border-color:rgba(210,11,37,.25)}
.spb.sp3-light .spb-chip::before{background:#d20b25;box-shadow:0 0 8px rgba(210,11,37,.4)}
.spb.sp3-light .sp3-trail .s{color:#9b8078;border-color:#ecd9d3;background:rgba(255,255,255,.6)}
.spb.sp3-light .sp3-trail .s.done::before{color:#17a673}
.spb.sp3-light .sp3-trail .s.cur{color:#c40f28;border-color:rgba(210,11,37,.35);background:rgba(210,11,37,.08)}
.spb.sp3-light .sp3-trail .arr{color:#d4bcb4}

.sp3r-sheet{position:relative;z-index:5;border-radius:14px;background:#fff;border:1px solid #f0e3df;box-shadow:0 24px 70px rgba(96,44,33,.12);padding:30px 34px 0;color:#25313c;font-family:"Pretendard","Noto Sans KR",system-ui,sans-serif}
.sp3r-head{position:relative;display:grid;grid-template-columns:minmax(0,1.28fr) minmax(0,.92fr) auto;gap:26px;align-items:start;padding:2px 0 22px;border-bottom:1px solid #edf0f2}
.sp3r-kicker{display:inline-flex;align-items:center;gap:9px;font:800 10px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.2em;color:#d20b25}
.sp3r-kicker i{width:26px;height:2px;background:#d20b25;border-radius:2px}
.sp3r-head-main h4{margin:12px 0 10px;font-size:clamp(20px,2.2vw,27px);letter-spacing:-.04em;color:#182430!important}
.sp3r-recipient{margin:0;font-size:12px;color:#8a97a1}
.sp3r-meta{display:grid;grid-template-columns:1fr 1fr;gap:15px 26px;margin:4px 0 0}
.sp3r-meta dt{font:800 9px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.14em;color:#93a0aa}
.sp3r-meta dd{margin:7px 0 0;font:800 13.5px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;color:#1c2933;white-space:nowrap}
.sp3r-meta dd.live{color:#c40f28}
.sp3r-stamp{align-self:center;display:grid;place-items:center;align-content:center;gap:5px;width:94px;height:94px;border:2.5px solid #17a673;border-radius:50%;color:#118a5e;transform:rotate(8deg);box-shadow:inset 0 0 0 3px rgba(23,166,115,.10)}
.sp3r-stamp b{font-size:15px;line-height:1.25;text-align:center;letter-spacing:.08em}
.sp3r-stamp span{font:800 8.5px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.2em}

.sp3r-kpis{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid #edf0f2}
.sp3r-kpis>div{padding:20px 22px 22px;border-right:1px solid #edf0f2}
.sp3r-kpis>div:last-child{border-right:0}
.sp3r-kpis span{display:block;font-size:11.5px;font-weight:700;color:#77858f}
.sp3r-kpis b{display:block;margin-top:10px;font-size:34px;font-weight:850;letter-spacing:-.03em;color:#131f2a}
.sp3r-kpis b em{font-style:normal;font-size:14px;font-weight:750;color:#5c6b76;margin-left:3px}
.sp3r-kpis small{display:block;margin-top:9px;font-size:11px;font-weight:750}
.sp3r-kpis small.ok{color:#149567}
.sp3r-kpis small.warn{color:#c98a12}

.sp3r-columns{display:grid;grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr)}
.sp3r-timeline-wrap{padding:24px 28px 30px 2px;border-right:1px solid #edf0f2}
.sp3r-monitor{padding:24px 2px 30px 28px}
.sp3r-columns h5{display:flex;align-items:center;gap:9px;margin:0 0 18px;font-size:14.5px;font-weight:800;letter-spacing:-.02em;color:#c40f28}
.sp3r-columns h5 i{width:22px;height:2.5px;border-radius:2px;background:#d20b25}
.sp3r-timeline{list-style:none;margin:0;padding:0 0 0 4px;position:relative}
.sp3r-timeline::before{content:"";position:absolute;left:9px;top:8px;bottom:8px;width:2px;background:#e8edf0}
.sp3r-timeline li{position:relative;padding:0 0 22px 34px}
.sp3r-timeline li:last-child{padding-bottom:0}
.sp3r-timeline li::before{content:"";position:absolute;left:3px;top:2px;width:13px;height:13px;border-radius:50%;background:#17a673;border:3px solid #e2f4ec}
.sp3r-timeline time{display:block;font:800 11px/1 ui-monospace,SFMono-Regular,Menlo,monospace;color:#149567}
.sp3r-timeline b{display:block;margin-top:6px;font-size:14.5px;color:#1a2733;letter-spacing:-.02em}
.sp3r-timeline li>span{display:block;margin-top:5px;font-size:12px;line-height:1.65;color:#7a8893}

.sp3r-signal{border:1px solid #f0e0dc;border-radius:12px;background:linear-gradient(180deg,#fffdfc,#fdf6f4);padding:16px 18px 14px}
.sp3r-signal header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
.sp3r-signal header b{font-size:13px;color:#25313c}
.sp3r-live{display:inline-flex;align-items:center;gap:6px;font:800 9px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.1em;color:#c40f28;white-space:nowrap}
.sp3r-live i{width:6px;height:6px;border-radius:50%;background:#e11330;box-shadow:0 0 0 4px rgba(225,19,48,.10)}
.sp3r-live time{font:inherit;color:#8a97a1}
.sp3r-bars{display:flex;align-items:flex-end;gap:5px;height:64px}
.sp3r-bars i{flex:1;height:var(--h);min-height:3px;border-radius:3px 3px 1px 1px;background:linear-gradient(180deg,#f4526d,#d20b25)}
.sp3r-bars i:nth-child(n+11){background:#f0dcd8}
.sp3r-signal p{margin:11px 0 0;font-size:10.5px;color:#97a4ad;line-height:1.6}
.sp3r-checks{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:9px}
.sp3r-checks li{position:relative;padding:11px 13px 11px 40px;border:1px solid #eef1f3;border-radius:10px;background:#fbfcfd;font-size:12.5px;font-weight:650;color:#33424e}
.sp3r-checks li::before{content:"✓";position:absolute;left:13px;top:50%;transform:translateY(-50%);width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:#e2f4ec;color:#149567;font-size:10px;font-weight:900}
.sp3r-foot{margin:0 -34px;padding:13px 34px 15px;border-top:1px solid #edf0f2;font-size:10.5px;color:#a4b0b9;background:#fbfcfd;border-radius:0 0 14px 14px}
@media(max-width:980px){
  .sp3r-head{grid-template-columns:1fr;gap:18px}
  .sp3r-head-main{padding-right:98px}
  .sp3r-stamp{position:absolute;right:0;top:2px;width:82px;height:82px}
  .sp3r-kpis{grid-template-columns:1fr 1fr}
  .sp3r-kpis>div:nth-child(2n){border-right:0}
  .sp3r-kpis>div:nth-child(-n+2){border-bottom:1px solid #edf0f2}
  .sp3r-columns{grid-template-columns:1fr}
  .sp3r-timeline-wrap{border-right:0;border-bottom:1px solid #edf0f2;padding:24px 2px 26px}
  .sp3r-monitor{padding:24px 2px 30px}
}
@media(max-width:720px){
  .sp1-target{width:205px;right:9px;bottom:46px}.sp1-target li:nth-child(n+3){display:none}.sp1-handle.h2,.sp1-handle.h3,.sp1-handle.h5{display:none}
  .sp3r-sheet{padding:22px 18px 0}.sp3r-foot{margin:0 -18px;padding:12px 18px 14px}
  .sp3r-kpis>div{padding:14px 12px 16px}.sp3r-kpis b{font-size:26px}
  .sp3r-meta{grid-template-columns:1fr 1fr;gap:12px 16px}
}

/* ── 솔루션 오토 시어터 (라이트) ─────────────────────────── */
.sol-theater{position:relative;padding:96px 0 90px;border-top:1px solid #e1eaf1;border-bottom:1px solid #e1eaf1;background:linear-gradient(180deg,#fbfdfe,#eef5f9)}
.sol-theater-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,430px);gap:60px;align-items:end;margin-bottom:40px}
.sol-theater-eyebrow{display:flex;align-items:center;gap:11px;margin:0 0 18px;color:#7d90a0;font:800 10px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.13em}
.sol-theater-eyebrow span{color:#d20b25}
.sol-theater-head h2{margin:0;font-size:clamp(34px,4.2vw,58px);line-height:1.08;letter-spacing:-.055em;color:#0e1d2b}
.sol-theater-head h2 em{font-style:normal;color:#d20b25}
.sol-theater-head>p{margin:0 0 8px;color:#5d7284;font-size:14px;line-height:1.85}
.sol-theater-player{overflow:hidden;border:1px solid #e1eaf1;border-radius:28px;background:#fff;box-shadow:0 34px 90px rgba(25,55,80,.14)}
.sol-theater-top{min-height:56px;padding:0 18px 0 22px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid #e9eff4;background:#fbfdfe;color:#7d90a0;font:800 9px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.1em}
.sol-theater-live{display:flex;align-items:center;gap:10px}
.sol-theater-live i{width:7px;height:7px;border-radius:50%;background:#17a673;box-shadow:0 0 10px rgba(23,166,115,.55)}
.sol-theater-live b{padding-left:10px;border-left:1px solid #dfe8ee;color:#9fb0bd}
.sol-theater-state{display:flex;align-items:center;gap:12px}
.sol-theater-state span b{color:#d20b25}
.sol-theater-state button{min-height:34px;padding:0 12px;display:flex;align-items:center;gap:8px;border:1px solid #d8e3ec;border-radius:8px;background:#fff;color:#42586a;cursor:pointer;font-size:9px;font-weight:900;font-family:inherit;letter-spacing:.08em}
.sol-theater-state button:hover{border-color:#9fb7c8;color:#132b3d}
.sol-theater-state button i{color:#d20b25;font-style:normal}
.sol-theater-stage{position:relative;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(320px,.88fr);gap:26px;padding:26px;min-height:480px}
.sol-theater-gl{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.sol-theater-sim{position:relative;z-index:1;min-height:430px;border-radius:18px;overflow:hidden;background:#0b1018;border:1px solid #142130;box-shadow:0 24px 56px rgba(25,55,80,.20)}
.sol-theater-sim .tsim{height:100%}
.sol-theater-copy{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:center;gap:14px;min-width:0;padding-right:8px}
.sol-theater-kicker{font:800 10px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.14em;color:#d20b25}
.sol-theater-copy h3{margin:0;font-size:clamp(24px,2.4vw,34px);letter-spacing:-.04em;color:#101f2c}
.sol-theater-copy p{margin:0;color:#5d7284;font-size:14px;line-height:1.8}
.sol-theater-flow{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:4px}
.sol-theater-flow span{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid #dfe9f0;border-radius:10px;background:#f8fbfd;color:#2c4356;font-size:12px;font-weight:700}
.sol-theater-flow span i{font-style:normal;color:#d20b25;font:800 9px/1 ui-monospace,SFMono-Regular,Menlo,monospace}
.sol-theater-link{margin-top:6px;align-self:flex-start;color:#c40f28;font-size:13px;font-weight:800;text-decoration:none;border-bottom:1px solid rgba(210,11,37,.35);padding-bottom:2px}
.sol-theater-link:hover{color:#8f0a1d}
.sol-theater-timeline{margin:0;padding:0;display:grid;grid-template-columns:repeat(8,1fr);list-style:none;border-top:1px solid #e9eff4;background:#fbfdfe}
.sol-theater-timeline li{min-width:0}
.sol-theater-timeline button{position:relative;width:100%;min-height:88px;padding:17px 12px 14px;display:grid;grid-template-columns:auto 1fr;gap:6px 9px;text-align:left;border:0;border-right:1px solid #edf2f6;background:transparent;color:#7d90a0;cursor:pointer;transition:background .25s,color .25s;font-family:inherit}
.sol-theater-timeline li:last-child button{border-right:0}
.sol-theater-timeline button:hover{background:#f2f7fa;color:#28414f}
.sol-theater-timeline button>span{grid-row:1/3;font:900 9px/1 ui-monospace,SFMono-Regular,Menlo,monospace;color:#a9bac6}
.sol-theater-timeline button>b{font-size:11px;line-height:1.35;letter-spacing:-.02em}
.sol-theater-timeline button>small{font-size:8.5px;color:#9fb0bd}
.sol-theater-timeline button>i{position:absolute;left:0;right:0;top:0;height:2px;background:#e4ecf1;overflow:hidden}
.sol-theater-timeline button>i::after{content:"";display:block;width:100%;height:100%;background:#d20b25;transform:scaleX(0);transform-origin:left;animation-duration:inherit}
.sol-theater-timeline button>i.run::after{animation-name:stProgress;animation-timing-function:linear;animation-fill-mode:both}
.sol-theater-timeline button.active{background:linear-gradient(180deg,rgba(210,11,37,.06),transparent);color:#101f2c}
.sol-theater-timeline button.active>span{color:#d20b25}
@keyframes stProgress{to{transform:scaleX(1)}}
@keyframes stIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.sol-theater.st-swap .sol-theater-copy,.sol-theater.st-swap .sol-theater-sim{animation:stIn .5s ease both}
@media(max-width:1100px){.sol-theater-head{grid-template-columns:1fr;gap:22px}}
@media(max-width:1000px){
  .sol-theater-stage{grid-template-columns:1fr;min-height:0}
  .sol-theater-sim{min-height:340px}
  .sol-theater-timeline{grid-template-columns:repeat(4,1fr)}
  .sol-theater-timeline button{border-bottom:1px solid #edf2f6}
}
@media(max-width:640px){
  .sol-theater{padding:70px 0 64px}
  .sol-theater-timeline{grid-template-columns:repeat(2,1fr)}
  .sol-theater-flow{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  .sol-theater.st-swap .sol-theater-copy,.sol-theater.st-swap .sol-theater-sim{animation:none!important}
  .sol-theater-timeline button>i.run::after{animation:none!important}
}

/* ── 서비스 프로세스 스크롤 시네마 — 뷰포트 풀스크린 재구성 ── */
.svc-cine{position:relative}
.svc-cine.is-active{width:100vw;margin-left:calc(50% - 50vw)}
.svc-cine.is-active .svc-cine-sticky{position:sticky;top:0;height:var(--cine-vh,100vh);overflow:hidden;overflow:clip}
.svc-cine.is-active .svc-steps{position:relative;height:100%;display:block;transform-origin:50% 46%;will-change:transform;background:linear-gradient(180deg,#070a10,#0a0e17)}
.svc-cine.is-active .svc-steps::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(rgba(127,146,172,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(127,146,172,.05) 1px,transparent 1px);
  background-size:46px 46px}
.svc-cine.is-active:not(.is-entered) .svc-steps{border-radius:30px;overflow:hidden}
.svc-cine.is-entered .svc-steps{will-change:auto}
.svc-cine.is-active .spb{position:absolute;left:0;right:0;top:0;margin:0;width:100%;max-width:none;border-radius:0;border:0;box-shadow:none;will-change:transform,opacity}
.svc-cine.is-active .cine-prep{opacity:0;transform:translateY(28px);transition:opacity .32s ease,transform .4s cubic-bezier(.2,.75,.2,1)}
.svc-cine.is-active .cine-prep.cine-in{opacity:1;transform:none}
.svc-cine.is-active .cine-fade{opacity:0;transition:opacity .32s ease}
.svc-cine.is-active .cine-fade.cine-in{opacity:1}

/* STEP 01 — 클러스터링 스테이지가 화면 전체, 카드는 그 위에 순차 등장 */
.svc-cine.is-active .spb-1{height:var(--cine-vh,100vh);padding:0;overflow:hidden;background:#070a10}
.svc-cine.is-active .spb-1 .sp1-grid{position:static;display:block;height:auto}
.svc-cine.is-active .spb-1 .sp1-stage{position:absolute;inset:0;height:auto;border:0;border-radius:0;box-shadow:none;z-index:1}
.svc-cine.is-active .spb-1 .spb-head{position:absolute;z-index:6;left:4vw;top:calc(var(--cine-top,92px) + 3vh);margin:0;max-width:580px;display:block;pointer-events:none}
.svc-cine.is-active .spb-1 .spb-head h3{color:#fff;font-size:clamp(28px,3.2vw,46px)}
.svc-cine.is-active .spb-1 .spb-desc{color:#9fb2c6}
.svc-cine.is-active .spb-1 .spb-meta{display:none}
.svc-cine.is-active .spb-1 .sp1-cards{position:absolute;z-index:6;left:4vw;bottom:4vh;width:min(342px,88vw);display:flex;flex-direction:column;justify-content:flex-end;gap:10px;max-height:calc(var(--cine-vh,100vh) - var(--cine-top,92px) - 3vh - 210px);overflow:hidden}
.svc-cine.is-active .spb-1 .sp1-card{flex:none;padding:14px 16px;background:rgba(10,15,24,.72);border:1px solid rgba(120,150,190,.22);backdrop-filter:blur(12px)}
.svc-cine.is-active .spb-1 .sp1-shead h4{color:#f2f6fb}
.svc-cine.is-active .spb-1 .sp1-cap{color:#93a5ba}
.svc-cine.is-active .spb-1 .sp1-mgr{background:rgba(18,25,38,.72);border-color:rgba(120,150,190,.18)}
.svc-cine.is-active .spb-1 .sp1-avatar{background:#101827;color:#c9d6e4}
.svc-cine.is-active .spb-1 .sp1-mname{color:#eef3f9}
.svc-cine.is-active .spb-1 .sp1-mrole{color:#7f92a6}
.svc-cine.is-active .spb-1 .sp1-pill{background:rgba(18,25,38,.72);border-color:rgba(120,150,190,.2);color:#c9d6e4}
.svc-cine.is-active .spb-1 .sp1-ck{background:rgba(18,25,38,.72);border-color:rgba(120,150,190,.18);color:#dbe5f0}
.svc-cine.is-active .spb-1 .sp1-cap-b{color:#93a5ba}
.svc-cine.is-active .spb .spb-chip{color:#ff8296;background:rgba(255,63,90,.12);border-color:rgba(255,80,110,.35)}
.svc-cine.is-active .spb .spb-chip::before{background:#ff3f5a;box-shadow:0 0 8px rgba(255,63,90,.7)}
.svc-cine.is-active .spb-1 .sp1-num{color:#ff8296;background:rgba(255,63,90,.12)}
.svc-cine.is-active .spb-1 .sp1-notice{top:calc(var(--cine-top,92px) + 58px)}   /* 우상단 HUD 아래 */
.svc-cine.is-active .spb-1 .sp1-labA{left:15%;top:31%}
.svc-cine.is-active .spb-1 .sp1-labB{top:max(22%,calc(var(--cine-top,92px) + 78px))}
.svc-cine.is-active .spb-1 .sp1-profile.pf1{left:27%;top:46%}
.svc-cine.is-active .spb-1 .sp1-profile.pf2{left:58%;top:44%}
.svc-cine.is-active .spb-1 .sp1-profile.pf3{left:62%;top:74%}
@media (max-height:860px){
  .svc-cine.is-active .spb-1 .sp1-cards{gap:8px}
  .svc-cine.is-active .spb-1 .sp1-card{padding:10px 14px}
  .svc-cine.is-active .spb-1 .sp1-cap{display:none}
  .svc-cine.is-active .spb-1 .sp1-avatar{width:38px;height:38px}
  .svc-cine.is-active .spb-1 .spb-desc{display:none}
  .svc-cine.is-active .spb-1 .sp1-profile.pf1{display:none}
}



/* STEP 03 — 다크 터널 위에 흰 보고서 시트 (문서만 밝게) */
.svc-cine.is-active .spb-3{min-height:var(--cine-vh,100vh);padding:calc(var(--cine-top,92px) + 2vh) 0 6vh;background:transparent}
.svc-cine.is-active .spb-3 .spb-head h3{color:#fff}
.svc-cine.is-active .spb-3 .spb-desc{color:#9fb2c6}
.svc-cine.is-active .spb-3 .sp3-kicker{color:#7f92a6}
.svc-cine.is-active .spb-3 .sp3-trail .s{color:#8fa5bd;border-color:rgba(120,150,190,.24);background:rgba(10,15,24,.7)}
.svc-cine.is-active .spb-3 .sp3-trail .s.cur{color:#ff8296;border-color:rgba(255,80,110,.4);background:rgba(255,63,90,.1)}
.svc-cine.is-active .spb-3 .sp3-trail .arr{color:#44536a}
.svc-cine.is-active .spb-3 .sp3r-sheet{box-shadow:0 40px 110px rgba(0,0,0,.55)}
.svc-cine.is-active .spb-3 .spb-head{width:min(1160px,92vw);margin:0 auto 20px}
.svc-cine.is-active .spb-3 .sp3r-sheet{width:min(1160px,94vw);margin:0 auto}

/* 풀스크린 시네마 잠금 중에는 하단 고정 CTA 도크가 표적 카드·보고서·요약 칩을 덮지 않도록 내린다 */
.gc-dock{transition:opacity .3s ease,transform .3s ease}
body.svc-cine-locked .gc-dock,body.tc-cine-locked .gc-dock{opacity:0;transform:translateY(24px);pointer-events:none}

/* 진행 HUD */
.svc-cine-hud{position:absolute;left:auto;right:4vw;top:16px;z-index:30;transform:none;display:flex;align-items:center;gap:14px;padding:9px 16px;border:1px solid #dbe7ef;border-radius:999px;background:rgba(255,255,255,.85);backdrop-filter:blur(10px);box-shadow:0 12px 32px rgba(40,80,110,.13);opacity:0;transition:opacity .45s;pointer-events:none;white-space:nowrap}
.svc-cine.is-locked .svc-cine-hud{opacity:1}
.svc-cine.is-active .spb-3 .sp3-trail{display:none}
.svc-cine-hud-cap{font:800 9px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.16em;color:#c40f28}
.svc-cine-hud [data-cine-dot]{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:750;color:#93a5b3;transition:color .3s}
.svc-cine-hud [data-cine-dot] i{width:16px;height:3px;border-radius:2px;background:#dde8ee;transition:background .3s}
.svc-cine-hud [data-cine-dot].on{color:#132b3d}
.svc-cine-hud [data-cine-dot].on i{background:#d20b25}
.svc-cine-hud [data-cine-dot].done i{background:rgba(210,11,37,.4)}
@media(max-width:880px){
  .svc-cine.is-active .spb-1 .spb-head{max-width:none;right:4vw}
  .svc-cine.is-active .spb-1 .sp1-cards{width:calc(100% - 8vw)}
  .svc-cine.is-active .spb-1 .sp1-target{bottom:auto;top:calc(var(--cine-top,92px) + 150px)}
  .svc-cine.is-active .spb-1 .sp1-labB,
  .svc-cine.is-active .spb-1 .sp1-profile.pf1,
  .svc-cine.is-active .spb-1 .sp1-notice{display:none}
}
@media(max-width:640px){
  .svc-cine-hud{gap:8px;padding:8px 10px;right:3vw}
  .svc-cine-hud-cap{display:none}
  .svc-cine-hud [data-cine-dot]{font-size:0;gap:0}
  .svc-cine-hud [data-cine-dot] i{width:14px}
  .svc-cine-hud [data-cine-dot]{font-size:10px}
  .svc-cine-hud [data-cine-dot] i{width:10px}
}

/* ── 파일 인텔리전스: 드롭존 + 사례 일치 카드 ─────────────── */
.hybrid-analysis-module .svc-intel-drop{position:relative;display:grid;justify-items:center;gap:8px;padding:22px 16px;border:1.5px dashed rgba(79,216,255,.34);border-radius:16px;background:rgba(79,216,255,.05);text-align:center;transition:border-color .2s,background .2s}
.hybrid-analysis-module .svc-intel-drop.is-over{border-color:#4fd8ff;background:rgba(79,216,255,.12)}
.hybrid-analysis-module .svc-intel-drop:focus-within{border-color:#4fd8ff;background:rgba(79,216,255,.12)}
.hybrid-analysis-module .svc-intel-drop input:focus-visible + label{outline:2px solid #4fd8ff;outline-offset:2px}
.hybrid-analysis-module .svc-intel-drop b{font-size:14px;color:#f1f4f8}
.hybrid-analysis-module .svc-intel-drop>span{font-size:11px;line-height:1.6;color:#8e98aa}
.hybrid-analysis-module .svc-intel-drop input{position:absolute;inset:0;opacity:0;cursor:pointer}
.hybrid-analysis-module .svc-intel-drop label{position:relative;z-index:1;padding:7px 14px;border:1px solid rgba(79,216,255,.4);border-radius:999px;color:#9fe4ff;font-size:11px;font-weight:800;pointer-events:none}
.hybrid-analysis-module .svc-intel-pick{margin:0;font-size:11px;color:#8e98aa;min-height:14px}
.hybrid-analysis-module .svc-intel-hit{display:grid;grid-template-columns:44px 1fr auto;gap:12px;align-items:center;margin:0 22px 18px;padding:12px 14px;border:1px solid rgba(255,47,77,.4);border-radius:12px;background:rgba(255,47,77,.08)}
.hybrid-analysis-module .svc-intel-hit[hidden]{display:none}
.hybrid-analysis-module .svc-intel-hit img{width:44px;height:44px;border-radius:10px;object-fit:cover;background:#0a0d14}
.hybrid-analysis-module .svc-intel-hit b{display:block;font-size:13.5px;color:#ffccd4}
.hybrid-analysis-module .svc-intel-hit em{display:block;margin-top:2px;font-style:normal;font-size:10.5px;color:#ff8b9c}
.hybrid-analysis-module .svc-intel-hit p{margin:4px 0 0;font-size:10.5px;color:#c9ced8}
.hybrid-analysis-module .svc-intel-cta{padding:8px 12px;border-radius:9px;background:#d20b25;color:#fff;font-size:11px;font-weight:800;text-decoration:none;white-space:nowrap}
@media(max-width:640px){.hybrid-analysis-module .svc-intel-hit{grid-template-columns:36px 1fr;margin:0 14px 14px}.hybrid-analysis-module .svc-intel-cta{grid-column:2;justify-self:start}}

/* ── STEP 01: 동일 인프라 칩 + 가해자 프로파일 카드 (네온) ── */
.sp1-infras{position:absolute;inset:0;z-index:5;pointer-events:none}
.sp1-infra{position:absolute;display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:7px;
  font:800 9.5px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.05em;color:#dfe8f4;
  background:rgba(8,13,22,.8);border:1px solid rgba(120,150,190,.28);backdrop-filter:blur(6px);
  opacity:0;transform:translate(-50%,8px);transition:opacity .45s,transform .45s}
.sp1-infra i{width:5px;height:5px;border-radius:50%}
.sp1-stage.is-clustered .sp1-infra{opacity:1;transform:translate(-50%,0)}
.sp1-infra.if1{left:15%;top:55%;border-color:rgba(255,71,102,.42)}.sp1-infra.if1 i{background:#ff4766;box-shadow:0 0 8px #ff4766}
.sp1-infra.if2{left:36%;top:81%;border-color:rgba(168,111,255,.42);transition-delay:.1s}.sp1-infra.if2 i{background:#a86fff;box-shadow:0 0 8px #a86fff}
.sp1-infra.if3{left:55%;top:43%;border-color:rgba(102,160,255,.42);transition-delay:.2s}.sp1-infra.if3 i{background:#66a0ff;box-shadow:0 0 8px #66a0ff}
.sp1-infra.if4{left:73%;top:76%;border-color:rgba(66,235,209,.42);transition-delay:.3s}.sp1-infra.if4 i{background:#42ebd1;box-shadow:0 0 8px #42ebd1}
.sp1-infra.if5{left:87%;top:49%;border-color:rgba(255,184,64,.42);transition-delay:.4s}.sp1-infra.if5 i{background:#ffb840;box-shadow:0 0 8px #ffb840}
.sp1-profiles{position:absolute;inset:0;z-index:6;pointer-events:none}
.sp1-profile{position:absolute;width:192px;padding:10px 12px;border-radius:12px;
  background:rgba(8,13,22,.84);border:1px solid rgba(120,150,190,.26);backdrop-filter:blur(8px);
  box-shadow:0 14px 34px rgba(0,0,0,.4);opacity:0;transform:translateY(12px);transition:opacity .5s,transform .5s}
.sp1-stage.is-clustered .sp1-profile{opacity:1;transform:none}
.sp1-profile header{display:flex;align-items:center;gap:9px;padding-bottom:8px;border-bottom:1px solid rgba(120,150,190,.16)}
.sp1-profile header img{width:26px;height:26px;border-radius:7px;background:#0a0d14}
.sp1-profile header b{display:block;font-size:13px;color:#fff}
.sp1-profile header span{display:block;margin-top:3px;font:700 9.5px/1 ui-monospace,SFMono-Regular,Menlo,monospace;color:#7f92a6}
.sp1-profile dl{margin:8px 0 0;display:grid;gap:5px}
.sp1-profile dl div{display:flex;justify-content:space-between;gap:8px;font:700 9.5px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace}
.sp1-profile dt{color:#66788d}
.sp1-profile dd{margin:0;color:#cfdcea}
.sp1-profile dd.hot{color:#ff4766;text-shadow:0 0 12px rgba(255,71,102,.5)}
.sp1-profile.pf1{left:4%;top:13%;border-color:rgba(255,71,102,.35);transition-delay:.15s}
.sp1-profile.pf2{left:46%;top:5%;border-color:rgba(102,160,255,.35);transition-delay:.3s}
.sp1-profile.pf3{left:62%;top:74%;border-color:rgba(66,235,209,.35);transition-delay:.45s}
@media(max-width:880px){
  .sp1-profile.pf2,.sp1-profile.pf3{display:none}
  .sp1-infra.if2,.sp1-infra.if4,.sp1-infra.if5{display:none}
}

/* 비-cine 폴백(작은 스테이지)에서는 과밀 오버레이를 줄인다 */
.svc-cine:not(.is-active) .sp1-profile{display:none}
.svc-cine:not(.is-active) .sp1-infra.if1,
.svc-cine:not(.is-active) .sp1-infra.if2,
.svc-cine:not(.is-active) .sp1-infra.if4,
.svc-cine:not(.is-active) .sp1-infra.if5{display:none}

/* ── STEP 01: 클러스터별 악성앱 실행화면 카드 ─────────────── */
.sp1-shots{position:absolute;inset:0;z-index:5;pointer-events:none}
.sp1-shot{position:absolute;width:152px;margin:0;padding:8px 9px 9px;border-radius:11px;
  background:rgba(8,13,22,.86);border:1px solid rgba(120,150,190,.26);backdrop-filter:blur(8px);
  box-shadow:0 12px 30px rgba(0,0,0,.42);opacity:0;transform:translateY(10px);transition:opacity .5s,transform .5s}
.sp1-stage.is-clustered .sp1-shot{opacity:1;transform:none}
.sp1-shot figcaption{display:flex;align-items:center;gap:5px;font:800 9.5px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.06em;color:#ff8296}
.sp1-shot figcaption i{width:4px;height:4px;border-radius:50%;background:#ff3f5a;box-shadow:0 0 6px rgba(255,63,90,.8)}
.sp1-shot-app{display:flex;align-items:center;gap:7px;margin-top:7px}
.sp1-shot-app img{width:22px;height:22px;border-radius:6px;background:#0a0d14}
.sp1-shot-app b{font-size:11px;color:#eef3f9;letter-spacing:-.02em}
.sp1-shot-scr{position:relative;margin-top:7px;padding:7px 8px 8px;border-radius:7px;background:#0a0f1a;border:1px solid rgba(120,150,190,.16);display:grid;gap:4px}
.sp1-shot-scr span{display:block;height:4px;width:var(--w,70%);border-radius:2px;background:linear-gradient(90deg,rgba(120,160,220,.55),rgba(120,160,220,.12))}
.sp1-shot-scr em{position:absolute;right:6px;bottom:5px;font:800 9.5px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.14em;color:#42ebd1;font-style:normal}
.sp1-shot.sh1{left:2.5%;top:27%;border-color:rgba(255,71,102,.4);transition-delay:.1s}
.sp1-shot.sh2{left:45%;top:76%;border-color:rgba(168,111,255,.4);transition-delay:.2s}
.sp1-shot.sh3{left:66%;top:11%;border-color:rgba(102,160,255,.4);transition-delay:.3s}
.sp1-shot.sh4{left:78%;top:52%;border-color:rgba(66,235,209,.4);transition-delay:.4s}
.sp1-shot.sh5{left:87.5%;top:12%;border-color:rgba(255,184,64,.4);transition-delay:.5s}
@media(max-width:880px){
  .sp1-shot{width:132px}
  .sp1-shot.sh2,.sp1-shot.sh3,.sp1-shot.sh4,.sp1-shot.sh5{display:none}
  .sp1-shot.sh1{left:4%;top:56%}
}
.svc-cine:not(.is-active) .sp1-shot{display:none}
.svc-cine:not(.is-active) .sp1-shot.sh1{display:block;left:3%;top:62%}

/* ── 리뷰 반영: 시네마 모드 카드 충돌 회피 ── */
.svc-cine.is-active .spb-1 .sp1-shot.sh1{top:40%}
.svc-cine.is-active .spb-1 .sp1-shot.sh5{top:max(16%,calc(var(--cine-top,92px) + 48px))}

/* ==== /assets/css/tech-cine.css?v=20260905c ==== */
/* ============================================================
   TECH CINEMA — 공식 솔루션 8종 기술 스크롤 시네마 (2026-09-02)
   "보이지 않는 대응 기술이 실제 동작 화면으로 재생됩니다" 섹션을
   서비스 프로세스와 같은 뷰포트 풀스크린 스크롤 시네마로 재구성.
   접두사: tc-(프레임) · tsw-(창 크롬 키트) · ts-(씬 내부는 각 씬 파일)
   ============================================================ */

.sol-theater.tc{padding:96px 0 0;border-bottom:0;background:linear-gradient(180deg,#fbfdfe,#eef5f9)}
.sol-theater.tc .sol-theater-head{margin-bottom:34px}

/* ── 프레임 토큰 ── */
.tc-cine{
  --tc-bg:#070a10; --tc-panel:#0f141d; --tc-panel2:#0a0f18; --tc-line:rgba(120,150,190,.22); --tc-line2:rgba(120,150,190,.12);
  --tc-txt:#eef3f9; --tc-dim:#9fb2c6; --tc-mute:#66788d;
  --tc-red:#ff3f5a; --tc-blue:#5ab0ff; --tc-cyan:#42ebd1; --tc-amber:#ffb840; --tc-violet:#a86fff; --tc-green:#39d98a;
  --tc-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  position:relative;color:var(--tc-txt);-webkit-font-smoothing:antialiased;
}
.tc-cine.is-active{width:100vw;margin-left:calc(50% - 50vw)}
.tc-cine.is-active .tc-sticky{position:sticky;top:0;height:var(--cine-vh,100vh);overflow:hidden;overflow:clip}
.tc-frame{position:relative;height:100%;background:linear-gradient(180deg,#070a10,#0a0e17);transform-origin:50% 46%;will-change:transform}
.tc-cine.is-active:not(.is-entered) .tc-frame{border-radius:30px;overflow:hidden}
.tc-cine.is-entered .tc-frame{will-change:auto}
.tc-grid{position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(rgba(127,146,172,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(127,146,172,.05) 1px,transparent 1px);
  background-size:46px 46px}
.tc-vig{position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(120% 95% at 50% 42%,transparent 55%,rgba(5,7,12,.7) 100%)}

/* ── 씬 컨테이너 ── */
.tc-scenes{position:absolute;inset:0;z-index:2}
.tc-scene{position:absolute;inset:0;opacity:0;visibility:hidden;will-change:opacity}
.tc-scene.is-on{visibility:visible}
/* 씬이 자유롭게 쓰는 스테이지 박스: 헤더 아래 ~ HUD 위 */
.tc-stage{position:absolute;left:4vw;right:4vw;top:calc(var(--cine-top,92px) + 2vh);bottom:74px}

/* ── 상단 좌측 기술 카피 (씬 공통 오버레이) ── */
.tc-head{position:absolute;z-index:6;left:4vw;top:calc(var(--cine-top,92px) + 2.4vh);width:min(500px,60vw);pointer-events:none;transition:opacity .18s,transform .18s}
.tc-head.is-swap{opacity:0;transform:translateY(8px);transition:none}
.tc-kicker{display:inline-flex;align-items:center;gap:8px;font:800 10px/1 var(--tc-mono);letter-spacing:.16em;color:#ff8296}
.tc-kicker::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--tc-red);box-shadow:0 0 8px rgba(255,63,90,.8)}
.tc-kicker b{color:#8fa5bd;font-weight:800;margin-left:2px}
.tc-head h3{margin:12px 0 0;font-size:clamp(26px,2.9vw,40px);line-height:1.12;letter-spacing:-.04em;color:#fff}
.tc-head p{margin:10px 0 0;font-size:13px;line-height:1.7;color:var(--tc-dim);max-width:48ch}
.tc-flow{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.tc-flow span{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border:1px solid var(--tc-line);border-radius:8px;background:rgba(8,13,22,.7);font-size:11px;font-weight:700;color:#cfdcea;backdrop-filter:blur(6px)}
.tc-flow span i{font:800 9.5px/1 var(--tc-mono);color:#ff8296;font-style:normal}
.tc-link{display:inline-block;margin-top:12px;pointer-events:auto;font-size:12px;font-weight:800;color:#ffb3bf;text-decoration:none;border-bottom:1px solid rgba(255,80,110,.4);padding-bottom:2px}
.tc-link:hover{color:#fff}
@media (max-height:820px){.tc-head p{display:none}.tc-head h3{font-size:clamp(24px,2.5vw,32px)}}

/* ── 하단 HUD ── */
.tc-hud{position:absolute;left:50%;bottom:18px;z-index:30;transform:translateX(-50%);display:flex;align-items:center;gap:10px;padding:9px 14px;border:1px solid rgba(120,150,190,.24);border-radius:999px;background:rgba(8,13,22,.78);backdrop-filter:blur(10px);opacity:0;transition:opacity .45s;pointer-events:none;white-space:nowrap}
.tc-cine.is-locked .tc-hud{opacity:1}
.tc-hud-cap{font:800 9.5px/1 var(--tc-mono);letter-spacing:.16em;color:#ff8296;margin-right:4px}
.tc-hud [data-tc-dot]{display:flex;align-items:center;gap:6px;font:800 10px/1 var(--tc-mono);color:#66788d;transition:color .3s}
.tc-hud [data-tc-dot] i{width:14px;height:3px;border-radius:2px;background:rgba(120,150,190,.25);transition:background .3s}
.tc-hud [data-tc-dot].on{color:#fff}
.tc-hud [data-tc-dot].on i{background:var(--tc-red);box-shadow:0 0 8px rgba(255,63,90,.6)}
.tc-hud [data-tc-dot].done i{background:rgba(255,63,90,.4)}
.tc-hud-title{font-size:11px;font-weight:800;color:#cfdcea;margin-left:6px;padding-left:10px;border-left:1px solid rgba(120,150,190,.24)}

/* ── 폴백(JS 실패·reduced-motion): 세로 나열 ── */
.tc-cine:not(.is-active) .tc-sticky{height:auto}
.tc-cine:not(.is-active) .tc-frame{height:auto;border-radius:28px;overflow:hidden;padding:24px 0}
.tc-cine:not(.is-active) .tc-scenes{position:relative;display:grid;gap:22px;padding:0 24px}
.tc-cine:not(.is-active) .tc-scene{position:relative;opacity:1;visibility:visible;min-height:560px;border:1px solid var(--tc-line2);border-radius:18px;overflow:hidden;background:rgba(10,15,24,.5)}
.tc-cine:not(.is-active) .tc-scene::before{content:attr(data-tc-label);position:absolute;left:18px;top:14px;z-index:9;font:800 11px/1 var(--tc-mono);letter-spacing:.12em;color:#ff8296}
.tc-cine:not(.is-active) .tc-stage{top:44px;left:18px;right:18px;bottom:18px}
.tc-cine:not(.is-active) .tc-head,.tc-cine:not(.is-active) .tc-hud{display:none}

/* ════════════════════════════════════════════════════════════
   씬 키트 — 모든 씬이 공유하는 창 크롬·칩·라벨·커서
   ════════════════════════════════════════════════════════════ */
.tsw{position:relative;display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--tc-panel);border:1px solid rgba(120,150,190,.24);border-radius:12px;overflow:hidden;
  box-shadow:0 34px 80px rgba(0,0,0,.6),0 6px 20px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.045)}
.tsw-bar{display:flex;align-items:center;gap:10px;height:32px;padding:0 12px;flex:none;background:linear-gradient(#1d2331,#181d29);border-bottom:1px solid rgba(120,150,190,.18)}
.tsw-lights{display:flex;gap:6px}
.tsw-lights i{width:10px;height:10px;border-radius:50%}
.tsw-lights .r{background:#c94b55}.tsw-lights .y{background:#a8873f}.tsw-lights .g{background:#3f8a5f}
.tsw-ttl{font-size:12px;font-weight:700;color:#c7d0dd;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tsw-ttl em{font-style:normal;color:var(--tc-red)}
.tsw-btns{margin-left:auto;display:flex;gap:10px;color:#5c6675;font-size:11px;font-family:var(--tc-mono)}
.tsw-mbar{display:flex;gap:16px;height:22px;align-items:center;padding:0 14px;flex:none;font-size:11px;color:#7c8798;border-bottom:1px solid rgba(120,150,190,.14);background:#161a23}
.tsw-body{flex:1;min-height:0;position:relative;overflow:hidden}
.tsw-sbar{margin-top:auto;display:flex;align-items:center;gap:14px;height:25px;padding:0 12px;flex:none;font-size:10.5px;color:#7c8798;border-top:1px solid rgba(120,150,190,.14);background:#141821;font-family:var(--tc-mono)}
.tsw-sbar b{color:#c7d0dd;font-weight:600}
.tsw-sbar .rd{color:var(--tc-red)}
.tsw-badge{margin-left:auto;font-family:inherit;font-size:9.5px;color:#8a93a3;border:1px dashed #3a4356;border-radius:999px;padding:1px 8px;white-space:nowrap}
/* 브라우저 크롬(URL 바) 변형 */
.tsw-url{display:flex;align-items:center;gap:8px;height:30px;padding:0 10px;flex:none;background:#12171f;border-bottom:1px solid rgba(120,150,190,.14)}
.tsw-url span{flex:1;height:20px;display:flex;align-items:center;padding:0 10px;border-radius:6px;background:#0a0e15;border:1px solid rgba(120,150,190,.16);font:600 10.5px/1 var(--tc-mono);color:#9fb2c6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tsw-url span b{color:#ff8296;font-weight:700}
.tsw-url i{width:12px;height:12px;border-radius:3px;border:1px solid #3a4356}

.tc-glass{background:rgba(8,13,22,.84);border:1px solid var(--tc-line);border-radius:12px;backdrop-filter:blur(8px);box-shadow:0 14px 34px rgba(0,0,0,.4)}
.tc-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:7px;font:800 9px/1 var(--tc-mono);letter-spacing:.06em;color:#dfe8f4;background:rgba(8,13,22,.8);border:1px solid var(--tc-line);white-space:nowrap}
.tc-chip i{width:5px;height:5px;border-radius:50%;background:var(--tc-blue);box-shadow:0 0 8px var(--tc-blue)}
.tc-chip.red{border-color:rgba(255,71,102,.42);color:#ffd7dd}.tc-chip.red i{background:var(--tc-red);box-shadow:0 0 8px var(--tc-red)}
.tc-chip.cyan{border-color:rgba(66,235,209,.42)}.tc-chip.cyan i{background:var(--tc-cyan);box-shadow:0 0 8px var(--tc-cyan)}
.tc-chip.amber{border-color:rgba(255,184,64,.42)}.tc-chip.amber i{background:var(--tc-amber);box-shadow:0 0 8px var(--tc-amber)}
.tc-chip.green{border-color:rgba(57,217,138,.42);color:#bfe8d2}.tc-chip.green i{background:var(--tc-green);box-shadow:0 0 8px var(--tc-green)}
.tc-lab{position:absolute;z-index:5;pointer-events:none;padding:7px 12px 8px;border-radius:10px;background:rgba(13,16,21,.78);border:1px solid var(--tc-line);backdrop-filter:blur(4px)}
.tc-lab .t{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700;letter-spacing:-.2px;color:#dfe8f4}
.tc-lab .t i{width:6px;height:6px;border-radius:50%;background:var(--tc-blue);box-shadow:0 0 8px var(--tc-blue)}
.tc-lab .s{margin-top:3px;font:600 9.5px/1.3 var(--tc-mono);color:#8b98aa}
.tc-lab.red{border-color:rgba(255,56,87,.42)}.tc-lab.red .t{color:#ff9aab}.tc-lab.red .t i{background:var(--tc-red);box-shadow:0 0 8px var(--tc-red)}
.tc-tag{display:inline-block;padding:2px 6px;border-radius:4px;font:800 9.5px/1.3 var(--tc-mono);letter-spacing:.06em;color:var(--tc-red);border:1px solid rgba(255,56,87,.5);background:rgba(255,56,87,.1);vertical-align:1px}
.tc-tag.ok{color:var(--tc-green);border-color:rgba(57,217,138,.5);background:rgba(57,217,138,.1)}
.tc-tag.blue{color:var(--tc-blue);border-color:rgba(90,176,255,.5);background:rgba(90,176,255,.1)}
.tc-stamp{display:inline-block;font-size:18px;font-weight:900;letter-spacing:.28em;color:var(--tc-red);border:2px solid var(--tc-red);border-radius:6px;padding:5px 12px 5px 18px;transform:rotate(-9deg);
  box-shadow:0 0 22px rgba(255,56,87,.28),inset 0 0 14px rgba(255,56,87,.12)}
.tc-stamp.ok{color:var(--tc-green);border-color:var(--tc-green);box-shadow:0 0 22px rgba(57,217,138,.28),inset 0 0 14px rgba(57,217,138,.12)}
.tc-note{position:absolute;z-index:5;top:12px;right:12px;font-size:10px;letter-spacing:.02em;color:#8b98aa;background:rgba(13,16,21,.72);border:1px solid #2a3342;border-radius:999px;padding:4px 10px;pointer-events:none}
.tc-cursor{position:absolute;z-index:40;width:34px;height:38px;pointer-events:none;opacity:0;transition:transform .55s cubic-bezier(.2,.75,.2,1),opacity .3s;filter:drop-shadow(0 6px 10px rgba(0,0,0,.6))}
.tc-cursor img{width:100%;height:100%;display:block}
.tc-cursor.is-on{opacity:1}
.tc-cursor::after{content:"";position:absolute;left:4px;top:2px;width:14px;height:14px;border-radius:50%;border:2px solid rgba(90,176,255,.9);opacity:0;transform:scale(.4)}
.tc-cursor.is-click::after{animation:tcClick .5s ease-out}
@keyframes tcClick{0%{opacity:1;transform:scale(.4)}100%{opacity:0;transform:scale(2.6)}}
@keyframes tcBlink{0%,100%{opacity:1}50%{opacity:.25}}
@keyframes tcScan{0%{transform:translateY(-100%)}100%{transform:translateY(100%)}}
@keyframes tcPulse{0%{transform:scale(.4);opacity:.9}100%{transform:scale(1.6);opacity:0}}
@keyframes tcRowIn{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}
.tc-blink{animation:tcBlink 1.2s ease-in-out infinite}
.tc-scanline{position:absolute;left:0;right:0;top:0;height:100%;pointer-events:none;background:linear-gradient(180deg,transparent 0%,rgba(90,176,255,.0) 40%,rgba(90,176,255,.22) 50%,transparent 60%);animation:tcScan 1.6s linear infinite}

@media (max-width:880px){
  .tc-head{width:calc(100% - 8vw)}
  .tc-hud-title{display:none}
  .tc-hud [data-tc-dot]{gap:4px}
  .tc-hud [data-tc-dot] i{width:9px}
}
@media (prefers-reduced-motion:reduce){
  .tc-cine *{animation:none!important}
}


/* ═══ SCENE MODULE: A-decompile ═══ */
/* ── TC SCENE 0 · 악성 파일·APK 역분석 (tcsA) ───────────────── */
.tcsA .aWrap{position:absolute;inset:0;display:flex;gap:16px;align-items:stretch}

/* 좌측: 증거 트레이 — 우측 분석 창이 42% 지점(≈카피 세이프 520px 밖)에서 시작하도록 폭 고정 */
.tcsA .aTray{position:relative;width:calc(42% - 16px);min-width:280px;max-width:520px;margin-top:clamp(205px,32vh,285px);display:flex;flex-direction:column;overflow:visible}
.tcsA .aTrayH{display:flex;align-items:center;gap:8px;padding:10px 12px 8px;border-bottom:1px solid var(--tc-line2);flex:none}
.tcsA .aTrayH i{width:6px;height:6px;border-radius:50%;background:var(--tc-amber);box-shadow:0 0 9px rgba(255,184,64,.85);animation:tcBlink 1.6s ease-in-out infinite}
.tcsA .aTrayH b{font:800 10px/1 var(--tc-mono);letter-spacing:.15em;color:#cfdcea}
.tcsA .aTrayH span{margin-left:auto;font:700 9.5px/1 var(--tc-mono);color:#8b98aa}
.tcsA .aGridW{position:relative;flex:1;min-height:0}
.tcsA .aGrid{height:100%;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(7,minmax(0,1fr));gap:5px;padding:9px;overflow:hidden}
.tcsA .fi{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:0;padding:4px 2px;border:1px solid rgba(120,150,190,.12);border-radius:9px;background:rgba(13,18,28,.55);opacity:.42;filter:saturate(.35) brightness(.78);transition:opacity .25s,filter .25s,border-color .25s,box-shadow .25s,background .25s}
.tcsA .fi img.ap{height:22px;width:auto;display:block;filter:drop-shadow(0 3px 6px rgba(0,0,0,.55))}
.tcsA .fi span{max-width:100%;padding:0 2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:600 9.5px/1.15 var(--tc-mono);color:#93a5ba}
.tcsA .fi.sc{opacity:1;filter:none;border-color:rgba(66,235,209,.22)}
.tcsA .fi.hot{border-color:rgba(66,235,209,.65);box-shadow:0 0 15px rgba(66,235,209,.3),inset 0 0 10px rgba(66,235,209,.12)}
.tcsA .fi.bad{opacity:1;filter:none;border-color:rgba(255,63,90,.7);background:rgba(52,12,20,.65);box-shadow:0 0 20px rgba(255,63,90,.32),inset 0 0 12px rgba(255,63,90,.15)}
.tcsA .fi.bad span{color:#ffb3bf}
.tcsA .fi.bad::after{content:"";position:absolute;inset:-1px;border-radius:9px;border:1px solid rgba(255,63,90,.8);animation:tcsAPulse 1.5s ease-out infinite;pointer-events:none}
.tcsA .fi.sent{opacity:.5;border-style:dashed}
.tcsA .fi .bx{position:absolute;right:3px;top:3px;width:16px;height:16px;border-radius:4px;overflow:hidden;box-shadow:0 0 8px rgba(0,0,0,.6)}
.tcsA .fi .bx img{width:100%;height:100%;display:block}
.tcsA .fi .mal{position:absolute;left:50%;top:-7px;transform:translateX(-50%);padding:2px 5px;border-radius:4px;font:800 9.5px/1 var(--tc-mono);letter-spacing:.09em;color:#fff;background:var(--tc-red);box-shadow:0 0 10px rgba(255,63,90,.65);opacity:0;transition:opacity .25s;z-index:2}
.tcsA .fi.bad .mal{opacity:1}
@keyframes tcsAPulse{0%{opacity:.9;transform:scale(1)}100%{opacity:0;transform:scale(1.3)}}
.tcsA .aScan{position:absolute;left:6px;right:6px;top:0;height:42px;pointer-events:none;opacity:0;background:linear-gradient(180deg,transparent,rgba(66,235,209,.14) 42%,rgba(66,235,209,.38) 50%,rgba(66,235,209,.14) 58%,transparent);transition:opacity .2s}
.tcsA .aTrayF{display:flex;gap:14px;align-items:center;padding:7px 12px;border-top:1px solid var(--tc-line2);font:700 9.5px/1 var(--tc-mono);color:#8b98aa;flex:none}
.tcsA .aTrayF b{color:#42ebd1;font-weight:800}
.tcsA .aTrayF .rdF{color:#ff8296}
.tcsA .aTrayF .rdF b{color:#ff6c82}
.tcsA .aTrayF .fn{margin-left:auto;color:#5c6a7c;font-size:9.5px;letter-spacing:.04em}

/* 우측: JD-GUI 호환 분석 창 */
.tcsA .aJd{flex:1;min-width:0;transition:border-color .4s,box-shadow .4s}
.tcsA .aJd.thr{border-color:rgba(255,63,90,.45);box-shadow:0 34px 80px rgba(0,0,0,.6),0 6px 20px rgba(0,0,0,.4),0 0 70px rgba(255,63,90,.16),inset 0 1px 0 rgba(255,255,255,.045)}
.tcsA .tsw-mbar .mR{margin-left:auto;font:600 9.5px/1 var(--tc-mono);color:#5c6a7c;letter-spacing:.02em}
.tcsA .aJd .tsw-body{display:flex;align-items:stretch}

/* 패키지 트리 */
.tcsA .aTree{width:230px;flex:none;border-right:1px solid rgba(120,150,190,.14);background:#0d1119;padding:8px 0;overflow:hidden;font:600 10.5px/2 var(--tc-mono);color:#9fb2c6}
.tcsA .aTree .tr{display:flex;align-items:center;gap:6px;padding:0 10px;white-space:nowrap;opacity:0;transform:translateX(-8px);transition:opacity .3s,transform .3s,background .3s}
.tcsA .aTree .tr.on{opacity:1;transform:none}
.tcsA .aTree .tr>i{font-style:normal;color:#5c6a7c;width:10px;flex:none;font-size:9.5px}
.tcsA .aTree .tr .fo{width:11px;height:9px;flex:none;border-radius:2px;background:linear-gradient(180deg,#c9424f,#8e2f38);box-shadow:0 1px 3px rgba(0,0,0,.4)}
.tcsA .aTree .tr .fo.p{background:linear-gradient(180deg,#93753d,#6b5530)}
.tcsA .aTree .tr .ic{display:inline-flex;align-items:center;justify-content:center;width:13px;height:13px;flex:none;border-radius:3px;font:800 9.5px/1 var(--tc-mono);background:rgba(90,176,255,.16);color:#5ab0ff;border:1px solid rgba(90,176,255,.35)}
.tcsA .aTree .tr .ic.x{background:rgba(255,184,64,.14);color:#ffb840;border-color:rgba(255,184,64,.4)}
.tcsA .aTree .tr .ic.d{background:rgba(120,150,190,.12);color:#8b98aa;border-color:rgba(120,150,190,.3)}
.tcsA .aTree .tr .sz{margin-left:auto;font-style:normal;font-size:9px;color:#5c6a7c}
.tcsA .aTree .tr .rt{color:#dfe8f4;font-weight:800}
.tcsA .aTree .d1{padding-left:22px}
.tcsA .aTree .d2{padding-left:36px}
.tcsA .aTree .d3{padding-left:50px}
.tcsA .aTree .tr.wr span{color:#e8b6bd}
.tcsA .aTree .tr.wr .ic{background:rgba(255,63,90,.14);color:#ff8296;border-color:rgba(255,63,90,.4)}
.tcsA .aTree .tr.sel{background:linear-gradient(90deg,rgba(255,63,90,.22),rgba(255,63,90,.02));box-shadow:inset 2px 0 0 var(--tc-red)}
.tcsA .aTree .tr.sel span{color:#fff}
.tcsA .aTree .tr.sel .ic{background:rgba(255,63,90,.2);color:#ff8296;border-color:rgba(255,63,90,.55)}

/* 소스 페인 */
.tcsA .aSrc{flex:1;min-width:0;display:flex;flex-direction:column;background:#0a0e15;position:relative}
.tcsA .aSrc::before{content:"LAVAR-RE v4.2";position:absolute;right:14px;top:40px;font:800 10px/1 var(--tc-mono);letter-spacing:.3em;color:rgba(120,150,190,.13);pointer-events:none}
.tcsA .aTabs{display:flex;gap:2px;flex:none;background:#10141d;border-bottom:1px solid rgba(120,150,190,.14);padding:4px 6px 0}
.tcsA .aTab{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid rgba(120,150,190,.14);border-bottom:none;border-radius:7px 7px 0 0;font:700 10px/1 var(--tc-mono);color:#68748a;background:#0c1018;white-space:nowrap}
.tcsA .aTab i{width:6px;height:6px;border-radius:50%;background:#3a4356}
.tcsA .aTab.on{color:#fff;background:#0a0e15;border-color:rgba(255,63,90,.4)}
.tcsA .aTab.on i{background:var(--tc-red);box-shadow:0 0 7px var(--tc-red)}
.tcsA .aCode{flex:1;min-height:0;overflow:hidden;position:relative;padding:9px 0 5px;font:500 11px/1.62 var(--tc-mono);color:#c8d4e4}
.tcsA .aCode .ln{position:relative;display:flex;align-items:baseline;padding-right:8px;opacity:0;transform:translateY(3px);transition:opacity .28s,transform .28s}
.tcsA .aCode .ln.on{opacity:1;transform:none}
.tcsA .aCode .ln>i{flex:none;width:34px;text-align:right;padding-right:10px;font-style:normal;color:#3d4a5c}
.tcsA .aCode .ln>code{white-space:pre;font:inherit;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;color:inherit}
.tcsA .aCode em{font-style:normal}
.tcsA .aCode .k{color:#a86fff}
.tcsA .aCode .t{color:#5ab0ff}
.tcsA .aCode .s{color:#ffb840}
.tcsA .aCode .m{color:#42ebd1}
.tcsA .aCode .c{color:#5f6f82}
.tcsA .aCode .n{color:#ff9e6d}
.tcsA .aCode .ln.dg.on{background:linear-gradient(90deg,rgba(255,63,90,.17),rgba(255,63,90,.02));box-shadow:inset 2px 0 0 var(--tc-red)}
.tcsA .aCode .ln.dg>i{color:#ff6c82;font-weight:800}
.tcsA .aCode .ln.dg>code{padding-right:70px}
.tcsA .aCode .ln .tag{position:absolute;right:10px;top:50%;transform:translateY(-50%);padding:2px 6px;border-radius:4px;font:800 9.5px/1 var(--tc-mono);letter-spacing:.08em;color:#ff8296;border:1px solid rgba(255,63,90,.45);background:rgba(30,8,13,.85);opacity:0;transition:opacity .3s .12s}
.tcsA .aCode .ln.on .tag{opacity:1}
.tcsA .aCaret{display:inline-block;width:7px;height:13px;margin-left:2px;background:#42ebd1;vertical-align:-2px;box-shadow:0 0 8px rgba(66,235,209,.7);animation:tcBlink 1s step-end infinite}

/* 하단 로그 스트립 */
.tcsA .aLog{flex:none;height:64px;overflow:hidden;border-top:1px solid rgba(120,150,190,.14);background:#0b0f17;padding:5px 10px;font:600 9.5px/1.55 var(--tc-mono);color:#7f8fa3;display:flex;flex-direction:column;justify-content:flex-end}
.tcsA .aLog div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;animation:tcRowIn .3s ease}
.tcsA .aLog .tm{color:#4d5a6d;margin-right:7px}
.tcsA .aLog .wr{color:#ffb840}
.tcsA .aLog .th{color:#ff8296}

/* 판정 칩 스택 */
.tcsA .aVer{position:absolute;right:12px;bottom:76px;z-index:6;display:flex;flex-direction:column;gap:7px;align-items:flex-end;pointer-events:none}
.tcsA .aVer .vhd{font:800 9.5px/1 var(--tc-mono);letter-spacing:.2em;color:#ff8296;text-shadow:0 0 12px rgba(255,63,90,.6);opacity:0;transform:translateX(10px);transition:opacity .3s,transform .3s}
.tcsA .aVer .vhd.on{opacity:1;transform:none}
.tcsA .aVer .vc{display:inline-flex;align-items:center;gap:8px;padding:9px 13px;border-radius:9px;border:1px solid rgba(255,63,90,.55);background:linear-gradient(180deg,rgba(64,14,24,.94),rgba(38,9,16,.94));font-size:11.5px;font-weight:800;letter-spacing:-.01em;color:#ffd7dd;box-shadow:0 8px 24px rgba(0,0,0,.5),0 0 18px rgba(255,63,90,.22);backdrop-filter:blur(6px);opacity:0;transform:translateX(14px);transition:opacity .35s,transform .35s}
.tcsA .aVer .vc.on{opacity:1;transform:none}
.tcsA .aVer .vc i{width:7px;height:7px;border-radius:50%;background:var(--tc-red);box-shadow:0 0 9px var(--tc-red);flex:none}
.tcsA .aVer .vc b{font:800 9.5px/1 var(--tc-mono);letter-spacing:.1em;color:#ff8296;margin-right:2px}

/* 상태바 판정 */
.tcsA .aVd{opacity:0;transition:opacity .3s}
.tcsA .aVd.on{opacity:1}

/* 이관 비행체 */
.tcsA .aFly{position:absolute;left:0;top:0;z-index:8;width:46px;height:56px;margin:-28px 0 0 -23px;opacity:0;pointer-events:none;will-change:transform,opacity;filter:drop-shadow(0 0 14px rgba(255,63,90,.55)) drop-shadow(0 10px 16px rgba(0,0,0,.6))}
.tcsA .aFly .a1{width:100%;height:100%;display:block}
.tcsA .aFly .a2{position:absolute;right:-7px;bottom:-5px;width:22px;height:22px;border-radius:6px;box-shadow:0 0 10px rgba(255,63,90,.5)}

/* 정적 폴백(.tc-cine:not(.is-active) — JS 미동작·reduced-motion 세로 나열):
   tc-head가 숨겨지므로 카피 세이프 마진 해제 + 연출 요소를 완성 상태로 노출 */
.tc-cine:not(.is-active) .tcsA .aTray{margin-top:0}
.tc-cine:not(.is-active) .tcsA .aJd{margin-top:0}
.tc-cine:not(.is-active) .tcsA .aTree .tr,
.tc-cine:not(.is-active) .tcsA .aCode .ln,
.tc-cine:not(.is-active) .tcsA .aVer .vhd,
.tc-cine:not(.is-active) .tcsA .aVer .vc,
.tc-cine:not(.is-active) .tcsA .aVd{opacity:1;transform:none}

/* 반응형 */
@media (max-height:800px){
  .tcsA .aTray{margin-top:clamp(185px,30vh,245px)}
  .tcsA .fi img.ap{height:17px}
  .tcsA .fi{gap:2px;padding:3px 2px}
  .tcsA .fi span{font-size:9.5px}
  .tcsA .aLog{height:48px}
  .tcsA .aCode{font-size:10.5px;line-height:1.5}
  .tcsA .aTree{font-size:10px;line-height:1.9}
}
@media (max-width:1080px){
  .tcsA .aTray{min-width:250px;width:30%}
  .tcsA .aTree{width:190px}
  .tcsA .aCode{font-size:10px}
}
@media (max-width:880px){
  .tcsA .aTray,.tcsA .aFly{display:none}
  .tcsA .aWrap{gap:0}
  .tcsA .aJd{margin-top:clamp(195px,28vh,250px)}
  .tcsA .aVer .vc{padding:7px 10px;font-size:10.5px}
}
@media (max-width:640px){
  .tcsA .aTree{display:none}
  .tcsA .aCode .ln .tag{display:none}
  .tcsA .aCode .ln.dg>code{padding-right:0}
}


/* ═══ SCENE MODULE: D-scanner ═══ */
/* ── TECH CINEMA 씬 06-08 (유포 탐지 → 키워드 → DNA) · prefix: tcsD ── */
.tcsD .tcsD-wrap{position:absolute;inset:0;overflow:hidden}
.tcsD .tcsD-glowA{position:absolute;right:2%;top:12%;width:46vw;height:46vw;max-width:860px;max-height:860px;border-radius:50%;pointer-events:none;z-index:0;background:radial-gradient(circle,rgba(66,235,209,.13),transparent 62%);filter:blur(6px);opacity:.6}
.tcsD .tcsD-glowB{position:absolute;left:16%;top:22%;width:44vw;height:44vw;max-width:820px;max-height:820px;border-radius:50%;pointer-events:none;z-index:0;background:radial-gradient(circle,rgba(255,63,90,.12),transparent 60%);filter:blur(6px);opacity:0}

/* ── 06 크롤러 스윕 창 ── */
.tcsD .tcsD-crawler{position:absolute;left:0;top:max(42%,246px);bottom:0;width:40%;z-index:1;transform-origin:0 100%;will-change:transform,opacity}
.tcsD .tcsD-cbody{display:flex;flex-direction:column;background:linear-gradient(180deg,#0d1220,#0a0e18)}
.tcsD .tcsD-cstat{display:flex;gap:6px;padding:10px 12px 0;flex-wrap:wrap}
.tcsD .tcsD-cstat b{color:#fff;font-weight:800;margin-left:2px}
.tcsD .tcsD-cgrid{flex:1;min-height:0;display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:1fr;gap:8px;padding:10px 12px 4px}
.tcsD .tcsD-cell{display:flex;flex-direction:column;min-height:0;border:1px solid rgba(120,150,190,.14);border-radius:8px;overflow:hidden;background:#0b1019;transition:opacity .28s}
.tcsD .tcsD-cell.is-hit{border-color:rgba(255,63,90,.55);box-shadow:0 0 0 1px rgba(255,63,90,.22),0 0 20px rgba(255,63,90,.22)}
.tcsD .tcsD-th{flex:1;position:relative;min-height:44px;overflow:hidden;background:#0c1119}
.tcsD .tcsD-th i{position:absolute;inset:0;background:
  linear-gradient(180deg,#182031 0,#182031 14%,transparent 14%),
  linear-gradient(90deg,rgba(90,176,255,.16),transparent 55%),
  repeating-linear-gradient(180deg,rgba(127,146,172,.2) 0 3px,transparent 3px 11px),
  #0d1320;
  background-size:100% 100%,100% 100%,68% 54%,100% 100%;
  background-position:0 0,0 0,14% 32%,0 0;background-repeat:no-repeat}
.tcsD .tcsD-cell[data-v="1"] .tcsD-th i{filter:hue-rotate(38deg);background-position:0 0,0 0,60% 40%,0 0}
.tcsD .tcsD-cell[data-v="2"] .tcsD-th i{filter:hue-rotate(-42deg);background-position:0 0,0 0,30% 62%,0 0}
.tcsD .tcsD-cell[data-v="3"] .tcsD-th i{filter:hue-rotate(96deg) saturate(.8);background-position:0 0,0 0,44% 22%,0 0}
.tcsD .tcsD-th img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.9) brightness(.9)}
.tcsD .tcsD-hitTag{position:absolute;left:6px;bottom:6px;font:800 9.5px/1 var(--tc-mono);letter-spacing:.07em;font-style:normal;color:#ffd7dd;background:rgba(255,63,90,.22);border:1px solid rgba(255,63,90,.6);border-radius:4px;padding:2px 5px;text-shadow:0 0 8px rgba(255,63,90,.6)}
.tcsD .tcsD-cm{padding:5px 7px 6px;display:flex;flex-direction:column;gap:2px;flex:none}
.tcsD .tcsD-cm b{font-size:10.5px;font-weight:800;color:#cfdcea;letter-spacing:-.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tcsD .tcsD-cm span{font:600 10.5px/1.2 var(--tc-mono);color:#66788d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tcsD .tcsD-cprog{height:3px;margin:4px 12px 9px;border-radius:2px;background:rgba(120,150,190,.14);overflow:hidden;flex:none}
.tcsD .tcsD-cprog i{display:block;height:100%;width:44%;border-radius:2px;background:linear-gradient(90deg,transparent,var(--tc-cyan));animation:tcsDProg 1.9s linear infinite}

/* ── 06-07 분석 스테이지 ── */
.tcsD .tcsD-astage{position:absolute;left:42%;right:0;top:0;bottom:0;z-index:2;display:flex;transform-origin:34% 52%;will-change:transform,opacity}
.tcsD .tcsD-ain{margin:auto;width:min(640px,94%);display:flex;flex-direction:column;gap:10px}
.tcsD .tcsD-ahead{display:flex;align-items:center;gap:8px}
.tcsD .tcsD-aclock{margin-left:auto;display:flex;align-items:center;gap:6px}
.tcsD .tcsD-aclock i{width:7px;height:7px;border-radius:50%;background:var(--tc-red);box-shadow:0 0 10px rgba(255,63,90,.9);animation:tcsDBlink 1.1s ease-in-out infinite}
.tcsD .tcsD-aclock b{font:700 10px/1 var(--tc-mono);letter-spacing:.06em;color:#ff8296}
.tcsD .tcsD-aframe{position:relative;width:100%;border-radius:10px;overflow:hidden;background:#05070c;
  box-shadow:0 34px 80px rgba(0,0,0,.66),0 0 0 1px rgba(120,150,190,.18),0 0 48px rgba(66,235,209,.09)}
.tcsD .tcsD-afimg{display:block;width:100%;height:auto;filter:saturate(.96) contrast(1.03)}
.tcsD .tcsD-aframe::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(130% 105% at 50% 42%,transparent 58%,rgba(4,6,10,.55)),linear-gradient(180deg,rgba(66,235,209,.05),transparent 32%)}
.tcsD .tcsD-corner{position:absolute;width:22px;height:22px;z-index:4;pointer-events:none;filter:drop-shadow(0 0 6px rgba(66,235,209,.55))}
.tcsD .tcsD-corner.tl{left:8px;top:8px;border-left:2px solid rgba(238,243,249,.92);border-top:2px solid rgba(238,243,249,.92)}
.tcsD .tcsD-corner.tr{right:8px;top:8px;border-right:2px solid rgba(238,243,249,.92);border-top:2px solid rgba(238,243,249,.92)}
.tcsD .tcsD-corner.bl{left:8px;bottom:8px;border-left:2px solid rgba(238,243,249,.92);border-bottom:2px solid rgba(238,243,249,.92)}
.tcsD .tcsD-corner.br{right:8px;bottom:8px;border-right:2px solid rgba(238,243,249,.92);border-bottom:2px solid rgba(238,243,249,.92)}
.tcsD .tcsD-scan{position:absolute;inset:0;z-index:3;pointer-events:none;opacity:0}
.tcsD .tcsD-scan i{position:absolute;top:0;bottom:0;left:-26px;width:26px;will-change:transform;background:linear-gradient(90deg,transparent,rgba(66,235,209,.32) 68%,rgba(66,235,209,.92));box-shadow:0 0 20px rgba(66,235,209,.5)}
.tcsD .tcsD-face{position:absolute;left:26.5%;top:21%;width:20%;height:68%;z-index:4;pointer-events:none}
.tcsD .tcsD-face img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.tcsD .tcsD-fo{filter:drop-shadow(0 0 5px rgba(255,255,255,.4))}
.tcsD .tcsD-fv{filter:drop-shadow(0 0 3px rgba(255,255,255,.7));transform-origin:50% 50%}
.tcsD .tcsD-fl{filter:drop-shadow(0 0 7px rgba(255,63,90,.65))}
.tcsD .tcsD-fpulse{position:absolute;inset:-9%;border:1px solid rgba(66,235,209,.4);border-radius:9px;opacity:0}
.tcsD .tcsD-face.is-live .tcsD-fpulse{animation:tcsDPulse 2.1s ease-out infinite}
.tcsD .tcsD-reads{position:absolute;right:10px;top:10px;width:216px;z-index:5;display:flex;flex-direction:column;gap:7px}
.tcsD .tcsD-read{background:rgba(6,10,17,.74);border:1px solid rgba(120,150,190,.22);border-radius:8px;padding:7px 9px 8px;backdrop-filter:blur(5px)}
.tcsD .tcsD-read>span{display:block;font:800 10.5px/1 var(--tc-mono);letter-spacing:.12em;color:#7f92ac}
.tcsD .tcsD-read>b{display:block;margin-top:4px;font-size:13px;font-weight:800;color:#eef3f9;letter-spacing:-.2px}
.tcsD .tcsD-read>b em{font-style:normal;color:var(--tc-cyan)}
.tcsD .tcsD-read>b.hx{font:700 11px/1.2 var(--tc-mono);color:#bfe9df;letter-spacing:.02em}
.tcsD .tcsD-rbar{display:block;height:3px;margin-top:6px;background:rgba(120,150,190,.18);border-radius:2px;overflow:hidden}
.tcsD .tcsD-rbar em{display:block;height:100%;width:100%;border-radius:2px;transform-origin:0 50%;background:linear-gradient(90deg,var(--tc-cyan),#5ab0ff)}
.tcsD .tcsD-alab{left:10px;bottom:10px}
.tcsD .tcsD-match{background:rgba(8,13,22,.74);border:1px solid rgba(120,150,190,.18);border-radius:10px;padding:9px 11px 11px;backdrop-filter:blur(6px)}
.tcsD .tcsD-mttl{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:800;color:#cfdcea}
.tcsD .tcsD-mres{margin-left:auto;font:800 10px/1 var(--tc-mono);font-style:normal;color:#ff8296;opacity:0;transform:translateY(5px);transition:opacity .4s,transform .4s;text-shadow:0 0 10px rgba(255,63,90,.5)}
.tcsD .tcsD-mres.is-on{opacity:1;transform:none}
.tcsD .tcsD-mrow{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}
.tcsD .tcsD-cand{position:relative;border:1px solid rgba(120,150,190,.16);border-radius:8px;padding:6px 6px 7px;background:#0b101a;transition:border-color .35s,box-shadow .35s}
.tcsD .tcsD-cand.is-m{border-color:rgba(255,63,90,.6);box-shadow:0 0 0 1px rgba(255,63,90,.22),0 0 18px rgba(255,63,90,.2)}
.tcsD .tcsD-cth{position:relative;border-radius:5px;overflow:hidden}
.tcsD .tcsD-cth>img:first-child{display:block;width:100%;height:auto;filter:brightness(.9) saturate(.92)}
.tcsD .tcsD-cand.low .tcsD-cth>img:first-child{filter:brightness(.62) saturate(.4)}
.tcsD .tcsD-cbadge{position:absolute;right:5px;top:5px;width:20px;height:20px;opacity:0;transform:scale(.5);transition:opacity .35s,transform .35s;filter:drop-shadow(0 0 8px rgba(255,63,90,.7))}
.tcsD .tcsD-cand.is-m .tcsD-cbadge,.tcsD .tcsD-cand.is-chk .tcsD-cbadge{opacity:1;transform:none}
.tcsD .tcsD-cand.low .tcsD-cbadge{filter:none;opacity:0}
.tcsD .tcsD-cand.low.is-chk .tcsD-cbadge{opacity:.8}
.tcsD .tcsD-cmeta{margin-top:5px;font:700 10.5px/1.35 var(--tc-mono);color:#66788d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tcsD .tcsD-cmeta b{display:block;color:#cfdcea;overflow:hidden;text-overflow:ellipsis}
.tcsD .tcsD-cbar{display:block;height:3px;margin-top:5px;background:rgba(120,150,190,.16);border-radius:2px;overflow:hidden}
.tcsD .tcsD-cbar em{display:block;height:100%;width:100%;border-radius:2px;transform-origin:0 50%;background:linear-gradient(90deg,#ff5d77,var(--tc-red))}
.tcsD .tcsD-cand.low .tcsD-cbar em{background:rgba(120,150,190,.5)}
.tcsD .tcsD-cpct{display:block;margin-top:4px;font:800 12px/1 var(--tc-mono);color:#ff8296}
.tcsD .tcsD-cand.low .tcsD-cpct{color:#66788d}
.tcsD .tcsD-afoot{font:600 9px/1 var(--tc-mono);letter-spacing:.1em;color:#5d6b7d;text-align:right}

/* ── 07 키워드 모니터 패널 ── */
.tcsD .tcsD-kw{position:absolute;right:0;top:2%;bottom:2%;width:27.5%;min-width:270px;z-index:4;transform:translate3d(120%,0,0);opacity:0;transform-origin:100% 50%;will-change:transform,opacity;display:flex}
.tcsD .tcsD-kwin{flex:1;min-height:0}
.tcsD .tcsD-kbody{display:flex;flex-direction:column;gap:8px;padding:10px 11px;background:linear-gradient(180deg,#0d1220,#0a0e18)}
.tcsD .tcsD-kwhead{font-size:11px;font-weight:700;color:#9fb2c6;flex:none}
.tcsD .tcsD-kwhead b{color:#fff;font-weight:800}
.tcsD .tcsD-kwhead b.n{color:var(--tc-red);text-shadow:0 0 10px rgba(255,63,90,.5)}
.tcsD .tcsD-kwhits{display:flex;flex-direction:column;gap:6px;flex:none}
.tcsD .tcsD-kwhit{display:flex;align-items:center;gap:7px;padding:7px 9px;border:1px solid rgba(66,235,209,.32);border-radius:8px;background:rgba(66,235,209,.06);box-shadow:0 0 14px rgba(66,235,209,.07)}
.tcsD .tcsD-kwhit .dot{width:6px;height:6px;border-radius:50%;background:var(--tc-cyan);box-shadow:0 0 9px var(--tc-cyan);animation:tcsDBlink 1.6s ease-in-out infinite;flex:none}
.tcsD .tcsD-kwhit .k{font-size:11px;font-weight:800;color:#dff7f1;letter-spacing:-.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tcsD .tcsD-kwhit .p{margin-left:auto;font:700 10.5px/1 var(--tc-mono);color:#7f92ac;border:1px solid rgba(120,150,190,.22);padding:2px 5px;border-radius:4px;white-space:nowrap;flex:none}
.tcsD .tcsD-kwhit>b{font:800 10.5px/1 var(--tc-mono);color:var(--tc-cyan);flex:none}
.tcsD .tcsD-kwcap{font-size:9px;line-height:1.4;color:#66788d;flex:none}
.tcsD .tcsD-kwfeed{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;gap:4px}
.tcsD .tcsD-kwrow{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:5px;border:1px solid transparent;background:rgba(120,150,190,.05);font:600 9.5px/1.3 var(--tc-mono);color:#8b98aa;animation:tcsDRow .35s ease;flex:none}
.tcsD .tcsD-kwrow .t{color:#5d6b7d;flex:none}
.tcsD .tcsD-kwrow .k{flex:1;min-width:0;color:#c6d2e0;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tcsD .tcsD-kwrow .p{color:#7f92ac;flex:none}
.tcsD .tcsD-kwrow>b{color:#9fb2c6;flex:none}
.tcsD .tcsD-kwrow.hot{background:rgba(255,63,90,.09);border-color:rgba(255,63,90,.28)}
.tcsD .tcsD-kwrow.hot .k{color:#ffccd4}
.tcsD .tcsD-kwrow.hot>b{color:#ff8296}

/* ── 08 DNA 유사도 패널 ── */
.tcsD .tcsD-dna{position:absolute;left:5%;right:30%;top:2%;bottom:2%;z-index:5;display:flex;opacity:0;pointer-events:none;transform-origin:50% 50%;will-change:transform,opacity}
.tcsD .tcsD-din{margin:auto;width:min(880px,100%);display:flex;flex-direction:column;gap:12px;background:rgba(8,12,20,.84);border:1px solid rgba(120,150,190,.22);border-radius:16px;padding:16px 18px;backdrop-filter:blur(10px);box-shadow:0 44px 96px rgba(0,0,0,.62),inset 0 1px 0 rgba(255,255,255,.05)}
.tcsD .tcsD-dhead{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tcsD .tcsD-dgrid{display:grid;grid-template-columns:1fr 118px 1fr;gap:16px;align-items:center}
.tcsD .tcsD-dcol{margin:0;min-width:0}
.tcsD .tcsD-dfr{position:relative;border-radius:10px;overflow:hidden;background:#05070c;box-shadow:0 18px 44px rgba(0,0,0,.55),0 0 0 1px rgba(120,150,190,.18)}
.tcsD .tcsD-dfr img{display:block;width:100%;height:auto}
.tcsD .tcsD-dfr.orig{box-shadow:0 18px 44px rgba(0,0,0,.55),0 0 0 1px rgba(66,235,209,.35),0 0 24px rgba(66,235,209,.12)}
.tcsD .tcsD-dfr.mod{box-shadow:0 18px 44px rgba(0,0,0,.55),0 0 0 1px rgba(255,184,64,.35),0 0 24px rgba(255,184,64,.1)}
.tcsD .tcsD-dfr.mod img{filter:grayscale(.85) contrast(.92) brightness(.95);transform:scale(1.07) translate(-1.8%,-1.2%)}
.tcsD .tcsD-dfr::after{position:absolute;left:7px;top:7px;font:800 10.5px/1 var(--tc-mono);letter-spacing:.14em;padding:3px 6px;border-radius:4px;backdrop-filter:blur(3px)}
.tcsD .tcsD-dfr.orig::after{content:"ORIGINAL";color:#bfe9df;background:rgba(66,235,209,.14);border:1px solid rgba(66,235,209,.45)}
.tcsD .tcsD-dfr.mod::after{content:"MODIFIED";color:#ffe3b0;background:rgba(255,184,64,.14);border:1px solid rgba(255,184,64,.45)}
.tcsD .tcsD-dhash{display:flex;gap:4px;margin-top:7px}
.tcsD .tcsD-dhash i{flex:1;text-align:center;font:800 10.5px/1 var(--tc-mono);font-style:normal;color:#5d6b7d;background:rgba(120,150,190,.08);border:1px solid rgba(120,150,190,.14);border-radius:4px;padding:5px 0;transition:color .3s,border-color .3s,background .3s,box-shadow .3s}
.tcsD .tcsD-dhash i.on{color:var(--tc-cyan);border-color:rgba(66,235,209,.5);background:rgba(66,235,209,.1);box-shadow:0 0 10px rgba(66,235,209,.25)}
.tcsD .tcsD-dhash i.part.on{color:var(--tc-amber);border-color:rgba(255,184,64,.5);background:rgba(255,184,64,.1);box-shadow:0 0 10px rgba(255,184,64,.25)}
.tcsD .tcsD-dcol figcaption{margin-top:7px}
.tcsD .tcsD-dcol figcaption b{display:block;font-size:11.5px;font-weight:800;color:#eef3f9;letter-spacing:-.2px}
.tcsD .tcsD-dcol figcaption span{display:block;margin-top:2px;font:600 9px/1.3 var(--tc-mono);color:#7f92ac}
.tcsD .tcsD-dmid{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}
.tcsD .tcsD-dmid svg{width:100%;height:168px;filter:drop-shadow(0 0 10px rgba(66,235,209,.18))}
.tcsD .tcsD-dpct{display:flex;align-items:baseline}
.tcsD .tcsD-dpct b{font:800 30px/1 var(--tc-mono);color:#fff;letter-spacing:-.03em;text-shadow:0 0 20px rgba(66,235,209,.5)}
.tcsD .tcsD-dpct i{font:800 14px/1 var(--tc-mono);font-style:normal;color:var(--tc-cyan);margin-left:2px}
.tcsD .tcsD-dpct span{margin-left:6px;font:800 10px/1 var(--tc-mono);letter-spacing:.22em;color:var(--tc-cyan)}
.tcsD .tcsD-dres{display:flex;align-items:center;justify-content:center;gap:9px;opacity:0;transform:translateY(9px);transition:opacity .45s,transform .45s}
.tcsD .tcsD-dres.is-on{opacity:1;transform:none}
.tcsD .tcsD-dres img{width:24px;height:24px;filter:drop-shadow(0 0 10px rgba(255,63,90,.7))}
.tcsD .tcsD-dfoot{text-align:center;font:600 9px/1 var(--tc-mono);letter-spacing:.1em;color:#5d6b7d}

/* ── 연결 스레드 ── */
.tcsD .tcsD-threads{position:absolute;inset:0;z-index:3;pointer-events:none;opacity:0}

@keyframes tcsDProg{0%{transform:translateX(-100%)}100%{transform:translateX(340%)}}
@keyframes tcsDBlink{0%,100%{opacity:1}50%{opacity:.25}}
@keyframes tcsDPulse{0%{transform:scale(.92);opacity:.85}70%{transform:scale(1.06);opacity:0}100%{transform:scale(1.06);opacity:0}}
@keyframes tcsDRow{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

@media (max-width:880px){
  .tcsD .tcsD-crawler,.tcsD .tcsD-kw,.tcsD .tcsD-threads,.tcsD .tcsD-glowB{display:none}
  .tcsD .tcsD-astage{left:0;right:0}
  .tcsD .tcsD-dna{left:2%;right:2%}
  .tcsD .tcsD-din{padding:12px}
  .tcsD .tcsD-dgrid{grid-template-columns:1fr 84px 1fr;gap:10px}
  .tcsD .tcsD-dmid svg{height:110px}
  .tcsD .tcsD-dpct b{font-size:22px}
  .tcsD .tcsD-dpct span{display:none}
}
@media (max-height:820px){
  .tcsD .tcsD-ain{width:min(560px,94%);gap:8px}
  .tcsD .tcsD-reads{width:190px;gap:5px}
  .tcsD .tcsD-read{padding:6px 8px 7px}
  .tcsD .tcsD-kwhit{padding:5px 8px}
  /* 낮은 스테이지(예: 1366x768)에서 세로 중앙 정렬된 DNA 카드 상단이
     좌상단 카피 영역(~520x230)과 겹치지 않게 카드를 아래로 내린다 */
  .tcsD .tcsD-dna{top:31%}
  .tcsD .tcsD-dmid svg{height:120px}
  .tcsD .tcsD-dpct b{font-size:24px}
  .tcsD .tcsD-din{gap:8px;padding:12px 14px}
  .tcsD .tcsD-dfr{max-height:none}
}


/* R17: 씬01 디컴파일 소스 52줄 — 공개 진행에 맞춰 따라 스크롤, C2 확보 구간 강조 */
.tcsA .aCodeIn{position:relative;will-change:transform;transition:transform .42s cubic-bezier(.22,1,.28,1)}
.tcsA .aCode .ln.c2>code{color:#e8f2ff}
.tcsA .aCode .ln.c2::before{content:"";position:absolute;left:0;top:-1px;bottom:-1px;width:2px;background:linear-gradient(180deg,rgba(255,63,90,.15),rgba(255,63,90,.85),rgba(255,63,90,.15));opacity:0;transition:opacity .3s}
.tcsA .aCode .ln.c2.on::before{opacity:1}
.tcsA .aCode .ln.c2.on{background:linear-gradient(90deg,rgba(255,63,90,.13),rgba(255,63,90,.03) 62%,transparent)}
.tcsA .aC2{
  position:absolute;left:12px;right:12px;bottom:10px;z-index:5;
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  padding:8px 12px;border-radius:11px;
  border:1px solid rgba(255,63,90,.5);
  background:linear-gradient(180deg,rgba(62,13,23,.95),rgba(38,9,16,.95));
  box-shadow:0 10px 28px rgba(0,0,0,.55),0 0 20px rgba(255,63,90,.2);
  opacity:0;transform:translateY(10px);transition:opacity .35s,transform .35s;pointer-events:none
}
.tcsA .aC2.on{opacity:1;transform:none}
.tcsA .aC2 .k{font:900 9px/1 var(--tc-mono);letter-spacing:.18em;color:#ff8296;padding:3px 7px;border:1px solid rgba(255,63,90,.55);border-radius:5px;flex:none}
.tcsA .aC2 b{font:800 12px/1.2 var(--tc-mono);color:#ffe3e8;letter-spacing:-.01em}
.tcsA .aC2 i{font-style:normal;color:#9a6470}
.tcsA .aC2 .p{font:700 11px/1 var(--tc-mono);color:#ffb3bf}
.tcsA .aC2 .f{margin-left:auto;font:700 9.5px/1 var(--tc-mono);letter-spacing:.06em;color:#c98d99}
@media (max-width:760px){
  .tcsA .aC2{left:8px;right:8px;bottom:34px;padding:6px 9px;gap:6px}
  .tcsA .aC2 b{font-size:10.5px}
  .tcsA .aC2 .f{margin-left:0;width:100%}
}

/* 8px 하한(R32): .tcsD-astage 는 .798 배율로 축소되므로 그 안의 공용 칩/태그/라벨은 10.5px 이상 (10.5×.798=8.4) */
.tcsD .tcsD-astage .tc-chip,.tcsD .tcsD-astage .tc-tag,.tcsD .tcsD-astage .tc-lab .s,.tcsD .tcsD-astage .tcsD-ahead span,.tcsD .tcsD-astage .tcsD-afoot,.tcsD .tcsD-astage .tcsD-aclock b,.tcsD .tcsD-astage .tcsD-mttl em,.tcsD .tcsD-astage .tcsD-mttl .tc-tag{font-size:10.5px}

/* ==== /assets/css/tc-scene-b.css?v=20260905c ==== */
/* ============================================================
   TC SCENE 02·03·04 — 패킷 분석 → C2 웹 관리 플랫폼 인젝션 → 더미데이터
   접두사 .tcb / .tcb-*  ·  흰색 어드민 대시보드를 카메라 축으로 사용
   ============================================================ */
.tcb{
  --b-red:#ff3f5a; --b-cyan:#42ebd1; --b-green:#39d98a; --b-amber:#ffb840; --b-violet:#a86fff; --b-blue:#5ab0ff;
  --b-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  /* 실제 SaaS 어드민 팔레트(밝은 톤) */
  --w-bg:#f6f8fb; --w-card:#ffffff; --w-line:#e5e9f0; --w-line2:#eef1f6; --w-head:#fafbfd;
  --w-txt:#16202e; --w-sub:#5a6a7e; --w-mute:#8a95a5;
  --w-pri:#2563eb; --w-soft:#eef4ff; --w-ok:#12a150; --w-dan:#e02040; --w-vio:#6d47e0;
  --w-font:"Pretendard","Noto Sans KR",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}
.tcb .tc-stage{ perspective:1800px; }

/* 마스터 — 카메라(translate+scale)는 여기 하나에만 적용 */
.tcb-master{ position:absolute; inset:0; transform-origin:50% 50%; will-change:transform; }

/* ── 커넥터 & 패킷 도트 ── */
.tcb-conn{ position:absolute; inset:0; width:100%; height:100%; z-index:3; pointer-events:none;
  filter:drop-shadow(0 0 4px rgba(255,63,90,.6)); }
.tcb-dots{ position:absolute; inset:0; z-index:4; pointer-events:none; }
.tcb-dot{ position:absolute; left:0; top:0; width:8px; height:8px; border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#ffd3da,#ff3f5a 55%,#a3122a);
  box-shadow:0 0 8px 2px rgba(255,63,90,.85),0 0 18px 4px rgba(255,63,90,.4); }

/* ════════════════════════════════════════════════════════════
   씬 02 좌측 · LAVAR PACKET ANALYZER (Wireshark 풍)
   좌상단 ~500x260 은 드라이버 헤드 카피 안전영역 → 창은 좌하단
   ════════════════════════════════════════════════════════════ */
.tcb-wire{ position:absolute; left:1.5%; top:40%; width:45%; height:57%; z-index:5; }
.tcb .tcb-tsw{ width:100%; height:100%; }
.tcb .tcb-tsw .tsw-ttl em{ color:var(--b-cyan); font-style:normal; }
.tcb-filter{ display:flex; align-items:center; gap:9px; height:30px; flex:none; padding:0 12px;
  background:#12171f; border-bottom:1px solid rgba(120,150,190,.14); }
.tcb-fl{ font:800 10.5px/1 var(--b-mono); letter-spacing:.14em; color:#66788d; }
.tcb-fbar{ flex:1; display:flex; align-items:center; gap:8px; height:20px; padding:0 10px; border-radius:6px;
  background:#0a1710; border:1px solid rgba(57,217,138,.28); overflow:hidden; }
.tcb-fbar b{ font:600 11px/1 var(--b-mono); color:#8ff0c4; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tcb-fapply{ margin-left:auto; font:800 10.5px/1 var(--b-mono); letter-spacing:.1em; color:var(--b-green); }
.tcb-cols{ display:grid; grid-template-columns:38px 62px 1.05fr 1.05fr 66px 46px 2.1fr; height:20px; flex:none;
  align-items:center; padding:0 12px; background:#181d29; border-bottom:1px solid rgba(120,150,190,.2); }
.tcb-cols span{ font:800 10.5px/1 var(--b-mono); letter-spacing:.06em; color:#8394a8; text-transform:uppercase; }
.tcb-wlist{ flex:1; min-height:0; overflow:hidden; display:flex; flex-direction:column; justify-content:flex-end;
  background:linear-gradient(180deg,#0c1119,#0a0e16); }
.tcb-wrow{ display:grid; grid-template-columns:38px 62px 1.05fr 1.05fr 66px 46px 2.1fr; align-items:center;
  height:24px; flex:none; padding:0 12px; font:600 10.5px/1 var(--b-mono);
  border-bottom:1px solid rgba(120,150,190,.05); animation:tcbRowIn .32s ease; }
.tcb-wrow span{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#aab7c8; padding-right:6px; }
.tcb-wrow span:first-child{ color:#5f6f83; }
.tcb-winfo{ color:#8ea0b6 !important; }
.tcb-w-tcp{ background:rgba(120,150,190,.05); }
.tcb-w-tcp span{ color:#93a3b7; }
.tcb-w-tls{ background:rgba(168,111,255,.09); }
.tcb-w-tls span{ color:#c9b4f2; }
.tcb-w-http{ background:rgba(90,176,255,.05); }
.tcb-w-http span{ color:#a7d8ff; }
.tcb-w-sus{ background:linear-gradient(90deg,#ff3049,#e01e3c); box-shadow:inset 0 0 0 1px rgba(255,120,140,.4); }
.tcb-w-sus span{ color:#fff !important; font-weight:700; }
.tcb-wrow.is-sel{ outline:1.5px solid var(--b-cyan); outline-offset:-1.5px; box-shadow:inset 0 0 22px rgba(66,235,209,.25); }
.tcb-follow{ flex:none; height:20px; display:flex; align-items:center; padding:0 12px;
  font:700 9.5px/1 var(--b-mono); color:var(--b-cyan); background:#0b141a;
  border-top:1px solid rgba(66,235,209,.2); border-bottom:1px solid rgba(120,150,190,.12); }
.tcb-hex{ flex:none; padding:5px 12px; background:#070b11; border-top:1px solid rgba(120,150,190,.1); }
.tcb-hexrow{ display:flex; gap:12px; font:600 10px/1.55 var(--b-mono); white-space:nowrap; }
.tcb-hexrow b{ color:#4f6480; font-weight:700; }
.tcb-hexrow span{ color:#6f8095; letter-spacing:.02em; }
.tcb-hexrow em{ color:#93a3b7; font-style:normal; letter-spacing:.03em; }
.tcb-hexrow u{ color:var(--b-red); text-decoration:none; background:rgba(255,63,90,.14);
  border-radius:2px; padding:0 2px; box-shadow:0 0 8px rgba(255,63,90,.3); }

/* ════════════════════════════════════════════════════════════
   C2 웹 관리 플랫폼 — 브라우저 창 + 흰색 어드민 대시보드
   디자인 해상도 1280×576 을 JS가 스테이지에 맞춰 축소 → 카메라가 확대
   ════════════════════════════════════════════════════════════ */
.tcb-c2{ position:absolute; left:77.5%; top:50%; width:1280px; height:576px; z-index:6;
  transform-origin:50% 50%; transform:translate(-50%,-50%) scale(.42); will-change:transform; }
.tcb .tcb-brw{ width:100%; height:100%; border-radius:14px; background:#0f141d;
  box-shadow:0 60px 130px rgba(0,0,0,.68),0 10px 34px rgba(0,0,0,.5),
    0 0 0 1px rgba(160,190,225,.16),0 0 90px rgba(120,170,235,.18); }
.tcb .tcb-brw .tsw-url span b{ color:#ffb0bc; }
/* 크롬 높이 = JS 상수 CHROME(96) : 32 + 32 + 32 */
.tcb .tcb-brw > .tsw-bar{ height:32px; }
.tcb .tcb-brw > .tsw-url{ height:32px; }
.tcb .tcb-brw .tsw-url span{ font-size:12px; }   /* R32: 공용 주소창 10.5px 은 다른 씬(배율≈1)용. 이 패널은 휴지 배율 .69 라 12px */
.tcb-tabsrow{ display:flex; align-items:flex-end; gap:6px; height:32px; flex:none; padding:7px 10px 0;
  background:#0a0e15; border-bottom:1px solid rgba(120,150,190,.14); }
.tcb-btab{ display:flex; align-items:center; gap:7px; height:24px; padding:0 12px; border-radius:7px 7px 0 0;
  font:700 12px/1 var(--w-font); color:#7c8798; background:#12171f; }
.tcb-btab.on{ background:#f6f8fb; color:#16202e; }
.tcb-btab i{ width:9px; height:9px; border-radius:2px; background:#2f6bff; flex:none; }

/* ── 어드민 앱 셸 ── */
.tcb-app{ position:absolute; inset:0; display:flex; background:var(--w-bg); color:var(--w-txt);
  font-family:var(--w-font); font-size:13px; line-height:1.45; }
.tcb-side{ width:212px; flex:none; background:#fff; border-right:1px solid var(--w-line);
  display:flex; flex-direction:column; padding:14px 0 12px; }
.tcb-brand{ display:flex; align-items:center; gap:9px; padding:0 16px 13px; margin-bottom:10px;
  border-bottom:1px solid var(--w-line2); }
.tcb-blogo{ width:28px; height:28px; border-radius:8px; flex:none; text-align:center;
  background:linear-gradient(140deg,#3d76ff,#12306f); color:#fff; font:800 12px/28px var(--b-mono); letter-spacing:.04em; }
.tcb-brand b{ display:block; font-size:13px; font-weight:800; letter-spacing:-.01em; }
.tcb-brand small{ display:block; margin-top:1px; font:600 12px/1.2 var(--b-mono); color:var(--w-mute); }
.tcb-nav{ display:flex; flex-direction:column; gap:2px; padding:0 10px; }
.tcb-navlab{ padding:6px 10px 5px; font:800 12px/1 var(--b-mono); letter-spacing:.12em; color:#a6b0bf; }
.tcb-nav a{ display:flex; align-items:center; gap:10px; height:34px; padding:0 10px; border-radius:8px;
  font-size:12.5px; font-weight:650; color:var(--w-sub); text-decoration:none; }
.tcb-nav a svg{ width:16px; height:16px; flex:none; fill:none; stroke:currentColor; stroke-width:1.6;
  stroke-linecap:round; stroke-linejoin:round; opacity:.72; }
.tcb-nav a.on{ background:var(--w-soft); color:var(--w-pri); font-weight:800; }
.tcb-nav a.on svg{ opacity:1; }
.tcb-nav a b{ margin-left:auto; font:800 12px/1 var(--b-mono); color:#fff; background:var(--w-dan);
  border-radius:999px; padding:3px 6px; }
.tcb-sfoot{ margin-top:auto; padding:10px 16px 0; border-top:1px solid var(--w-line2);
  font:600 12px/1.5 var(--b-mono); color:#a6b0bf; }

.tcb-main{ flex:1; min-width:0; display:flex; flex-direction:column; }
.tcb-top{ height:50px; flex:none; display:flex; align-items:center; gap:12px; padding:0 18px;
  background:#fff; border-bottom:1px solid var(--w-line); }
.tcb-ttl{ position:relative; min-width:0; }
.tcb-t1,.tcb-t2{ display:block; }
.tcb-t2{ position:absolute; left:0; top:0; white-space:nowrap; }
.tcb-crumb{ font-size:12px; font-weight:700; color:var(--w-mute); letter-spacing:.01em; }
.tcb-crumb em{ font-style:normal; color:var(--w-pri); }
.tcb-h1{ display:block; margin-top:1px; font-size:15px; font-weight:850; letter-spacing:-.03em; color:var(--w-txt); }
.tcb-search{ margin-left:auto; width:236px; height:30px; flex:none; display:flex; align-items:center; gap:8px;
  padding:0 11px; border:1px solid var(--w-line); border-radius:8px; background:var(--w-bg);
  font-size:12px; font-weight:600; color:#9aa5b4; }
.tcb-search svg{ width:13px; height:13px; fill:none; stroke:#9aa5b4; stroke-width:1.7; }
.tcb-online{ flex:none; display:inline-flex; align-items:center; gap:6px; height:24px; padding:0 10px;
  border-radius:999px; background:rgba(18,161,80,.1); border:1px solid rgba(18,161,80,.3);
  color:#0e7a3d; font:800 12px/1 var(--b-mono); letter-spacing:.09em; }
.tcb-online i{ width:6px; height:6px; border-radius:50%; background:#12a150; box-shadow:0 0 0 3px rgba(18,161,80,.16); }
.tcb-me{ flex:none; width:28px; height:28px; border-radius:50%; background:#e6ecf5; border:1px solid var(--w-line);
  font:800 12px/26px var(--w-font); text-align:center; color:#5a6a7e; }

/* ── 뷰 스택 (목록 ↔ 상세) ── */
.tcb-viewport{ flex:1; min-height:0; position:relative; }
.tcb-view{ position:absolute; inset:0; display:flex; flex-direction:column; gap:10px; padding:11px 16px 12px; }

/* KPI 카드 */
.tcb-kpis{ display:grid; grid-template-columns:repeat(4,1fr); gap:11px; flex:none; }
.tcb-kpi{ background:#fff; border:1px solid var(--w-line); border-radius:10px; padding:8px 12px;
  box-shadow:0 1px 2px rgba(20,40,80,.05); }
.tcb-kpi span{ display:block; font-size:12px; font-weight:700; color:var(--w-mute); }
.tcb-kpi b{ display:block; margin-top:3px; font-size:19px; font-weight:850; letter-spacing:-.035em; color:var(--w-txt); }
.tcb-kpi em{ font-style:normal; margin-left:7px; font-size:12px; font-weight:800; color:var(--w-ok); }
.tcb-kpi.dan b{ color:var(--w-dan); }
.tcb-kpi.dan em{ color:var(--w-dan); }

/* 테이블 카드 */
.tcb-card{ flex:1; min-height:0; display:flex; flex-direction:column; overflow:hidden;
  background:#fff; border:1px solid var(--w-line); border-radius:10px; box-shadow:0 1px 2px rgba(20,40,80,.05); }
.tcb-chead{ height:34px; flex:none; display:flex; align-items:center; gap:9px; padding:0 14px;
  border-bottom:1px solid var(--w-line); }
.tcb-chead b{ font-size:13px; font-weight:850; letter-spacing:-.02em; }
.tcb-chead small{ font-size:12px; font-weight:650; color:var(--w-mute); }
.tcb-fltr{ margin-left:auto; display:flex; gap:6px; }
.tcb-fltr i{ font-style:normal; height:22px; display:inline-flex; align-items:center; padding:0 9px;
  border-radius:6px; border:1px solid var(--w-line); background:var(--w-head);
  font:700 12px/1 var(--w-font); color:var(--w-sub); }
.tcb-fltr i.on{ background:var(--w-soft); border-color:#c7dbff; color:var(--w-pri); font-weight:800; }
.tcb-thead{ display:grid; grid-template-columns:78px 1fr 130px 88px 100px 120px; height:26px; flex:none;
  align-items:center; padding:0 14px; background:var(--w-head); border-bottom:1px solid var(--w-line); }
.tcb-thead span{ font-size:12px; font-weight:800; color:var(--w-mute); letter-spacing:.02em; }
.tcb-rows{ flex:1; min-height:0; overflow:hidden; }
.tcb-r{ display:grid; grid-template-columns:78px 1fr 130px 88px 100px 120px; align-items:center; height:30px;
  padding:0 14px; background:#fff; border-bottom:1px solid var(--w-line2);
  font-size:12px; color:var(--w-sub); will-change:opacity,filter; }
.tcb-r:nth-child(even){ background:var(--w-head); }
.tcb-r span{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; padding-right:8px; }
.tcb-r .c-id{ font:650 12px/1 var(--b-mono); color:#94a0b0; }
.tcb-r .c-nm{ font-weight:750; color:var(--w-txt); }
.tcb-r .c-cnt{ font:700 12px/1 var(--b-mono); color:var(--w-txt); }
.tcb-r .c-rc{ font:600 12px/1 var(--b-mono); color:var(--w-mute); }
.tcb-pill{ display:inline-flex; align-items:center; gap:5px; height:19px; padding:0 8px; border-radius:999px;
  background:rgba(18,161,80,.1); border:1px solid rgba(18,161,80,.26); color:#0e7a3d;
  font:800 12px/1 var(--b-mono); letter-spacing:.06em; }
.tcb-pill i{ width:5px; height:5px; border-radius:50%; background:#12a150; }
.tcb-pill.off{ background:#f1f3f7; border-color:#e2e6ee; color:#9aa5b4; }
.tcb-pill.off i{ background:#b6bfcc; }
.tcb-r.is-hong{ background:#fff5f7 !important; box-shadow:inset 3px 0 0 var(--w-dan); }
.tcb-r.is-hong .c-nm{ color:#c01030; font-weight:850; }
.tcb-r.is-hong .c-cnt{ color:#c01030; }
.tcb-r.is-hit{ background:#fff0f3 !important; box-shadow:inset 3px 0 0 var(--w-dan),0 0 0 1px rgba(224,32,64,.28); }
.tcb-r.is-new{ animation:tcbRowIn .34s ease; }
.tcb-r.is-dummy{ background:#f5f2ff !important; box-shadow:inset 3px 0 0 var(--w-vio); animation:tcbRowIn .3s ease; }
.tcb-r.is-dummy .c-nm{ color:var(--w-vio); }
.tcb-r.is-dummy .c-id{ color:#9d8ce0; }
.tcb-dtag{ display:inline-flex; align-items:center; height:19px; padding:0 8px; border-radius:999px;
  background:rgba(109,71,224,.1); border:1px solid rgba(109,71,224,.28); color:var(--w-vio);
  font:800 12px/1 var(--b-mono); letter-spacing:.06em; }

/* ── 상세 뷰 (V-0007) ── */
.tcb-prof{ flex:none; display:flex; align-items:center; gap:14px; padding:8px 16px;
  background:#fff; border:1px solid var(--w-line); border-radius:10px; box-shadow:0 1px 2px rgba(20,40,80,.05); }
.tcb-pav{ width:40px; height:40px; flex:none; border-radius:11px; text-align:center;
  background:linear-gradient(140deg,#ffe3e8,#ffc7d1); color:#c01030; font:850 16px/40px var(--w-font); }
.tcb-pin b{ display:block; font-size:16px; font-weight:850; letter-spacing:-.03em; }
.tcb-pin b i{ font-style:normal; margin-left:8px; font:800 12px/1 var(--b-mono); letter-spacing:.06em;
  color:#c01030; background:rgba(224,32,64,.1); border:1px solid rgba(224,32,64,.28);
  border-radius:999px; padding:4px 8px; vertical-align:2px; }
.tcb-pin p{ margin:5px 0 0; font:600 12px/1 var(--b-mono); color:var(--w-sub); }
.tcb-pmeta{ margin-left:auto; display:flex; gap:22px; text-align:right; }
.tcb-pmeta div span{ display:block; font-size:12px; font-weight:700; color:var(--w-mute); }
.tcb-pmeta div b{ display:block; margin-top:3px; font:800 14px/1 var(--w-font); letter-spacing:-.02em; color:var(--w-txt); }
.tcb-vtabs{ flex:none; display:flex; gap:6px; margin-bottom:-10px; }
.tcb-vtabs span{ height:29px; display:inline-flex; align-items:center; padding:0 14px; border-radius:9px 9px 0 0;
  border:1px solid var(--w-line); border-bottom:0; background:#eef1f6;
  font-size:12px; font-weight:700; color:var(--w-sub); }
.tcb-vtabs span.on{ background:#fff; color:var(--w-pri); font-weight:850; box-shadow:inset 0 2px 0 var(--w-pri); }
.tcb-clist{ flex:1; min-height:0; display:flex; flex-direction:column; overflow:hidden; padding:8px 14px 4px;
  background:#fff; border:1px solid var(--w-line); border-radius:0 10px 10px 10px; box-shadow:0 1px 2px rgba(20,40,80,.05); }
.tcb-chd{ display:grid; grid-template-columns:170px 1fr 168px 78px; gap:10px; padding:0 12px 5px;
  font-size:12px; font-weight:800; color:var(--w-mute); letter-spacing:.02em; }
.tcb-crow{ height:25px; flex:none; margin-bottom:4px; perspective:760px; }
.tcb-flip{ position:relative; width:100%; height:100%; transform-style:preserve-3d; will-change:transform; }
.tcb-face{ position:absolute; inset:0; display:grid; grid-template-columns:170px 1fr 168px 78px; gap:10px;
  align-items:center; padding:0 12px; border-radius:8px; backface-visibility:hidden;
  font-size:12px; font-weight:650; }
.tcb-face span{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tcb-face .n{ font:700 12px/1 var(--b-mono); letter-spacing:.02em; }
.tcb-face .g{ font-size:12px; }
.tcb-fa{ background:#fff5f6; border:1px solid #f5d2d8; color:#8b3a47; }
.tcb-fb{ background:#f1fbf5; border:1px solid #c8ecd5; color:#1f603b; transform:rotateX(180deg); }
.tcb-badge{ justify-self:start; display:inline-flex; align-items:center; height:19px; padding:0 8px;
  border-radius:999px; font:800 12px/1 var(--b-mono); letter-spacing:.06em; }
.tcb-fa .tcb-badge{ background:rgba(224,32,64,.1); border:1px solid rgba(224,32,64,.3); color:#c01030; }
.tcb-fb .tcb-badge{ background:rgba(18,161,80,.12); border:1px solid rgba(18,161,80,.32); color:#0e7a3d; }
.tcb-inj{ flex:none; display:flex; align-items:center; gap:13px; padding:9px 15px;
  background:#fff; border:1px solid var(--w-line); border-radius:10px; box-shadow:0 1px 2px rgba(20,40,80,.05); }
.tcb-injl{ flex:none; font:800 12px/1 var(--b-mono); letter-spacing:.1em; color:var(--w-pri); }
.tcb-bar{ flex:1; height:7px; border-radius:5px; overflow:hidden; background:#eef1f6; border:1px solid var(--w-line); }
.tcb-bar i{ display:block; height:100%; width:0;
  background:linear-gradient(90deg,#2563eb,#5aa0ff); box-shadow:0 0 10px rgba(37,99,235,.45); }
.tcb-injc{ flex:none; font-size:12px; font-weight:800; color:var(--w-txt); }
.tcb-injc b{ color:var(--w-pri); font-weight:850; }

/* ── 손가락 포인터 (패널 로컬 좌표) ── */
.tcb-hand{ position:absolute; left:0; top:0; width:30px; height:34px; z-index:20; pointer-events:none;
  opacity:0; filter:drop-shadow(0 7px 12px rgba(10,20,45,.4)); }
.tcb-hand img{ display:block; width:100%; height:100%; }
.tcb-hand.on{ opacity:1; }
.tcb-hand.is-click::after{ content:""; position:absolute; left:4px; top:2px; width:18px; height:18px;
  border-radius:50%; border:2px solid rgba(37,99,235,.9); animation:tcbClick .5s ease-out; }

/* ════════ 씬 04 · 더미데이터 rain + LIFO 스택 ════════ */
.tcb-rain{ position:absolute; inset:0; z-index:9; pointer-events:none; }
.tcb-dcard{ position:absolute; top:0; width:118px; padding:6px 9px 7px; border-radius:9px;
  transform:translate(-50%,0); opacity:0; will-change:transform,opacity;
  background:linear-gradient(180deg,#ffffff,#f4f1ff); border:1px solid rgba(109,71,224,.34);
  box-shadow:0 16px 34px rgba(10,16,32,.42),0 0 18px rgba(109,71,224,.22); }
.tcb-dcard span.t{ display:inline-block; font:800 12px/1 var(--b-mono); letter-spacing:.12em; color:#6d47e0;
  padding:3px 6px; border-radius:4px; background:rgba(109,71,224,.1); border:1px solid rgba(109,71,224,.3); }
.tcb-dcard b{ display:block; margin-top:6px; font:800 13px/1 var(--w-font); color:#16202e; letter-spacing:-.02em; }
.tcb-dcard span.n{ display:block; margin-top:4px; font:600 12px/1 var(--b-mono); color:#7b8797; }

.tcb-lifo{ position:absolute; left:2.5%; top:47%; width:296px; z-index:10; padding:12px 13px 13px;
  border-radius:13px; background:rgba(9,13,20,.74); border:1px solid rgba(120,150,190,.2);
  backdrop-filter:blur(9px); box-shadow:0 24px 54px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.05); }
.tcb-lhead{ display:flex; align-items:baseline; gap:8px; font:800 12px/1 var(--b-mono); letter-spacing:.04em; color:#dfe8f4; }
.tcb-lhead span{ font-size:12px; font-weight:700; color:#66788d; letter-spacing:.02em; }
.tcb-ltop{ display:flex; align-items:center; gap:6px; margin-top:9px; font:800 12px/1 var(--b-mono);
  letter-spacing:.08em; color:#ff8296; }
.tcb-ltop i{ width:6px; height:6px; border-radius:50%; background:var(--b-red); box-shadow:0 0 8px var(--b-red); }
.tcb-lstack{ position:relative; height:200px; margin-top:8px; }
.tcb-lblk{ position:absolute; left:0; right:0; top:0; height:26px; display:flex; align-items:center; gap:8px;
  padding:0 11px; border-radius:7px; font:700 12px/1 var(--b-mono); will-change:transform,opacity; }
.tcb-lblk b{ font-weight:800; }
.tcb-lblk span{ color:#8ea0b6; font-weight:600; }
.tcb-ldummy{ background:linear-gradient(90deg,rgba(168,111,255,.22),rgba(168,111,255,.08));
  border:1px solid rgba(168,111,255,.44); color:#d7c6f7; opacity:0; }
.tcb-ldummy i{ margin-left:auto; font-style:normal; font-size:12px; color:#9d84c7; }
.tcb-lhong{ background:linear-gradient(90deg,rgba(255,63,90,.24),rgba(255,63,90,.08));
  border:1px solid rgba(255,63,90,.52); color:#ffd7dd; box-shadow:0 0 18px rgba(255,63,90,.3); }
.tcb-lhong b{ color:#fff; }
.tcb-ltag{ margin-left:auto; font-style:normal; font:800 12px/1 var(--b-mono); letter-spacing:.04em;
  color:#ffd7dd; padding:3px 6px; border-radius:4px; background:rgba(255,63,90,.2); border:1px solid rgba(255,63,90,.5); }
.tcb-lreal2{ background:rgba(120,150,190,.1); border:1px solid rgba(120,150,190,.3); color:#aebccd; }
.tcb-lreal2 b{ color:#cdd8e6; }
.tcb-lcount{ margin-top:9px; font:700 12px/1.4 var(--b-mono); color:#8ea0b6; }
.tcb-lcount b{ color:var(--b-amber); font-weight:800; font-size:12px; }

/* ── 키프레임 ── */
@keyframes tcbRowIn{ from{ opacity:0; transform:translateY(-5px); } to{ opacity:1; transform:none; } }
@keyframes tcbClick{ 0%{ opacity:1; transform:scale(.4); } 100%{ opacity:0; transform:scale(2.4); } }

/* ── 반응형 : 낮은 뷰포트 ── */
@media (max-height:820px){
  .tcb-lifo{ top:44%; padding:10px 12px 11px; }
  .tcb-lstack{ height:164px; }
  .tcb-lblk{ height:23px; }
}
@media (min-width:1700px){
  .tcb-wire{ left:3%; width:40%; }
}

/* ── 반응형 : ≤880px → Wireshark 숨기고 어드민 패널만 ── */
@media (max-width:880px){
  /* 모바일은 패널만 남긴다 — 위치·높이는 JS가 헤드 카피 아래로 계산 */
  .tcb-wire,.tcb-conn,.tcb-dots,.tcb-lifo,.tcb-rain{ display:none; }
  .tcb-c2{ left:50%; top:60%; width:94%; height:56%; }
  .tcb .tcb-brw{ border-radius:11px; box-shadow:0 26px 60px rgba(0,0,0,.6),0 0 0 1px rgba(160,190,225,.18),0 0 46px rgba(120,170,235,.18); }
  .tcb .tcb-brw > .tsw-bar{ height:28px; }
  .tcb .tcb-brw > .tsw-url{ height:26px; }
  .tcb-tabsrow{ display:none; }
  .tcb-side{ display:none; }
  .tcb-app{ font-size:11px; }
  .tcb-top{ height:36px; padding:0 10px; gap:8px; }
  .tcb-h1{ font-size:12px; }
  .tcb-crumb{ font-size:9px; }
  .tcb-search,.tcb-me{ display:none; }
  .tcb-online{ height:19px; padding:0 7px; font-size:9.5px; }
  .tcb-view{ padding:8px 9px 9px; gap:8px; }
  .tcb-kpis{ display:none; }
  .tcb-card{ border-radius:8px; }
  .tcb-chead{ height:28px; padding:0 9px; }
  .tcb-chead b{ font-size:11px; }
  .tcb-chead small,.tcb-fltr{ display:none; }
  .tcb-thead,.tcb-r{ grid-template-columns:56px 1fr 46px 70px; padding:0 9px; }
  .tcb-thead{ height:20px; }
  .tcb-thead span{ font-size:9.5px; }
  /* 행 높이는 JS 가 남는 세로 공간에 맞춰 --tcb-mrow 로 지정한다(빈 여백 방지) */
  .tcb-r{ height:var(--tcb-mrow,24px); font-size:10px; }
  .tcb-thead .c-dev,.tcb-thead .c-rc,.tcb-r .c-dev,.tcb-r .c-rc{ display:none; }
  .tcb-r .c-id{ font-size:9.5px; }
  .tcb-r .c-cnt{ font-size:10px; }
  .tcb-pill{ height:15px; padding:0 6px; font-size:9.5px; gap:4px; }
  .tcb-dtag{ height:15px; padding:0 6px; font-size:9.5px; }
  .tcb-prof{ padding:6px 9px; gap:9px; border-radius:8px; }
  .tcb-pav{ width:28px; height:28px; border-radius:8px; font-size:12px; line-height:28px; }
  .tcb-pin b{ font-size:11.5px; }
  .tcb-pin b i{ display:none; }
  .tcb-pin p{ font-size:9.5px; }
  .tcb-pmeta{ display:none; }
  .tcb-vtabs{ display:none; }
  .tcb-clist{ padding:7px 8px 3px; border-radius:8px; }
  .tcb-chd,.tcb-face{ grid-template-columns:1fr 84px 44px; gap:6px; padding-left:8px; padding-right:8px; }
  .tcb-chd{ font-size:9.5px; padding-bottom:4px; }
  .tcb-chd .g,.tcb-face .g{ display:none; }
  .tcb-crow{ height:22px; margin-bottom:3px; }
  .tcb-crow:nth-last-child(-n+2){ display:none; }   /* 좁은 화면에서는 연락처 6행만 노출 */
  .tcb-face{ font-size:9.5px; border-radius:6px; }
  .tcb-face .n{ font-size:9px; }
  .tcb-badge{ height:14px; padding:0 5px; font-size:9.5px; }
  .tcb-inj{ padding:6px 9px; gap:8px; border-radius:8px; }
  .tcb-injl{ font-size:9.5px; letter-spacing:.06em; }
  .tcb-bar{ height:5px; }
  .tcb-injc{ font-size:9px; }
  .tcb-hand{ width:24px; height:27px; }
}
@media (prefers-reduced-motion:reduce){
  .tcb *{ animation:none !important; }
}

/* ==== /assets/css/tc-scene-c.css?v=20260905c ==== */
/* ============================================================
   TECH CINEMA 씬 05 — 협박·유포 통합방어 · 블루 핵폭발 셧다운
   접두사: tcc- (기존 .tcsC 와 완전 분리)
   레이어: 앰비언트(0) → 링크 SVG(1) → WebGL 충격파(2) → 허브(3)
          → 센터(4) → 악성앱 카드(5) → LAVARWAVE 노드(6) → HUD/플래시(8)
   카드 데이터는 실측 악성앱 인덱스(assets/data/malapp-index.json) 기반이며
   아이콘은 실제 수집본이다. 사람·사진형 이미지는 blur 모자이크 + 암전 오버레이.
   ============================================================ */

/* 배치 티어 신호 — JS(measure) 가 이 값을 읽어 좌표 세트를 고른다.
   CSS 미디어쿼리가 유일한 기준이라 CSS/JS 임계값이 어긋날 수 없다.
   0 = 데스크톱(16장) · 1 = 중간폭(컴팩트 9장) · 2 = 모바일(2열 9장) */
.tcc .tcc-board{position:absolute;inset:0;overflow:hidden;will-change:transform;--tcc-tier:0}

/* ── 배경 앰비언트: 적색(가해 조직) → 청색(무력화) ── */
.tcc .tcc-amb{position:absolute;z-index:0;left:56%;top:43%;width:min(62vw,760px);height:min(62vw,760px);transform:translate(-50%,-50%);pointer-events:none}
.tcc .tcc-amb i{position:absolute;inset:0;border-radius:50%;transition:opacity 1.1s ease}
.tcc .tcc-amb .r{background:radial-gradient(circle,rgba(255,63,90,.13),rgba(255,63,90,.045) 42%,transparent 70%);opacity:1}
.tcc .tcc-amb .b{background:radial-gradient(circle,rgba(90,176,255,.17),rgba(66,235,209,.05) 44%,transparent 72%);opacity:0}
.tcc.is-final .tcc-amb .r{opacity:0}
.tcc.is-final .tcc-amb .b{opacity:1}

/* ── WebGL 충격파 캔버스 ── */
.tcc .tcc-gl{position:absolute;z-index:2;left:0;top:0;width:100%;height:100%;pointer-events:none;display:block}
.tcc.tcc-nogl .tcc-gl{display:none}

/* ── CSS 폴백 링 (WebGL 실패 시) ── */
.tcc .tcc-fb{position:absolute;z-index:2;left:0;top:0;width:0;height:0;pointer-events:none;display:none}
.tcc.tcc-nogl .tcc-fb{display:block}
.tcc .tcc-fb i{position:absolute;left:0;top:0;width:2px;height:2px;border-radius:50%;transform:translate(-50%,-50%) scale(0);opacity:0;
  border:2px solid rgba(150,215,255,.85);box-shadow:0 0 60px rgba(90,176,255,.55),inset 0 0 90px rgba(66,235,209,.25)}
.tcc .tcc-fb i.f2{border-width:1px;border-color:rgba(66,235,209,.5);box-shadow:0 0 40px rgba(66,235,209,.3)}

/* ── 링크 라인 ── */
.tcc .tcc-links{position:absolute;inset:0;z-index:1;width:100%;height:100%;pointer-events:none;transition:opacity .9s}
.tcc.is-final .tcc-links{opacity:.3}
.tcc .tcc-links .lnk{stroke:rgba(90,176,255,.3);stroke-width:1.2;transition:stroke .4s}
.tcc .tcc-links .lnk.hb{stroke:rgba(66,235,209,.4);stroke-width:1.5}
.tcc .tcc-links .lnk.cut{stroke:rgba(255,63,90,.62);stroke-dasharray:3 7}
.tcc .tcc-links .lnk.dead{stroke:rgba(255,63,90,.1)}
.tcc .tcc-links .glow{stroke:rgba(66,235,209,.1);stroke-width:5;transition:opacity .4s}
.tcc .tcc-links .glow.cut{opacity:0}

/* ── 클러스터 허브 ── */
.tcc .tcc-hub{position:absolute;z-index:3;transform:translate(-50%,-50%);display:flex;align-items:center;gap:6px;pointer-events:none;opacity:0}
.tcc .tcc-hub i{width:9px;height:9px;border-radius:50%;background:rgba(66,235,209,.9);box-shadow:0 0 12px rgba(66,235,209,.8);border:2px solid rgba(8,16,26,.85);transition:background .4s,box-shadow .4s}
.tcc .tcc-hub b{font:800 9.5px/1 var(--tc-mono);letter-spacing:.1em;color:#6fd8c4;white-space:nowrap;transition:color .4s}
.tcc .tcc-hub.is-cut i{background:rgba(255,63,90,.85);box-shadow:0 0 10px rgba(255,63,90,.7)}
.tcc .tcc-hub.is-cut b{color:#8d5b66;text-decoration:line-through}

/* ── 센터 노드: C2 클러스터 ── */
.tcc .tcc-center{position:absolute;z-index:4;width:136px;height:136px;transform:translate(-50%,-50%);pointer-events:none;opacity:0}
.tcc .tcc-cring{position:absolute;inset:0;border-radius:50%;border:1px dashed rgba(255,99,120,.55);animation:tccSpin 16s linear infinite;transition:border-color .8s}
.tcc .tcc-cring2{position:absolute;inset:-12px;border-radius:50%;border:1px solid rgba(120,150,190,.18);animation:tccSpin 26s linear infinite reverse}
.tcc .tcc-ccore{position:absolute;inset:15px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;text-align:center;
  background:radial-gradient(circle at 50% 36%,rgba(64,20,30,.9),rgba(12,10,16,.94) 72%);border:1px solid rgba(255,63,90,.5);
  box-shadow:0 0 34px rgba(255,63,90,.25),inset 0 0 22px rgba(255,63,90,.12);transition:border-color .8s,box-shadow .8s,background .8s}
.tcc .tcc-ccore b{font:900 12px/1 var(--tc-mono);letter-spacing:.06em;color:#fff}
.tcc .tcc-ccore span{font-size:9.5px;font-weight:700;color:#c4909a;transition:color .8s}
.tcc .tcc-ccore em{font:700 9.5px/1.3 var(--tc-mono);font-style:normal;color:#ff8296;letter-spacing:.04em;max-width:90px;transition:color .8s}
.tcc.is-final .tcc-cring{border-color:rgba(90,176,255,.6)}
.tcc.is-final .tcc-ccore{border-color:rgba(90,176,255,.62);box-shadow:0 0 44px rgba(90,176,255,.38),inset 0 0 24px rgba(90,176,255,.16);
  background:radial-gradient(circle at 50% 36%,rgba(16,34,58,.92),rgba(10,12,20,.95) 72%)}
.tcc.is-final .tcc-ccore span{color:#8aa7c9}
.tcc.is-final .tcc-ccore em{color:#8fc6ff}
.tcc .tcc-center::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid rgba(90,176,255,.8);opacity:0;transform:scale(.75)}
.tcc.is-final .tcc-center::after{animation:tccNeu 2s ease-out infinite}
.tcc .tcc-neu{position:absolute;left:50%;top:calc(100% + 12px);transform:translateX(-50%) scale(.82);opacity:0;font:900 10px/1 var(--tc-mono);letter-spacing:.3em;
  padding:5px 10px 5px 13px;color:#9ed2ff;border:1px solid rgba(90,176,255,.62);border-radius:999px;background:rgba(10,18,32,.88);
  box-shadow:0 0 18px rgba(90,176,255,.34);transition:opacity .5s,transform .5s;white-space:nowrap}
.tcc.is-final .tcc-neu{opacity:1;transform:translateX(-50%) scale(1)}

/* ══════════════ 악성앱 계정 카드 ══════════════ */
.tcc .tcc-card{position:absolute;z-index:5;width:220px;display:flex;align-items:center;gap:8px;padding:8px 9px;border:1px solid rgba(120,150,190,.26);border-radius:11px;
  background:linear-gradient(160deg,rgba(18,25,38,.93),rgba(10,15,24,.88));box-shadow:0 10px 26px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.05);
  backdrop-filter:blur(5px);transform:translate(-50%,-50%);pointer-events:none;transition:filter .45s,border-color .35s,box-shadow .35s}
.tcc .tcc-card.is-vis{pointer-events:auto}

/* 실제 수집 아이콘 썸네일 + 프로필 슬롯 */
.tcc .tcc-thumb{position:relative;width:34px;height:34px;flex:none;border-radius:9px;overflow:visible;transition:filter .45s}
.tcc .tcc-ico{display:block;width:34px;height:34px;border-radius:9px;object-fit:cover;background:#0d1420;
  box-shadow:0 4px 10px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.16);border:1px solid rgba(120,150,190,.22)}
/* 사진형(모델 미끼·실사) 아이콘은 모자이크 처리해서만 노출한다 */
.tcc .tcc-thumb.ph{overflow:hidden;border:1px solid rgba(120,150,190,.22)}
.tcc .tcc-thumb.ph .tcc-ico{filter:blur(9px) saturate(.6) brightness(.86);transform:scale(1.5);border:0;border-radius:0;box-shadow:none}
/* 모자이크 질감 — 가로·세로 3px 격자로 “가려진 이미지”라는 신호를 준다 */
.tcc .tcc-thumb.ph::after{content:"";position:absolute;inset:0;border-radius:8px;box-shadow:inset 0 0 0 1px rgba(120,150,190,.2);
  background:linear-gradient(150deg,rgba(8,14,24,.3),rgba(8,14,24,.5)),
    repeating-linear-gradient(0deg,rgba(6,12,20,.42) 0 1px,transparent 1px 3px),
    repeating-linear-gradient(90deg,rgba(6,12,20,.42) 0 1px,transparent 1px 3px)}
/* 프로필 이미지 슬롯 — data-profile 에 실제 캡처 경로를 꽂으면(JS syncPF) 모자이크로 표시된다 */
.tcc .tcc-pf{position:absolute;right:-5px;bottom:-5px;width:20px;height:20px;border-radius:50%;overflow:hidden;
  border:1.5px solid rgba(10,16,26,.92);background:linear-gradient(165deg,#25324a,#141c2b);box-shadow:0 0 0 1px rgba(120,150,190,.28)}
.tcc .tcc-pf::before{content:"";position:absolute;left:50%;top:22%;width:34%;height:34%;border-radius:50%;background:rgba(150,178,210,.55);transform:translateX(-50%)}
.tcc .tcc-pf::after{content:"";position:absolute;left:50%;top:58%;width:64%;height:52%;border-radius:44% 44% 0 0;background:rgba(150,178,210,.42);transform:translateX(-50%)}
/* 실제 캡처가 꽂히면 실루엣 대신 blur 모자이크 + 암전 오버레이로만 노출한다 */
.tcc .tcc-pf.has-pf::before{inset:-7px;left:-7px;top:-7px;width:auto;height:auto;border-radius:0;transform:none;
  background:var(--pf) center/cover no-repeat;filter:blur(9px) saturate(.5) brightness(.82)}
.tcc .tcc-pf.has-pf::after{inset:0;left:0;top:0;width:auto;height:auto;border-radius:50%;transform:none;
  background:radial-gradient(circle,rgba(8,14,24,.1),rgba(8,14,24,.42) 78%);box-shadow:inset 0 0 0 1px rgba(150,178,210,.22)}

.tcc .tcc-cbody{min-width:0;flex:1 1 auto;display:flex;flex-direction:column;gap:2px}
.tcc .tcc-nm{font-size:11.5px;font-weight:800;line-height:1.15;color:#eef3f9;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tcc .tcc-ch{display:flex;align-items:center;gap:4px;font-size:9.5px;font-weight:700;color:#7fa8cc;white-space:nowrap;overflow:hidden}
.tcc .tcc-ch i{font-style:normal;color:#9ec6e6}
.tcc .tcc-ch em{font-style:normal;color:#4d6580;font-size:9.5px}
.tcc .tcc-ch i:last-child{color:#5f8ba6}
.tcc .tcc-cst{display:flex;align-items:center;font-size:9.5px;font-weight:700;letter-spacing:-.01em;color:#61748a;white-space:nowrap;overflow:hidden}
.tcc .tcc-cst i{font-style:normal}
.tcc .tcc-cst i.fm{color:#8c7fb8;letter-spacing:.02em}
.tcc .tcc-cst i+i::before{content:"·";margin:0 4px;opacity:.55}
.tcc .tcc-right{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:none;width:42px}
.tcc .tcc-led{width:7px;height:7px;border-radius:50%;background:var(--tc-green);box-shadow:0 0 9px rgba(57,217,138,.85);transition:background .35s,box-shadow .35s}
.tcc .tcc-ac{font:800 9.5px/1 var(--tc-mono);letter-spacing:.04em;color:#54e0a1;transition:color .35s}

/* 마이크로 CTA — hover/포커스 시에만 카드 아래로 펼쳐진다 */
.tcc .tcc-cta{position:absolute;left:50%;top:calc(100% + 7px);z-index:6;transform:translate(-50%,-4px);opacity:0;pointer-events:none;
  display:inline-flex;align-items:center;gap:5px;padding:6px 11px;border-radius:8px;white-space:nowrap;text-decoration:none;
  font-size:9.5px;font-weight:800;letter-spacing:-.01em;color:#cfe9ff;border:1px solid rgba(90,176,255,.55);background:rgba(9,18,30,.95);
  box-shadow:0 8px 22px rgba(0,0,0,.5),0 0 18px rgba(90,176,255,.22);transition:opacity .22s,transform .22s}
.tcc .tcc-cta::after{content:"→";color:#5ab0ff;font-weight:900}
.tcc .tcc-card.is-vis:hover .tcc-cta,
.tcc .tcc-card.is-vis:focus-within .tcc-cta{opacity:1;transform:translate(-50%,0);pointer-events:auto}
.tcc .tcc-card.is-vis:hover,
.tcc .tcc-card.is-vis:focus-within{border-color:rgba(90,176,255,.6);box-shadow:0 12px 30px rgba(0,0,0,.5),0 0 24px rgba(90,176,255,.28);z-index:7}
.tcc .tcc-cta:focus-visible{outline:2px solid rgba(150,215,255,.9);outline-offset:2px}
/* 카드가 아직 나타나지 않은 구간(opacity 0)에서는 CTA 앵커를 탭 순서에서도 뺀다 */
.tcc .tcc-card:not(.is-vis) .tcc-cta{visibility:hidden}

/* 충격파 전선 통과 순간의 파란 섬광 */
.tcc .tcc-card.is-hit{border-color:rgba(150,215,255,.95);box-shadow:0 0 34px rgba(90,176,255,.75),0 0 90px rgba(66,235,209,.35),inset 0 0 20px rgba(150,215,255,.3);
  filter:brightness(2.1) saturate(.7);transition:none}
.tcc .tcc-card.is-cut{border-color:rgba(255,63,90,.42);filter:saturate(.26) brightness(.56)}
.tcc .tcc-card.is-cut .tcc-thumb{filter:grayscale(.72) brightness(.66)}
.tcc .tcc-card.is-cut .tcc-led{background:var(--tc-red);box-shadow:0 0 9px rgba(255,63,90,.85)}
.tcc .tcc-card.is-cut .tcc-ac{color:#ff8296}
.tcc.is-final .tcc-card{filter:saturate(.1) brightness(.4);transition:filter .9s}
.tcc.is-final .tcc-card.is-hit{filter:brightness(2.1) saturate(.7)}
.tcc.is-final .tcc-card.is-vis:hover,
.tcc.is-final .tcc-card.is-vis:focus-within{filter:saturate(.5) brightness(.78)}

/* 운영정지 스탬프 */
.tcc .tcc-seal{position:absolute;left:50%;top:50%;z-index:4;display:flex;flex-direction:column;align-items:center;gap:1px;padding:3px 10px;
  border:2px solid rgba(255,63,90,.85);border-radius:5px;background:rgba(20,6,9,.55);color:#ff5c74;opacity:0;
  transform:translate(-50%,-50%) rotate(-12deg) scale(1.9);pointer-events:none;box-shadow:0 0 18px rgba(255,63,90,.35),inset 0 0 10px rgba(255,63,90,.14)}
.tcc .tcc-seal b{font:900 9.5px/1 var(--tc-mono);letter-spacing:.24em;padding-left:.24em}
.tcc .tcc-seal i{font-style:normal;font-size:9.5px;font-weight:800;letter-spacing:.34em;padding-left:.34em;color:#ffb3bf}
.tcc .tcc-card.is-cut .tcc-seal{opacity:1;transform:translate(-50%,-50%) rotate(-12deg) scale(1);animation:tccStamp .46s cubic-bezier(.25,1.2,.35,1) both}

/* ── LAVARWAVE 기폭 노드 + 링 게이지 ── */
.tcc .tcc-node{position:absolute;z-index:6;display:flex;align-items:center;gap:14px;transform:translate(-62px,-50%);pointer-events:none;opacity:0}
.tcc .tcc-gwrap{position:relative;width:124px;height:124px;flex:none}
.tcc .tcc-gauge{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);overflow:visible}
.tcc .tcc-gauge circle{fill:none;stroke-linecap:round}
.tcc .tcc-gtrack{stroke:rgba(120,150,190,.2);stroke-width:3}
.tcc .tcc-gbar{stroke:#5ab0ff;stroke-width:4;filter:drop-shadow(0 0 8px rgba(90,176,255,.9))}
.tcc .tcc-gtick{position:absolute;inset:9px;border-radius:50%;border:1px dashed rgba(90,176,255,.22)}
.tcc .tcc-gcore{position:absolute;left:50%;top:50%;width:56px;height:60px;margin:-30px 0 0 -28px;display:flex;align-items:center;justify-content:center;
  font:900 13px/1 var(--tc-mono);letter-spacing:.04em;color:#03141d;background:linear-gradient(165deg,#7cf6e4,#2b9fd8);
  clip-path:polygon(50% 0,100% 20%,100% 60%,50% 100%,0 60%,0 20%);filter:drop-shadow(0 0 14px rgba(66,235,209,.45))}
.tcc .tcc-nlab{display:flex;flex-direction:column;gap:5px;min-width:0}
.tcc .tcc-nlab>b{font-size:11.5px;font-weight:800;color:#dcfaff;letter-spacing:-.01em;white-space:nowrap}
.tcc .tcc-pct{display:flex;align-items:baseline;gap:8px;white-space:nowrap}
.tcc .tcc-pct em{font:800 9.5px/1 var(--tc-mono);font-style:normal;letter-spacing:.22em;color:#5fb6d8}
.tcc .tcc-pct b{font:800 30px/1 var(--tc-mono);letter-spacing:-.02em;color:#cfeaff;text-shadow:0 0 18px rgba(90,176,255,.55)}
.tcc .tcc-nsub{font:700 9.5px/1 var(--tc-mono);letter-spacing:.08em;color:#5f8ba6;white-space:nowrap}
.tcc.is-final .tcc-pct b{color:#9ed2ff}

/* ── 우상단 카운터 ── */
.tcc .tcc-stats{position:absolute;z-index:6;top:0;right:0;display:flex;align-items:center;gap:18px;padding:10px 16px;opacity:0}
.tcc .tcc-live{display:flex;align-items:center;gap:6px;font:800 9.5px/1 var(--tc-mono);letter-spacing:.14em;color:#42ebd1;border-right:1px solid rgba(120,150,190,.2);padding-right:14px}
.tcc .tcc-live i{width:6px;height:6px;border-radius:50%;background:var(--tc-cyan);box-shadow:0 0 9px var(--tc-cyan)}
.tcc .tcc-stats .s{display:flex;flex-direction:column;gap:4px}
.tcc .tcc-stats .s span{font:700 9.5px/1 var(--tc-mono);letter-spacing:.06em;color:#8b98aa;white-space:nowrap}
.tcc .tcc-stats .s b{font:800 17px/1 var(--tc-mono);color:#eef3f9;white-space:nowrap}
.tcc .tcc-stats .s b.ok{color:var(--tc-green);text-shadow:0 0 12px rgba(57,217,138,.4)}
.tcc .tcc-stats .s b.rd{color:#ff8296}

/* ── 기폭 플래시 (카드 위를 덮는 백청색 워시) ── */
.tcc .tcc-flash{position:absolute;z-index:8;inset:0;pointer-events:none;opacity:0;
  background:radial-gradient(circle at var(--tcc-fx,11%) var(--tcc-fy,85%),rgba(236,250,255,.95),rgba(150,215,255,.7) 26%,rgba(70,150,255,.32) 58%,rgba(20,60,120,.08) 100%);
  mix-blend-mode:screen}

/* ── 피날레 요약 칩 ── */
.tcc .tcc-sum{position:absolute;z-index:7;left:50%;bottom:2px;transform:translateX(-50%);display:flex;gap:10px;white-space:nowrap;pointer-events:none}
.tcc .tcc-sum span{display:inline-flex;align-items:center;gap:7px;padding:9px 14px;border-radius:9px;border:1px solid rgba(90,176,255,.5);
  background:rgba(9,17,28,.88);color:#cfe6ff;font-size:11px;font-weight:800;box-shadow:0 0 20px rgba(90,176,255,.2),inset 0 0 12px rgba(90,176,255,.07);
  opacity:0;transform:translateY(10px);transition:opacity .5s,transform .5s}
.tcc .tcc-sum span::before{content:"✓";font-weight:900;color:#5ab0ff}
.tcc.is-final .tcc-sum span{opacity:1;transform:none}
.tcc.is-final .tcc-sum .c2{transition-delay:.13s}
.tcc.is-final .tcc-sum .c3{transition-delay:.26s}

.tcc .tcc-note{position:absolute;z-index:7;right:2px;bottom:8px;font:600 9.5px/1 var(--tc-mono);letter-spacing:.08em;color:#5b6a7d;pointer-events:none}

@keyframes tccSpin{to{transform:rotate(360deg)}}
@keyframes tccNeu{0%{opacity:.9;transform:scale(.75)}100%{opacity:0;transform:scale(1.6)}}
@keyframes tccStamp{0%{opacity:0;transform:translate(-50%,-50%) rotate(-14deg) scale(2.2)}42%{opacity:1;transform:translate(-50%,-50%) rotate(-12deg) scale(.9)}
  56%{transform:translate(-49%,-52%) rotate(-10deg) scale(1.06)}68%{transform:translate(-51%,-49%) rotate(-13deg) scale(.98)}
  80%{transform:translate(-50%,-50%) rotate(-12deg) scale(1.02)}100%{opacity:1;transform:translate(-50%,-50%) rotate(-12deg) scale(1)}}

/* ── 좁은 데스크톱(1280~1439px): 16장 성좌를 유지한 채 카드만 한 단계 줄인다 ──
   보드가 1180~1330px 로 좁아지면 220px 카드가 이웃과 닿는다(가로 간격 최소 17%). */
@media (max-width:1439px){
  .tcc .tcc-card{width:190px;padding:7px 8px;gap:6px}
  .tcc .tcc-thumb,.tcc .tcc-ico{width:28px;height:28px}
  .tcc .tcc-pf{width:17px;height:17px;right:-4px;bottom:-4px}
  .tcc .tcc-nm{font-size:10.5px}
  .tcc .tcc-ch{font-size:9.5px}
  .tcc .tcc-cst{font-size:9.5px;letter-spacing:-.035em}
  .tcc .tcc-cst i+i::before{margin:0 2.5px}
  .tcc .tcc-right{width:33px;gap:3px}
  .tcc .tcc-ac{font-size:9.5px;letter-spacing:.01em}
  .tcc .tcc-cta{font-size:9.5px;padding:5px 10px}
}

/* ── 중간폭(태블릿·좁은 창): 카드 컴팩트 + 보조 카드 숨김 ──
   JS 의 narrow 티어(≤1279px)와 같은 임계값이어야 한다 — 어긋나면 카드가 겹친다 */
@media (max-width:1279px){
  .tcc .tcc-board{--tcc-tier:1}
  .tcc .tcc-card{width:176px;padding:6px 7px;gap:6px}
  .tcc .tcc-card.sec{display:none}
  .tcc .tcc-thumb,.tcc .tcc-ico{width:28px;height:28px}
  .tcc .tcc-ico{border-radius:8px}
  .tcc .tcc-pf{width:17px;height:17px;right:-4px;bottom:-4px}
  .tcc .tcc-nm{font-size:10.5px}
  .tcc .tcc-ch{font-size:9.5px}
  .tcc .tcc-cst{font-size:9.5px}
  .tcc .tcc-cst i.dt{display:none}
  .tcc .tcc-right{width:38px;gap:3px}
  .tcc .tcc-ac{font-size:9.5px}
  .tcc .tcc-cta{font-size:9.5px;padding:5px 9px}
  .tcc .tcc-seal{padding:2px 7px;border-width:1.5px}
  .tcc .tcc-seal b{font-size:9.5px;letter-spacing:.16em;padding-left:.16em}
  .tcc .tcc-seal i{font-size:9.5px;letter-spacing:.14em;padding-left:.14em}
  .tcc .tcc-hub b{display:none}
  .tcc .tcc-live{display:none}
  .tcc .tcc-stats{gap:12px;padding:8px 12px}
  .tcc .tcc-stats .s b{font-size:14px}
  .tcc .tcc-stats .s span{font-size:9.5px}
  .tcc .tcc-center{width:98px;height:98px}
  .tcc .tcc-ccore{inset:10px}
  .tcc .tcc-ccore b{font-size:10.5px}
  .tcc .tcc-ccore span{font-size:9.5px}
  .tcc .tcc-ccore em{font-size:9.5px;max-width:78px}
  .tcc .tcc-node{gap:11px;transform:translate(-46px,-50%)}
  .tcc .tcc-gwrap{width:92px;height:92px}
  .tcc .tcc-gcore{width:42px;height:45px;margin:-22.5px 0 0 -21px;font-size:11px}
  .tcc .tcc-nlab>b{font-size:10.5px}
  .tcc .tcc-pct b{font-size:24px}
  .tcc .tcc-pct em{font-size:9.5px;letter-spacing:.18em}
  .tcc .tcc-nsub{font-size:9.5px;letter-spacing:.05em}
  .tcc .tcc-sum span{font-size:10.5px;padding:8px 11px}
}

/* ── 모바일 ── */
@media (max-width:880px){
  .tcc .tcc-board{--tcc-tier:2}
  .tcc .tcc-card{width:140px;padding:4px 6px;gap:5px;border-radius:10px}
  .tcc .tcc-cbody{gap:1px}
  .tcc .tcc-thumb,.tcc .tcc-ico{width:26px;height:26px}
  .tcc .tcc-pf{width:14px;height:14px;right:-3px;bottom:-3px;border-width:1px}
  .tcc .tcc-nm{font-size:9.5px;line-height:1.1}
  .tcc .tcc-ch{font-size:9.5px;gap:3px;line-height:1.1}
  .tcc .tcc-ch em{font-size:9.5px}
  .tcc .tcc-cst{font-size:9.5px;line-height:1.1}
  .tcc .tcc-right{width:9px;gap:0}
  .tcc .tcc-ac{display:none}
  .tcc .tcc-cta{font-size:9.5px;padding:4px 8px;top:calc(100% + 5px)}
  .tcc .tcc-stats .s:last-child{display:none}
  .tcc .tcc-stats{gap:10px;padding:8px 10px}
  .tcc .tcc-stats .s b{font-size:13px}
  .tcc .tcc-stats .s span{font-size:9.5px}
  .tcc .tcc-center{width:88px;height:88px}
  /* 코어 원반은 인셋을 줄여 넓힌다 — 8px 이상 서체가 원형 테두리를 넘지 않게 */
  .tcc .tcc-ccore{inset:6px;gap:2px}
  .tcc .tcc-ccore b{font-size:10px}
  .tcc .tcc-ccore span{font-size:9.5px}
  .tcc .tcc-ccore em{font-size:9.5px;max-width:74px;letter-spacing:0}
  .tcc .tcc-node{gap:9px;transform:translate(-41px,-50%)}
  .tcc .tcc-gwrap{width:82px;height:82px}
  .tcc .tcc-gcore{width:38px;height:41px;margin:-20.5px 0 0 -19px;font-size:10px}
  .tcc .tcc-nlab>b{font-size:9.5px}
  .tcc .tcc-pct b{font-size:20px}
  .tcc .tcc-pct em{font-size:9.5px;letter-spacing:.1em}
  .tcc .tcc-nsub{font-size:9.5px;letter-spacing:.04em}
  .tcc .tcc-amb{width:86vw;height:86vw}
  .tcc .tcc-sum{flex-wrap:wrap;justify-content:center;gap:6px;width:calc(100% - 12px);white-space:normal}
  .tcc .tcc-sum span{font-size:10px;padding:6px 9px}
  .tcc .tcc-note{display:none}
}

/* ── 세로가 짧은 모바일(≤700px): 하단 2장을 접어 행 간격을 확보 ── */
@media (max-width:880px) and (max-height:700px){
  .tcc .tcc-board{--tcc-tier:3}
  .tcc .tcc-card.ter{display:none}
  .tcc .tcc-sum span{font-size:9.5px;padding:5px 8px}
}

/* ── 초협폭(≤380px): 카운터를 더 줄여 상단 카피와 접촉하지 않게 ── */
@media (max-width:380px){
  .tcc .tcc-stats{gap:8px;padding:7px 8px}
  .tcc .tcc-stats .s b{font-size:12px}
  .tcc .tcc-stats .s span{font-size:9.5px;letter-spacing:.02em}
}

@media (prefers-reduced-motion:reduce){
  .tcc .tcc-cring,.tcc .tcc-cring2,.tcc .tcc-center::after,.tcc .tcc-card.is-cut .tcc-seal{animation:none !important}
  .tcc .tcc-cta{transition:none}
}

/* ==== /assets/css/tc-scene-e.css?v=20260905c ==== */
/* ============================================================
   TECH CINEMA 씬 06 — HYPERCLOUD V3 투하 · 인프라 노출 · 위장 접촉 보드 · 피해자 보호 (scene 5)
   접두사: tcse- (article.tcsE 전용) · R23(2026-09-04) 재구성
   레이어: 앰비언트(0) → WebGL 가산 네온(1) → 피해자(2 · 보호 단계 8) → 월드(3: 허브 4 · 노드 5 · 1호기 6)
          → 탄두(4) → 보드(5: 계정 카드 · 사람형 AGENT) → 대화 패널(7) → 카운터·요약·배지(8) → 섬광(9)
   배치 티어는 --tcse-tier 로 JS(measure)에 알린다.
     0 데스크톱(노드 52 · 보드 계정 4 · AGENT 16) · 1 중간폭(32 · 4 · 12) · 2 모바일(10 · 4 · 8)
   R25: 보드 좌열은 계정 카드 4장 — 앱명 15.5px · 채널 11.5px · 채널 글리프 28px(모바일 24px), 카드 세로 간격은 JS 가 무대 세로를 4등분.
   위치·개수는 JS 가 실측 크기로 충돌 검사해 정한다(자리가 없으면 개수를 줄인다).
   월드는 카메라(translate+scale)로 줌인·줌아웃되고, WebGL 은 같은 카메라 변환을 공유한다. 보드는 무대 좌표.
   노드 라벨은 실측 악성앱 인덱스 기반, 에이전트·대화는 전부 비식별 연출 데이터.
   글자 크기: 실제 렌더 기준 8px 미만 금지 — JS 가 scale 로 줄이는 요소(.tcse-victim 최소 .86)는 그만큼 기본 크기를 키워 둔다.
   ============================================================ */

.tcsE .tcse{--tcse-tier:0;--tcse-cx:58%;--tcse-cy:53%;position:absolute;inset:0;will-change:transform}

/* ── 배경 앰비언트: 05 씬의 청색 잔광 → 기폭 후 크림슨 → 보호 단계 청색 ── */
.tcsE .tcse-amb{position:absolute;z-index:0;left:var(--tcse-cx);top:var(--tcse-cy);width:min(84vw,980px);height:min(84vw,980px);
  transform:translate(-50%,-50%);border-radius:50%;pointer-events:none;transition:background 1.4s ease,transform 1.4s ease;
  background:radial-gradient(circle,rgba(255,63,90,.10),rgba(90,176,255,.05) 40%,transparent 68%)}
.tcsE.is-blast .tcse-amb{background:radial-gradient(circle,rgba(255,63,90,.22),rgba(255,120,80,.07) 38%,transparent 68%)}
.tcsE.is-safe .tcse-amb{background:radial-gradient(circle,rgba(90,176,255,.16),rgba(66,235,209,.06) 42%,transparent 70%)}

/* ── WebGL 캔버스 ── */
.tcsE .tcse-gl{position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;display:block;pointer-events:none}
.tcsE.tcse-nogl .tcse-gl{display:none}

/* ── 섬광(기폭 순간 전면) — 백색 코어 + 크림슨 잔광 2겹 ── */
.tcsE .tcse-flash,.tcsE .tcse-flash2{position:absolute;z-index:9;inset:0;opacity:0;pointer-events:none}
.tcsE .tcse-flash{background:radial-gradient(circle at var(--tcse-cx) var(--tcse-cy),rgba(255,255,255,1),rgba(255,236,224,.92) 16%,rgba(255,150,150,.5) 42%,rgba(255,63,90,0) 72%)}
.tcsE .tcse-flash2{background:radial-gradient(circle at var(--tcse-cx) var(--tcse-cy),rgba(255,120,120,.55),rgba(255,63,90,.32) 30%,rgba(255,63,90,0) 74%)}

/* ── 월드(카메라 줌 대상) ── */
.tcsE .tcse-world{position:absolute;z-index:3;inset:0;transform-origin:0 0;will-change:transform;transition:filter .8s ease,opacity .8s ease}
.tcsE.is-safe .tcse-world{filter:blur(3px);opacity:.26}

/* ── 가해 조직 허브 ── */
.tcsE .tcse-hub{position:absolute;z-index:4;left:0;top:0;width:180px;height:180px;transform:translate(-50%,-50%);pointer-events:none;transition:opacity .5s}
.tcsE .tcse-hub .ring{position:absolute;left:50%;top:50%;border-radius:50%;transform:translate(-50%,-50%);transition:opacity .6s,border-color .6s}
.tcsE .tcse-hub .ring.r1{width:128px;height:128px;border:1px solid rgba(255,63,90,.34);box-shadow:0 0 26px rgba(255,63,90,.14) inset}
.tcsE .tcse-hub .ring.r2{width:156px;height:156px;border:1px dashed rgba(255,63,90,.40);animation:tcseSpin 46s linear infinite}
.tcsE .tcse-hub .ring.r3{width:178px;height:178px;border:1px solid rgba(255,63,90,.12)}
.tcsE.is-blast .tcse-hub .ring.r2{opacity:0}
.tcsE.is-blast .tcse-hub .ring.r1{border-color:rgba(255,190,150,.4)}
.tcsE.is-blast .tcse-hub .ring.r3{opacity:0}
/* 코어: 어두운 구체 + 붉은 중심 */
.tcsE .tcse-hub .core{position:absolute;left:50%;top:50%;width:54px;height:54px;border-radius:50%;transform:translate(-50%,-50%);
  background:radial-gradient(circle at 38% 30%,#3d1020,#160409 60%,#080204 100%);border:1px solid rgba(255,63,90,.5);
  box-shadow:0 0 26px rgba(255,63,90,.30),inset 0 0 16px rgba(255,63,90,.22);transition:box-shadow .6s,border-color .6s,background .6s}
.tcsE .tcse-hub .core .cx{position:absolute;left:50%;top:50%;width:12px;height:12px;border-radius:50%;transform:translate(-50%,-50%);
  background:#ff3f5a;box-shadow:0 0 14px rgba(255,63,90,.95);transition:width .6s,height .6s,background .6s,box-shadow .6s}
.tcsE.is-blast .tcse-hub .core{border-color:rgba(255,190,150,.8);background:radial-gradient(circle at 50% 50%,#ff8a96,#8a1526 44%,#1c0609 100%);
  box-shadow:0 0 46px rgba(255,90,90,.6),inset 0 0 24px rgba(255,210,180,.45)}
.tcsE.is-blast .tcse-hub .core .cx{width:22px;height:22px;background:#fff3ea;box-shadow:0 0 24px rgba(255,225,210,.95)}
/* 장갑 껍질 6조각 — 육각 링을 이루는 사다리꼴, 기폭 시 JS 가 바깥으로 날린다 */
.tcsE .tcse-hub .shards{position:absolute;left:50%;top:50%;width:0;height:0}
.tcsE .tcse-hub .sh{position:absolute;left:-24px;top:-13px;width:48px;height:26px;transform-origin:50% 50%;opacity:1;
  clip-path:polygon(0 0,100% 0,72% 100%,28% 100%);
  background:linear-gradient(180deg,#5b1b28 0%,#31101a 55%,#1c0910 100%);
  box-shadow:0 0 12px rgba(255,63,90,.22),inset 0 1px 0 rgba(255,140,160,.45)}
.tcsE .tcse-hub .sh::after{content:"";position:absolute;left:34%;right:34%;top:38%;height:2px;border-radius:1px;background:rgba(255,120,140,.55)}
/* 위성 패밀리 칩 — 관측 C2 패밀리(JS 가 공전 좌표를 준다) */
.tcsE .tcse-hub .sat{position:absolute;left:50%;top:50%;padding:3px 7px 3px 6px;border-radius:6px;font:800 9.5px/1 var(--tc-mono);letter-spacing:.06em;color:#ffb3bf;
  background:rgba(40,10,18,.94);border:1px solid rgba(255,63,90,.45);white-space:nowrap;box-shadow:0 4px 12px rgba(0,0,0,.45);
  transform:translate(-50%,-50%);display:inline-flex;align-items:center;gap:5px;transition:opacity .4s}
.tcsE .tcse-hub .sat::before{content:"";width:4px;height:4px;border-radius:50%;background:#ff3f5a;box-shadow:0 0 6px rgba(255,63,90,.9)}
.tcsE .tcse-hub .sat.bk{z-index:-1;opacity:.72}
.tcsE .tcse-hub .lab{position:absolute;left:50%;top:calc(50% + 88px);transform:translateX(-50%);font:900 9px/1 var(--tc-mono);letter-spacing:.26em;color:#ff8296;white-space:nowrap;transition:color .6s}
.tcsE.is-blast .tcse-hub .lab{color:#ffd0c4}
@keyframes tcseSpin{to{transform:translate(-50%,-50%) rotate(360deg)}}

/* ── 인프라 노드(노출 후) — CDN·릴레이 / 서버 / 메신저 계정 ── */
.tcsE .tcse-node{position:absolute;z-index:5;left:0;top:0;transform:translate(-50%,-50%) scale(.6);display:flex;align-items:center;gap:7px;padding:5px 8px 5px 7px;border-radius:8px;
  border:1px solid rgba(255,63,90,.36);background:linear-gradient(160deg,rgba(26,12,18,.96),rgba(11,8,13,.95));opacity:0;pointer-events:none;white-space:nowrap;
  box-shadow:0 6px 16px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.06);transition:border-color .45s,box-shadow .45s,filter .5s}
.tcsE .tcse-node .ic{position:relative;flex:none;width:18px;height:18px;border-radius:5px;background:rgba(255,63,90,.16);border:1px solid rgba(255,63,90,.45);transition:background .45s,border-color .45s}
/* 계정: 말풍선 */
.tcsE .tcse-node.t-acc .ic{border-radius:6px 6px 6px 2px}
.tcsE .tcse-node.t-acc .ic::before{content:"";position:absolute;left:4px;top:6px;width:8px;height:2px;border-radius:1px;background:rgba(255,190,200,.85);box-shadow:0 4px 0 rgba(255,190,200,.55)}
/* 서버: 랙 3단 */
.tcsE .tcse-node.t-srv .ic::before{content:"";position:absolute;left:3px;right:3px;top:3px;height:2px;border-radius:1px;background:rgba(255,190,200,.85);box-shadow:0 4px 0 rgba(255,190,200,.7),0 8px 0 rgba(255,190,200,.5)}
.tcsE .tcse-node.t-srv .ic::after{content:"";position:absolute;right:4px;top:3px;width:2px;height:2px;border-radius:1px;background:#fff;box-shadow:0 4px 0 #fff,0 8px 0 #fff}
/* CDN·릴레이: 지구본(골드 악센트) */
.tcsE .tcse-node.t-cdn .ic{border-radius:50%;background:rgba(255,184,64,.14);border-color:rgba(255,184,64,.5)}
.tcsE .tcse-node.t-cdn .ic::before{content:"";position:absolute;inset:3px;border-radius:50%;border:1px solid rgba(255,214,150,.85)}
.tcsE .tcse-node.t-cdn .ic::after{content:"";position:absolute;left:8px;top:2px;width:1px;height:14px;background:rgba(255,214,150,.85);box-shadow:-3px 0 0 rgba(255,214,150,.35),3px 0 0 rgba(255,214,150,.35)}
.tcsE .tcse-node.t-cdn{border-color:rgba(255,184,64,.34)}
.tcsE .tcse-node .tx{display:flex;flex-direction:column;gap:3px}
.tcsE .tcse-node .l1{font-size:10px;font-weight:800;color:#f4d3d9;line-height:1;letter-spacing:-.01em}
.tcsE .tcse-node .l2{font:700 9px/1 var(--tc-mono);color:#c47a88;letter-spacing:.02em} /* 팝인 배율 .94 에서도 ≥8px */
.tcsE .tcse-node.t-cdn .l2{color:#d2a76a}
.tcsE .tcse-node .st{margin-left:3px;font:800 9.5px/1 var(--tc-mono);color:#ff8296;padding:3px 5px;border-radius:4px;background:rgba(255,63,90,.14);font-style:normal;transition:color .3s,background .3s}
.tcsE .tcse-node.is-talk{border-color:rgba(66,235,209,.55);box-shadow:0 6px 16px rgba(0,0,0,.45),0 0 18px rgba(66,235,209,.16)}
.tcsE .tcse-node.is-talk .ic{background:rgba(66,235,209,.14);border-color:rgba(66,235,209,.55)}
.tcsE .tcse-node.is-talk .st{color:#8ff0dc;background:rgba(66,235,209,.14)}
.tcsE .tcse-node.is-focus{z-index:6;border-color:rgba(120,240,220,.85);box-shadow:0 8px 22px rgba(0,0,0,.5),0 0 26px rgba(66,235,209,.36)}
.tcsE.is-zoom .tcse-node:not(.is-focus){filter:blur(1.5px) saturate(.6)}
.tcsE .tcse-node.off{display:none}

/* ── 위장 에이전트 칩(줌인 1호기) ── */
.tcsE .tcse-agent{position:absolute;z-index:6;left:0;top:0;transform:translate(-50%,-50%);display:inline-flex;align-items:center;gap:5px;padding:3px 7px 3px 5px;border-radius:6px;
  border:1px solid rgba(90,176,255,.5);background:linear-gradient(160deg,rgba(14,26,44,.96),rgba(8,14,26,.94));opacity:0;pointer-events:none;white-space:nowrap;
  box-shadow:0 4px 12px rgba(0,0,0,.45),0 0 12px rgba(90,176,255,.14)}
.tcsE .tcse-agent .hx{width:10px;height:11px;flex:none;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);
  background:linear-gradient(180deg,rgba(150,215,255,.95),rgba(40,110,190,.9))}
.tcsE .tcse-agent b{font:800 9.5px/1 var(--tc-mono);letter-spacing:.08em;color:#cfe4ff}
.tcsE .tcse-agent.is-lead{border-color:rgba(140,220,255,.85);box-shadow:0 4px 12px rgba(0,0,0,.45),0 0 18px rgba(90,176,255,.4)}
.tcsE .tcse-agent.off{display:none}

/* ── 줌인 대화 패널(무대 좌표 · 포커스 노드 아래) — 헤더 + 버블 2개(전부 더미) ── */
.tcsE .tcse-panel{position:absolute;z-index:7;left:0;top:0;width:320px;display:flex;flex-direction:column;gap:7px;opacity:0;pointer-events:none;box-sizing:border-box}
.tcsE .tcse-panel .ph{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:10px;border:1px solid rgba(90,176,255,.42);
  background:linear-gradient(160deg,rgba(12,26,46,.97),rgba(8,14,26,.96));box-shadow:0 8px 18px rgba(0,0,0,.5),0 0 16px rgba(90,176,255,.14);opacity:0;transform:translateY(6px)}
.tcsE .tcse-panel .ph .hx{width:13px;height:14px;flex:none;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);background:linear-gradient(180deg,rgba(150,215,255,.95),rgba(40,110,190,.9))}
.tcsE .tcse-panel .ph b{font:800 11px/1 var(--tc-mono);letter-spacing:.1em;color:#dbeaff;white-space:nowrap}
.tcsE .tcse-panel .ph i{margin-left:auto;font:800 9.5px/1 var(--tc-mono);letter-spacing:.08em;color:#8ff0dc;padding:3px 6px;border-radius:4px;background:rgba(66,235,209,.12);border:1px solid rgba(66,235,209,.35);font-style:normal;white-space:nowrap}
.tcsE .tcse-panel .bb{opacity:0;transform:translateY(6px);padding:9px 12px;border-radius:12px;border-bottom-left-radius:3px;font-size:12px;line-height:1.45;font-weight:700;color:#eef3f9;
  background:rgba(42,16,26,.96);border:1px solid rgba(255,63,90,.42);box-shadow:0 8px 18px rgba(0,0,0,.5);white-space:normal;box-sizing:border-box;max-width:88%}
.tcsE .tcse-panel .bb.me{align-self:flex-end;background:rgba(10,36,44,.97);border-color:rgba(66,235,209,.5);border-bottom-left-radius:11px;border-bottom-right-radius:3px}
.tcsE .tcse-panel .bb i{display:block;font:800 9px/1 var(--tc-mono);letter-spacing:.1em;margin-bottom:5px;color:#ff8296;font-style:normal}
.tcsE .tcse-panel .bb.me i{color:#6fd8c4}

/* ── HYPERCLOUD V3 탄두(무대 좌표 · 노즈가 아래) — 관통탄 실루엣, 원통 셰이딩 ──
   DOM 은 WebGL 캔버스(z1) 위(z4)에 있어 허브 글로우를 가리므로 탄체는 DOM 으로, 플룸·스트릭·조준 링은 GL 가산이 담당한다.
   원통 셰이딩: 가로 그라디언트로 스펙큘러 밴드(좌측 40% 지점)·코어 섀도·림 라이트(우측 끝)를 그려 금속 원통으로 읽히게 하고,
   수평 패널 이음선(repeating-linear-gradient)·기폭 링(하단 3px 밴드, 원통 음영을 따라 가운데만 밝음)·노즐 링(상단 타원)을 겹친다.
   노즈콘은 같은 가로 음영 위에 팁으로 갈수록 백열되는 세로 그라디언트를 얹어 탄체와 하이라이트가 이어진다. */
.tcsE .tcse-bomb{position:absolute;z-index:4;left:0;top:0;width:44px;height:190px;opacity:0;pointer-events:none;transform-origin:50% 50%}
/* 플룸(노즐 뒤 배기): 바깥 냉색 헤일로 + 안쪽 백열 코어. 탄체(top 66px) 뒤로 들어간다 */
.tcsE .tcse-bomb .plume{position:absolute;left:50%;top:0;width:30px;height:70px;margin-left:-15px;border-radius:50% 50% 0 0;filter:blur(1.6px);
  background:radial-gradient(ellipse 60% 100% at 50% 100%,rgba(232,244,255,.95),rgba(150,208,255,.55) 34%,rgba(90,176,255,.22) 60%,rgba(90,176,255,0) 78%)}
.tcsE .tcse-bomb .plume::before{content:"";position:absolute;left:50%;top:8px;bottom:0;width:8px;margin-left:-4px;border-radius:50% 50% 0 0;filter:blur(.6px);
  background:linear-gradient(180deg,rgba(255,255,255,0),rgba(200,232,255,.7) 45%,#ffffff)}
/* 안정익 2매: 리딩 엣지(좌상)로 갈수록 밝은 금속 음영, 뿌리 쪽은 탄체 그림자 */
.tcsE .tcse-bomb .fin{position:absolute;top:64px;width:14px;height:34px;clip-path:polygon(0 0,100% 55%,100% 100%,0 100%);
  background:linear-gradient(200deg,#d2e8ff 0%,#5f98d2 20%,#1b416c 56%,#071322 100%);filter:drop-shadow(0 0 5px rgba(90,176,255,.45))}
.tcsE .tcse-bomb .fin.f1{left:-9px;transform:scaleX(-1)}
.tcsE .tcse-bomb .fin.f2{right:-9px}
/* 탄체: 금속 원통 */
.tcsE .tcse-bomb .body{position:absolute;left:50%;top:66px;width:40px;height:96px;margin-left:-20px;border-radius:4px 4px 2px 2px;box-sizing:border-box;
  background:
    linear-gradient(90deg,rgba(140,210,255,.05),rgba(232,246,255,.98) 40%,rgba(140,210,255,.05)) 0 calc(100% - 10px)/100% 3px no-repeat,
    repeating-linear-gradient(180deg,rgba(0,0,0,0) 0 21px,rgba(0,0,0,.38) 21px 22px,rgba(255,255,255,.05) 22px 23px,rgba(0,0,0,0) 23px 24px),
    linear-gradient(90deg,#030910 0%,#0b1c30 9%,#1e4670 24%,#6ea6dc 36%,#c4e2ff 41%,#5b93cc 49%,#1c3d63 66%,#0a1a2c 85%,#7fb4ee 96%,#0d233c 100%);
  border:1px solid rgba(110,170,235,.42);
  box-shadow:0 0 18px rgba(90,176,255,.42),inset 0 -12px 14px rgba(0,0,0,.55),inset 0 10px 12px rgba(255,255,255,.05);
  display:flex;align-items:center;justify-content:center}
/* 세로 액센트 라인(스펙큘러 밴드 옆 도장선) */
.tcsE .tcse-bomb .body::before{content:"";position:absolute;left:12px;top:8px;bottom:14px;width:1px;background:linear-gradient(180deg,rgba(225,242,255,.9),rgba(225,242,255,.2))}
/* 노즐 링: 탄체 상단 타원 — 플룸이 이 뒤에서 나온다 */
.tcsE .tcse-bomb .body::after{content:"";position:absolute;left:50%;top:-5px;width:26px;height:10px;margin-left:-13px;border-radius:50%;
  background:radial-gradient(ellipse at 50% 34%,#1c3656,#070d18 68%);border:1px solid rgba(120,184,244,.6);
  box-shadow:0 0 10px rgba(90,176,255,.55),inset 0 0 4px rgba(120,190,255,.55)}
/* 형식명(세로쓰기): 노즐 링(상단 5px)과 기폭 밴드(하단 10px) 사이에 들어가게 8.5px·자간 .08em·아래로 8px — 탄두는 cam 1.10 배라 실제 9.35px */
.tcsE .tcse-bomb .body b{position:relative;margin-top:8px;writing-mode:vertical-rl;font:900 9.5px/1 var(--tc-mono);letter-spacing:.08em;color:#e6f2ff;white-space:nowrap;
  text-shadow:0 0 6px rgba(140,200,255,.85),0 0 1px rgba(0,0,0,.8)}
/* 노즈콘: 탄체와 같은 가로 음영 + 팁 백열 */
.tcsE .tcse-bomb .nose{position:absolute;left:50%;top:160px;width:40px;height:30px;margin-left:-20px;clip-path:polygon(0 0,100% 0,50% 100%);
  background:
    linear-gradient(180deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.18) 45%,rgba(255,255,255,.8) 100%),
    linear-gradient(90deg,#0b1c30 0%,#2f5f94 20%,#a9d3ff 38%,#eaf6ff 44%,#6ea6dc 56%,#1c3d63 82%,#5f98d2 96%,#0d233c 100%);
  filter:drop-shadow(0 0 10px rgba(180,225,255,.85))}
.tcsE .tcse-bomb .nose::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,rgba(255,255,255,.1),rgba(255,255,255,.9) 40%,rgba(255,255,255,.15))}

/* ── 피해자 노드(뒤쪽 · 보호 단계에서 앞으로) ── */
.tcsE .tcse-victim{position:absolute;z-index:2;left:0;top:0;width:118px;height:126px;opacity:.34;filter:blur(2.5px);
  pointer-events:none;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity .8s ease,filter .8s ease}
.tcsE.is-safe .tcse-victim{z-index:8;opacity:1;filter:blur(0)}
.tcsE .tcse-vcore{position:relative;width:58px;height:58px;border-radius:50%;
  background:radial-gradient(circle at 50% 38%,rgba(26,48,80,.96),rgba(9,14,24,.97) 72%);
  border:1px solid rgba(90,176,255,.5);box-shadow:0 0 28px rgba(90,176,255,.28),inset 0 0 18px rgba(90,176,255,.14);
  transition:border-color .6s,box-shadow .6s}
.tcsE .tcse-vcore::before{content:"";position:absolute;left:50%;top:19%;width:30%;height:30%;border-radius:50%;background:rgba(170,205,240,.8);transform:translateX(-50%)}
.tcsE .tcse-vcore::after{content:"";position:absolute;left:50%;top:55%;width:62%;height:40%;border-radius:44% 44% 0 0;background:rgba(170,205,240,.64);transform:translateX(-50%)}
/* 라벨 10.5px: 피해자 노드는 JS 가 .86~1.3 으로 스케일하므로 최소 배율에서도 10.5×.86 = 9.03px ≥ 8px */
.tcsE .tcse-vlab{margin-top:10px;font:900 10.5px/1 var(--tc-mono);letter-spacing:.2em;color:#8fc6ff;white-space:nowrap;transition:color .5s}
.tcsE.is-safe .tcse-vcore{border-color:rgba(160,220,255,.85);box-shadow:0 0 44px rgba(90,176,255,.55),inset 0 0 22px rgba(90,176,255,.24)}
.tcsE.is-safe .tcse-vlab{color:#fff}
/* WebGL 폴백: 육각 보호막을 CSS 로 */
.tcsE .tcse-vhex{position:absolute;left:50%;top:50%;width:150px;height:150px;margin:-75px 0 0 -75px;opacity:0;pointer-events:none;
  clip-path:polygon(50% 0,93% 25%,93% 75%,50% 100%,7% 75%,7% 25%);
  background:linear-gradient(180deg,rgba(90,176,255,.18),rgba(66,235,209,.08));transition:opacity .6s}
.tcsE.tcse-nogl.is-safe .tcse-vhex{opacity:1}
/* WebGL 폴백: 충격파는 앰비언트 확장이 대신한다 */
.tcsE.tcse-nogl.is-blast .tcse-amb{transform:translate(-50%,-50%) scale(1.3)}

/* ── 카운터 ── */
.tcsE .tcse-stats{position:absolute;z-index:8;right:0;top:0;display:flex;gap:14px;padding:9px 13px;border:1px solid rgba(120,150,190,.22);border-radius:12px;
  background:rgba(8,13,22,.84);backdrop-filter:blur(8px);opacity:0;pointer-events:none;white-space:nowrap;box-sizing:border-box}
.tcsE .tcse-stats .s{display:flex;flex-direction:column;gap:4px;min-width:78px}
.tcsE .tcse-stats .s b{font:800 17px/1 var(--tc-mono);color:#fff;letter-spacing:-.02em}
.tcsE .tcse-stats .s span{font-size:9.5px;font-weight:700;color:#8fa5bd;letter-spacing:.04em}
.tcsE .tcse-stats .s.r b{color:#ff8296}
.tcsE .tcse-stats .s.t b{color:#8ff0dc}
.tcsE .tcse-stats .s.a b{color:#9ed2ff}

/* ── 피날레 요약 ── */
.tcsE .tcse-sum{position:absolute;z-index:8;left:50%;bottom:0;transform:translate(-50%,10px);display:flex;gap:6px;opacity:0;pointer-events:none;white-space:nowrap}
.tcsE .tcse-sum span{padding:7px 11px;border-radius:999px;border:1px solid rgba(90,176,255,.4);background:rgba(8,16,30,.9);font-size:10.5px;font-weight:800;color:#cfe4ff;
  box-shadow:0 0 16px rgba(90,176,255,.14)}
.tcsE .tcse-sum span.z{border-color:rgba(66,235,209,.62);color:#8ff0dc;box-shadow:0 0 18px rgba(66,235,209,.2)}

/* ── 데이터 배지 ── */
.tcsE .tcse-note{position:absolute;z-index:8;left:0;bottom:0;font:700 9.5px/1 var(--tc-mono);letter-spacing:.14em;color:#4d6180;white-space:nowrap}

/* ── 중간폭(≤1279px): 노드 20 · 에이전트 30 · 카드 컴팩트 ── */
@media (max-width:1279px){
  .tcsE .tcse{--tcse-tier:1}
  .tcsE .tcse-node{padding:4px 7px 4px 6px;gap:6px}
  .tcsE .tcse-node .l1{font-size:9.5px}
  .tcsE .tcse-node .ic{width:16px;height:16px}
  .tcsE .tcse-agent{padding:3px 6px 3px 5px}
  .tcsE .tcse-panel{width:270px}
  .tcsE .tcse-panel .bb{font-size:11px;padding:8px 10px}
  .tcsE .tcse-panel .ph{padding:8px 10px}
  .tcsE .tcse-panel .ph b{font-size:10px}
  .tcsE .tcse-stats{gap:11px;padding:8px 11px}
  .tcsE .tcse-stats .s{min-width:66px}
  .tcsE .tcse-stats .s b{font-size:15px}
  .tcsE .tcse-sum span{font-size:10px;padding:6px 10px}
  .tcsE .tcse-victim{width:104px}
  .tcsE .tcse-hub{width:160px;height:160px}
  .tcsE .tcse-hub .ring.r2{width:146px;height:146px}
  .tcsE .tcse-hub .ring.r3{width:158px;height:158px}
  .tcsE .tcse-hub .lab{top:calc(50% + 84px)}
  .tcsE .tcse-bomb{width:38px;height:170px}
  .tcsE .tcse-bomb .plume{height:60px;width:26px;margin-left:-13px}
  .tcsE .tcse-bomb .fin{top:58px;width:12px;height:30px}
  .tcsE .tcse-bomb .fin.f1{left:-8px}
  .tcsE .tcse-bomb .fin.f2{right:-8px}
  .tcsE .tcse-bomb .body{top:58px;width:36px;height:86px;margin-left:-18px}
  .tcsE .tcse-bomb .body::before{left:11px}
  .tcsE .tcse-bomb .body::after{width:24px;margin-left:-12px}
  .tcsE .tcse-bomb .body b{letter-spacing:.06em;margin-top:6px}
  .tcsE .tcse-bomb .nose{top:142px;width:36px;height:28px;margin-left:-18px}
}

/* ── 모바일(≤880px): 허브 위 · 노드 10(행 배치) · 에이전트 12 · 카운터는 하단 한 줄 ── */
@media (max-width:880px){
  .tcsE .tcse{--tcse-tier:2}
  .tcsE .tcse-amb{width:110vw;height:110vw}
  .tcsE .tcse-hub{width:112px;height:112px}
  .tcsE .tcse-hub .ring.r1{width:88px;height:88px}
  .tcsE .tcse-hub .ring.r2{width:104px;height:104px}
  .tcsE .tcse-hub .ring.r3{width:112px;height:112px}
  .tcsE .tcse-hub .core{width:40px;height:40px}
  .tcsE .tcse-hub .sh{left:-17px;top:-9px;width:34px;height:18px}
  .tcsE .tcse-hub .sat{display:none}
  .tcsE .tcse-hub .lab{top:calc(50% + 46px);font-size:9.5px;letter-spacing:.18em}
  .tcsE .tcse-node{padding:3px 6px;gap:5px}
  .tcsE .tcse-node .ic{width:14px;height:14px}
  .tcsE .tcse-node .l1{font-size:9px}
  .tcsE .tcse-node .l2{display:none}
  .tcsE .tcse-node .st{font-size:9px;padding:2px 4px}
  .tcsE .tcse-agent{padding:2px 5px 2px 4px;gap:4px}
  .tcsE .tcse-agent b{font-size:9.5px;letter-spacing:.04em}
  .tcsE .tcse-panel{width:236px}
  .tcsE .tcse-panel .bb{font-size:10px;padding:6px 9px}
  .tcsE .tcse-panel .ph{padding:6px 8px;gap:6px}
  .tcsE .tcse-panel .ph b{font-size:9.5px;letter-spacing:.06em}
  .tcsE .tcse-panel .ph i{font-size:9.5px}
  .tcsE .tcse-bomb{width:30px;height:140px}
  .tcsE .tcse-bomb .plume{height:46px;width:20px;margin-left:-10px}
  .tcsE .tcse-bomb .plume::before{width:6px;margin-left:-3px}
  .tcsE .tcse-bomb .fin{top:44px;width:10px;height:24px}
  .tcsE .tcse-bomb .fin.f1{left:-6px}
  .tcsE .tcse-bomb .fin.f2{right:-6px}
  .tcsE .tcse-bomb .body{top:44px;width:30px;height:74px;margin-left:-15px;background-size:100% 2px,auto,auto;background-position:0 calc(100% - 7px),0 0,0 0}
  .tcsE .tcse-bomb .body b{letter-spacing:0;margin-top:5px}
  .tcsE .tcse-bomb .body::before{left:8px;top:6px;bottom:10px}
  .tcsE .tcse-bomb .body::after{width:20px;height:8px;margin-left:-10px;top:-4px}
  .tcsE .tcse-bomb .nose{top:117px;width:30px;height:22px;margin-left:-15px}
  .tcsE .tcse-victim{width:96px;height:96px}
  .tcsE .tcse-vcore{width:46px;height:46px}
  .tcsE .tcse-vlab{font-size:10px;letter-spacing:.14em}   /* 10×.86 = 8.6px ≥ 8px */
  /* 카운터는 무대 하단(HUD 위)으로 내려 헤드 카피와 겹치지 않게 한다 */
  .tcsE .tcse-stats{right:0;left:0;top:auto;bottom:2px;justify-content:space-between;gap:6px;padding:7px 9px;border-radius:10px}
  .tcsE .tcse-stats .s{min-width:0;gap:3px}
  .tcsE .tcse-stats .s b{font-size:13px}
  .tcsE .tcse-stats .s span{font-size:9.5px;letter-spacing:.02em}
  .tcsE .tcse-sum{flex-wrap:wrap;justify-content:center;gap:5px;width:100%;bottom:52px;white-space:normal}
  .tcsE .tcse-sum span{font-size:9.5px;padding:5px 8px}
  .tcsE .tcse-note{display:none}
}

/* ── 보드(줌아웃 이후 · 무대 좌표): 좌열 가해 계정 카드 · 우열 사람형 DECOY AGENT · 사이는 WebGL 가산 빔 ── */
.tcsE .tcse-board{position:absolute;z-index:5;inset:0;opacity:0;pointer-events:none;transition:opacity .3s ease,filter .8s ease}
.tcsE.is-board .tcse-board{opacity:1}
.tcsE.is-safe .tcse-board{filter:blur(3px);opacity:.26}
.tcsE .tcse-bdefs{position:absolute;left:0;top:0;width:0;height:0}
/* 열 머리말 */
.tcsE .tcse-bh{position:absolute;left:0;top:0;opacity:0;font:800 9.5px/1 var(--tc-mono);letter-spacing:.2em;white-space:nowrap;padding-left:13px}
.tcsE .tcse-bh::before{content:"";position:absolute;left:0;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%}
.tcsE .tcse-bh.l{color:#ff8296}
.tcsE .tcse-bh.l::before{background:#ff3f5a;box-shadow:0 0 8px rgba(255,63,90,.8)}
.tcsE .tcse-bh.r{color:#9ed2ff}
.tcsE .tcse-bh.r::before{background:#5ab0ff;box-shadow:0 0 8px rgba(90,176,255,.8)}
/* 좌열 계정 카드 4장(R25 확대) — 채널 글리프 28px + 앱명 15.5px + 채널 11.5px, 우측 상태 칩 9.5px, 우측 끝 포트(빔 종점)
   카드는 진입 시 JS scale .92→1 이라 최소 실렌더 = 15.5×.92 = 14.3 / 11.5×.92 = 10.6 / 9.5×.92 = 8.7px ≥ 8px */
.tcsE .tcse-bacc{position:absolute;left:0;top:0;width:248px;transform:translate(-50%,-50%);display:flex;align-items:center;gap:12px;padding:13px 66px 13px 13px;border-radius:12px;
  border:1px solid rgba(255,63,90,.36);background:linear-gradient(160deg,rgba(26,12,18,.97),rgba(11,8,13,.96));opacity:0;white-space:nowrap;box-sizing:border-box;
  box-shadow:0 8px 20px rgba(0,0,0,.48),inset 0 1px 0 rgba(255,255,255,.06);transition:border-color .45s,box-shadow .45s}
.tcsE .tcse-bacc .ic{position:relative;flex:none;width:28px;height:28px;border-radius:8px 8px 8px 3px;background:rgba(255,63,90,.16);border:1px solid rgba(255,63,90,.45);transition:background .45s,border-color .45s}
.tcsE .tcse-bacc .ic::after{content:attr(data-ch);position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:900 13px/1 var(--tc-mono);color:#ffc4cd;transition:color .45s}
.tcsE .tcse-bacc .tx{display:flex;flex-direction:column;gap:5px;min-width:0}
.tcsE .tcse-bacc .nm{font-size:15.5px;font-weight:800;color:#f4d3d9;line-height:1;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;max-width:128px}
.tcsE .tcse-bacc .ch{font:700 11.5px/1 var(--tc-mono);color:#c47a88;letter-spacing:.02em}
.tcsE .tcse-bacc .st{position:absolute;right:10px;top:50%;transform:translateY(-50%);font:800 9.5px/1 var(--tc-mono);color:#ff8296;padding:4px 6px;border-radius:5px;background:rgba(255,63,90,.14);font-style:normal;transition:color .3s,background .3s}
.tcsE .tcse-bacc .pt{position:absolute;right:-6px;top:50%;width:10px;height:10px;margin-top:-5px;border-radius:50%;background:#2a0e16;border:1px solid rgba(255,120,140,.6);transition:background .3s,border-color .3s,box-shadow .3s}
.tcsE .tcse-bacc.is-live{border-color:rgba(66,235,209,.58);box-shadow:0 6px 16px rgba(0,0,0,.45),0 0 18px rgba(66,235,209,.16)}
.tcsE .tcse-bacc.is-live .ic{background:rgba(66,235,209,.14);border-color:rgba(66,235,209,.55)}
.tcsE .tcse-bacc.is-live .ic::after{color:#8ff0dc}
.tcsE .tcse-bacc.is-live .st{color:#8ff0dc;background:rgba(66,235,209,.14)}
.tcsE .tcse-bacc.is-live .pt{background:#42ebd1;border-color:#9ff5e6;box-shadow:0 0 10px rgba(66,235,209,.9)}
.tcsE .tcse-bacc.off{display:none}
.tcsE .tcse-bmore{position:absolute;left:0;top:0;transform:translate(-50%,-50%);opacity:0;padding:6px 12px;border-radius:999px;border:1px dashed rgba(255,63,90,.38);
  font:800 9.5px/1 var(--tc-mono);letter-spacing:.1em;color:#c47a88;white-space:nowrap;background:rgba(14,8,12,.8)}
/* 우열 사람형 AGENT — 프로필 링 + 머리·어깨 실루엣(비식별), 라벨 아래 */
.tcsE .tcse-bag{position:absolute;left:0;top:0;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:4px;opacity:0;pointer-events:none;white-space:nowrap}
.tcsE .tcse-bag .fg{position:relative;width:46px;height:46px;border-radius:50%;background:radial-gradient(circle at 50% 40%,rgba(22,44,76,.96),rgba(8,14,26,.98) 74%);
  box-shadow:0 6px 16px rgba(0,0,0,.5),0 0 14px rgba(90,176,255,.14);transition:box-shadow .45s}
.tcsE .tcse-bag .fg svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.tcsE .tcse-bag .fg .rg{transition:stroke-width .4s,opacity .4s;opacity:.75}
.tcsE .tcse-bag .fg .hd,.tcsE .tcse-bag .fg .sh{opacity:.82;transition:opacity .4s}
.tcsE .tcse-bag .fg .dot{fill:rgba(120,170,220,.35);stroke:rgba(8,14,26,1);stroke-width:1.4;transition:fill .3s}
.tcsE .tcse-bag b{font:800 9.5px/1 var(--tc-mono);letter-spacing:.08em;color:#9ec4ea;transition:color .3s}
.tcsE .tcse-bag.is-live .fg{box-shadow:0 6px 16px rgba(0,0,0,.5),0 0 22px rgba(90,176,255,.42)}
.tcsE .tcse-bag.is-live .fg .rg{opacity:1;stroke-width:1.7}
.tcsE .tcse-bag.is-live .fg .hd,.tcsE .tcse-bag.is-live .fg .sh{opacity:1}
.tcsE .tcse-bag.is-live .fg .dot{fill:#42ebd1}
.tcsE .tcse-bag.is-live b{color:#dbeaff}
.tcsE .tcse-bag.off{display:none}
@media (max-width:1279px){
  .tcsE .tcse-bacc{width:230px;padding:12px 62px 12px 12px;gap:10px}
  .tcsE .tcse-bacc .nm{font-size:15px;max-width:116px}
  .tcsE .tcse-bacc .ic{width:26px;height:26px}
  .tcsE .tcse-bacc .ic::after{font-size:12px}
  .tcsE .tcse-bag .fg{width:42px;height:42px}
}
@media (max-width:880px){
  .tcsE .tcse-bacc{width:190px;padding:10px 56px 10px 10px;gap:8px;border-radius:10px}
  .tcsE .tcse-bacc .nm{font-size:15px;max-width:88px}
  .tcsE .tcse-bacc .ic{width:24px;height:24px;border-radius:7px 7px 7px 3px}
  .tcsE .tcse-bacc .ic::after{font-size:11.5px}
  .tcsE .tcse-bacc .st{right:8px;padding:3px 5px;font-size:9px}
  .tcsE .tcse-bmore{padding:5px 10px;font-size:9px}
  /* 모바일: 실루엣 왼쪽 · 라벨 오른쪽 한 줄(행 높이 절약) */
  .tcsE .tcse-bag{flex-direction:row;gap:5px}
  .tcsE .tcse-bag .fg{width:32px;height:32px}
  .tcsE .tcse-bag b{letter-spacing:.04em}
}
@media (prefers-reduced-motion:reduce){
  .tcsE .tcse-board,.tcsE .tcse-bacc,.tcsE .tcse-bag .fg{transition:none}
  .tcsE.is-safe .tcse-board{filter:none;opacity:.55}
}

/* 감속 모션: 완성 상태 정지 프레임 — 월드는 흐리지 않게 남겨 인프라·스웜·보호가 한 장에 보이게 */
@media (prefers-reduced-motion:reduce){
  .tcsE .tcse-hub .ring.r2{animation:none}
  .tcsE .tcse-vcore,.tcsE .tcse-node,.tcsE .tcse-node .st,.tcsE .tcse-world,.tcsE .tcse-victim,.tcsE .tcse-amb,.tcsE .tcse-hub{transition:none}
  .tcsE.is-safe .tcse-world{filter:none;opacity:.55}
}

/* ==== /assets/css/svc-step2.css?v=20260905c ==== */
/* ============================================================
   /service — STEP 02 재구성 (R10 · 모듈 C)
   · 상단 밴드 : LAVAR VM · PACKET ANALYZER 분석 창 2개
   · 하단 전체 : 방어 성좌 씬 (VICTIM → LAVARWAVE 실드 → 표적 4)
   product-service-refresh.css 뒤에 로드해 R9 STEP02 규칙을 덮어쓴다.
   ============================================================ */

/* ── 방어 씬 공통(비시네마 폴백 포함) ───────────────────────── */
.sd-scene{
  position:relative;z-index:3;margin:22px 0 0;
  height:min(560px,68vw);min-height:340px;
  background:
    radial-gradient(58% 78% at 44% 52%,rgba(30,96,178,.16),transparent 72%),
    radial-gradient(26% 60% at 9% 52%,rgba(190,32,52,.13),transparent 74%);
}
.sd-gl{position:absolute;inset:0;z-index:1;width:100%;height:100%;display:block;pointer-events:none}
.sd-scene.no-gl .sd-gl{display:none}

/* 피해자 컬럼 */
.sd-victim{
  position:absolute;z-index:2;left:4%;width:13%;min-width:112px;top:15%;bottom:13%;
  display:flex;flex-direction:column;align-items:center;gap:10px;pointer-events:none;
}
.sd-vcap{
  flex:none;font-size:clamp(11px,.92vw,13.5px);font-weight:700;letter-spacing:.3em;
  color:#ff4a60;text-shadow:0 0 16px rgba(255,48,72,.55);white-space:nowrap;
}
.sd-vbox{flex:1 1 auto;width:100%;min-height:70px}

/* 중앙 코어(타이틀 + 실드 앵커) */
.sd-core{
  position:absolute;z-index:2;left:30%;width:28%;top:1%;bottom:11%;
  display:flex;flex-direction:column;align-items:center;pointer-events:none;
}
.sd-title{
  flex:none;font-size:clamp(24px,2.55vw,42px);font-weight:700;line-height:1;
  letter-spacing:.18em;color:#cfeaff;text-indent:.18em;
  text-shadow:0 0 20px rgba(72,168,255,.6),0 0 52px rgba(36,116,214,.4);
}
.sd-sub{
  flex:none;margin-top:10px;font-size:clamp(8.5px,.76vw,11.5px);font-weight:600;
  letter-spacing:.34em;color:#8fb8dc;text-indent:.34em;white-space:nowrap;
}
.sd-shieldbox{flex:1 1 auto;width:100%;min-height:70px;margin-top:1.6%}

/* 표적 카드 */
/* 카드는 우측 끝에서 조금 띄운다 — 카드 뒤/우측 붉은 미니 네트워크가 퍼질 공간 */
.sd-targets{
  position:absolute;z-index:3;right:7.4%;width:23%;min-width:200px;top:0;bottom:10%;
  display:flex;flex-direction:column;gap:1.1vh;pointer-events:none;
}
.sd-tcap{
  flex:none;text-align:right;font-size:clamp(9px,.76vw,11.5px);font-weight:700;
  letter-spacing:.26em;color:#ff5a70;text-shadow:0 0 14px rgba(255,48,72,.45);
  margin-bottom:.3vh;white-space:nowrap;
}
.sd-card{
  position:relative;flex:1 1 0;min-height:0;
  display:flex;align-items:center;gap:11px;padding:8px 13px;
  border:1px solid rgba(255,74,98,.24);
  background:linear-gradient(100deg,rgba(30,9,15,.62),rgba(18,7,12,.44));
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  box-shadow:inset 2px 0 0 rgba(255,74,98,.5),0 10px 28px rgba(0,0,0,.42);
}
.sd-card::before,.sd-card::after{
  content:"";position:absolute;width:15px;height:15px;pointer-events:none;
  border:1.5px solid rgba(255,96,118,.9);
}
.sd-card::before{left:-1px;top:-1px;border-right:0;border-bottom:0}
.sd-card::after{right:-1px;bottom:-1px;border-left:0;border-top:0}
.sd-ic{flex:none;width:clamp(24px,2vw,32px);height:clamp(24px,2vw,32px);color:#cfe2f2;opacity:.92}
.sd-ic svg{width:100%;height:100%;display:block}
.sd-txt{min-width:0;display:flex;flex-direction:column;gap:2px}
.sd-txt b{
  font-size:clamp(11px,1.02vw,15px);font-weight:700;letter-spacing:.05em;color:#f2f6fb;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.sd-txt span{font-size:clamp(8px,.7vw,10px);color:#9fb0c2;letter-spacing:.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sd-warn{
  margin-left:auto;flex:none;width:clamp(13px,1.05vw,17px);height:clamp(13px,1.05vw,17px);
  color:#ff4a60;filter:drop-shadow(0 0 6px rgba(255,48,72,.6));
}
.sd-warn svg{width:100%;height:100%;display:block}

/* 하단 오퍼레이션 칩 */
.sd-ops{
  position:absolute;z-index:2;left:44%;transform:translateX(-50%);bottom:0;
  display:flex;align-items:center;gap:clamp(12px,1.7vw,26px);
  padding:8px clamp(14px,1.6vw,24px);border-radius:999px;
  border:1px solid rgba(116,168,216,.2);background:rgba(8,15,26,.5);
  -webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:none;
}
.sd-ops i{
  display:inline-flex;align-items:center;gap:7px;font-style:normal;
  font-size:clamp(8.5px,.74vw,11px);font-weight:700;letter-spacing:.16em;color:#b4cde3;white-space:nowrap;
}
.sd-ops i svg{width:clamp(12px,1.05vw,15px);height:clamp(12px,1.05vw,15px);color:#5fb2f2;flex:none}

/* ════════════════════════════════════════════════════════════
   시네마 모드 레이아웃 — R9 규칙 완전 대체
   ════════════════════════════════════════════════════════════ */
/* 배경은 .svc-steps 와 같은 톤의 불투명 그라디언트 —
   투명하면 크로스페이드 동안 아래의 STEP01(빅뱅·클러스터 카피)이 그대로 비친다 */
.svc-cine.is-active .spb-2{
  height:var(--cine-vh,100vh);padding:0;overflow:hidden;
  background:linear-gradient(180deg,#070a10,#0a0e17);
}

/* 헤더 — 좌상단 한 줄 컴팩트 */
.svc-cine.is-active .spb-2 .spb-head{
  position:absolute;z-index:8;left:4vw;right:calc(4vw + 440px);width:auto;max-width:none;
  top:calc(var(--cine-top,92px) + 1.2vh);
  margin:0;display:block;pointer-events:none;
}
.svc-cine.is-active .spb-2 .spb-head>div{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px 14px}
.svc-cine.is-active .spb-2 .spb-head .spb-chip{margin:0;flex:none}
.svc-cine.is-active .spb-2 .spb-head h3{color:#fff;font-size:clamp(19px,1.7vw,25px);line-height:1.1;flex:none}
.svc-cine.is-active .spb-2 .spb-desc{
  margin:0;color:#93aac1;font-size:clamp(10.5px,.82vw,12.5px);line-height:1.3;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1 1 auto;
}

/* 헤더는 STEP03 헤더가 올라오기 전에 확실히 빠지도록 공통(.6s)보다 빠르게 회수한다 */
.svc-cine.is-active .spb-2 .spb-head.cine-prep{transition:opacity .28s ease,transform .34s cubic-bezier(.2,.75,.2,1)}

/* 상단 밴드 — 분석 창 2개 */
.svc-cine.is-active .spb-2 .sp2-stage{
  position:absolute;z-index:6;left:4vw;right:4vw;
  top:calc(var(--cine-top,92px) + 9vh);bottom:auto;height:33vh;min-height:0;margin:0;
  display:grid;grid-template-columns:46fr 54fr;gap:14px;align-items:stretch;pointer-events:none;
}
/* min-height 는 R9 규칙(150px / .55)이 승계되지 않도록 반드시 다시 선언한다 */
.svc-cine.is-active .spb-2 .sp2-win{
  position:relative;left:auto;right:auto;top:auto;width:auto;
  zoom:.66;height:calc(33vh / .66);min-height:0;overflow:hidden;animation:none;
}
/* 순차 등장(cine-prep/cine-in) — product-service-refresh.css 의 공통 규칙과
   명시도가 같아 먼저 로드된 쪽이 진다. 창은 여기서 상태별로 다시 선언한다. */
.svc-cine.is-active .spb-2 .sp2-win.cine-prep{opacity:0}
.svc-cine.is-active .spb-2 .sp2-win.cine-prep.cine-in{opacity:.97}

/* 창 내부 텍스트 — zoom(.66) 으로 줄어든 뒤에도 8px 이상으로 읽히게 키운다.
   svc-process.css 의 원본 선언은 시네마 밖 레이아웃과 공유하므로 여기서만 덮어쓴다. */
.svc-cine.is-active .spb-2 .sp2-ttl{font-size:13px}
.svc-cine.is-active .spb-2 .sp2-tbtns{font-size:12px}
.svc-cine.is-active .spb-2 .sp2-mbar{font-size:11.5px;height:20px}
.svc-cine.is-active .spb-2 .sp2-toolbar{height:26px}
.svc-cine.is-active .spb-2 .sp2-sbar{font-size:11.5px;white-space:nowrap;overflow:hidden}
.svc-cine.is-active .spb-2 .sp2-alog-h{font-size:11.5px}
.svc-cine.is-active .spb-2 .sp2-alog-b{font-size:12.5px;line-height:1.5}
.svc-cine.is-active .spb-2 .sp2-ltag{font-size:10px}
.svc-cine.is-active .spb-2 .sp2-fbar{font-size:12.5px;height:24px}
.svc-cine.is-active .spb-2 .sp2-fok{font-size:10.5px}
.svc-cine.is-active .spb-2 .sp2-plist th{font-size:11.5px;padding:5px 7px}
.svc-cine.is-active .spb-2 .sp2-pdet{font-size:12.5px;line-height:1.38}
.svc-cine.is-active .spb-2 .sp2-pdet .dh{font-size:10.5px}
.svc-cine.is-active .spb-2 .sp2-phex{font-size:12.5px;line-height:1.38}
/* 내부 가변 영역이 밴드 높이에 맞춰 줄어들도록 고정 높이 해제.
   zoom 축소 상태에서는 뷰포트 기준 모바일 규칙이 오작동하므로 가로 배치를 고정한다. */
.svc-cine.is-active .spb-2 .sp2-abody{height:auto;flex:1 1 auto;min-height:0;overflow:hidden;flex-direction:row}
.svc-cine.is-active .spb-2 .sp2-pwrap{width:210px;flex:none;padding:0;border-right:1px solid var(--sp-line);border-bottom:0}
.svc-cine.is-active .spb-2 .sp2-alog-b{height:auto;flex:1 1 auto;min-height:0}
.svc-cine.is-active .spb-2 .sp2-phone{height:min(368px,100%)}
/* 패킷 목록 : 밴드 높이에 맞춰 줄어드는 대신, 목록을 아래(최신 행)에 정렬해
   오래된 행이 헤더 뒤로 밀려나게 한다 — 최신 행이 항상 온전히 보이고 반쯤 잘린 행이 없다. */
.svc-cine.is-active .spb-2 .sp2-plist{
  height:auto;flex:1 1 auto;min-height:54px;overflow:hidden;
  display:flex;flex-direction:column;justify-content:flex-end;
}
/* 여유가 있으면 표가 늘어나 헤더가 맨 위에 붙고, 모자라면 위로 넘쳐
   오래된 행이 고정 헤더 뒤로 밀린다 — 어느 쪽이든 반쯤 잘린 행이 없다. */
.svc-cine.is-active .spb-2 .sp2-plist table{flex:1 1 auto;min-height:0}
.svc-cine.is-active .spb-2 .sp2-plist thead th{position:sticky;top:0;z-index:2}
.svc-cine.is-active .spb-2 .sp2-plist td{font-size:12.5px;padding:3px 7px;line-height:16px}
/* 상세는 6줄이 잘리지 않는 높이로 고정, 헥사는 3줄, 남는 높이는 전부 목록이 가져간다 */
.svc-cine.is-active .spb-2 .sp2-pdet{flex:none;height:118px}
.svc-cine.is-active .spb-2 .sp2-phex{
  flex:none;height:64px;display:flex;flex-direction:column;justify-content:flex-end;
}

/* 하단 — 방어 성좌 씬 풀폭 */
.svc-cine.is-active .spb-2 .sd-scene{
  position:absolute;z-index:3;left:0;right:0;
  top:calc(var(--cine-top,92px) + 44vh);bottom:2.5vh;
  height:auto;min-height:0;margin:0;
}
/* 크로스페이드가 스크롤보다 늦게 따라오지 않도록 공통 .cine-fade(0.7s)보다 짧게 */
.svc-cine.is-active .spb-2 .sd-scene.cine-fade{transition:opacity .35s ease}

/* zoom 미지원 브라우저 폴백 */
@supports not (zoom: 0.66){
  .svc-cine.is-active .spb-2 .sp2-win{transform:scale(.66);transform-origin:top left;width:151.52%;height:calc(33vh / .66)}
}

/* 낮은 뷰포트 — 밴드가 줄어드는 만큼 헥사덤프를 접고 상세를 줄여 패킷 목록을 지킨다 */
@media (max-height:820px){
  .svc-cine.is-active .spb-2 .sp2-stage{top:calc(var(--cine-top,92px) + 8vh);height:30vh}
  .svc-cine.is-active .spb-2 .sp2-win{height:calc(30vh / .66)}
  @supports not (zoom: 0.66){
    .svc-cine.is-active .spb-2 .sp2-win{height:calc(30vh / .66)}
  }
  .svc-cine.is-active .spb-2 .sp2-phex{display:none}
  .svc-cine.is-active .spb-2 .sp2-pdet{height:100px}
  .svc-cine.is-active .spb-2 .sp2-pdet .dh{display:none}
  .svc-cine.is-active .spb-2 .sd-scene{top:calc(var(--cine-top,92px) + 41vh)}
  .svc-cine.is-active .spb-2 .sd-title{font-size:clamp(21px,2.1vw,30px)}
}

/* 좁은 폭 — winB 숨김 · 방어 씬 세로 배치 */
@media (max-width:880px){
  .svc-cine.is-active .spb-2 .spb-head{right:calc(3vw + 110px)}
  .svc-cine.is-active .spb-2 .spb-head .spb-desc{display:none}
  .svc-cine.is-active .spb-2 .sp2-stage{
    grid-template-columns:1fr;top:calc(var(--cine-top,92px) + 7.5vh);height:22vh;left:4vw;right:4vw;
  }
  .svc-cine.is-active .spb-2 .sp2-winB{display:none}
  /* 가로 폭이 좁으면 단말 목업을 접고 분석 로그가 창을 채운다(축소율은 .66 유지) */
  .svc-cine.is-active .spb-2 .sp2-pwrap{display:none}
  .svc-cine.is-active .spb-2 .sp2-win{height:calc(22vh / .66)}
  @supports not (zoom: 0.66){
    .svc-cine.is-active .spb-2 .sp2-win{height:calc(22vh / .66)}
  }
  .svc-cine.is-active .spb-2 .sd-scene{top:calc(var(--cine-top,92px) + 31vh);bottom:1.5vh}

  .sd-victim{left:50%;transform:translateX(-50%);width:46%;min-width:0;top:0;bottom:auto;height:23%;gap:6px}
  .sd-core{left:50%;transform:translateX(-50%);width:76%;top:24%;bottom:auto;height:32%}
  .sd-title{font-size:clamp(19px,5.4vw,28px)}
  .sd-sub{margin-top:6px;font-size:9.5px;letter-spacing:.24em;text-indent:.24em}
  .sd-shieldbox{min-height:40px}
  .sd-targets{
    left:3%;right:3%;width:auto;min-width:0;top:57%;bottom:11%;
    display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:1fr;gap:7px;
  }
  .sd-tcap{grid-column:1 / -1;text-align:center;margin:0;font-size:9px;letter-spacing:.2em}
  .sd-card{flex:none;padding:6px 8px;gap:7px}
  .sd-ic{width:19px;height:19px}
  .sd-txt b{font-size:10px}
  .sd-txt span{font-size:9.5px}
  .sd-warn{width:11px;height:11px}
  .sd-card::before,.sd-card::after{width:10px;height:10px}
  .sd-ops{left:50%;bottom:0;gap:9px;padding:5px 10px}
  .sd-ops i{font-size:9.5px;letter-spacing:.08em;gap:4px}
  .sd-ops i svg{width:10px;height:10px}
}

/* 720p 대 — 상세를 프레임·응용계층 3줄로 줄여 패킷 목록에 4행을 확보한다 */
@media (max-height:730px){
  .svc-cine.is-active .spb-2 .sp2-pdet{height:68px}
  .svc-cine.is-active .spb-2 .sp2-pdet div:nth-child(3),
  .svc-cine.is-active .spb-2 .sp2-pdet div:nth-child(4){display:none}
}

/* 좁지만 세로 여유가 있는 화면 — winB(실시간 캡처)를 아래에 쌓아 서사를 잇는다 */
@media (max-width:880px) and (min-height:720px){
  .svc-cine.is-active .spb-2 .sp2-stage{
    grid-template-columns:1fr;grid-template-rows:1fr 1fr;height:32vh;gap:10px;
  }
  .svc-cine.is-active .spb-2 .sp2-winB{display:flex}
  .svc-cine.is-active .spb-2 .sp2-win{height:calc((32vh - 10px) / 2 / .66)}
  @supports not (zoom: 0.66){
    .svc-cine.is-active .spb-2 .sp2-win{height:calc((32vh - 10px) / 2 / .66)}
  }
  /* 축약 캡처 뷰 : 툴바·필터·목록만 남긴다 */
  .svc-cine.is-active .spb-2 .sp2-winB .sp2-mbar,
  .svc-cine.is-active .spb-2 .sp2-toolbar,
  .svc-cine.is-active .spb-2 .sp2-pdet,
  .svc-cine.is-active .spb-2 .sp2-phex{display:none}
  .svc-cine.is-active .spb-2 .sp2-plist{min-height:80px}
  /* 좁은 폭에서 상태바가 줄바꿈되어 창을 넘치지 않게 캡처 설명은 접는다 */
  .svc-cine.is-active .spb-2 .sp2-winB .sp2-sbar span:first-child{display:none}
  .svc-cine.is-active .spb-2 .sd-scene{top:calc(var(--cine-top,92px) + 41vh)}
}

@media (prefers-reduced-motion:reduce){
  .svc-cine.is-active .spb-2 .sp2-win{animation:none !important}
}

/* ==== /assets/css/svc-step3.css?v=20260902j ==== */
/* ════════════════════════════════════════════════════════════
   STEP 03 — 대응 완료 보고서 뷰포트 풀스크린
   조직도(투입되는 기술 8종) 제거 후, 보고서 시트 하나가 화면을
   가득 채우도록 fit 스케일(svc-step3.js)과 짝을 이루는 레이아웃.
   product-service-refresh.css 뒤에 로드되어야 한다.
   ════════════════════════════════════════════════════════════ */

/* 시트 래퍼 — 비시네마(세로 나열) 상태에서는 아무 영향 없는 블록 */
.sp3-fit{position:relative}

/* ── 시네마 풀스크린 fit (데스크톱/태블릿 가로) ─────────────── */
@media (min-width:981px){

  /* article 높이를 정확히 뷰포트로 고정 → 드라이버의 내부 끌어올림 경로를 타지 않는다 */
  .svc-cine.is-active .spb-3{
    height:var(--cine-vh,100vh);min-height:0;padding:0;overflow:hidden;background:transparent;
  }

  /* 헤더 — STEP02와 같은 자리(좌상단)에 컴팩트 배치, 우측에 진행 트레일 */
  .svc-cine.is-active .spb-3 .spb-head{
    position:absolute;z-index:7;left:4vw;right:4vw;width:auto;max-width:none;margin:0;
    top:calc(var(--cine-top,92px) + 1.2vh);
    display:flex;align-items:flex-end;justify-content:space-between;gap:26px;
    pointer-events:none;
  }
  .svc-cine.is-active .spb-3 .spb-head>div:first-child{
    display:grid;grid-template-columns:auto minmax(0,1fr);
    grid-template-areas:"top desc" "ttl desc";
    align-items:end;column-gap:26px;min-width:0;
  }
  .svc-cine.is-active .spb-3 .sp3-htop{grid-area:top;margin-bottom:7px}
  .svc-cine.is-active .spb-3 .spb-head h3{
    grid-area:ttl;font-size:clamp(22px,2.3vw,30px);line-height:1.1;
  }
  .svc-cine.is-active .spb-3 .spb-desc{
    grid-area:desc;align-self:end;margin:0 0 2px;
    font-size:12px;line-height:1.6;max-width:min(520px,40vw);color:#93a6bb;
  }
  .svc-cine.is-active .spb-3 .sp3-trail{flex:none;padding:0;align-self:flex-end}

  /* 시트 박스 — 헤더 아래부터 화면 바닥까지 */
  .svc-cine.is-active .spb-3 .sp3-fit{
    position:absolute;z-index:5;
    left:4vw;right:4vw;
    top:max(calc(var(--cine-top,92px) + 10vh), var(--sp3-boxtop, 0px));bottom:2.5vh;
    display:flex;align-items:flex-start;justify-content:center;
  }
  /* 시트 자체에만 scale — .cine-prep 자식들의 등장 transform과 겹치지 않는다 */
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-sheet{
    flex:none;width:1160px;max-width:none;margin:0;
    transform-origin:50% 0;
    box-shadow:0 46px 130px rgba(0,0,0,.62),0 0 0 1px rgba(255,255,255,.07);
  }

  /* 시트 내부 세로 리듬 압축 — 자연 높이를 줄여야 fit 스케일이 커지고
     박스 폭까지 채워진다(문서 비율을 박스 비율에 가깝게 맞추는 조정) */
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-sheet{padding:22px 30px 0}
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-head{padding:0 0 15px}
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-head-main h4{margin:9px 0 7px}
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-stamp{width:84px;height:84px}
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-kpis>div{padding:14px 20px 15px}
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-kpis b{margin-top:7px}
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-kpis small{margin-top:6px}
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-timeline-wrap{padding:18px 26px 20px 2px}
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-monitor{padding:18px 2px 20px 26px}
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-columns h5{margin-bottom:13px}
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-timeline li{padding-bottom:15px}
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-signal{padding:13px 16px 12px}
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-signal header{margin-bottom:11px}
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-bars{height:54px}
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-checks{margin-top:12px;gap:7px}
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-checks li{padding:9px 13px 9px 40px}
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-foot{margin:0 -30px;padding:10px 30px 12px}

  /* ── 3열 압축 레이아웃(.sp3r-flat) ─────────────────────────
     세로가 짧고 가로가 넓은 박스에서는 세로로 쌓인 문서를 그대로
     축소하면 본문 글자가 급격히 작아진다. 이 모드는 문서를
     [보고서 개요 + 지표] · [타임라인] · [모니터링] 3열로 눕혀
     자연 높이를 794px → 약 510px 로 줄이고, 그만큼 fit 스케일을
     끌어올려 같은 화면에서 글자를 더 크게 보여준다.
     모드 선택은 svc-step3.js 가 실측 점수로 판단한다. ───────── */
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-flat{
    display:grid;align-content:start;
    grid-template-columns:minmax(250px,.80fr) minmax(0,1.10fr) minmax(0,.95fr);
    grid-template-areas:"head tl mon" "kpi tl mon" "foot foot foot";
  }
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-flat .sp3r-head{
    grid-area:head;position:relative;display:block;
    padding:0 26px 16px 0;border-bottom:0;border-right:1px solid #edf0f2;
  }
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-flat .sp3r-head-main{padding-right:94px}
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-flat .sp3r-head-main h4{font-size:21px;margin:8px 0 7px}
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-flat .sp3r-recipient{font-size:11px;line-height:1.5}
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-flat .sp3r-stamp{position:absolute;right:26px;top:0;width:80px;height:80px}
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-flat .sp3r-meta{grid-template-columns:1fr 1fr;gap:12px 20px;margin-top:16px}
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-flat .sp3r-meta dt{font-size:9.5px}
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-flat .sp3r-meta dd{margin-top:6px;font-size:12.5px}
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-flat .sp3r-kpis{
    grid-area:kpi;grid-template-columns:1fr 1fr;
    border-bottom:0;border-top:1px solid #edf0f2;border-right:1px solid #edf0f2;
  }
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-flat .sp3r-kpis>div{padding:11px 18px 11px 0}
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-flat .sp3r-kpis>div:nth-child(2n){border-right:0}
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-flat .sp3r-kpis b{margin-top:5px;font-size:27px}
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-flat .sp3r-kpis small{margin-top:4px}
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-flat .sp3r-columns{display:contents}
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-flat .sp3r-columns h5{margin-bottom:11px}
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-flat .sp3r-timeline-wrap{
    grid-area:tl;padding:0 26px 12px;border-right:1px solid #edf0f2;
  }
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-flat .sp3r-monitor{grid-area:mon;padding:0 0 12px 26px}
  /* 타임라인 항목 — 시각을 왼쪽 열로 눕혀 항목당 한 줄을 줄인다 */
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-flat .sp3r-timeline li{
    display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:12px;padding:0 0 12px 32px;
  }
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-flat .sp3r-timeline li:last-child{padding-bottom:0}
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-flat .sp3r-timeline time{grid-column:1;grid-row:1;padding-top:3px}
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-flat .sp3r-timeline b{grid-column:2;grid-row:1;margin-top:0}
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-flat .sp3r-timeline li>span{grid-column:2;grid-row:2;margin-top:3px}
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-flat .sp3r-signal{padding:11px 14px 10px}
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-flat .sp3r-signal p{margin-top:9px;font-size:11px}
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-flat .sp3r-bars{height:46px}
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-flat .sp3r-checks{grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-flat .sp3r-checks li{padding:8px 11px 8px 36px}
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-flat .sp3r-foot{grid-area:foot;margin:14px -30px 0;font-size:11px}

  /* 세로 여유가 적은 화면 — 헤더를 더 낮게 눕혀 박스 상단과의 간섭을 없앤다 */
  @media (max-height:860px){
    .svc-cine.is-active .spb-3 .spb-head{top:calc(var(--cine-top,92px) + .6vh)}
    .svc-cine.is-active .spb-3 .sp3-htop{margin-bottom:5px}
    .svc-cine.is-active .spb-3 .spb-head h3{font-size:clamp(20px,2vw,26px)}
    .svc-cine.is-active .spb-3 .spb-desc{font-size:11.5px;line-height:1.5;max-width:min(460px,36vw)}
    .svc-cine.is-active .spb-3 .sp3-trail{font-size:10.5px}
    .svc-cine.is-active .spb-3 .sp3-trail .s{padding:4px 9px}
  }
  /* 더 낮은 화면 — 설명문은 숨기지 않고 한 줄로 접어 헤더 높이만 줄인다 */
  @media (max-height:760px){
    .svc-cine.is-active .spb-3 .spb-desc{
      display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;
      overflow:hidden;font-size:11px;line-height:1.45;max-width:min(420px,32vw);
    }
    .svc-cine.is-active .spb-3 .spb-chip{font-size:10px;padding:4px 10px}
    .svc-cine.is-active .spb-3 .sp3-kicker{font-size:10px}
    .svc-cine.is-active .spb-3 .sp3-htop{margin-bottom:4px}
    .svc-cine.is-active .spb-3 .spb-head h3{font-size:clamp(18px,1.8vw,22px)}
  }
}

/* ── 모바일·좁은 화면 폴백 ───────────────────────────────────
   fit을 걸지 않고 기존 세로 흐름을 유지한다(article이 뷰포트보다
   길어지면 드라이버가 내부를 끌어올린다). */
@media (max-width:980px){
  .svc-cine.is-active .spb-3 .sp3-fit{display:block}
  .svc-cine.is-active .spb-3 .sp3-fit .sp3r-sheet{
    width:min(1160px,94vw);margin:0 auto;transform:none!important;
  }
}

/* ==== /assets/css/product-cards.css?v=20260902k ==== */
/* ──────────────────────────────────────────────
   제품 카드 비주얼 (#products)
   HyperCloud V3 / CYBER INTELL PRO 키비주얼 프레임
   ────────────────────────────────────────────── */

#products .product-grid{
  align-items:stretch;
}

#products .product-card{
  position:relative;
  padding:24px 24px 28px;
  overflow:hidden;
  transition:box-shadow .45s cubic-bezier(.2,.7,.2,1),border-color .45s ease;
}

/* ── 비주얼 프레임 */
.product-visual{
  position:relative;
  display:block;
  margin:0 0 22px;
  aspect-ratio:16/10;
  border-radius:18px;
  overflow:hidden;
  isolation:isolate;
  background:linear-gradient(150deg,#0d1a2c 0%,#070d18 100%);
  border:1px solid rgba(120,190,255,.16);
  box-shadow:0 14px 30px rgba(6,14,26,.34);
  transform:translateZ(0);
  transition:transform .5s cubic-bezier(.2,.7,.2,1),box-shadow .5s cubic-bezier(.2,.7,.2,1),border-color .5s ease;
}

.product-visual img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}

/* 상단 스윕 광택 */
.product-visual::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(168deg,rgba(255,255,255,.14) 0%,rgba(255,255,255,0) 34%);
  opacity:.7;
  transition:opacity .5s ease;
}

/* 코너 틱 마크 */
.product-visual::before{
  content:"";
  position:absolute;
  left:10px;
  top:10px;
  width:16px;
  height:16px;
  border-top:1px solid rgba(140,205,255,.45);
  border-left:1px solid rgba(140,205,255,.45);
  pointer-events:none;
  z-index:2;
}

/* ── 다크 카드(HyperCloud V3) */
.product-card.featured .product-visual{
  border-color:rgba(125,200,255,.22);
  box-shadow:0 16px 36px rgba(4,10,20,.5),inset 0 0 0 1px rgba(125,200,255,.06);
}

.product-card.featured:hover .product-visual,
.product-card.featured:focus-within .product-visual{
  transform:translateY(-5px);
  border-color:rgba(150,215,255,.42);
  box-shadow:0 24px 50px rgba(6,18,34,.62),0 0 32px rgba(70,150,230,.26),inset 0 0 0 1px rgba(150,215,255,.12);
}

/* ── 라이트 카드(CYBER INTELL PRO) */
.product-card:not(.featured) .product-visual{
  background:linear-gradient(150deg,#ffffff 0%,#eef2f9 100%);
  border-color:rgba(29,53,87,.12);
  box-shadow:0 12px 28px rgba(29,53,87,.10);
}

.product-card:not(.featured) .product-visual::after{
  background:linear-gradient(168deg,rgba(255,255,255,.5) 0%,rgba(255,255,255,0) 40%);
}

.product-card:not(.featured) .product-visual::before{
  border-top-color:rgba(210,11,37,.4);
  border-left-color:rgba(210,11,37,.4);
}

.product-card:not(.featured):hover .product-visual,
.product-card:not(.featured):focus-within .product-visual{
  transform:translateY(-5px);
  border-color:rgba(210,11,37,.24);
  box-shadow:0 22px 46px rgba(29,53,87,.16),0 0 26px rgba(210,11,37,.10);
}

/* ── 카드 자체 부상 그림자 (transform 은 data-tilt 와 충돌하므로 미사용) */
.product-card.featured:hover{
  border-color:#2c3a4e;
  box-shadow:0 28px 60px rgba(4,12,24,.5);
}

.product-card:not(.featured):not(.pending):hover{
  box-shadow:0 26px 56px rgba(60,100,135,.18);
}

/* ── 타이포: 비주얼이 있으면 기존 h3 상단 여백(60px) 제거 */
.product-visual~.product-code{
  display:block;
  margin:0;
}

.product-visual~h3{
  margin:10px 0 12px;
  font-size:27px;
  letter-spacing:-.01em;
}

.product-visual~p{
  margin:0 0 18px;
}

.product-card .evidence-chip{
  align-self:flex-start;
  margin-bottom:16px;
}

.product-card.featured .evidence-chip{
  background:rgba(255,255,255,.05);
  border-color:rgba(255,255,255,.16);
  color:#c6cedd;
}

/* ── ARIX(준비중) 카드: 비주얼 없이 세로 중앙 정렬 */
.product-card.pending{
  justify-content:center;
}

.product-card.pending h3{
  margin:14px 0 12px;
}

/* ── 반응형 */
@media(max-width:980px){
  #products .product-grid{grid-template-columns:1fr 1fr}
  #products .product-card:last-child{grid-column:1/-1}
  .product-visual~h3{font-size:25px}

  /* 전폭으로 늘어나는 ARIX 카드는 390px 빈 슬래브가 되지 않도록 밴드형으로 */
  #products .product-card.pending{
    min-height:0;
    padding:26px 24px 28px;
    align-items:center;
    text-align:center;
  }
  #products .product-card.pending h3{margin:8px 0 10px}
  #products .product-card.pending p{margin:0 0 14px}
  #products .product-card.pending .evidence-chip{align-self:center;margin-bottom:0}
}

@media(min-width:641px) and (max-width:780px){
  #products .product-grid{grid-template-columns:1fr 1fr}
  #products .product-card:last-child{grid-column:1/-1}
}

@media(max-width:640px){
  #products .product-grid{grid-template-columns:1fr}
  #products .product-card{padding:20px 20px 24px;min-height:0}
  #products .product-card:last-child{grid-column:auto}
  .product-visual{margin-bottom:18px;border-radius:16px}
  .product-visual~h3{font-size:24px}
  /* 1열에서는 다른 카드와 동일하게 좌측 정렬로 복귀 */
  #products .product-card.pending{padding:20px 20px 24px;align-items:flex-start;text-align:left}
  #products .product-card.pending .evidence-chip{align-self:flex-start}
}

@media(prefers-reduced-motion:reduce){
  .product-visual,
  .product-card{transition:none}
  .product-card.featured:hover .product-visual,
  .product-card:not(.featured):hover .product-visual{transform:none}
}

/* ==== /assets/css/hc-infra.css?v=20260902k ==== */
/* ============================================================
   HYPER CLOUD V3 — 인프라 추적 맵 (hc-infra)
   좌 트레이 / 중앙 추적 맵 / 우 인텔 패널 3단 다크 콘솔
   ============================================================ */

.hci-wrap .container{max-width:1340px}

.hci{
  --hci-red:#ff4d6a;
  --hci-vio:#a78bff;
  --hci-amb:#ffc65c;
  --hci-blue:#4cc3ff;
  --hci-grn:#5ad19a;
  --hci-line:#172231;
  --hci-dim:#7b8ba3;
  position:relative;
  display:grid;
  grid-template-columns:206px minmax(0,1fr) 302px;
  min-height:620px;
  margin-top:26px;
  border:1px solid #14202e;
  border-radius:22px;
  overflow:hidden;
  background:
    radial-gradient(120% 100% at 12% 0%,rgba(40,72,110,.30),transparent 58%),
    linear-gradient(180deg,#080d15,#05080e);
  box-shadow:0 34px 88px rgba(16,38,60,.30),inset 0 1px 0 rgba(255,255,255,.04);
  color:#dbe4ef;
  font-family:inherit;
}

/* ── 좌측 트레이 ─────────────────────────────────────── */
.hci-tray{
  display:flex;flex-direction:column;gap:9px;
  padding:18px 15px 16px;
  border-right:1px solid var(--hci-line);
  background:linear-gradient(180deg,rgba(255,255,255,.030),rgba(255,255,255,.008));
  min-width:0;
}
.hci-tray-head{
  font-size:9.5px;font-weight:900;letter-spacing:.16em;color:#5f7288;
  margin-bottom:2px;text-transform:uppercase;
}
.hci-chip{
  display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:10px;
  width:100%;padding:11px 12px;text-align:left;
  border:1px solid #1d2b3c;border-radius:13px;
  background:rgba(255,255,255,.028);
  color:#c9d6e4;cursor:grab;touch-action:none;
  transition:border-color .18s ease,background .18s ease,transform .18s ease,box-shadow .18s ease;
}
.hci-chip:hover,.hci-chip:focus-visible{
  border-color:rgba(255,77,106,.55);
  background:rgba(255,77,106,.10);
  transform:translateX(3px);
  outline:none;
}
.hci-chip:focus-visible{box-shadow:0 0 0 2px rgba(76,195,255,.45)}
.hci-chip:active{cursor:grabbing}
.hci-chip.is-drag{opacity:.55;transform:scale(.97)}
.hci-chip svg{width:30px;height:30px;display:block;flex:none}
.hci-chip b{display:block;font-size:12.5px;font-weight:800;letter-spacing:-.01em;color:#e8f0f8;line-height:1.25}
.hci-chip small{display:block;font-size:9px;color:#76899e;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hci-chip.is-active{
  border-color:rgba(255,77,106,.85);
  background:linear-gradient(120deg,rgba(255,77,106,.20),rgba(255,77,106,.05));
  box-shadow:0 0 0 1px rgba(255,77,106,.30),0 10px 28px rgba(255,45,80,.18);
}
.hci-chip.is-active b{color:#fff}
.hci-tray-note{
  margin-top:auto;padding-top:12px;border-top:1px dashed #1c2939;
  font-size:9.5px;line-height:1.65;color:#647689;
}
.hci-tray-note b{display:block;color:#8fa3ba;font-size:10px;margin-bottom:3px;letter-spacing:.02em}

/* ── 중앙 스테이지 ───────────────────────────────────── */
.hci-stage{
  position:relative;min-width:0;min-height:620px;overflow:hidden;
  background:
    radial-gradient(90% 70% at 50% 46%,rgba(24,44,72,.42),transparent 72%),
    #04070d;
}
.hci-scroll{position:absolute;inset:0;overflow:hidden;-webkit-overflow-scrolling:touch}
.hci-plane{position:relative;width:100%;height:100%}
.hci-plane canvas{position:absolute;inset:0;display:block;width:100%;height:100%}
.hci-stage.is-over{box-shadow:inset 0 0 0 2px rgba(76,195,255,.55)}
.hci-stage::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(140% 120% at 50% 45%,transparent 52%,rgba(3,5,9,.62) 100%);
}

/* 단계 표시 바 */
.hci-steps{
  position:absolute;left:14px;right:14px;top:12px;z-index:3;
  display:flex;gap:6px;flex-wrap:wrap;pointer-events:none;
}
.hci-step{
  display:inline-flex;align-items:center;gap:6px;
  padding:5px 9px;border-radius:999px;
  border:1px solid #1d2a3a;background:rgba(6,10,17,.72);
  font-size:9px;font-weight:800;letter-spacing:.05em;color:#5c6d82;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  transition:color .35s ease,border-color .35s ease,background .35s ease;
  backdrop-filter:blur(4px);
}
.hci-step i{width:6px;height:6px;border-radius:50%;background:#26364a;transition:background .35s ease,box-shadow .35s ease}
.hci-step.is-on{color:#dce7f3;border-color:rgba(120,160,210,.35);background:rgba(10,18,30,.85)}
.hci-step.is-on i{background:var(--sc,#4cc3ff);box-shadow:0 0 8px var(--sc,#4cc3ff)}
.hci-step.s0{--sc:#ff5c76}
.hci-step.s1{--sc:#ff4d6a}
.hci-step.s2{--sc:#a78bff}
.hci-step.s3{--sc:#5ad19a}
.hci-step.s4{--sc:#ffc65c}

/* 범례 */
.hci-legend{
  position:absolute;left:14px;bottom:12px;z-index:3;
  display:flex;gap:12px;flex-wrap:wrap;pointer-events:none;
  padding:7px 11px;border-radius:11px;
  border:1px solid #16222f;background:rgba(5,9,15,.74);backdrop-filter:blur(4px);
}
.hci-legend span{display:inline-flex;align-items:center;gap:5px;font-size:9px;color:#8296ac;letter-spacing:.02em}
.hci-legend i{width:7px;height:7px;border-radius:2px;display:block}

/* 힌트 */
.hci-hint{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:4;
  text-align:center;pointer-events:none;
  padding:18px 24px;border-radius:16px;
  border:1px dashed rgba(120,155,200,.34);background:rgba(6,11,19,.7);
}
.hci-hint b{display:block;font-size:13px;color:#cfdcea;font-weight:800;margin-bottom:5px}
.hci-hint span{display:block;font-size:10.5px;color:#7a8ca1}
.hci-hint[hidden]{display:none}

/* 가로 스크롤 안내 (좁은 화면 전용) */
.hci-swipe{display:none}

/* 툴팁 */
.hci-tip{
  position:absolute;z-index:5;pointer-events:none;
  max-width:230px;padding:8px 11px;border-radius:10px;
  border:1px solid #223347;background:rgba(6,11,19,.94);
  box-shadow:0 14px 34px rgba(0,0,0,.5);
}
.hci-tip[hidden]{display:none}
.hci-tip b{display:block;font-size:11px;color:#fff;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;line-height:1.3}
.hci-tip span{display:block;font-size:9.5px;color:#8b9fb5;margin-top:3px;line-height:1.4}

/* ── 우측 인텔 패널 ──────────────────────────────────── */
.hci-panel{
  display:grid;grid-template-rows:auto auto auto minmax(110px,1fr) auto;
  min-width:0;border-left:1px solid var(--hci-line);
  background:linear-gradient(180deg,rgba(255,255,255,.028),rgba(255,255,255,.006));
}
.hci-panel-head{
  padding:14px 16px 12px;border-bottom:1px solid var(--hci-line);
  display:flex;align-items:center;justify-content:space-between;gap:10px;
}
.hci-panel-head b{font-size:10px;font-weight:900;letter-spacing:.15em;color:#7f93aa;text-transform:uppercase}
.hci-panel-head span{
  font-size:9px;color:#61748a;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.04em;
}
.hci-counts{
  display:grid;grid-template-columns:1fr 1fr;
  border-bottom:1px solid var(--hci-line);
}
.hci-counts>div{
  padding:12px 14px;border-right:1px solid var(--hci-line);border-bottom:1px solid var(--hci-line);
}
.hci-counts>div:nth-child(2n){border-right:0}
.hci-counts>div:nth-child(n+3){border-bottom:0}
.hci-counts span{display:block;font-size:9px;letter-spacing:.05em;color:#6c7f94;margin-bottom:4px}
.hci-counts b{
  display:block;font-size:22px;line-height:1;font-weight:850;color:#fff;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums;
}
.hci-counts>div.c2 b{color:#ff8095}
.hci-counts>div.dom b{color:#bfa9ff}
.hci-counts>div.acc b{color:#ffd489}

/* C2 위치 — 맵의 번호 배지와 1:1 대응 */
.hci-geobox{padding:12px 16px 13px;border-bottom:1px solid var(--hci-line)}
.hci-geobox>h4{
  margin:0 0 8px;font-size:9.5px;font-weight:900;letter-spacing:.14em;
  color:#7f93aa;text-transform:uppercase;
}
.hci-geo{list-style:none;margin:0;padding:0;display:grid;gap:6px;min-height:20px}
.hci-geo-row{
  display:grid;grid-template-columns:17px auto minmax(0,1fr);align-items:center;gap:8px;
  opacity:0;transform:translateY(3px);
  transition:opacity .4s ease,transform .4s ease;
}
.hci-geo-row.is-on{opacity:1;transform:none}
.hci-geo-row i{
  width:17px;height:17px;border-radius:50%;display:grid;place-items:center;
  font-style:normal;font-size:9px;font-weight:800;color:#ffc4d0;
  border:1px solid rgba(255,77,106,.55);background:rgba(255,77,106,.13);
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
.hci-geo-row b{font-size:10px;font-weight:700;color:#dbe6f2;white-space:nowrap}
.hci-geo-row em{
  font-style:normal;font-size:8.5px;color:#6b7f95;letter-spacing:.02em;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}

.hci-logbox{display:flex;flex-direction:column;min-height:0;border-bottom:1px solid var(--hci-line)}
.hci-logbox>h4{
  margin:0;padding:12px 16px 8px;font-size:9.5px;font-weight:900;letter-spacing:.14em;
  color:#7f93aa;text-transform:uppercase;
}
.hci-log{
  list-style:none;margin:0;padding:0 14px 12px;overflow-y:auto;min-height:0;flex:1;
  scrollbar-width:thin;scrollbar-color:#233246 transparent;
}
.hci-log::-webkit-scrollbar{width:6px}
.hci-log::-webkit-scrollbar-thumb{background:#233246;border-radius:3px}
.hci-log-row{
  display:grid;grid-template-columns:auto 10px minmax(0,1fr);align-items:start;gap:6px;
  padding:5px 0;font-size:10px;line-height:1.5;color:#9db0c5;
  animation:hciLogIn .38s ease both;
}
.hci-log-row b{
  color:#6b7f95;font-weight:700;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:9.5px;padding-top:1px;
}
.hci-log-row i{
  width:6px;height:6px;border-radius:50%;margin-top:5px;background:var(--lc,#4cc3ff);
  box-shadow:0 0 7px var(--lc,#4cc3ff);
}
.hci-log-row.s0{--lc:#ff5c76}
.hci-log-row.s1{--lc:#ff4d6a}
.hci-log-row.s2{--lc:#a78bff}
.hci-log-row.s3{--lc:#5ad19a}
.hci-log-row.s4{--lc:#ffc65c}
@keyframes hciLogIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}

.hci-detail{padding:13px 16px 16px;min-height:150px}
.hci-detail-empty{margin:0;font-size:10px;line-height:1.7;color:#5d7086}
.hci-detail-head{border-left:2px solid var(--dc,#4cc3ff);padding-left:10px;margin-bottom:10px}
.hci-detail-kind{
  display:block;font-size:8.5px;font-weight:900;letter-spacing:.13em;color:var(--dc,#4cc3ff);
  text-transform:uppercase;margin-bottom:4px;
}
.hci-detail-head b{
  display:block;font-size:12.5px;color:#fff;line-height:1.35;word-break:break-all;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
.hci-detail-head em{display:block;font-style:normal;font-size:10px;color:#8b9fb5;margin-top:3px}
.hci-detail-list{margin:0;display:grid;gap:6px}
.hci-detail-list>div{display:grid;grid-template-columns:78px minmax(0,1fr);gap:8px;align-items:start}
.hci-detail-list dt{font-size:9px;color:#66788d;letter-spacing:.02em;padding-top:1px}
.hci-detail-list dd{
  margin:0;font-size:9.5px;line-height:1.55;color:#c2d2e2;word-break:break-word;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}

/* ── 반응형 ──────────────────────────────────────────── */
@media(max-width:1180px){
  .hci{grid-template-columns:186px minmax(0,1fr) 272px}
  .hci-detail-list>div{grid-template-columns:70px minmax(0,1fr)}
}
@media(max-width:980px){
  .hci{grid-template-columns:1fr;min-height:0}
  .hci-tray{
    flex-direction:row;flex-wrap:wrap;align-items:stretch;gap:8px;
    border-right:0;border-bottom:1px solid var(--hci-line);padding:14px;
  }
  .hci-tray-head{width:100%;margin-bottom:0}
  .hci-chip{flex:1 1 168px;width:auto;min-width:0}
  .hci-tray-note{width:100%;margin-top:2px;padding-top:10px}
  .hci-stage{min-height:520px}
  .hci-panel{border-left:0;border-top:1px solid var(--hci-line);grid-template-rows:auto auto auto auto auto}
  .hci-log{max-height:190px}
}
@media(max-width:760px){
  .hci-scroll{overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:#233246 transparent}
  .hci-scroll::-webkit-scrollbar{height:5px}
  .hci-scroll::-webkit-scrollbar-thumb{background:#243448;border-radius:3px}
  .hci-plane{min-width:660px}
  .hci-swipe{
    display:flex;position:absolute;top:0;right:0;bottom:0;width:64px;z-index:4;
    align-items:center;justify-content:flex-end;gap:7px;padding-right:9px;
    pointer-events:none;transition:opacity .32s ease;
    background:linear-gradient(90deg,rgba(4,7,13,0),rgba(4,7,13,.80) 70%);
  }
  .hci-swipe.is-off{opacity:0}
  .hci-swipe span{
    writing-mode:vertical-rl;font-size:9px;letter-spacing:.1em;color:#95a9bf;
  }
  .hci-swipe svg{width:13px;height:13px;flex:none;display:block}
}
@media(max-width:640px){
  .hci-stage{min-height:470px}
  .hci-chip{flex:1 1 100%;grid-template-columns:28px minmax(0,1fr)}
  .hci-chip svg{width:26px;height:26px}
  .hci-steps{gap:4px}
  .hci-step{padding:4px 7px;font-size:8px}
  .hci-legend{gap:8px;padding:6px 8px}
  .hci-legend span{font-size:8px}
  .hci-counts b{font-size:19px}
}

@media(prefers-reduced-motion:reduce){
  .hci-chip,.hci-step,.hci-swipe{transition:none}
  .hci-log-row{animation:none}
  .hci-geo-row{transition:none;opacity:1;transform:none}
}

/* ==== /assets/css/tech-console.css?v=20260905c ==== */
/* ============================================================
   Technology Explorer — 라이브 기술 콘솔 (.tcon / tech-console.js)
   좌측 레일 · 중앙 다크 네온 스테이지 · 우측 텔레메트리
   ============================================================ */
.tcon-bleed{
  --tc-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
  --tc-line: rgba(126,172,222,.16);
  --tc-line-2: rgba(126,172,222,.10);
  --tc-txt: #dbe9f7;
  --tc-mut: #7d97b4;
  --tc-red: #ff3552;
  --tc-cyan: #43c8ff;
  margin-top: 34px;
  padding: 0 clamp(14px, 3vw, 44px);
}

/* ── 콘솔 셸 ── */
.tcon{
  position: relative;
  display: grid;
  grid-template-columns: 268px minmax(0,1fr) 240px;
  gap: 14px;
  height: 72vh;
  min-height: 640px;
  padding: 14px;
  border-radius: 26px;
  border: 1px solid rgba(94,140,190,.20);
  background:
    radial-gradient(900px 480px at 12% 0%, rgba(38,92,150,.20), transparent 60%),
    radial-gradient(700px 420px at 92% 100%, rgba(190,26,58,.16), transparent 62%),
    linear-gradient(168deg, #0a111c 0%, #070c15 52%, #05080f 100%);
  box-shadow: 0 40px 110px rgba(6,14,26,.42), inset 0 1px 0 rgba(255,255,255,.05);
  color: var(--tc-txt);
  overflow: hidden;
}
.tcon::before{
  content: "";
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(120,170,225,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(120,170,225,.05) 1px, transparent 1px);
  background-size: 46px 46px;
  -webkit-mask-image: radial-gradient(120% 100% at 50% 0%, #000 20%, transparent 78%);
  mask-image: radial-gradient(120% 100% at 50% 0%, #000 20%, transparent 78%);
  pointer-events: none;
}

/* ── 좌측 레일 ── */
.tcon-rail{
  position: relative;
  display: flex; flex-direction: column; gap: 16px;
  min-height: 0;
  padding: 4px 6px 4px 2px;
  overflow: auto;
  scrollbar-width: thin;
}
.tcon-rail::-webkit-scrollbar{ width: 6px }
.tcon-rail::-webkit-scrollbar-thumb{ background: rgba(120,170,225,.2); border-radius: 99px }
.tcon-group{ display: grid; gap: 6px }
.tcon-group-head{
  display: flex; align-items: center; gap: 9px;
  padding: 2px 6px 6px;
}
.tcon-group-head svg{ width: 15px; height: 15px; flex: none; color: var(--tc-red) }
.tcon-group-head span{ display: grid; gap: 2px; min-width: 0 }
.tcon-group-head b{
  font: 900 9px/1 var(--tc-mono); letter-spacing: .16em; color: #ff5f78;
}
.tcon-group-head em{
  font: 750 10.5px/1 inherit; font-style: normal; color: var(--tc-mut); letter-spacing: -.01em;
}
.tcon-item{
  position: relative;
  display: flex; align-items: center; gap: 10px;
  padding: 10px 12px;
  border: 1px solid var(--tc-line-2);
  border-radius: 13px;
  background: linear-gradient(180deg, rgba(15,24,38,.82), rgba(10,16,27,.72));
  color: #b9cee3;
  text-decoration: none;
  overflow: hidden;
  transition: border-color .22s, background .22s, color .22s, transform .22s, box-shadow .22s;
}
.tcon-item:hover, .tcon-item:focus-visible{
  border-color: rgba(67,200,255,.34);
  color: #eaf5ff;
  transform: translateX(3px);
  outline: none;
}
.tcon-item-ico{
  display: grid; place-items: center;
  width: 28px; height: 28px; flex: none;
  border: 1px solid var(--tc-line);
  border-radius: 9px;
  background: rgba(10,20,34,.8);
  color: #6fa6d6;
  transition: color .22s, border-color .22s, background .22s;
}
.tcon-item-ico svg{ width: 15px; height: 15px }
.tcon-item-txt{ display: grid; gap: 3px; min-width: 0 }
.tcon-item-txt b{
  font-size: 12.5px; font-weight: 750; line-height: 1.35; letter-spacing: -.02em;
}
.tcon-item-txt i{
  font: 800 8px/1 var(--tc-mono); font-style: normal; letter-spacing: .14em; color: #5f7d9d;
}
.tcon-item-bar{
  position: absolute; left: 0; right: 0; bottom: 0; height: 2px;
  background: rgba(120,170,225,.10);
  opacity: 0;
}
.tcon-item-bar em{
  display: block; height: 100%;
  transform: scaleX(0); transform-origin: 0 50%;
  background: linear-gradient(90deg, var(--tc-red), #ff8aa0);
}
.tcon.is-auto .tcon-item.is-on .tcon-item-bar{ opacity: 1 }
.tcon-item.is-on{
  border-color: rgba(255,53,82,.55);
  background: linear-gradient(180deg, rgba(48,14,24,.9), rgba(20,11,18,.82));
  color: #fff;
  box-shadow: 0 12px 30px rgba(190,20,50,.22), inset 0 0 0 1px rgba(255,90,120,.1);
}
.tcon-item.is-on .tcon-item-ico{
  color: #ff8093; border-color: rgba(255,53,82,.4); background: rgba(48,12,22,.8);
}
.tcon-item.is-on .tcon-item-txt i{ color: #ff7d93 }

/* ── 중앙 스테이지 ── */
.tcon-stage{
  position: relative;
  display: flex; flex-direction: column;
  min-width: 0; min-height: 0;
  border: 1px solid var(--tc-line);
  border-radius: 20px;
  background: linear-gradient(175deg, rgba(11,19,31,.92), rgba(6,10,18,.94));
  overflow: hidden;
}
.tcon-head{
  display: grid; grid-template-columns: minmax(0,1fr) minmax(0,.95fr);
  align-items: start; gap: 20px;
  padding: 15px 20px 13px;
  border-bottom: 1px solid var(--tc-line-2);
}
.tcon-eyebrow{
  display: block;
  font: 900 10px/1 inherit; letter-spacing: .1em; color: #ff5f78;
  margin-bottom: 9px;
}
.tcon-title{
  margin: 0;
  font-size: clamp(17px, 1.5vw, 24px); font-weight: 850; letter-spacing: -.035em;
  line-height: 1.2; color: #fff;
}
.tcon-desc{
  margin: 0;
  font-size: 12px; line-height: 1.72; color: var(--tc-mut);
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; overflow: hidden;
}
.tcon-view{
  position: relative;
  flex: 1; min-height: 0;
  margin: 11px 14px 2px;
  border-radius: 14px;
  border: 1px solid var(--tc-line-2);
  background:
    radial-gradient(60% 70% at 22% 26%, rgba(30,90,150,.16), transparent 70%),
    radial-gradient(52% 62% at 82% 76%, rgba(190,30,64,.14), transparent 70%),
    #060a12;
  overflow: hidden;
}
.tcon-gl{ position: absolute; inset: 0; width: 100%; height: 100%; display: block }
.tcon-layer{ position: absolute; inset: 0; pointer-events: none }
.tcon-mod{ position: absolute; inset: 0 }
.tcon-stage.is-swap .tcon-head, .tcon-stage.is-swap .tcon-layer{ animation: tconSwap .38s ease both }
@keyframes tconSwap{ from{ opacity: 0; transform: translateY(8px) } to{ opacity: 1; transform: none } }

/* ── 하단 흐름 칩 + CTA ── */
.tcon-foot{
  display: flex; align-items: center; gap: 12px;
  padding: 10px 14px 13px;
}
.tcon-flow{
  flex: 1; min-width: 0;
  display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 8px;
  list-style: none; margin: 0; padding: 0;
}
.tcon-chip{
  padding: 8px 11px;
  border: 1px solid var(--tc-line-2);
  border-radius: 11px;
  background: rgba(11,19,31,.8);
  transition: border-color .3s, background .3s, box-shadow .3s;
}
.tcon-chip span{
  display: block;
  font: 900 8.5px/1 var(--tc-mono); letter-spacing: .14em; color: #5f7d9d;
  margin-bottom: 6px;
  transition: color .3s;
}
.tcon-chip b{
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
  font-size: 11px; font-weight: 700; line-height: 1.42; color: #93aec9;
  transition: color .3s;
}
.tcon-chip.is-done{ border-color: rgba(67,200,255,.22) }
.tcon-chip.is-done span{ color: #43c8ff }
.tcon-chip.is-done b{ color: #b6cde2 }
.tcon-chip.is-on{
  border-color: rgba(255,53,82,.5);
  background: linear-gradient(180deg, rgba(44,13,22,.9), rgba(16,10,16,.85));
  box-shadow: 0 10px 26px rgba(190,20,50,.2);
}
.tcon-chip.is-on span{ color: #ff6b82 }
.tcon-chip.is-on b{ color: #fff }
.tcon-cta{ flex: none }
.tcon-cta .btn{ white-space: nowrap; font-size: 12.5px; padding: 11px 18px }

/* ── 우측 텔레메트리 ── */
.tcon-tele{
  display: flex; flex-direction: column; gap: 9px;
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--tc-line);
  border-radius: 20px;
  background: linear-gradient(175deg, rgba(11,19,31,.9), rgba(6,10,18,.92));
}
.tcon-tele-head{
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--tc-line-2);
}
.tcon-tele-head b{ font: 900 9px/1 var(--tc-mono); letter-spacing: .18em; color: #6fa6d6 }
.tcon-tele-head i{
  font: 800 8.5px/1 var(--tc-mono); font-style: normal; letter-spacing: .1em; color: #5f7d9d;
  text-align: right;
}
.tcon-tele-list{ display: grid; gap: 8px; align-content: start }
.tcon-tele-row{
  display: grid; gap: 5px;
  padding: 11px 12px;
  border: 1px solid var(--tc-line-2);
  border-radius: 12px;
  background: rgba(9,15,25,.7);
}
.tcon-tele-row span{ font-size: 10.5px; font-weight: 700; color: var(--tc-mut) }
.tcon-tele-row b{ font: 900 17px/1 var(--tc-mono); letter-spacing: -.02em; color: #eaf4ff }
.tcon-tele-row b.is-in{ animation: tconVal .22s ease both }
@keyframes tconVal{ from{ opacity: .18 } to{ opacity: 1 } }
.tcon-tele-foot{
  margin-top: auto;
  padding-top: 10px;
  border-top: 1px solid var(--tc-line-2);
  font: 800 8.5px/1.7 var(--tc-mono); letter-spacing: .1em; color: #55738f;
}

/* 스테이지 전용 규칙은 tcon-stage-analysis.css / tcon-stage-cs.css / tcon-stage-scanner.css 로 이관(R16).
   스테이지 호스트: .tcon-layer > .tcon-mod.tcon-mod-<name>.tcs-<name> */

/* ── WebGL 폴백 ── */
.tcon.tcon-nogl .tcon-view{
  background:
    linear-gradient(115deg, transparent 42%, rgba(67,200,255,.08) 50%, transparent 58%),
    radial-gradient(60% 70% at 22% 26%, rgba(30,90,150,.2), transparent 70%),
    radial-gradient(52% 62% at 82% 76%, rgba(190,30,64,.16), transparent 70%),
    #060a12;
}

/* ── 반응형 ── */
@media (max-width: 1280px){
  .tcon{ grid-template-columns: 240px minmax(0,1fr) 218px }
  .tcon-desc{ -webkit-line-clamp: 3 }
}
@media (max-width: 1120px){
  .tcon{
    grid-template-columns: 236px minmax(0,1fr);
    grid-template-rows: minmax(0,1fr) auto;
    height: auto; min-height: 0;
  }
  .tcon-rail{ height: 62vh; min-height: 480px }
  .tcon-stage{ height: 62vh; min-height: 480px }
  .tcon-tele{ grid-column: 1 / -1 }
  .tcon-tele-list{ grid-template-columns: repeat(4, minmax(0,1fr)) }
  .tcon-tele-foot{ display: none }
}
@media (max-width: 980px){
  .tcon{ grid-template-columns: minmax(0,1fr); padding: 12px; border-radius: 22px }
  .tcon-rail{
    flex-direction: row; height: auto; min-height: 0;
    gap: 12px; padding-bottom: 10px;
    overflow-x: auto; overflow-y: hidden;
  }
  .tcon-group{ min-width: 210px }
  .tcon-stage{ height: 58vh; min-height: 460px }
  .tcon-head{ grid-template-columns: minmax(0,1fr) }
  .tcon-desc{ -webkit-line-clamp: 3 }
}
@media (max-width: 700px){
  .tcon-bleed{ padding: 0 12px }
  .tcon-stage{ height: auto; min-height: 0 }
  .tcon-view{ height: 46vh; min-height: 330px; flex: none }
  .tcon-flow{ grid-template-columns: repeat(2, minmax(0,1fr)) }
  .tcon-foot{ flex-direction: column; align-items: stretch }
  .tcon-cta{ display: grid }
  .tcon-cta .btn{ text-align: center }
  .tcon-tele-list{ grid-template-columns: repeat(2, minmax(0,1fr)) }
  .tcon-tele-row b{ font-size: 15px }
  .tcon-title{ font-size: 17px }
}
@media (prefers-reduced-motion: reduce){
  .tcon *, .tcon *::before, .tcon *::after{
    animation: none !important;
    transition: none !important;
  }
}

/* R16 후속: 모바일(≤980px) 레일 — 가로 스크롤 띠 대신 세로 스택(그룹별 2열 그리드)으로 8기술 전부 노출, 페이지·레일 가로 스크롤 0 */
@media (max-width: 980px){
  .tcon-rail{ flex-direction: column; overflow: visible; gap: 10px; padding: 2px 0 0; }
  .tcon-group{ min-width: 0; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 6px; }
  .tcon-group-head{ grid-column: 1 / -1; }
  .tcon-item{ min-width: 0; padding: 9px 10px; gap: 8px; border-radius: 11px; }
  .tcon-item:hover{ transform: none; }
  .tcon-item-txt b{ white-space: normal; line-height: 1.25; font-size: 12px; }
  .tcon-item-txt i{ font-size: 8.5px; }
  .tcon-item-ico{ width: 26px; height: 26px; }
}

/* R16 후속 ②: 모바일에서는 재생 화면(스테이지)을 먼저 보여주고 기술 버튼·텔레메트리를 그 아래로 내린다
   — 버튼만 보이고 재생이 화면 밖에서 도는 상황을 막는다 */
@media (max-width: 980px){
  .tcon{ grid-template-rows: auto auto auto; }
  .tcon-stage{ order: 1 }
  .tcon-rail{ order: 2 }
  .tcon-tele{ order: 3 }
}

/* ==== /assets/css/tcon-stage-analysis.css?v=20260905c ==== */
/* ============================================================
   TCON 스테이지 CSS — ANALYSIS (decompile · packet) R16 재작업 (검수 반영 2차)
   규칙: 모든 선택자는 `.tcon .tcs-analysis` 접두사 아래에만 둔다.
   창 크롬(.an-win/.an-bar)은 tech-cine.css 의 .tsw 를 참고해 자급자족
   (메인 페이지에는 tech-cine.css 가 없다). 글자 8.5px 이상 · 점멸 애니메이션 없음.
   공용 토큰(--tc-mono/--tc-line/--tc-line-2/--tc-txt/--tc-mut/--tc-red/--tc-cyan)은
   코어(tech-console.css .tcon-bleed)가 제공한다.
   변경: 판정 칩을 코드 영역 밖 스트립(흐름 배치)으로 · 라인 태그를 flex 항목으로(코드와 겹침 0) ·
         로그 높이는 JS 가 행 단위로 산출 · 분석기 열은 창 폭 클래스(is-wide/is-narrow)로 접기
   ============================================================ */

/* ── 모드 루트 ── */
.tcon .tcs-analysis .an-dc,
.tcon .tcs-analysis .an-pk{ position: absolute; inset: 0 }

/* ── 창 크롬 (반투명 유리 — 아래 WebGL 네온이 비친다) ── */
.tcon .tcs-analysis .an-win{
  position: absolute;
  display: flex; flex-direction: column;
  min-width: 0; min-height: 0;
  border: 1px solid rgba(120,150,190,.26);
  border-radius: 12px;
  background: rgba(9,14,23,.72);
  box-shadow: 0 24px 60px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.045);
  overflow: hidden;
  transition: border-color .4s, box-shadow .4s;
}
.tcon .tcs-analysis .an-win.thr{
  border-color: rgba(255,53,82,.55);
  box-shadow: 0 24px 60px rgba(0,0,0,.5), 0 0 60px rgba(255,53,82,.18), inset 0 1px 0 rgba(255,255,255,.045);
}
.tcon .tcs-analysis .an-bar{
  display: flex; align-items: center; gap: 9px;
  height: 28px; padding: 0 10px; flex: none;
  background: linear-gradient(rgba(29,35,49,.92), rgba(24,29,41,.92));
  border-bottom: 1px solid rgba(120,150,190,.18);
}
.tcon .tcs-analysis .an-lt{ display: flex; gap: 5px; flex: none }
.tcon .tcs-analysis .an-lt b{ width: 8px; height: 8px; border-radius: 50%; background: #c94b55 }
.tcon .tcs-analysis .an-lt b:nth-child(2){ background: #a8873f }
.tcon .tcs-analysis .an-lt b:nth-child(3){ background: #3f8a5f }
.tcon .tcs-analysis .an-ttl{
  min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  font: 700 10.5px/1 var(--tc-mono); letter-spacing: .04em; color: #c7d0dd;
}
.tcon .tcs-analysis .an-ttl em{ font-style: normal; color: var(--tc-red) }
.tcon .tcs-analysis .an-meta{
  margin-left: auto; flex: none; max-width: 58%;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  font: 700 9px/1 var(--tc-mono); font-style: normal; letter-spacing: .02em; color: #8b98aa;
}
.tcon .tcs-analysis .an-meta.rd{ color: #ff8296 }

/* ── 공통 텍스트 ── */
.tcon .tcs-analysis .an-foot{
  display: flex; gap: 12px; align-items: center; flex: none;
  height: 24px; padding: 0 10px;
  border-top: 1px solid rgba(120,150,190,.14);
  background: rgba(20,24,33,.8);
  font: 700 9px/1 var(--tc-mono); color: #8b98aa; white-space: nowrap; overflow: hidden;
}
.tcon .tcs-analysis .an-foot b{ color: #42ebd1; font-weight: 800 }
.tcon .tcs-analysis .an-foot b.rd{ color: #ff6c82 }
.tcon .tcs-analysis .an-foot .fn{ margin-left: auto; color: #5c6a7c; font-size: 8.5px; letter-spacing: .04em }

/* ════════ DECOMPILE · 좌측 수거 검체 아이콘 그리드 ════════ */
.tcon .tcs-analysis .an-gridw{ position: relative; flex: 1; min-height: 0; overflow: hidden }
.tcon .tcs-analysis .an-grid{
  position: absolute; inset: 0;
  display: grid; gap: 4px; padding: 7px;
  grid-template-columns: repeat(6, minmax(0,1fr));
}
.tcon .tcs-analysis .an-ti{
  position: relative; min-width: 0; min-height: 0;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
  padding: 2px 1px;
  border: 1px solid rgba(120,150,190,.12); border-radius: 7px;
  background: rgba(13,18,28,.55);
  opacity: .38; filter: saturate(.3) brightness(.75);
  transition: opacity .25s, filter .25s, border-color .25s, box-shadow .25s, background .25s;
}
.tcon .tcs-analysis .an-ti img{
  width: 16px; height: 16px; flex: none; display: block; border-radius: 4px; object-fit: cover;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,.55));
}
.tcon .tcs-analysis .an-ti span{
  max-width: 100%; padding: 0 1px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  font: 600 8.5px/1.15 var(--tc-mono); color: #93a5ba;
}
/* 아이콘 전용 모드 — 타일 높이가 30px 미만(모바일)일 때 JS 가 토글 */
.tcon .tcs-analysis .an-grid.is-ico .an-ti span{ display: none }
.tcon .tcs-analysis .an-grid.is-ico .an-ti{ gap: 0; padding: 1px }
.tcon .tcs-analysis .an-grid.is-ico .an-ti img{ width: 14px; height: 14px }
.tcon .tcs-analysis .an-ti.sc{ opacity: 1; filter: none; border-color: rgba(66,235,209,.22) }
.tcon .tcs-analysis .an-ti.hot{ border-color: rgba(66,235,209,.7); box-shadow: 0 0 14px rgba(66,235,209,.32), inset 0 0 8px rgba(66,235,209,.14) }
.tcon .tcs-analysis .an-ti.bad{
  opacity: 1; filter: none;
  border-color: rgba(255,63,90,.65); background: rgba(52,12,20,.6);
  box-shadow: 0 0 14px rgba(255,63,90,.26), inset 0 0 8px rgba(255,63,90,.12);
}
.tcon .tcs-analysis .an-ti.bad span{ color: #ffb3bf }
.tcon .tcs-analysis .an-ti.pick{
  border-color: rgba(255,63,90,.95); background: rgba(70,14,26,.8);
  box-shadow: 0 0 22px rgba(255,63,90,.5), inset 0 0 10px rgba(255,63,90,.25);
}
.tcon .tcs-analysis .an-ti.pick span{ color: #fff; font-weight: 800 }
.tcon .tcs-analysis .an-scan{
  position: absolute; left: 4px; right: 4px; top: 0; height: 34px;
  margin-top: -17px; pointer-events: none; opacity: 0;
  background: linear-gradient(180deg, transparent, rgba(66,235,209,.12) 42%, rgba(66,235,209,.36) 50%, rgba(66,235,209,.12) 58%, transparent);
  will-change: transform, opacity;
}

/* ════════ DECOMPILE · 우측 디컴파일 창 ════════ */
.tcon .tcs-analysis .an-tabs{
  display: flex; gap: 2px; flex: none;
  padding: 4px 6px 0; background: rgba(16,20,29,.9);
  border-bottom: 1px solid rgba(120,150,190,.14);
  overflow: hidden;
}
.tcon .tcs-analysis .an-tabs b{
  display: inline-flex; align-items: center; gap: 5px; flex: none;
  padding: 5px 10px;
  border: 1px solid rgba(120,150,190,.14); border-bottom: none; border-radius: 6px 6px 0 0;
  font: 700 9px/1 var(--tc-mono); color: #68748a; background: rgba(12,16,24,.9); white-space: nowrap;
}
.tcon .tcs-analysis .an-tabs b i{ width: 5px; height: 5px; border-radius: 50%; background: #3a4356 }
.tcon .tcs-analysis .an-tabs b.on{ color: #fff; background: rgba(10,14,21,.95); border-color: rgba(255,63,90,.4) }
.tcon .tcs-analysis .an-tabs b.on i{ background: var(--tc-red); box-shadow: 0 0 6px var(--tc-red) }
.tcon .tcs-analysis .an-codew{ position: relative; flex: 1; min-height: 0; overflow: hidden; background: rgba(10,14,21,.5) }
.tcon .tcs-analysis .an-codew::before{
  content: "LAVAR-RE v4.2"; position: absolute; right: 12px; top: 10px;
  font: 800 9px/1 var(--tc-mono); letter-spacing: .3em; color: rgba(120,150,190,.14); pointer-events: none;
}
.tcon .tcs-analysis .an-codeclip{ position: absolute; left: 0; right: 0; top: 7px; bottom: 4px; overflow: hidden }
.tcon .tcs-analysis .an-code{
  position: absolute; left: 0; right: 0; top: 0;
  font: 500 10.5px/1.5 var(--tc-mono); color: #c8d4e4;
  will-change: transform;
}
.tcon .tcs-analysis .an-ln{
  position: relative; display: flex; align-items: center; padding-right: 8px;
  opacity: 0; transform: translateY(3px);
  transition: opacity .26s, transform .26s;
}
.tcon .tcs-analysis .an-ln.on{ opacity: 1; transform: none }
.tcon .tcs-analysis .an-ln > i{ flex: none; width: 30px; text-align: right; padding-right: 9px; font-style: normal; color: #3d4a5c }
.tcon .tcs-analysis .an-ln > code{ flex: 1; min-width: 0; white-space: pre; overflow: hidden; text-overflow: ellipsis; font: inherit; color: inherit }
.tcon .tcs-analysis .an-ln em{ font-style: normal }
.tcon .tcs-analysis .an-ln .k{ color: #a86fff }
.tcon .tcs-analysis .an-ln .t{ color: #5ab0ff }
.tcon .tcs-analysis .an-ln .s{ color: #ffb840 }
.tcon .tcs-analysis .an-ln .m{ color: #42ebd1 }
.tcon .tcs-analysis .an-ln .c{ color: #5f6f82 }
.tcon .tcs-analysis .an-ln .n{ color: #ff9e6d }
.tcon .tcs-analysis .an-ln.dg.on{ background: linear-gradient(90deg, rgba(255,63,90,.17), rgba(255,63,90,.02)); box-shadow: inset 2px 0 0 var(--tc-red) }
.tcon .tcs-analysis .an-ln.dg > i{ color: #ff6c82; font-weight: 800 }
/* 라인 태그 — flex 항목(코드는 ellipsis 로 양보) → 코드 텍스트와 절대 겹치지 않는다 */
.tcon .tcs-analysis .an-ln .tag{
  flex: none; margin-left: 6px;
  padding: 2px 5px; border-radius: 4px;
  font: 800 8.5px/1 var(--tc-mono); letter-spacing: .06em; color: #ff8296;
  border: 1px solid rgba(255,63,90,.45); background: rgba(30,8,13,.9);
  opacity: 0; transition: opacity .3s .1s;
}
.tcon .tcs-analysis .an-ln.on .tag{ opacity: 1 }
/* 판정 스트립 — 코드 창 아래 흐름 배치(절대 위치 아님) */
.tcon .tcs-analysis .an-verd{
  flex: none; display: flex; flex-wrap: wrap; align-items: center; gap: 4px;
  padding: 4px 7px; min-height: 26px;
  border-top: 1px solid rgba(120,150,190,.14); background: rgba(12,16,24,.9);
  transition: background .3s, border-color .3s;
}
.tcon .tcs-analysis .an-verd.on{ background: rgba(34,9,16,.92); border-top-color: rgba(255,63,90,.45) }
.tcon .tcs-analysis .an-verd > b{
  flex: none; margin-right: 3px;
  font: 900 9px/1 var(--tc-mono); letter-spacing: .1em; color: #5c6a7c; white-space: nowrap;
  transition: color .3s;
}
.tcon .tcs-analysis .an-verd.on > b{ color: #ff8296 }
.tcon .tcs-analysis .an-vc{
  display: inline-flex; align-items: center; gap: 5px; flex: none;
  padding: 3px 6px; border-radius: 6px;
  font: 800 9px/1 var(--tc-mono); letter-spacing: .04em; color: #6b7a90;
  background: rgba(8,13,22,.86); border: 1px solid rgba(120,150,190,.18); white-space: nowrap;
  transition: color .28s, border-color .28s, background .28s;
}
.tcon .tcs-analysis .an-vc i{ width: 5px; height: 5px; border-radius: 50%; background: #3a4356; transition: background .28s, box-shadow .28s }
.tcon .tcs-analysis .an-vc.on{ color: #ffe1e6; border-color: rgba(255,71,102,.5); background: rgba(52,12,20,.9) }
.tcon .tcs-analysis .an-vc.on i{ background: var(--tc-red); box-shadow: 0 0 7px var(--tc-red) }
/* 역분석 로그 — 높이(행 수)는 JS 가 가용 높이로 산출, 표시 행은 최근 N 행만 → 잘림 0 */
.tcon .tcs-analysis .an-log{
  flex: none; height: 32px; overflow: hidden; box-sizing: border-box;
  padding: 3px 9px 2px;
  border-top: 1px solid rgba(120,150,190,.14); background: rgba(11,15,23,.85);
  font: 600 9px/13px var(--tc-mono); color: #7f8fa3;
  display: flex; flex-direction: column; justify-content: flex-end;
}
.tcon .tcs-analysis .an-log div{ display: none; height: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis }
.tcon .tcs-analysis .an-log div.on{ display: block }
.tcon .tcs-analysis .an-log .tm{ color: #4d5a6d; margin-right: 6px }
.tcon .tcs-analysis .an-log .wr{ color: #ffb840 }
.tcon .tcs-analysis .an-log .rd{ color: #ff8296 }

/* ════════ PACKET · 좌측 전송 경로 ════════ */
.tcon .tcs-analysis .an-route{ position: absolute; left: 0; right: 0; top: 28px; bottom: 0; overflow: hidden }
.tcon .tcs-analysis .an-rhead{
  position: absolute; left: 0; top: 0; right: 0;
  display: flex; align-items: center; gap: 8px; height: 22px; padding: 0 2px;
  border-bottom: 1px solid rgba(120,150,190,.14);
  white-space: nowrap; overflow: hidden;
}
.tcon .tcs-analysis .an-rhead b{ font: 800 10px/1 inherit; color: #dfe8f4; letter-spacing: -.01em }
.tcon .tcs-analysis .an-rhead i{ font: 800 8.5px/1 var(--tc-mono); font-style: normal; letter-spacing: .14em; color: #ff8296 }
.tcon .tcs-analysis .an-rhead em{ margin-left: auto; font: 700 8.5px/1 var(--tc-mono); font-style: normal; color: #5c6a7c }
.tcon .tcs-analysis .an-node{ position: absolute; left: 0; top: 0; width: 0; height: 0 }
.tcon .tcs-analysis .an-dot{
  position: absolute; left: -7px; top: -7px; width: 14px; height: 14px;
  border-radius: 50%; border: 2px solid rgba(120,150,190,.35); background: rgba(8,13,22,.9);
  box-shadow: 0 0 0 4px rgba(8,13,22,.5);
  transition: border-color .3s, box-shadow .3s, background .3s;
}
.tcon .tcs-analysis .an-node.on .an-dot{ border-color: #43c8ff; box-shadow: 0 0 0 4px rgba(8,13,22,.5), 0 0 16px rgba(67,200,255,.5) }
.tcon .tcs-analysis .an-node.on.c2 .an-dot{ border-color: var(--tc-red); background: rgba(60,10,20,.95); box-shadow: 0 0 0 4px rgba(8,13,22,.5), 0 0 18px rgba(255,53,82,.6) }
.tcon .tcs-analysis .an-nl{
  position: absolute; display: grid; gap: 3px; white-space: nowrap; min-width: 0;
  opacity: .45; transition: opacity .3s;
}
.tcon .tcs-analysis .an-node.on .an-nl{ opacity: 1 }
.tcon .tcs-analysis .an-nl b{ font: 800 11px/1 inherit; color: #eef4fb; letter-spacing: -.01em; overflow: hidden; text-overflow: ellipsis }
.tcon .tcs-analysis .an-nl b small{ font: 800 8.5px/1 var(--tc-mono); letter-spacing: .1em; color: #5c6a7c; margin-right: 6px }
.tcon .tcs-analysis .an-nl span{ font: 600 9px/1.2 var(--tc-mono); color: #8b98aa; letter-spacing: .01em; overflow: hidden; text-overflow: ellipsis }
.tcon .tcs-analysis .an-nl span u{ text-decoration: none; color: #ff8296; font-weight: 800 }
.tcon .tcs-analysis .an-nl span i{ font-style: normal; color: #5c6a7c }
.tcon .tcs-analysis .an-nl span.sm{ display: none }
.tcon .tcs-analysis .an-rline{
  position: absolute; width: 1px; background: rgba(120,150,190,.22); transform-origin: 0 0;
}
.tcon .tcs-analysis .an-rline.on{ background: rgba(67,200,255,.45) }
.tcon .tcs-analysis .an-rline.on.c2{ background: rgba(255,53,82,.55) }
.tcon .tcs-analysis .an-shot{
  position: absolute; width: 30px; height: 54px; border-radius: 6px;
  border: 1px solid rgba(120,150,190,.35); background: #0a0e15; object-fit: cover; object-position: 50% 42%;
  box-shadow: 0 8px 20px rgba(0,0,0,.5);
  opacity: .5; transition: opacity .3s;
}
.tcon .tcs-analysis .an-node.on .an-shot{ opacity: 1 }
.tcon .tcs-analysis .an-rfoot{
  position: absolute; left: 0; right: 0; bottom: 0;
  display: grid; gap: 4px;
  padding: 6px 2px 0; border-top: 1px solid rgba(120,150,190,.14);
  font: 700 8.5px/1.3 var(--tc-mono); color: #5c6a7c; white-space: nowrap; overflow: hidden;
}
.tcon .tcs-analysis .an-rfoot span{ overflow: hidden; text-overflow: ellipsis }
.tcon .tcs-analysis .an-rfoot b{ color: #9fb2c6; font-weight: 800 }
.tcon .tcs-analysis .an-rfoot em{ font-style: normal; color: #42ebd1 }
.tcon .tcs-analysis .an-rfoot i{ font-style: normal; color: #4d5a6d; margin: 0 3px }

/* ════════ PACKET · 우측 패킷 분석 창 ════════ */
.tcon .tcs-analysis .an-filter{
  display: flex; align-items: center; gap: 8px; flex: none;
  height: 22px; padding: 0 9px;
  background: rgba(18,23,31,.9); border-bottom: 1px solid rgba(120,150,190,.14);
  font: 700 8.5px/1 var(--tc-mono); color: #5c6a7c; letter-spacing: .08em; white-space: nowrap; overflow: hidden;
}
.tcon .tcs-analysis .an-filter b{
  flex: 1; min-width: 0; height: 15px; display: flex; align-items: center; padding: 0 7px;
  border-radius: 4px; background: rgba(10,14,21,.95); border: 1px solid rgba(66,235,209,.22);
  font: 600 9px/1 var(--tc-mono); letter-spacing: 0; color: #9fd7cc; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.tcon .tcs-analysis .an-filter i{ font-style: normal; color: #42ebd1; letter-spacing: .1em }
/* 열: No 26 · Time 44 · Source 70 · Dest 96 · Proto 40 · Len 30 · Info 1fr (기본 = Len 접음, 폭≥600 전부, <500 Time 도 접음) → Info ≥ 150px */
.tcon .tcs-analysis .an-thead,
.tcon .tcs-analysis .an-row{
  display: grid; align-items: center; gap: 6px;
  grid-template-columns: 26px 44px 70px 96px 40px minmax(0,1fr);
  padding: 0 8px; white-space: nowrap;
}
.tcon .tcs-analysis .an-thead span:nth-child(6), .tcon .tcs-analysis .an-row span:nth-child(6){ display: none }
.tcon .tcs-analysis .is-wide .an-thead, .tcon .tcs-analysis .is-wide .an-row{ grid-template-columns: 26px 44px 70px 96px 40px 30px minmax(0,1fr) }
.tcon .tcs-analysis .is-wide .an-thead span:nth-child(6), .tcon .tcs-analysis .is-wide .an-row span:nth-child(6){ display: block }
.tcon .tcs-analysis .is-narrow .an-thead, .tcon .tcs-analysis .is-narrow .an-row{ grid-template-columns: 26px 70px 96px 40px minmax(0,1fr) }
.tcon .tcs-analysis .is-narrow .an-thead span:nth-child(2), .tcon .tcs-analysis .is-narrow .an-row span:nth-child(2){ display: none }
.tcon .tcs-analysis .an-thead{
  flex: none; height: 18px;
  font: 800 8.5px/1 var(--tc-mono); letter-spacing: .08em; color: #5c6a7c;
  border-bottom: 1px solid rgba(120,150,190,.14); background: rgba(12,16,24,.9);
}
.tcon .tcs-analysis .an-thead span, .tcon .tcs-analysis .an-row span{ min-width: 0; overflow: hidden; text-overflow: ellipsis }
.tcon .tcs-analysis .an-rowsw{ position: relative; flex: 1; min-height: 0; overflow: hidden }
.tcon .tcs-analysis .an-rows{ position: absolute; left: 0; right: 0; top: 0; will-change: transform }
.tcon .tcs-analysis .an-row{
  height: 19px; font: 600 9px/1 var(--tc-mono); color: #93a5ba;
  border-bottom: 1px solid rgba(120,150,190,.06);
  opacity: 0; transform: translateX(-6px); transition: opacity .24s, transform .24s;
}
.tcon .tcs-analysis .an-row.on{ opacity: 1; transform: none }
.tcon .tcs-analysis .an-row span:first-child{ color: #5c6a7c }
.tcon .tcs-analysis .an-row.w-tls{ color: #b9c8db }
.tcon .tcs-analysis .an-row.w-http{ color: #9fb2c6 }
.tcon .tcs-analysis .an-row.w-sus{ color: #ffb3bf; background: linear-gradient(90deg, rgba(255,63,90,.12), rgba(255,63,90,.02)) }
.tcon .tcs-analysis .an-row.w-sus .an-info{ color: #ff8296; font-weight: 800 }
.tcon .tcs-analysis .an-row.sel{ background: rgba(255,63,90,.55); color: #fff; box-shadow: inset 2px 0 0 #fff }
.tcon .tcs-analysis .an-row.sel span, .tcon .tcs-analysis .an-row.sel .an-info{ color: #fff }
.tcon .tcs-analysis .an-hex{
  flex: none; height: 0; overflow: hidden;
  border-top: 1px solid rgba(120,150,190,.14); background: rgba(10,14,21,.9);
  font: 600 8.5px/1.5 var(--tc-mono); color: #6f8299; white-space: nowrap;
  opacity: 0; transition: opacity .3s;
}
.tcon .tcs-analysis .an-hex.on{ height: auto; opacity: 1; padding: 4px 9px }
.tcon .tcs-analysis .an-hex div{ display: flex; gap: 10px; overflow: hidden }
.tcon .tcs-analysis .an-hex .o{ color: #4d5a6d; flex: none }
.tcon .tcs-analysis .an-hex .h{ flex: none; letter-spacing: .02em }
.tcon .tcs-analysis .an-hex .a{ color: #ffb3bf; min-width: 0; overflow: hidden; text-overflow: ellipsis }
.tcon .tcs-analysis .an-hex .a em{ font-style: normal; color: #ff6c82; font-weight: 800 }
.tcon .tcs-analysis .an-sbar{
  display: flex; align-items: center; gap: 10px; flex: none;
  height: 22px; padding: 0 9px;
  border-top: 1px solid rgba(120,150,190,.14); background: rgba(20,24,33,.85);
  font: 700 9px/1 var(--tc-mono); color: #7c8798; white-space: nowrap; overflow: hidden;
}
.tcon .tcs-analysis .an-sbar b{ color: #c7d0dd; font-weight: 700 }
.tcon .tcs-analysis .an-sbar .rd{ color: var(--tc-red) }
.tcon .tcs-analysis .an-sbar .fn{ margin-left: auto; color: #5c6a7c; font-size: 8.5px; overflow: hidden; text-overflow: ellipsis }

/* ── 세로(모바일 · W<640) 변형 — 루트(.an-dc/.an-pk)에 is-vert ── */
.tcon .tcs-analysis .is-vert .an-bar{ height: 24px; padding: 0 8px }
.tcon .tcs-analysis .is-vert .an-meta{ max-width: 52% }
.tcon .tcs-analysis .is-vert .an-foot{ height: 20px; gap: 8px; font-size: 8.5px }
.tcon .tcs-analysis .is-vert .an-foot .fn{ display: none }
.tcon .tcs-analysis .is-vert .an-grid{ gap: 3px; padding: 5px; grid-template-columns: repeat(8, minmax(0,1fr)) }
.tcon .tcs-analysis .is-vert .an-tabs b{ padding: 4px 7px; font-size: 8.5px }
.tcon .tcs-analysis .is-vert .an-codeclip{ top: 4px }
.tcon .tcs-analysis .is-vert .an-code{ font-size: 9.5px; line-height: 1.5 }
.tcon .tcs-analysis .is-vert .an-ln > i{ width: 22px; padding-right: 6px }
.tcon .tcs-analysis .is-vert .an-ln .tag{ font-size: 8.5px; padding: 2px 4px; margin-left: 4px }
.tcon .tcs-analysis .is-vert .an-log{ display: none }
.tcon .tcs-analysis .is-vert .an-codew::before{ display: none }
.tcon .tcs-analysis .is-vert .an-verd{ padding: 3px 6px; gap: 3px 4px; min-height: 24px }
.tcon .tcs-analysis .is-vert .an-verd > b{ display: none }
.tcon .tcs-analysis .is-vert .an-vc{ padding: 3px 6px; font-size: 8.5px; gap: 4px }
.tcon .tcs-analysis .is-vert .an-route{ top: 24px }
.tcon .tcs-analysis .is-vert .an-nl{ gap: 2px; text-align: center; justify-items: center; overflow: hidden }
.tcon .tcs-analysis .is-vert .an-nl b{ font-size: 9.5px; max-width: 100%; white-space: nowrap }
.tcon .tcs-analysis .is-vert .an-nl b small{ display: none }
.tcon .tcs-analysis .is-vert .an-nl span{ font-size: 8.5px; max-width: 100%; white-space: nowrap }
.tcon .tcs-analysis .is-vert .an-nl span i{ display: none }
.tcon .tcs-analysis .is-vert .an-nl span.sd{ display: none }
.tcon .tcs-analysis .is-vert .an-nl span.sm{ display: block }
.tcon .tcs-analysis .is-vert .an-rline{ height: 1px; width: auto }
.tcon .tcs-analysis .is-vert .an-shot, .tcon .tcs-analysis .is-vert .an-rfoot{ display: none }
.tcon .tcs-analysis .is-vert .an-filter{ height: 20px; padding: 0 7px }
/* 모바일 열: No · Destination · Info (Time/Source/Proto/Len 접음 → Info ≥ 165px) */
.tcon .tcs-analysis .is-vert .an-thead, .tcon .tcs-analysis .is-vert .an-row{
  grid-template-columns: 24px 94px minmax(0,1fr); gap: 5px; padding: 0 7px;
}
.tcon .tcs-analysis .is-vert .an-thead span:nth-child(2), .tcon .tcs-analysis .is-vert .an-row span:nth-child(2),
.tcon .tcs-analysis .is-vert .an-thead span:nth-child(3), .tcon .tcs-analysis .is-vert .an-row span:nth-child(3),
.tcon .tcs-analysis .is-vert .an-thead span:nth-child(5), .tcon .tcs-analysis .is-vert .an-row span:nth-child(5),
.tcon .tcs-analysis .is-vert .an-thead span:nth-child(6), .tcon .tcs-analysis .is-vert .an-row span:nth-child(6){ display: none }
.tcon .tcs-analysis .is-vert .an-row{ height: 18px; font-size: 9px }
.tcon .tcs-analysis .is-vert .an-hex .h{ display: none }
.tcon .tcs-analysis .is-vert .an-hex div:nth-child(n+3){ display: none }
.tcon .tcs-analysis .is-vert .an-sbar{ height: 20px; font-size: 8.5px }
.tcon .tcs-analysis .is-vert .an-sbar .fn{ display: none }

/* ==== /assets/css/tcon-stage-cs.css?v=20260905c ==== */
/* ============================================================
   TCON 스테이지 CSS — CS (injection · sending · protection)  R16-CS4
   규칙은 반드시 `.tcon .tcs-cs` 접두사 아래에만 둔다.
   공용 토큰(--tc-mono/--tc-line/--tc-line-2/--tc-txt/--tc-mut/--tc-red/--tc-cyan)과
   키프레임 tconVal/tconSwap 은 코어(tech-console.css)가 제공한다.
   흰색 C2 웹 관리 패널 크롬은 메인 페이지에 tech-cine.css 가 없으므로 여기서 자급자족한다.
   ============================================================ */

/* 서브 루트 3종 — host 안에서 절대 채움 */
.tcon .tcs-cs .tcs-inj,
.tcon .tcs-cs .tcs-snd,
.tcon .tcs-cs .tcs-prt{ position: absolute; inset: 0; }

/* ══════════════ 공통 패널 셸 ══════════════ */
.tcon .tcs-cs .tcs-ipanel,
.tcon .tcs-cs .tcs-sgen{
  position: absolute;
  display: flex; flex-direction: column;
  border: 1px solid var(--tc-line);
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(11,18,29,.94), rgba(6,10,18,.92));
  overflow: hidden;
}
.tcon .tcs-cs .tcs-ihead{
  display: flex; align-items: center; gap: 8px;
  padding: 8px 11px; flex: none;
  border-bottom: 1px solid var(--tc-line-2);
  background: rgba(13,21,34,.7);
}
.tcon .tcs-cs .tcs-ihead b{ font: 800 10px/1 var(--tc-mono); letter-spacing: .06em; color: #cfe0f2; white-space: nowrap; }
.tcon .tcs-cs .tcs-ihead i{ font: 900 9px/1 var(--tc-mono); font-style: normal; color: #6f97bd; white-space: nowrap; }
.tcon .tcs-cs .tcs-ihead em{
  margin-left: auto; font: 800 8.5px/1 var(--tc-mono); font-style: normal; white-space: nowrap;
  letter-spacing: .08em; color: #43e0ff;
  border: 1px solid rgba(67,200,255,.28); border-radius: 999px; padding: 3px 8px;
}
/* 창(window) 밖 항목 — 잘라 보이지 않고 아예 빠진다(layout 이 '들어가는 만큼'만 켠다) */
.tcon .tcs-cs .is-hid{ display: none !important; }

/* ══════════════ INJECTION ══════════════ */
.tcon .tcs-cs .tcs-ilist{ flex: 1; min-height: 0; overflow: hidden; padding: 7px; display: flex; flex-direction: column; gap: var(--rg, 6px); }
.tcon .tcs-cs .tcs-irow{ flex: none; height: var(--rh, 30px); perspective: 520px; }
.tcon .tcs-cs .tcs-iflip{ position: relative; width: 100%; height: 100%; transform-style: preserve-3d;
  transition: transform .5s cubic-bezier(.5,0,.2,1); }
.tcon .tcs-cs .tcs-irow.is-on .tcs-iflip{ transform: rotateX(180deg); }
.tcon .tcs-cs .tcs-iface{
  position: absolute; inset: 0;
  display: grid; grid-template-columns: 1fr auto auto auto; align-items: center; gap: 8px;
  padding: 0 10px;
  border: 1px solid var(--tc-line-2); border-radius: 8px;
  backface-visibility: hidden;
  font: 700 10px/1 var(--tc-mono);
}
.tcon .tcs-cs .tcs-iface .n{ font-weight: 800; letter-spacing: -.01em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tcon .tcs-cs .tcs-iface .g{ font-size: 8.5px; color: #7089a4; }
.tcon .tcs-cs .tcs-iface .p{ font-size: 9px; color: #9fb6cd; }
.tcon .tcs-cs .tcs-iface .b{ font: 800 8px/1 var(--tc-mono); padding: 3px 6px; border-radius: 5px; }
.tcon .tcs-cs .tcs-iface.fa{ background: rgba(40,13,20,.6); border-color: rgba(255,63,90,.28); color: #ffbfca; }
.tcon .tcs-cs .tcs-iface.fa .b{ color: #ff8095; border: 1px solid rgba(255,63,90,.4); }
.tcon .tcs-cs .tcs-iface.fb{ background: rgba(10,24,20,.7); border-color: rgba(45,210,140,.32); color: #a9ecc9;
  transform: rotateX(180deg); }
.tcon .tcs-cs .tcs-iface.fb .b{ color: #4fe3a0; border: 1px solid rgba(45,210,140,.45); }

.tcon .tcs-cs .tcs-ifoot{
  flex: none; display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 8px;
  padding: 8px 11px; border-top: 1px solid var(--tc-line-2); background: rgba(9,15,25,.7);
}
.tcon .tcs-cs .tcs-ifoot .l{ font: 900 8px/1 var(--tc-mono); letter-spacing: .12em; color: #5f7d9d; }
.tcon .tcs-cs .tcs-ifoot .c{ text-align: right; font: 700 9px/1 var(--tc-mono); color: #93aec9; }
.tcon .tcs-cs .tcs-ifoot .c b{ font: 900 13px/1 var(--tc-mono); color: #eaf4ff; }
.tcon .tcs-cs .tcs-ifoot .bar{ grid-column: 1 / -1; height: 4px; border-radius: 99px; background: rgba(120,170,225,.14); overflow: hidden; }
.tcon .tcs-cs .tcs-ifoot .bar i{ display: block; height: 100%; width: 0;
  background: linear-gradient(90deg, #43c8ff, #5be0a6); transition: width .28s ease; }
.tcon .tcs-cs .tcs-ifoot .r{ grid-column: 1 / -1; font: 700 8.5px/1 var(--tc-mono); color: #6f97bd; }

/* 문자 채팅 */
.tcon .tcs-cs .tcs-ilist.is-chat{ gap: 5px; }
/* 버블: 원본(.fa)·더미(.fb) 두 면을 같은 grid 셀에 겹쳐 버블 크기 = 긴 쪽 → 더미 문장이 좁은 원본 폭에 눌려 3줄로 꺾이지 않는다 */
.tcon .tcs-cs .tcs-ibub{ flex: none; position: relative; display: grid; max-width: 94%; min-width: 0; align-self: flex-start; }
.tcon .tcs-cs .tcs-ibub.me{ align-self: flex-end; }
.tcon .tcs-cs .tcs-ibub .fa, .tcon .tcs-cs .tcs-ibub .fb{
  grid-area: 1 / 1; min-width: 0; display: block; padding: 5px 9px; border-radius: 9px;
  border: 1px solid var(--tc-line-2); background: rgba(13,21,34,.8);
  transition: opacity .3s;
}
.tcon .tcs-cs .tcs-ibub.me .fa, .tcon .tcs-cs .tcs-ibub.me .fb{ background: rgba(20,34,52,.85); }
.tcon .tcs-cs .tcs-ibub .fb{ opacity: 0; border-color: rgba(45,210,140,.28); background: rgba(10,24,20,.82); }
.tcon .tcs-cs .tcs-ibub.is-on .fa{ opacity: 0; }
.tcon .tcs-cs .tcs-ibub.is-on .fb{ opacity: 1; }
.tcon .tcs-cs .tcs-ibub i{ display: block; font: 700 8px/1 var(--tc-mono); font-style: normal; color: #6f8aa6; margin-bottom: 3px; white-space: nowrap; }
.tcon .tcs-cs .tcs-ibub b{ display: block; font: 600 9.5px/1.3 var(--tc-mono); color: #cfe0f2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tcon .tcs-cs .tcs-ibub .fb b{ color: #a9ecc9; }

/* 갤러리 — 열/행 수는 layout 이 인라인으로 정한다(3열 4행 / 좁으면 2열) */
.tcon .tcs-cs .tcs-igrid{ flex: 1; min-height: 0; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); grid-template-rows: repeat(4, minmax(0,1fr)); gap: 5px; padding: 7px; }
.tcon .tcs-cs .tcs-itile{
  position: relative; border-radius: 7px; overflow: hidden;
  border: 1px solid var(--tc-line-2);
  background: linear-gradient(150deg, hsl(var(--h,200) 45% 22%), hsl(var(--h,200) 40% 12%));
  transition: border-color .3s, box-shadow .3s;
}
.tcon .tcs-cs .tcs-itile .dot{ position: absolute; left: 5px; top: 5px; width: 6px; height: 6px; border-radius: 2px; background: rgba(180,210,240,.5); }
.tcon .tcs-cs .tcs-itile b{ position: absolute; left: 5px; right: 5px; bottom: 4px; font: 700 8px/1 var(--tc-mono); color: #cfe0f2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; transition: opacity .3s; }
.tcon .tcs-cs .tcs-itile .fb{ opacity: 0; color: #b7a8f0; }
.tcon .tcs-cs .tcs-itile.is-on{ border-color: rgba(120,96,255,.5); box-shadow: inset 0 0 0 1px rgba(120,96,255,.24); background: linear-gradient(150deg, #241d3a, #14102240); }
.tcon .tcs-cs .tcs-itile.is-on .fa{ opacity: 0; }
.tcon .tcs-cs .tcs-itile.is-on .fb{ opacity: 1; }
.tcon .tcs-cs .tcs-itile.is-on .dot{ background: #8f7dff; }

/* ══════════════ SENDING — 생성기 ══════════════ */
.tcon .tcs-cs .tcs-sgen{ padding: 0; }
.tcon .tcs-cs .tcs-shead{ display: flex; align-items: center; gap: 8px; padding: 9px 12px; flex: none; border-bottom: 1px solid var(--tc-line-2); background: rgba(13,21,34,.7); }
.tcon .tcs-cs .tcs-shead b{ font: 900 9.5px/1 var(--tc-mono); letter-spacing: .1em; color: #cfe0f2; }
.tcon .tcs-cs .tcs-shead i{ margin-left: auto; font: 800 8px/1 var(--tc-mono); font-style: normal; letter-spacing: .12em; color: #b7a8f0; }
.tcon .tcs-cs .tcs-sbig{ display: flex; align-items: baseline; gap: 8px; padding: 12px 14px 6px; flex: none; }
.tcon .tcs-cs .tcs-sbig b{ font: 900 30px/1 var(--tc-mono); letter-spacing: -.03em; color: #eaf4ff; }
.tcon .tcs-cs .tcs-sbig span{ font: 700 10px/1 var(--tc-mono); color: #7d97b4; }
.tcon .tcs-cs .tcs-sbar{ margin: 0 14px 10px; height: 5px; border-radius: 99px; background: rgba(120,170,225,.14); overflow: hidden; flex: none; }
.tcon .tcs-cs .tcs-sbar i{ display: block; height: 100%; width: 0; background: linear-gradient(90deg, #7c62ff, #b39bff); transition: width .28s ease; }
.tcon .tcs-cs .tcs-sstack{ flex: 1; min-height: 0; display: flex; flex-direction: column; gap: 4px; padding: 0 12px; overflow: hidden; }
.tcon .tcs-cs .tcs-stop{ font: 800 8px/1 var(--tc-mono); letter-spacing: .08em; color: #ff8095; padding: 2px 0 4px; flex: none; }
.tcon .tcs-cs .tcs-sblocks{ display: flex; flex-direction: column; gap: 4px; }
.tcon .tcs-cs .tcs-sblk{
  display: flex; align-items: center; gap: 8px; height: 24px; padding: 0 10px; flex: none;
  border: 1px solid rgba(124,98,255,.3); border-radius: 7px; background: rgba(36,26,60,.7);
  transition: opacity .3s;
}
.tcon .tcs-cs .tcs-sblk span{ font: 800 9px/1 var(--tc-mono); color: #c3b6f5; }
.tcon .tcs-cs .tcs-sblk i{ font: 700 8px/1 var(--tc-mono); font-style: normal; color: #8a7dc0; letter-spacing: .05em; }
.tcon .tcs-cs .tcs-sblk.is-hong{ border-color: rgba(255,63,90,.4); background: rgba(44,13,22,.78); }
.tcon .tcs-cs .tcs-sblk.is-hong span{ color: #ff8fa0; }
.tcon .tcs-cs .tcs-sblk.is-hong i{ color: #c58a95; }
.tcon .tcs-cs .tcs-sblk.is-hong em{ margin-left: auto; font: 800 8px/1 var(--tc-mono); font-style: normal; color: #ff7d93; }
.tcon .tcs-cs .tcs-snote{ display: flex; flex-direction: column; align-items: flex-start; gap: 4px; padding: 8px 12px; flex: none; border-top: 1px solid var(--tc-line-2); }
.tcon .tcs-cs .tcs-snote span{ font: 700 9px/1 var(--tc-mono); color: #ff8fa0; white-space: nowrap; }
.tcon .tcs-cs .tcs-snote b{ font: 900 9.5px/1 var(--tc-mono); color: #c3b6f5; white-space: nowrap; }
.tcon .tcs-cs .tcs-sgen.is-compact .tcs-snote{ flex-direction: row; align-items: center; justify-content: space-between; }
.tcon .tcs-cs .tcs-sgen.is-compact .tcs-sstack{ display: none; }
.tcon .tcs-cs .tcs-sgen.is-compact .tcs-sbig{ padding-top: 8px; }

/* ══════════════ SENDING — 흰색 C2 웹 관리 패널 (자급자족 크롬) ══════════════ */
.tcon .tcs-cs .tcs-sbrw{
  position: absolute;
  display: flex; flex-direction: column;
  border-radius: 12px; overflow: hidden;
  background: #eef1f6; color: #16202e;
  border: 1px solid rgba(150,175,205,.3);
  box-shadow: 0 26px 60px rgba(0,0,0,.55), 0 0 0 1px rgba(160,190,225,.14);
}
.tcon .tcs-cs .tcs-bbar{ display: flex; align-items: center; gap: 9px; height: 26px; flex: none; padding: 0 11px;
  background: linear-gradient(#e7ebf1, #dee3ea); border-bottom: 1px solid #d2d8e2; }
.tcon .tcs-cs .tcs-bbar .lights{ display: flex; gap: 5px; }
.tcon .tcs-cs .tcs-bbar .lights i{ width: 8px; height: 8px; border-radius: 50%; }
.tcon .tcs-cs .tcs-bbar .lights .r{ background: #e2695f; } .tcon .tcs-cs .tcs-bbar .lights .y{ background: #d6a83c; } .tcon .tcs-cs .tcs-bbar .lights .g{ background: #4fae67; }
.tcon .tcs-cs .tcs-bbar b{ font: 700 10px/1 var(--tc-mono); color: #46536a; letter-spacing: .02em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tcon .tcs-cs .tcs-bbar .btns{ margin-left: auto; font: 700 9px/1 var(--tc-mono); color: #9aa4b4; }
.tcon .tcs-cs .tcs-burl{ display: flex; align-items: center; gap: 7px; height: 24px; flex: none; padding: 0 10px; background: #e3e7ee; border-bottom: 1px solid #d2d8e2; }
.tcon .tcs-cs .tcs-burl i{ width: 10px; height: 10px; border-radius: 3px; border: 1px solid #b7c0cf; flex: none; }
.tcon .tcs-cs .tcs-burl span{ flex: 1; height: 17px; display: flex; align-items: center; padding: 0 9px; border-radius: 6px;
  background: #fbfcfe; border: 1px solid #dbe0e9; font: 600 9px/1 var(--tc-mono); color: #5b6b80; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tcon .tcs-cs .tcs-burl span b{ color: #d13a56; font-weight: 700; }
.tcon .tcs-cs .tcs-bmain{ flex: 1; min-height: 0; display: flex; flex-direction: column; padding: 9px 11px 8px; background: #f3f5f9; }
.tcon .tcs-cs .tcs-bhead{ display: flex; align-items: center; gap: 8px; flex: none; padding-bottom: 7px; }
.tcon .tcs-cs .tcs-bhead b{ font-size: 12px; font-weight: 850; letter-spacing: -.02em; color: #1a2534; }
.tcon .tcs-cs .tcs-bhead span{ font-size: 9.5px; font-weight: 650; color: #8592a4; }
.tcon .tcs-cs .tcs-bhead em{ margin-left: auto; font: 800 9px/1 var(--tc-mono); font-style: normal; color: #d13a56;
  border: 1px solid rgba(209,58,86,.3); border-radius: 999px; padding: 3px 8px; }
.tcon .tcs-cs .tcs-bcols{ display: grid; grid-template-columns: 62px 1fr 84px 56px 68px; gap: 6px; align-items: center;
  height: 22px; flex: none; padding: 0 9px; border-radius: 6px 6px 0 0; background: #e7ebf1; }
.tcon .tcs-cs .tcs-bcols span{ font-size: 9px; font-weight: 800; color: #7b8798; letter-spacing: .02em; }
.tcon .tcs-cs .tcs-brows{ flex: 1; min-height: 0; overflow: hidden; background: #fff; border: 1px solid #e2e6ee; border-top: none; }
.tcon .tcs-cs .tcs-brow{ display: grid; grid-template-columns: 62px 1fr 84px 56px 68px; gap: 6px; align-items: center;
  height: 27px; padding: 0 9px; border-bottom: 1px solid #eef1f6; font-size: 10px; }
.tcon .tcs-cs .tcs-brow span{ overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tcon .tcs-cs .tcs-brow .c-id{ font: 650 9.5px/1 var(--tc-mono); color: #96a1b1; }
.tcon .tcs-cs .tcs-brow .c-nm{ font-weight: 750; color: #26313f; }
.tcon .tcs-cs .tcs-brow .c-dev{ color: #7b8798; font-size: 9.5px; }
.tcon .tcs-cs .tcs-brow .c-ct{ font: 700 10px/1 var(--tc-mono); color: #26313f; }
.tcon .tcs-cs .tcs-brow .pill{ display: inline-flex; align-items: center; height: 17px; padding: 0 7px; border-radius: 999px;
  font: 800 8px/1 var(--tc-mono); letter-spacing: .04em; background: #e8f6ee; color: #178a49; border: 1px solid #cdead8; }
.tcon .tcs-cs .tcs-brow .pill.off{ background: #f1f3f7; color: #97a2b1; border-color: #e2e6ee; }
.tcon .tcs-cs .tcs-brow .pill.dummy{ background: #efeaff; color: #6a4fd8; border-color: #ddd2fb; }
.tcon .tcs-cs .tcs-brow.is-hong{ background: #fff4f6; box-shadow: inset 3px 0 0 #e0203f; }
.tcon .tcs-cs .tcs-brow.is-hong .c-nm{ color: #c01030; font-weight: 850; }
.tcon .tcs-cs .tcs-brow.is-hong .c-ct{ color: #c01030; }
.tcon .tcs-cs .tcs-brow.is-dummy{ background: #f7f4ff; box-shadow: inset 3px 0 0 #7c62ff; }
.tcon .tcs-cs .tcs-brow.is-dummy .c-nm{ color: #6a4fd8; }
.tcon .tcs-cs .tcs-brow.is-dummy .c-id{ color: #9d8ce0; }
.tcon .tcs-cs .tcs-brow.is-empty{ background: #fff; }
.tcon .tcs-cs .tcs-bpager{ display: flex; align-items: center; gap: 5px; flex: none; padding-top: 8px; }
.tcon .tcs-cs .tcs-pg{ display: inline-flex; align-items: center; justify-content: center; min-width: 20px; height: 20px; padding: 0 5px;
  border-radius: 6px; border: 1px solid #dbe0e9; background: #fff; font: 700 10px/1 var(--tc-mono); color: #6b7789; }
.tcon .tcs-cs .tcs-pg.on{ background: #d13a56; color: #fff; border-color: #d13a56; }

/* ══════════════ PROTECTION — 성좌 ══════════════ */
.tcon .tcs-cs .tcs-card{
  position: absolute; transform: translate(-50%,-50%);
  display: flex; align-items: center; gap: 8px; width: 19%; max-width: 156px; min-width: 116px;
  padding: 7px 9px;
  border: 1px solid rgba(255,63,90,.3); border-radius: 10px;
  background: linear-gradient(180deg, rgba(24,12,18,.9), rgba(14,9,14,.88));
  box-shadow: 0 8px 22px rgba(0,0,0,.4);
  transition: border-color .35s, background .35s, box-shadow .35s;
}
.tcon .tcs-cs .tcs-card .ic{ display: grid; place-items: center; width: 26px; height: 26px; flex: none;
  border-radius: 7px; overflow: hidden; border: 1px solid rgba(255,120,140,.28); background: rgba(40,14,22,.8); }
.tcon .tcs-cs .tcs-card .ic img{ width: 100%; height: 100%; object-fit: cover; display: block; }
.tcon .tcs-cs .tcs-card .ic .mono{ font: 900 12px/1 var(--tc-mono); color: #ff9aab; }
.tcon .tcs-cs .tcs-card .ic.has-ic .mono{ display: none; }
.tcon .tcs-cs .tcs-card .bd{ min-width: 0; display: grid; gap: 2px; }
.tcon .tcs-cs .tcs-card .nm{ font-size: 11px; font-weight: 800; letter-spacing: -.02em; color: #fdeef0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tcon .tcs-cs .tcs-card .ch{ display: flex; align-items: center; gap: 3px; font: 700 8px/1 var(--tc-mono); color: #cf94a0; overflow: hidden; }
.tcon .tcs-cs .tcs-card .ch i{ font-style: normal; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tcon .tcs-cs .tcs-card .ch em{ font-style: normal; color: #90707c; flex: none; }
.tcon .tcs-cs .tcs-card .mt{ display: flex; align-items: center; gap: 6px; font: 700 8px/1 var(--tc-mono); }
.tcon .tcs-cs .tcs-card .mt .fm{ font-style: normal; color: #ffa7b4; }
.tcon .tcs-cs .tcs-card .mt .ct{ font-style: normal; color: #b98a94; }
.tcon .tcs-cs .tcs-card .led{ position: absolute; right: 8px; top: 8px; width: 6px; height: 6px; border-radius: 50%;
  background: #ff5a72; box-shadow: 0 0 8px rgba(255,63,90,.7); }
.tcon .tcs-cs .tcs-card .seal{
  position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
  border-radius: 10px; background: rgba(9,16,30,.78); opacity: 0; transform: scale(1.04);
  transition: opacity .3s, transform .3s;
}
.tcon .tcs-cs .tcs-card .seal b{ font: 900 11px/1 var(--tc-mono); letter-spacing: .18em; color: #8fd0ff;
  border: 1.5px solid rgba(120,190,255,.7); border-radius: 5px; padding: 3px 8px; transform: rotate(-8deg);
  box-shadow: 0 0 16px rgba(90,160,255,.3), inset 0 0 10px rgba(90,160,255,.12); }
.tcon .tcs-cs .tcs-card .seal i{ font: 800 8px/1 var(--tc-mono); font-style: normal; letter-spacing: .1em; color: #6f95c4; }
.tcon .tcs-cs .tcs-card.is-cut{ border-color: rgba(94,155,255,.45); background: linear-gradient(180deg, rgba(10,18,34,.9), rgba(8,12,22,.9)); }
.tcon .tcs-cs .tcs-card.is-cut .led{ background: #5e9bff; box-shadow: 0 0 8px rgba(94,155,255,.7); }
.tcon .tcs-cs .tcs-card.is-cut .seal{ opacity: 1; transform: none; }

.tcon .tcs-cs .tcs-hub{ position: absolute; transform: translate(-50%,-50%); display: flex; align-items: center; gap: 6px;
  padding: 4px 9px; border: 1px solid rgba(255,63,90,.28); border-radius: 999px; background: rgba(22,10,16,.72); white-space: nowrap; }
.tcon .tcs-cs .tcs-hub i{ width: 6px; height: 6px; border-radius: 50%; background: #ff5a72; box-shadow: 0 0 8px rgba(255,63,90,.7); }
.tcon .tcs-cs .tcs-hub b{ font: 800 8.5px/1 var(--tc-mono); color: #ff9aab; }
.tcon .tcs-cs .tcs-hub.is-cut{ border-color: rgba(94,155,255,.42); background: rgba(10,18,34,.75); }
.tcon .tcs-cs .tcs-hub.is-cut i{ background: #5e9bff; box-shadow: 0 0 8px rgba(94,155,255,.7); }
.tcon .tcs-cs .tcs-hub.is-cut b{ color: #92bcff; }

.tcon .tcs-cs .tcs-core{ position: absolute; transform: translate(-50%,-50%);
  display: grid; gap: 2px; place-items: center; padding: 10px 14px; white-space: nowrap;
  border: 1px solid rgba(94,155,255,.34); border-radius: 14px; background: rgba(9,17,30,.82); text-align: center;
  box-shadow: 0 0 30px rgba(60,120,220,.2), inset 0 0 20px rgba(60,120,220,.08); }
.tcon .tcs-cs .tcs-core b{ font: 900 11px/1 var(--tc-mono); letter-spacing: .1em; color: #bfe0ff; }
.tcon .tcs-cs .tcs-core span{ font: 700 8.5px/1 var(--tc-mono); color: #7d97b4; }
.tcon .tcs-cs .tcs-core em{ font: 800 8.5px/1 var(--tc-mono); font-style: normal; color: #8fd0ff; margin-top: 2px; }
.tcon .tcs-cs .tcs-core.is-neu{ border-color: rgba(120,200,255,.5); }
.tcon .tcs-cs .tcs-core.is-neu em{ color: #9be8c8; }

.tcon .tcs-cs .tcs-gate{ position: absolute; display: flex; align-items: center; gap: 8px;
  padding: 6px 11px; border: 1px solid rgba(67,200,255,.4); border-radius: 11px; background: rgba(8,18,32,.74); white-space: nowrap;
  box-shadow: 0 0 22px rgba(60,140,220,.24); }
.tcon .tcs-cs .tcs-gate .lw{ display: grid; place-items: center; width: 24px; height: 24px; flex: none;
  border-radius: 7px; background: linear-gradient(160deg, #2b6bd6, #1a3f8f); font: 900 9px/1 var(--tc-mono); color: #dbeeff; }
.tcon .tcs-cs .tcs-gate .tx{ display: grid; gap: 2px; }
.tcon .tcs-cs .tcs-gate b{ font: 900 9.5px/1 var(--tc-mono); letter-spacing: .1em; color: #9fdcff; }
.tcon .tcs-cs .tcs-gate em{ font: 800 8.5px/1 var(--tc-mono); font-style: normal; color: #6d94b8; }
.tcon .tcs-cs .tcs-gate.is-ready em{ color: #9be8c8; }

/* WebGL 폴백 — 캔버스 없으면 성좌·패널은 DOM 으로 그대로 읽힌다 */
.tcon.tcon-nogl .tcs-cs .tcs-gate{ box-shadow: none; }

/* ══════════════ 모바일 조정 ══════════════ */
@media (max-width: 640px){
  .tcon .tcs-cs .tcs-ihead{ padding: 5px 8px; gap: 6px; }
  .tcon .tcs-cs .tcs-ihead em{ padding: 2px 7px; }
  .tcon .tcs-cs .tcs-ifoot{ padding: 5px 9px; gap: 4px; }
  .tcon .tcs-cs .tcs-ifoot .c b{ font-size: 12px; }
  .tcon .tcs-cs .tcs-iface{ gap: 6px; padding: 0 8px; }
  .tcon .tcs-cs .tcs-igrid{ gap: 4px; padding: 6px; }
  .tcon .tcs-cs .tcs-card{ width: auto; min-width: 0; max-width: none; padding: 5px 7px; gap: 6px; }
  .tcon .tcs-cs .tcs-card .ic{ width: 22px; height: 22px; }
  .tcon .tcs-cs .tcs-card .nm{ font-size: 10px; }
  .tcon .tcs-cs .tcs-card .mt{ display: none; }
  .tcon .tcs-cs .tcs-card .seal b{ font-size: 9.5px; }
  .tcon .tcs-cs .tcs-sbig b{ font-size: 24px; }
  .tcon .tcs-cs .tcs-bcols, .tcon .tcs-cs .tcs-brow{ grid-template-columns: 50px 1fr 52px 58px; }
  .tcon .tcs-cs .tcs-bcols .c-dev, .tcon .tcs-cs .tcs-brow .c-dev{ display: none; }
}

/* 후속 보정: SUSPENDED 도장이 카드 전체를 덮지 않도록 우측 62%만 덮고(아이콘·앱 이름은 보이게) 도장 크기를 줄인다 */
.tcon .tcs-cs .tcs-card .seal{ inset: 0 0 0 44%; border-radius: 0 10px 10px 0; background: linear-gradient(90deg, rgba(9,16,30,0), rgba(9,16,30,.82) 22%, rgba(9,16,30,.86)); gap: 1px; }
.tcon .tcs-cs .tcs-card .seal b{ font-size: 9.5px; padding: 2px 6px; letter-spacing: .14em; }
.tcon .tcs-cs .tcs-card .seal i{ font-size: 8px; }
.tcon .tcs-cs .tcs-card.is-cut .nm,.tcon .tcs-cs .tcs-card.is-cut .ch,.tcon .tcs-cs .tcs-card.is-cut .mt{ opacity: .55; }
@media (max-width: 980px){ .tcon .tcs-cs .tcs-card .seal{ inset: 0 0 0 46%; } }

/* ==== /assets/css/tcon-stage-scanner.css?v=20260905c ==== */
/* ============================================================
   TCON 스테이지 CSS — SCANNER (crawling · keyword · dna)  R16 재작업
   규칙은 반드시 `.tcon .tcs-scanner` 접두사 아래에만 둔다.
   공용 토큰(--tc-mono/--tc-line/--tc-line-2/--tc-txt/--tc-mut/--tc-red/--tc-cyan)과
   키프레임 tconVal/tconSwap 은 코어(tech-console.css)가 제공한다.
   창 크롬(.tsc-win/.tsc-bar/.tsc-url/.tsc-sbar)은 tech-cine.css 의 .tsw 계열을
   메인 페이지(tech-cine.css 없음)에서도 쓰기 위해 여기서 자급자족한다.
   글자 크기 최소 8px · 점멸 애니메이션 없음.
   ============================================================ */
.tcon .tcs-scanner .tsc-crawl, .tcon .tcs-scanner .tsc-kw, .tcon .tcs-scanner .tsc-dna{ position: absolute; inset: 0 }

/* ── 창 크롬 ── */
.tcon .tcs-scanner .tsc-win{
  position: absolute; z-index: 2;
  display: flex; flex-direction: column;
  border: 1px solid rgba(120,150,190,.26);
  border-radius: 11px;
  background: linear-gradient(180deg, #0d131d, #090e17);
  box-shadow: 0 18px 44px rgba(2,6,14,.5), inset 0 1px 0 rgba(255,255,255,.04);
  overflow: hidden;
}
.tcon .tcs-scanner .tsc-bar{
  display: flex; align-items: center; gap: 8px; flex: none;
  height: 28px; padding: 0 10px;
  background: linear-gradient(#1a2130, #151b27);
  border-bottom: 1px solid rgba(120,150,190,.18);
}
.tcon .tcs-scanner .tsc-lights{ display: flex; gap: 5px; flex: none }
.tcon .tcs-scanner .tsc-lights i{ width: 8px; height: 8px; border-radius: 50%; background: #c94b55 }
.tcon .tcs-scanner .tsc-lights i:nth-child(2){ background: #a8873f }
.tcon .tcs-scanner .tsc-lights i:nth-child(3){ background: #3f8a5f }
.tcon .tcs-scanner .tsc-bar b{
  min-width: 0; flex: 1;
  font-size: 10px; font-weight: 700; letter-spacing: .02em; color: #c7d0dd;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.tcon .tcs-scanner .tsc-bar b em{ font-style: normal; color: #ff6b82 }
.tcon .tcs-scanner .tsc-bar-r{
  flex: none; font: 800 8.5px/1 var(--tc-mono); font-style: normal; letter-spacing: .1em; color: #6fa6d6;
}
.tcon .tcs-scanner .tsc-url{
  display: flex; align-items: center; flex: none;
  height: 26px; padding: 0 8px;
  background: #10151e; border-bottom: 1px solid rgba(120,150,190,.14);
}
.tcon .tcs-scanner .tsc-url span{
  flex: 1; min-width: 0; height: 18px; display: flex; align-items: center; padding: 0 8px;
  border-radius: 5px; background: #0a0e15; border: 1px solid rgba(120,150,190,.16);
  font: 600 8.5px/1 var(--tc-mono); color: #9fb2c6;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.tcon .tcs-scanner .tsc-sbar{
  margin-top: auto; flex: none;
  display: flex; align-items: center; gap: 12px;
  height: 24px; padding: 0 10px;
  border-top: 1px solid rgba(120,150,190,.14); background: #121720;
  font: 600 8.5px/1 var(--tc-mono); color: #7c8798; white-space: nowrap; overflow: hidden;
}
.tcon .tcs-scanner .tsc-sbar b{ color: #dbe9f7; font-weight: 700 }
.tcon .tcs-scanner .tsc-sbar b.is-in{ animation: tconVal .22s ease both }

/* ── CRAWLING: 그래프 라벨 ── */
.tcon .tcs-scanner .tsc-lbl{
  position: absolute; display: block;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  opacity: .42; transition: opacity .35s, color .35s;
}
.tcon .tcs-scanner .tsc-lbl b{ display: block; font-weight: 700; font-size: 10px; line-height: 1.25; font-family: inherit; color: #b9cee3; letter-spacing: -.01em; overflow: hidden; text-overflow: ellipsis }
.tcon .tcs-scanner .tsc-lbl i{ display: block; font: 700 8.5px/1.2 var(--tc-mono); font-style: normal; color: #5f7d9d; letter-spacing: .04em; overflow: hidden; text-overflow: ellipsis }
.tcon .tcs-scanner .tsc-lbl-ch{ text-align: right }
.tcon .tcs-scanner .tsc-lbl-ch i::before{ content: "접촉 앱 " ; color: #4f6a88 }
.tcon .tcs-scanner .tsc-lbl-dm b{ font: 700 9.5px/1.25 var(--tc-mono); letter-spacing: 0 }
.tcon .tcs-scanner .tsc-lbl.is-on{ opacity: 1 }
.tcon .tcs-scanner .tsc-lbl.is-on b{ color: #eaf5ff }
.tcon .tcs-scanner .tsc-lbl-ch.is-on b{ color: #8fdcff }
.tcon .tcs-scanner .tsc-lbl.is-on i{ color: #7fa3c6 }
.tcon .tcs-scanner .tsc-lbl.is-hit b{ color: #ff8296 }
.tcon .tcs-scanner .tsc-lbl.is-hit i{ color: #c46f7f }
.tcon .tcs-scanner .tsc-hub{
  position: absolute; display: grid; gap: 2px; white-space: nowrap;
  opacity: .5; transition: opacity .35s;
}
.tcon .tcs-scanner .tsc-hub b{ font: 900 8.5px/1 var(--tc-mono); letter-spacing: .12em; color: #8fdcff }
.tcon .tcs-scanner .tsc-hub i{ font: 700 8px/1 var(--tc-mono); font-style: normal; letter-spacing: .12em; color: #5f7d9d }
.tcon .tcs-scanner .tsc-hub.is-on{ opacity: 1 }
.tcon .tcs-scanner .tsc-badge{
  position: absolute; display: inline-flex; align-items: center; gap: 6px;
  padding: 5px 9px; border-radius: 8px;
  border: 1px solid rgba(67,200,255,.28); background: rgba(8,18,32,.78);
  white-space: nowrap; transition: border-color .35s, background .35s;
}
.tcon .tcs-scanner .tsc-badge i{ width: 6px; height: 6px; border-radius: 50%; background: #43c8ff; box-shadow: 0 0 8px rgba(67,200,255,.8) }
.tcon .tcs-scanner .tsc-badge b{ font: 800 9px/1 var(--tc-mono); letter-spacing: .04em; color: #b6dcf5 }
.tcon .tcs-scanner .tsc-badge b.is-in{ animation: tconVal .22s ease both }
.tcon .tcs-scanner .tsc-badge.is-hit{ border-color: rgba(255,53,82,.45); background: rgba(34,10,18,.8) }
.tcon .tcs-scanner .tsc-badge.is-hit i{ background: #ff3552; box-shadow: 0 0 8px rgba(255,53,82,.8) }
.tcon .tcs-scanner .tsc-badge.is-hit b{ color: #ff9cab }

/* ── CRAWLING: 스윕 창 셀 ── */
.tcon .tcs-scanner .tsc-cells{ flex: 1; min-height: 0; display: grid; grid-auto-rows: minmax(0,1fr); gap: 6px; padding: 8px }
.tcon .tcs-scanner .tsc-cell{
  position: relative; margin: 0; min-height: 0;
  display: flex; gap: 8px; padding: 6px;
  border: 1px solid rgba(120,150,190,.16); border-radius: 8px;
  background: rgba(14,20,31,.9);
  opacity: 0; transform: translateX(10px);
  transition: opacity .32s, transform .32s, border-color .32s, box-shadow .32s;
}
.tcon .tcs-scanner .tsc-cell.is-in{ opacity: 1; transform: none; border-color: rgba(67,200,255,.28) }
.tcon .tcs-scanner .tsc-cell.is-hit{ border-color: rgba(255,53,82,.5); box-shadow: 0 0 18px rgba(255,53,82,.18) }
.tcon .tcs-scanner .tsc-thumb{
  flex: none; width: 54px; align-self: stretch; min-height: 48px; max-height: 84px;
  border-radius: 5px; overflow: hidden; background: #1a2230; position: relative;
}
.tcon .tcs-scanner .tsc-thumb img{ display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 12% }
.tcon .tcs-scanner .tsc-thumb::after{
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(8,12,20,0) 55%, rgba(8,12,20,.55));
}
.tcon .tcs-scanner .tsc-cell figcaption{ flex: 1; min-width: 0; display: grid; align-content: start; gap: 3px }
.tcon .tcs-scanner .tsc-ch{
  justify-self: start; padding: 2px 6px; border-radius: 4px;
  background: rgba(120,170,225,.14); color: #9fc4e6;
  font-weight: 700; font-size: 8.5px; line-height: 1.2; font-family: inherit; font-style: normal; white-space: nowrap; max-width: 100%; overflow: hidden; text-overflow: ellipsis;
}
.tcon .tcs-scanner .tsc-app{ font-weight: 800; font-size: 11px; line-height: 1.2; font-family: inherit; color: #eaf5ff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis }
.tcon .tcs-scanner .tsc-app em{ font: 700 8.5px/1 var(--tc-mono); font-style: normal; color: #7fa3c6; margin-left: 4px }
.tcon .tcs-scanner .tsc-dom{ font: 600 8.5px/1.2 var(--tc-mono); color: #8fb0d2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis }
.tcon .tcs-scanner .tsc-tag{
  display: none; position: absolute; right: 6px; top: 6px;
  padding: 2px 5px; border-radius: 4px;
  background: rgba(255,45,70,.9); color: #fff; font-weight: 800; font-size: 8px; line-height: 1; font-family: inherit; font-style: normal; letter-spacing: .04em;
}
.tcon .tcs-scanner .tsc-cell.is-hit .tsc-tag{ display: block }
.tcon .tcs-scanner .tsc-crawl.is-vert .tsc-url{ display: none }
.tcon .tcs-scanner .tsc-crawl.is-vert .tsc-cells{ grid-auto-flow: column; grid-auto-columns: minmax(0,1fr); grid-auto-rows: auto; padding: 6px }
.tcon .tcs-scanner .tsc-crawl.is-vert .tsc-thumb{ width: 40px; max-height: 64px }
.tcon .tcs-scanner .tsc-crawl.is-vert .tsc-app{ font-size: 10px }
.tcon .tcs-scanner .tsc-crawl.is-vert .tsc-app em{ display: none }
.tcon .tcs-scanner .tsc-crawl.is-vert .tsc-tag{ position: static; justify-self: start; margin-top: 1px }
.tcon .tcs-scanner .tsc-crawl.is-vert .tsc-lbl b{ font-size: 9px }
.tcon .tcs-scanner .tsc-crawl.is-vert .tsc-lbl i{ font-size: 8px }

/* ── KEYWORD: 별칭 추적 레일 ── */
.tcon .tcs-scanner .tsc-kw-head{
  position: absolute; display: flex; align-items: center; gap: 10px; white-space: nowrap; overflow: hidden;
}
.tcon .tcs-scanner .tsc-kw-head b{ flex: none; font: 900 8.5px/1 var(--tc-mono); letter-spacing: .16em; color: #ff5f78 }
.tcon .tcs-scanner .tsc-kw-head span{ min-width: 0; font-weight: 700; font-size: 10px; line-height: 1; font-family: inherit; color: var(--tc-mut); overflow: hidden; text-overflow: ellipsis }
.tcon .tcs-scanner .tsc-kw-head span i{ font-style: normal; color: #eaf5ff; font-family: var(--tc-mono); font-weight: 800 }
.tcon .tcs-scanner .tsc-rail{
  position: absolute; display: flex; flex-direction: column;
  border: 1px solid var(--tc-line-2); border-radius: 10px;
  background: linear-gradient(180deg, rgba(10,17,28,.86), rgba(7,12,20,.8));
  overflow: hidden;
}
.tcon .tcs-scanner .tsc-rail-h{
  display: flex; align-items: center; gap: 8px; flex: none;
  height: 20px; padding: 0 9px; white-space: nowrap; overflow: hidden;
  border-bottom: 1px solid var(--tc-line-2);
}
.tcon .tcs-scanner .tsc-rail-h b{ font: 800 9px/1 var(--tc-mono); color: #ff8a9c; letter-spacing: .04em }
.tcon .tcs-scanner .tsc-rail-h i{
  font: 800 8px/1 var(--tc-mono); font-style: normal; letter-spacing: .1em; color: #8fb3d8;
  padding: 2px 5px; border-radius: 4px; border: 1px solid rgba(120,170,225,.22);
}
.tcon .tcs-scanner .tsc-rail-h span{ font-weight: 700; font-size: 9px; line-height: 1; font-family: inherit; color: var(--tc-mut); overflow: hidden; text-overflow: ellipsis; min-width: 0 }
.tcon .tcs-scanner .tsc-rail-h em{ margin-left: auto; font: 800 8.5px/1 var(--tc-mono); font-style: normal; letter-spacing: .06em; color: #43c8ff }
.tcon .tcs-scanner .tsc-rail-h em.is-in{ animation: tconVal .22s ease both }
.tcon .tcs-scanner .tsc-strip-w{ position: relative; flex: 1; min-height: 0; margin: 0 8px; overflow: hidden }
.tcon .tcs-scanner .tsc-strip{
  position: absolute; left: 0; top: 0; height: 100%;
  display: flex; align-items: center; gap: 6px; white-space: nowrap; will-change: transform;
}
.tcon .tcs-scanner .tsc-al{
  flex: none; padding: 5px 8px; border-radius: 6px;
  border: 1px solid rgba(120,170,225,.16); background: rgba(12,20,33,.7);
  font-weight: 700; font-size: 10px; line-height: 1; font-family: inherit; color: #6f89a6; letter-spacing: -.01em;
  transition: color .3s, border-color .3s, background .3s, box-shadow .3s;
}
.tcon .tcs-scanner .tsc-al.is-cur{ border-color: rgba(67,200,255,.5); color: #eaf5ff; box-shadow: 0 0 12px rgba(67,200,255,.25) }
.tcon .tcs-scanner .tsc-al.is-seen{ color: #a7c2dc; border-color: rgba(120,170,225,.3) }
.tcon .tcs-scanner .tsc-al.is-hit{ color: #ffb3bf; border-color: rgba(255,53,82,.55); background: rgba(52,12,22,.8); box-shadow: 0 0 14px rgba(255,53,82,.22) }
.tcon .tcs-scanner .tsc-pat{
  position: absolute; display: flex; align-items: center; gap: 5px; white-space: nowrap; overflow: hidden;
}
.tcon .tcs-scanner .tsc-pat b{ flex: none; font: 800 8.5px/1 var(--tc-mono); letter-spacing: .1em; color: #5f7d9d; margin-right: 3px }
.tcon .tcs-scanner .tsc-pat i{
  flex: none; padding: 3px 7px; border-radius: 99px;
  border: 1px solid rgba(120,170,225,.18); background: rgba(12,20,33,.7);
  font-weight: 700; font-size: 9px; line-height: 1; font-family: inherit; font-style: normal; color: #6f89a6;
  transition: color .3s, border-color .3s, background .3s;
}
.tcon .tcs-scanner .tsc-pat i.is-on{ color: #ffd18a; border-color: rgba(255,190,109,.45); background: rgba(60,38,12,.6) }
.tcon .tcs-scanner .tsc-rows{ flex: 1; min-height: 0; display: grid; grid-auto-rows: minmax(0,1fr); gap: 4px; padding: 6px 8px; align-content: start }
.tcon .tcs-scanner .tsc-row{
  display: flex; align-items: center; gap: 8px; min-height: 24px; max-height: 44px; padding: 0 9px;
  border: 1px solid rgba(120,150,190,.14); border-radius: 6px; background: rgba(14,20,31,.85);
  white-space: nowrap; overflow: hidden;
  opacity: 0; transform: translateY(-6px);
  transition: opacity .3s, transform .3s, border-color .3s;
}
.tcon .tcs-scanner .tsc-row.is-in{ opacity: 1; transform: none }
.tcon .tcs-scanner .tsc-row.is-new{ border-color: rgba(255,53,82,.5); box-shadow: 0 0 14px rgba(255,53,82,.16) }
.tcon .tcs-scanner .tsc-row b{ min-width: 0; flex: 1; font-weight: 800; font-size: 10px; line-height: 1; font-family: inherit; color: #eaf5ff; overflow: hidden; text-overflow: ellipsis }
.tcon .tcs-scanner .tsc-row.is-new b{ color: #ff9cab }
.tcon .tcs-scanner .tsc-row i{ flex: none; font: 700 8.5px/1 var(--tc-mono); font-style: normal; color: #7fa3c6 }
.tcon .tcs-scanner .tsc-row span{ flex: none; font: 800 8.5px/1 var(--tc-mono); color: #43c8ff; letter-spacing: .02em }
.tcon .tcs-scanner .tsc-kw.is-vert .tsc-rail-h span{ display: none }
.tcon .tcs-scanner .tsc-kw.is-vert .tsc-al{ padding: 4px 7px; font-size: 9px }
.tcon .tcs-scanner .tsc-kw.is-vert .tsc-kw-head span{ font-size: 9px }
.tcon .tcs-scanner .tsc-kw.is-vert .tsc-row i{ display: none }

/* ── DNA: 프레임 · 8블록 · 해시 ── */
.tcon .tcs-scanner .tsc-dhead{ position: absolute; left: 0; right: 0; top: 8px; display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; padding: 0 8px }
.tcon .tcs-scanner .tsc-chip{
  display: inline-flex; align-items: center; gap: 5px; padding: 4px 8px; border-radius: 99px;
  border: 1px solid rgba(120,170,225,.2); background: rgba(10,17,28,.8);
  font: 800 8.5px/1 var(--tc-mono); letter-spacing: .08em; color: #9fb2c6; white-space: nowrap;
}
.tcon .tcs-scanner .tsc-chip i{ width: 5px; height: 5px; border-radius: 50%; background: #9fb2c6 }
.tcon .tcs-scanner .tsc-chip.is-c{ color: #6fe6d2; border-color: rgba(66,235,209,.3) }
.tcon .tcs-scanner .tsc-chip.is-c i{ background: #42ebd1; box-shadow: 0 0 6px rgba(66,235,209,.8) }
.tcon .tcs-scanner .tsc-chip.is-a{ color: #ffd18a; border-color: rgba(255,190,109,.34) }
.tcon .tcs-scanner .tsc-chip.is-a i{ background: #ffb840; box-shadow: 0 0 6px rgba(255,184,64,.8) }
.tcon .tcs-scanner .tsc-dcol{ position: absolute; margin: 0; display: grid; gap: 7px; z-index: 2 }
.tcon .tcs-scanner .tsc-dfr{
  position: relative; border-radius: 9px; overflow: hidden;
  border: 1px solid rgba(66,235,209,.42); background: #08111c;
  box-shadow: 0 0 26px rgba(30,150,140,.16), inset 0 0 40px rgba(6,12,22,.4);
}
.tcon .tcs-scanner .tsc-dcol.is-b .tsc-dfr{ border-color: rgba(255,184,64,.42); box-shadow: 0 0 26px rgba(190,120,30,.16), inset 0 0 40px rgba(20,12,6,.4) }
.tcon .tcs-scanner .tsc-dfr img{
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 34%;
  filter: saturate(.72) contrast(1.05) brightness(.66);
  transition: filter .5s;
}
.tcon .tcs-scanner .tsc-dcol.is-b .tsc-dfr img{
  transform: scale(1.06) rotate(-1.6deg);
  object-position: 46% 38%;
  filter: saturate(.62) contrast(1.18) brightness(.6) hue-rotate(14deg);
}
.tcon .tcs-scanner .tsc-dfr.is-live img{ filter: saturate(.8) contrast(1.05) brightness(.78) }
.tcon .tcs-scanner .tsc-dcol.is-b .tsc-dfr.is-live img{ filter: saturate(.66) contrast(1.16) brightness(.7) hue-rotate(14deg) }
.tcon .tcs-scanner .tsc-dgrid{ position: absolute; inset: 0; display: grid; grid-template-columns: repeat(4, 1fr); grid-template-rows: repeat(2, 1fr) }
.tcon .tcs-scanner .tsc-dgrid i{
  border: 1px solid rgba(120,170,225,.14); box-sizing: border-box;
  transition: border-color .3s, background .3s, box-shadow .3s;
}
.tcon .tcs-scanner .tsc-dgrid i.is-on{ border-color: rgba(66,235,209,.85); background: rgba(66,235,209,.06); box-shadow: inset 0 0 12px rgba(66,235,209,.16) }
.tcon .tcs-scanner .tsc-dgrid i.is-part.is-on{ border-color: rgba(255,184,64,.9); background: rgba(255,184,64,.09); box-shadow: inset 0 0 12px rgba(255,184,64,.2) }
.tcon .tcs-scanner .tsc-dtag{
  position: absolute; left: 6px; top: 6px; padding: 3px 6px; border-radius: 4px;
  border: 1px solid rgba(66,235,209,.5); background: rgba(6,14,20,.82);
  font: 800 8px/1 var(--tc-mono); font-style: normal; letter-spacing: .14em; color: #6fe6d2;
}
.tcon .tcs-scanner .tsc-dcol.is-b .tsc-dtag{ border-color: rgba(255,184,64,.55); color: #ffd18a }
.tcon .tcs-scanner .tsc-dband{
  position: absolute; left: 0; right: 0; top: 0; height: 2px; opacity: 0;
  background: linear-gradient(90deg, transparent, rgba(120,255,235,.9), transparent);
  box-shadow: 0 0 14px rgba(66,235,209,.6); will-change: transform; transition: opacity .3s;
}
.tcon .tcs-scanner .tsc-dcol.is-b .tsc-dband{ background: linear-gradient(90deg, transparent, rgba(255,210,120,.9), transparent); box-shadow: 0 0 14px rgba(255,184,64,.55) }
.tcon .tcs-scanner .tsc-dhash{ display: grid; grid-template-columns: repeat(8, minmax(0,1fr)); gap: 4px }
.tcon .tcs-scanner .tsc-dhash i{
  display: block; text-align: center; padding: 4px 0; border-radius: 5px;
  border: 1px solid rgba(120,170,225,.16); background: rgba(10,17,28,.8);
  font: 800 9px/1 var(--tc-mono); font-style: normal; color: #55738f;
  transition: color .3s, border-color .3s, background .3s;
}
.tcon .tcs-scanner .tsc-dhash i.is-on{ color: #6fe6d2; border-color: rgba(66,235,209,.5); background: rgba(66,235,209,.08) }
.tcon .tcs-scanner .tsc-dhash i.is-part.is-on{ color: #ffd18a; border-color: rgba(255,184,64,.55); background: rgba(255,184,64,.1) }
.tcon .tcs-scanner .tsc-dcol figcaption{ display: grid; gap: 3px; white-space: nowrap; overflow: hidden }
.tcon .tcs-scanner .tsc-dcol figcaption b{ font-weight: 800; font-size: 11px; line-height: 1.2; font-family: inherit; color: #eaf5ff; overflow: hidden; text-overflow: ellipsis }
.tcon .tcs-scanner .tsc-dcol figcaption span{ font: 600 8.5px/1.3 var(--tc-mono); color: #7fa3c6; overflow: hidden; text-overflow: ellipsis }
.tcon .tcs-scanner .tsc-dmid{
  position: absolute; z-index: 3; display: flex; align-items: baseline; justify-content: center; gap: 2px; white-space: nowrap;
  transition: color .3s;
}
.tcon .tcs-scanner .tsc-dmid b{ font: 900 20px/1 var(--tc-mono); letter-spacing: -.03em; color: #eaf5ff }
.tcon .tcs-scanner .tsc-dmid b.is-in{ animation: tconVal .22s ease both }
.tcon .tcs-scanner .tsc-dmid i{ font: 800 11px/1 var(--tc-mono); font-style: normal; color: #7fa3c6 }
.tcon .tcs-scanner .tsc-dmid span{ margin-left: 4px; font: 800 8.5px/1 var(--tc-mono); letter-spacing: .1em; color: #7fa3c6 }
.tcon .tcs-scanner .tsc-dmid.is-on b{ color: #5df2a3 }
.tcon .tcs-scanner .tsc-dmid.is-on span{ color: #5df2a3 }
.tcon .tcs-scanner .tsc-dres{
  position: absolute; z-index: 3; display: inline-flex; align-items: center; gap: 7px;
  padding: 6px 12px; border-radius: 99px; white-space: nowrap;
  border: 1px solid rgba(255,53,82,.5); background: rgba(40,10,18,.86);
  font-weight: 800; font-size: 9.5px; line-height: 1; font-family: inherit; color: #ffb3bf; letter-spacing: .02em;
  opacity: 0; transition: opacity .35s;
}
.tcon .tcs-scanner .tsc-dres i{ width: 6px; height: 6px; border-radius: 50%; background: #ff3552; box-shadow: 0 0 8px rgba(255,53,82,.9) }
.tcon .tcs-scanner .tsc-dres.is-on{ opacity: 1 }
.tcon .tcs-scanner .tsc-dsvg{ position: absolute; inset: 0; width: 100%; height: 100%; z-index: 4; overflow: visible }
.tcon .tcs-scanner .tsc-dsvg line{ stroke: rgba(214,238,255,.6); stroke-width: 1; opacity: 0; transition: opacity .3s }
.tcon .tcs-scanner .tsc-dsvg line.is-on{ opacity: .5 }
.tcon .tcs-scanner .tsc-dsvg circle{ fill: none; stroke: rgba(126,172,222,.4); stroke-width: 1.3; opacity: .35; transition: stroke .3s, opacity .3s }
.tcon .tcs-scanner .tsc-dsvg circle.is-a.is-on{ stroke: #6fe6d2; opacity: 1; filter: drop-shadow(0 0 4px rgba(66,235,209,.9)) }
.tcon .tcs-scanner .tsc-dsvg circle.is-b.is-on{ stroke: #ffd18a; opacity: 1; filter: drop-shadow(0 0 4px rgba(255,184,64,.9)) }
.tcon .tcs-scanner .tsc-dna.is-vert .tsc-dhash{ gap: 2px }
.tcon .tcs-scanner .tsc-dna.is-vert .tsc-dhash i{ font-size: 8px; padding: 3px 0; border-radius: 4px }
.tcon .tcs-scanner .tsc-dna.is-vert .tsc-dcol{ gap: 5px }
.tcon .tcs-scanner .tsc-dna.is-vert .tsc-dcol figcaption b{ font-size: 10px }
.tcon .tcs-scanner .tsc-dna.is-vert .tsc-dcol figcaption span{ font-size: 8px }
.tcon .tcs-scanner .tsc-dna.is-vert .tsc-dmid b{ font-size: 22px }
.tcon .tcs-scanner .tsc-dna.is-vert .tsc-dhead{ gap: 4px }
.tcon .tcs-scanner .tsc-dna.is-vert .tsc-chip{ font-size: 8px; padding: 3px 7px }

/* R16 후속: 좁은 화면에서 감시 패턴 칩이 잘리지 않게 줄바꿈시킨다(가로 잘림 대신 두 줄) */
@media (max-width: 700px){
  .tcon .tcs-scanner .tsc-pat{ flex-wrap: wrap; row-gap: 4px; overflow: visible; }
  .tcon .tcs-scanner .tsc-pat i{ flex: none; }
}

/* ==== /assets/css/expogo-live.css?v=20260903x ==== */
/* ============================================================
   EXPOGO 실행화면 — 독립 자동 재생 섹션 (#expogo-live)
   접두사 .exl / .exl-*  ·  스크롤이 아니라 자기 타이머로 재생된다.
     좌  감염 앱 프로파일 (assets/data/malapp-index.json 실측)
     중  단말 목업 + 실제 수집 실행화면 5단계 자동 전환
     우  전송 경로 · C2 웹 관리 패널 · 패킷 캡처
   ============================================================ */
#expogo-live{
  --x-red:#ff3f5a; --x-cyan:#42ebd1; --x-green:#39d98a; --x-amber:#ffb840; --x-blue:#5ab0ff;
  --x-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --x-font:"Pretendard","Noto Sans KR",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  /* 밝은 SaaS 어드민 팔레트 (C2 웹 관리 패널) */
  --w-bg:#f6f8fb; --w-line:#e5e9f0; --w-line2:#eef1f6;
  --w-txt:#16202e; --w-sub:#5a6a7e; --w-mute:#8a95a5;
  --w-dan:#e02040;
}
body.service-page #expogo-live{
  border-top:1px solid var(--svl-line);
  background:
    radial-gradient(760px 460px at 10% 6%,rgba(210,11,37,.05),transparent 68%),
    linear-gradient(180deg,#fbfdfe 0%,var(--svl-bg) 100%);
}
body.service-page #expogo-live .draft-section-head h2{ color:var(--svl-text); }
body.service-page #expogo-live .draft-section-head p{ color:var(--svl-muted); }

/* ── 스테이지(다크 스크린) ── */
.exl{ position:relative; }
.exl-stage{
  position:relative; display:grid; gap:14px; padding:16px;
  grid-template-columns:296px 300px minmax(0,1fr);
  border-radius:22px; overflow:hidden; max-width:100%;
  background:
    radial-gradient(620px 380px at 12% 4%,rgba(255,63,90,.10),transparent 66%),
    radial-gradient(620px 420px at 92% 92%,rgba(90,176,255,.10),transparent 68%),
    linear-gradient(180deg,#0d1219,#080b11);
  border:1px solid rgba(120,150,190,.22);
  box-shadow:0 40px 100px rgba(10,24,40,.28),inset 0 1px 0 rgba(255,255,255,.05);
}

/* ════════ 좌 · 감염 앱 프로파일 ════════ */
.exl-lcol{ min-width:0; display:flex; flex-direction:column; gap:12px; }
.exl-card{
  position:relative; flex:none; min-width:0; padding:13px 14px 14px; border-radius:14px;
  display:flex; flex-direction:column;
  background:linear-gradient(180deg,rgba(15,22,33,.94),rgba(10,14,21,.9));
  border:1px solid rgba(120,150,190,.2);
  box-shadow:0 22px 50px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.05);
}
.exl-ch{ display:flex; align-items:baseline; gap:8px; margin-bottom:10px; }
.exl-ch b{ font:800 12px/1 var(--x-font); letter-spacing:-.01em; color:#e7eefa; }
.exl-ch span{ margin-left:auto; font:700 9.5px/1 var(--x-mono); letter-spacing:.06em; color:#6c7d92; }
.exl-appid{ display:flex; align-items:center; gap:10px; padding-bottom:11px; margin-bottom:10px;
  border-bottom:1px solid rgba(120,150,190,.16); }
.exl-appico{ width:44px; height:44px; flex:none; border-radius:12px; object-fit:cover;
  border:1px solid rgba(120,150,190,.28); background:#0a0e15; }
.exl-appid div{ min-width:0; }
.exl-appid b{ display:flex; align-items:center; gap:8px; font:850 16px/1.1 var(--x-font);
  letter-spacing:-.03em; color:#fff; }
.exl-appid small{ display:block; margin-top:5px; font:650 11px/1.2 var(--x-mono); color:#8ea0b6;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.exl-fam{ flex:none; font-style:normal; padding:4px 8px; border-radius:6px;
  font:800 9.5px/1 var(--x-mono); letter-spacing:.05em; color:#ffc4cd; white-space:nowrap;
  background:rgba(255,63,90,.12); border:1px solid rgba(255,63,90,.4); }
.exl-kv{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px; }
.exl-kv li{ display:flex; align-items:baseline; gap:9px; }
.exl-kv li span{ flex:none; width:64px; white-space:nowrap; font:700 10.5px/1.45 var(--x-mono); color:#69798e; }
.exl-kv li b{ min-width:0; font:700 12px/1.45 var(--x-font); color:#d7e2f0; letter-spacing:-.01em;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.exl-kv li b em{ font-style:normal; color:#ff97a8; }
.exl-alias{ margin-top:12px; padding-top:11px; border-top:1px solid rgba(120,150,190,.16); }

/* 단말에서 일어나는 순서 — 재생 중인 단계와 함께 움직인다 */
.exl-flowcard{ flex:1 1 auto; min-height:0; }
.exl-flow{ list-style:none; margin:0; padding:0; flex:1; display:flex; flex-direction:column;
  justify-content:space-between; gap:6px; }
.exl-flow li{ display:flex; align-items:flex-start; gap:9px; padding:7px 9px; border-radius:8px;
  background:rgba(10,15,24,.55); border:1px solid rgba(120,150,190,.14);
  transition:background .35s,border-color .35s; }
.exl-flow li b{ flex:none; font:800 9.5px/1.5 var(--x-mono); letter-spacing:.04em; color:#69798e;
  transition:color .35s; }
.exl-flow li span{ min-width:0; font:700 11.5px/1.45 var(--x-font); color:#9fb0c4; letter-spacing:-.01em;
  transition:color .35s; }
.exl-flow li.done{ border-color:rgba(255,63,90,.2); }
.exl-flow li.done b{ color:#96707c; }
.exl-flow li.done span{ color:#7f8fa3; }
.exl-flow li.on{ background:rgba(255,63,90,.1); border-color:rgba(255,63,90,.4); }
.exl-flow li.on b{ color:var(--x-red); }
.exl-flow li.on span{ color:#fff; }
.exl-aliash{ display:block; font:800 9.5px/1.4 var(--x-mono); letter-spacing:.08em; color:#69798e; margin-bottom:8px; }
.exl-chain{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.exl-chain i{ display:inline-flex; flex-direction:column; gap:2px; padding:5px 8px 6px; border-radius:7px;
  font-style:normal; font:800 11px/1 var(--x-font); color:#dbe6f4;
  background:rgba(90,176,255,.09); border:1px solid rgba(90,176,255,.3); }
.exl-chain i em{ font-style:normal; font:650 9px/1 var(--x-mono); color:#7d90a6; }
.exl-chain u{ text-decoration:none; color:#5a6b80; font-size:10px; }

/* ════════ 중 · 단말 목업 + 실행화면 자동 전환 ════════ */
.exl-phone{ min-width:0; display:flex; flex-direction:column; }
.exl-dev{ position:relative; width:100%; aspect-ratio:305/626; border-radius:30px; padding:9px 7px;
  background:linear-gradient(160deg,#252c3a,#11151d 42%,#1c2230);
  box-shadow:0 40px 90px rgba(0,0,0,.55),0 0 0 1px rgba(150,180,220,.22),
    0 0 60px rgba(90,176,255,.12),inset 0 1px 0 rgba(255,255,255,.14); }
.exl-scr{ position:relative; width:100%; height:100%; border-radius:23px; overflow:hidden;
  background:#05070b; box-shadow:inset 0 0 0 1px rgba(0,0,0,.6); }
.exl-shot{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center;
  opacity:0; will-change:opacity; }
/* 1단계 캡처 — 실제 유포 QR 은 판독 불가하게 덮는다.
   .exl-shotfit 이 object-fit:cover 와 같은 기하(세로 꽉·가로 넘침 중앙)를 재현해
   마스크 좌표(%)가 원본 픽셀과 어긋나지 않게 한다. */
.exl-shotw{ overflow:hidden; }
.exl-shotfit{ position:absolute; left:50%; top:0; height:100%; aspect-ratio:360/466;
  transform:translateX(-50%); display:block; max-width:none; }
.exl-shotfit img{ position:absolute; inset:0; width:100%; height:100%; object-fit:fill; }
.exl-qrmask{ position:absolute; left:21%; top:44%; width:58%; height:46%; border-radius:5px;
  background:repeating-linear-gradient(45deg,#e3e7ee 0 5px,#cbd2dc 5px 10px);
  box-shadow:inset 0 0 0 1px rgba(22,32,46,.14); }
.exl-glare{ position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(122deg,rgba(255,255,255,.13) 0%,rgba(255,255,255,0) 32%,rgba(255,255,255,0) 72%,rgba(120,180,255,.09) 100%); }
.exl-scan{ position:absolute; left:0; right:0; top:0; height:26%; pointer-events:none; opacity:.45;
  background:linear-gradient(180deg,rgba(66,235,209,0),rgba(66,235,209,.16),rgba(66,235,209,0)); }

/* 단계 인디케이터 — 클릭으로 해당 실행화면으로 이동 */
.exl-steps{ flex:none; display:flex; gap:5px; margin-top:10px; }
.exl-steps button{ flex:1; height:16px; padding:0; border:0; background:none; cursor:pointer;
  display:flex; align-items:center; }
.exl-steps button::before{ content:""; display:block; width:100%; height:3px; border-radius:2px;
  background:rgba(120,150,190,.24); transition:background .25s,box-shadow .25s; }
.exl-steps button.done::before{ background:rgba(255,63,90,.42); }
.exl-steps button.on::before{ background:var(--x-red); box-shadow:0 0 9px rgba(255,63,90,.7); }
.exl-steps button:hover::before{ background:rgba(255,63,90,.6); }
.exl-steps button:focus-visible{ outline:2px solid var(--x-cyan); outline-offset:2px; border-radius:3px; }

.exl-cap{ flex:none; margin-top:6px; padding:9px 12px 10px; border-radius:11px; min-height:60px;
  background:rgba(8,13,22,.84); border:1px solid rgba(120,150,190,.2); }
.exl-cap b{ display:block; font:800 13px/1.3 var(--x-font); letter-spacing:-.02em; color:#fff; }
.exl-cap span{ display:block; margin-top:5px; font:650 10.5px/1.45 var(--x-mono); color:#8ea0b6; }

/* ════════ 우 · 전송 경로 + C2 패널 + 패킷 캡처 ════════ */
.exl-rcol{ min-width:0; display:flex; flex-direction:column; gap:11px; }

/* 전송 경로 카드 */
.exl-path{ flex:none; padding:12px 13px 13px; border-radius:14px;
  background:linear-gradient(180deg,rgba(24,13,19,.94),rgba(10,14,21,.9));
  border:1px solid rgba(255,63,90,.26);
  box-shadow:0 22px 50px rgba(0,0,0,.42),0 0 40px rgba(255,63,90,.08),inset 0 1px 0 rgba(255,255,255,.05); }
.exl-ph{ display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; }
.exl-ph b{ font:800 12px/1 var(--x-font); color:#fff; letter-spacing:-.01em; }
.exl-ph em{ font-style:normal; font:700 10px/1 var(--x-mono); color:#ff97a8; letter-spacing:.06em; }
.exl-ph > span{ margin-left:auto; font:700 10px/1 var(--x-mono); color:#8ea0b6; }
.exl-ph > span b{ color:var(--x-amber); font-size:11.5px; }
.exl-hosts{ display:flex; flex-wrap:wrap; gap:5px; margin-top:10px; }
.exl-hosts i{ font-style:normal; padding:4px 8px; border-radius:6px; font:700 10px/1 var(--x-mono);
  color:#c9d7e8; background:rgba(120,150,190,.1); border:1px solid rgba(120,150,190,.24); }
.exl-hosts i.k{ color:#ffc4cd; background:rgba(255,63,90,.1); border-color:rgba(255,63,90,.34); }
.exl-nodes{ position:relative; list-style:none; margin:12px 0 0; padding:0 0 0 26px;
  display:flex; flex-direction:column; gap:7px; }
.exl-rail{ position:absolute; left:9px; top:9px; bottom:9px; width:2px; border-radius:2px;
  background:linear-gradient(180deg,rgba(255,63,90,.1),rgba(255,63,90,.42),rgba(255,63,90,.1)); }
.exl-pkt{ position:absolute; left:-3px; top:0; width:8px; height:8px; border-radius:50%; opacity:0;
  background:radial-gradient(circle at 35% 30%,#ffd3da,#ff3f5a 55%,#a3122a);
  box-shadow:0 0 8px 2px rgba(255,63,90,.8),0 0 18px 4px rgba(255,63,90,.32); }
.exl-node{ position:relative; display:flex; align-items:center; gap:9px; padding:8px 10px; border-radius:9px;
  background:rgba(10,15,24,.7); border:1px solid rgba(120,150,190,.18);
  transition:border-color .35s,background .35s; }
.exl-node::before{ content:""; position:absolute; left:-21px; top:50%; width:10px; height:10px; margin-top:-5px;
  border-radius:50%; background:#0b1018; border:2px solid rgba(120,150,190,.4);
  transition:border-color .35s,box-shadow .35s; }
.exl-node.on{ background:rgba(255,63,90,.09); border-color:rgba(255,63,90,.36); }
.exl-node.on::before{ border-color:var(--x-red); box-shadow:0 0 10px rgba(255,63,90,.75); }
.exl-nno{ flex:none; font:800 9.5px/1 var(--x-mono); letter-spacing:.05em; color:#69798e; }
.exl-nin{ min-width:0; flex:1; }
.exl-nin b{ display:block; font:750 12px/1.25 var(--x-font); color:#e7eefa; letter-spacing:-.01em;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.exl-nin > span{ display:block; margin-top:3px; font:650 10px/1.35 var(--x-mono); color:#8093a8;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.exl-nin > span u{ text-decoration:none; color:#ff97a8; }
.exl-nsub{ font-style:normal; color:#69798e; }
.exl-nby{ flex:none; font:700 10.5px/1 var(--x-mono); color:#c9d7e8; }
.exl-nby em{ font-style:normal; color:#69798e; font-size:9.5px; }

/* C2 웹 관리 패널 */
.exl-mini{ flex:1 1 0; min-height:170px; display:flex; flex-direction:column; border-radius:13px;
  overflow:hidden; background:#0f141d; border:1px solid rgba(160,190,225,.2);
  box-shadow:0 30px 70px rgba(0,0,0,.5),0 0 46px rgba(120,170,235,.12);
  transition:border-color .35s,box-shadow .35s; }
.exl-mini.on{ border-color:rgba(255,63,90,.4); box-shadow:0 30px 70px rgba(0,0,0,.5),0 0 46px rgba(255,63,90,.18); }
.exl-mbar{ flex:none; display:flex; align-items:center; gap:8px; height:27px; padding:0 10px;
  background:linear-gradient(#1d2331,#181d29); border-bottom:1px solid rgba(120,150,190,.18); }
.exl-mbar b{ font:750 10.5px/1 var(--x-font); color:#c7d0dd; letter-spacing:-.01em; white-space:nowrap; }
.exl-mbar > span:not(.exl-mnum){ margin-left:auto; min-width:0; font:650 9.5px/1 var(--x-mono); color:#7d8ea3;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.exl-mbar span u{ text-decoration:none; color:#ffb0bc; }
.exl-mnum{ flex:none; padding:2px 6px; border-radius:5px; font:800 9px/1.5 var(--x-mono);
  color:#ffc4cd; background:rgba(255,63,90,.14); border:1px solid rgba(255,63,90,.4); }
.exl-mapp{ flex:1; min-height:0; display:flex; flex-direction:column; background:var(--w-bg);
  color:var(--w-txt); font-family:var(--x-font); }
.exl-mtop{ flex:none; display:flex; align-items:center; gap:8px; height:29px; padding:0 11px;
  background:#fff; border-bottom:1px solid var(--w-line); }
.exl-mtop b{ font:850 12px/1 var(--x-font); letter-spacing:-.02em; }
.exl-mtop small{ font:700 10px/1 var(--x-mono); color:var(--w-mute); }
.exl-mtop i{ margin-left:auto; font-style:normal; display:inline-flex; align-items:center; gap:5px;
  height:19px; padding:0 8px; border-radius:999px; font:800 9px/1 var(--x-mono); letter-spacing:.06em;
  color:#0e7a3d; background:rgba(18,161,80,.1); border:1px solid rgba(18,161,80,.28); }
.exl-mtop i::before{ content:""; width:5px; height:5px; border-radius:50%; background:#12a150; }
.exl-mrows{ flex:1; min-height:0; overflow:hidden; padding:6px 8px; display:flex; flex-direction:column; gap:4px; }
.exl-mrow{ display:grid; grid-template-columns:54px minmax(0,1fr) 56px 44px; gap:8px; align-items:center;
  height:25px; flex:none; padding:0 9px; border-radius:6px; background:#fff;
  border:1px solid var(--w-line2); }
.exl-mrow span{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.exl-mrow .i{ font:650 9.5px/1 var(--x-mono); color:#94a0b0; }
.exl-mrow .n{ font:750 11px/1 var(--x-font); color:var(--w-txt); }
.exl-mrow .c{ font:700 10.5px/1 var(--x-mono); color:var(--w-sub); text-align:right; }
.exl-mrow .t{ font:650 9.5px/1 var(--x-mono); color:var(--w-mute); text-align:right; }
.exl-mrow.hot{ background:#fff5f7; border-color:rgba(224,32,64,.28); box-shadow:inset 2px 0 0 var(--w-dan); }
.exl-mrow.hot .n{ color:#c01030; font-weight:850; }
.exl-mrow.new{ animation:exlRowIn .34s ease; }
.exl-mfoot{ flex:none; display:flex; align-items:center; gap:8px; height:25px; padding:0 11px;
  background:#fff; border-top:1px solid var(--w-line); font:700 10px/1 var(--x-mono); color:var(--w-mute); }
.exl-mfoot b{ color:var(--w-dan); }

/* 패킷 캡처 */
.exl-wire{ flex:none; display:flex; flex-direction:column; min-width:0; height:236px;
  border-radius:13px; overflow:hidden; background:#0c1119; border:1px solid rgba(120,150,190,.24);
  box-shadow:0 30px 70px rgba(0,0,0,.5); }
.exl-wbar{ flex:none; display:flex; align-items:center; gap:10px; height:27px; padding:0 12px;
  background:linear-gradient(#1d2331,#181d29); border-bottom:1px solid rgba(120,150,190,.18); }
.exl-lights{ display:flex; gap:6px; flex:none; }
.exl-lights i{ width:9px; height:9px; border-radius:50%; }
.exl-lights .r{ background:#c94b55; } .exl-lights .y{ background:#a8873f; } .exl-lights .g{ background:#3f8a5f; }
.exl-wttl{ min-width:0; font:700 11px/1 var(--x-font); color:#c7d0dd; letter-spacing:.01em;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.exl-wttl em{ font-style:normal; color:var(--x-cyan); }
.exl-filter{ display:flex; align-items:center; gap:8px; height:25px; flex:none; padding:0 10px;
  background:#12171f; border-bottom:1px solid rgba(120,150,190,.14); }
.exl-fl{ flex:none; font:800 9px/1 var(--x-mono); letter-spacing:.1em; color:#66788d; }
.exl-fbar{ flex:1; min-width:0; display:flex; align-items:center; gap:8px; height:18px; padding:0 8px;
  border-radius:5px; background:#0a1710; border:1px solid rgba(57,217,138,.28); overflow:hidden; }
.exl-fbar b{ min-width:0; font:600 10px/1 var(--x-mono); color:#8ff0c4;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.exl-fapply{ margin-left:auto; flex:none; font:800 9px/1 var(--x-mono); letter-spacing:.06em; color:var(--x-green); }
.exl-cols,.exl-wrow{ display:grid; grid-template-columns:34px 54px minmax(0,1fr) minmax(0,1fr) 58px 40px minmax(0,1.7fr); }
.exl-cols{ height:19px; flex:none; align-items:center; padding:0 10px; background:#181d29;
  border-bottom:1px solid rgba(120,150,190,.2); }
.exl-cols span{ font:800 9px/1 var(--x-mono); letter-spacing:.03em; color:#8394a8; text-transform:uppercase;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.exl-wlist{ flex:1; min-height:0; overflow:hidden; display:flex; flex-direction:column; justify-content:flex-end;
  background:linear-gradient(180deg,#0c1119,#0a0e16);
  -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 16px);
  mask-image:linear-gradient(180deg,transparent 0,#000 16px); }
.exl-wrow{ align-items:center; height:21px; flex:none; padding:0 10px; font:600 10px/1 var(--x-mono);
  border-bottom:1px solid rgba(120,150,190,.05); animation:exlRowIn .32s ease; }
.exl-wrow span{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#aab7c8; padding-right:5px; }
.exl-wrow span:first-child{ color:#5f6f83; }
.exl-winfo{ color:#8ea0b6 !important; }
.exl-w-tcp{ background:rgba(120,150,190,.05); }
.exl-w-tcp span{ color:#93a3b7; }
.exl-w-tls{ background:rgba(168,111,255,.09); }
.exl-w-tls span{ color:#c9b4f2; }
.exl-w-http{ background:rgba(90,176,255,.05); }
.exl-w-http span{ color:#a7d8ff; }
.exl-w-sus{ background:linear-gradient(90deg,#ff3049,#e01e3c); box-shadow:inset 0 0 0 1px rgba(255,120,140,.4); }
.exl-w-sus span{ color:#fff !important; font-weight:700; }
.exl-wrow.is-sel{ outline:1.5px solid var(--x-cyan); outline-offset:-1.5px; box-shadow:inset 0 0 22px rgba(66,235,209,.22); }
.exl-hex{ flex:none; padding:5px 10px; background:#070b11; border-top:1px solid rgba(120,150,190,.1); overflow:hidden; }
.exl-hexrow{ display:flex; gap:10px; font:600 9.5px/1.55 var(--x-mono); white-space:nowrap; }
.exl-hexrow b{ flex:none; color:#4f6480; font-weight:700; }
.exl-hexrow span{ color:#6f8095; letter-spacing:.02em; overflow:hidden; text-overflow:ellipsis; }
.exl-hexrow em{ color:#93a3b7; font-style:normal; letter-spacing:.03em; }
.exl-hexrow u{ color:var(--x-red); text-decoration:none; background:rgba(255,63,90,.14);
  border-radius:2px; padding:0 2px; }
.exl-wsbar{ flex:none; display:flex; align-items:center; gap:12px; height:22px; padding:0 12px;
  font:600 9.5px/1 var(--x-mono); color:#7c8798; background:#141821;
  border-top:1px solid rgba(120,150,190,.14); }
.exl-wsbar b{ color:#c7d0dd; font-weight:600; }
.exl-wsbar .rd{ color:var(--x-red); }
.exl-badge{ margin-left:auto; flex:none; font-size:9.5px; color:#8a93a3; border:1px dashed #3a4356;
  border-radius:999px; padding:1px 8px; white-space:nowrap; }

@keyframes exlRowIn{ from{ opacity:0; transform:translateY(6px); } to{ opacity:1; transform:none; } }

/* ════════ 반응형 ════════ */
/* 중간 폭 — 프로파일 카드를 상단 전체 폭으로 */
@media (max-width:1180px){
  .exl-stage{ grid-template-columns:284px minmax(0,1fr); }
  .exl-lcol{ grid-column:1 / -1; flex-direction:row; align-items:stretch; }
  .exl-lcol > .exl-card{ flex:1 1 0; min-width:0; }
  .exl-flow li{ padding:6px 9px; }
  .exl-wire{ height:204px; }
}
/* 좁은 폭 — 한 줄에 하나씩 */
@media (max-width:820px){
  .exl-stage{ grid-template-columns:minmax(0,1fr); gap:12px; padding:12px; border-radius:18px; }
  .exl-lcol{ flex-direction:column; }
  .exl-phone{ max-width:300px; width:100%; margin:0 auto; }
  .exl-lcol > .exl-card{ flex:0 0 auto; }
  .exl-flowcard{ min-height:auto; }
  .exl-mini{ flex:0 0 auto; max-height:214px; }
  .exl-wire{ height:206px; }
  .exl-cols,.exl-wrow{ grid-template-columns:minmax(0,1fr) minmax(0,1fr) 42px minmax(0,1.5fr); }
  .exl-cols span:nth-child(1),.exl-cols span:nth-child(2),.exl-cols span:nth-child(5),
  .exl-wrow span:nth-child(1),.exl-wrow span:nth-child(2),.exl-wrow span:nth-child(5){ display:none; }
  .exl-hexrow:nth-child(3){ display:none; }
  .exl-mrow{ grid-template-columns:50px minmax(0,1fr) 46px; }
  .exl-mrow .t{ display:none; }
  .exl-mbar > span:not(.exl-mnum){ display:none; }
  .exl-mtop small{ display:none; }
  .exl-nno{ display:none; }
  .exl-nsub{ display:none; }
  .exl-badge{ display:none; }
  .exl-kv li span{ width:68px; }
}
@media (max-width:480px){
  .exl-appid b{ font-size:15px; }
  .exl-fam{ font-size:9px; padding:3px 6px; }
  .exl-cap{ min-height:56px; }
  .exl-cap b{ font-size:12px; }
  .exl-wire{ height:196px; }
  .exl-hexrow:nth-child(2){ display:none; }
  .exl-hosts i{ font-size:9.5px; padding:3px 6px; }
  .exl-wttl{ font-size:10px; }
}
@media (prefers-reduced-motion:reduce){
  #expogo-live *{ animation:none !important; transition:none !important; }
}

/* ==== /assets/css/replay-embed.css?v=20260828a ==== */
/* 사건 리플레이 이식용 스타일 — home.css 에서 필요한 규칙만 중괄호 단위로 추출
   (수정2 #18 · 솔루션 페이지가 home.css 를 불러오지 않기 때문) */
:root{--hm-mono:ui-monospace,SFMono-Regular,Menlo,monospace}
.hm-phone{width:100%;max-width:330px;margin:0 auto;border-radius:38px;background:#0c0d10;padding:12px 12px 16px;box-shadow:0 24px 60px rgba(20,8,12,.35),inset 0 0 0 1px rgba(255,255,255,.09);position:relative}
.hm-phone-notch{width:110px;height:22px;background:#0c0d10;border-radius:0 0 14px 14px;position:absolute;left:50%;top:12px;transform:translateX(-50%);z-index:5}
.hm-phone-screen{border-radius:28px;overflow:hidden;background:#101216;min-height:430px;position:relative;display:flex;flex-direction:column}
.hm-phone-caption{text-align:center;font-size:10px;color:#8f929b;padding-top:12px;letter-spacing:.05em;font-family:var(--hm-mono)}
.hm-replay{display:grid;gap:22px}
.hm-replay-stage{display:grid;grid-template-columns:330px auto 330px 1fr;gap:18px;align-items:start;justify-content:start}
.hm-phone-chat .hm-phone-screen{background:#eef0f4;min-height:470px}
.hm-chat-head{display:flex;align-items:baseline;gap:8px;padding:16px 16px 11px;font-size:13px;border-bottom:1px solid rgba(0,0,0,.06);background:#fff}
.hm-chat-head b{letter-spacing:-.02em}
.hm-chat-head span{font-size:10.5px;color:#8d8f96}
.hm-chat-head.datalk{background:linear-gradient(135deg,#ff5d7e,#d20b25);color:#fff}
.hm-chat-head.datalk span{color:rgba(255,255,255,.8)}
.hm-chat-head.line{background:#06c755;color:#fff}
.hm-chat-head.line span{color:rgba(255,255,255,.85)}
.hm-chat-body{padding:13px;display:flex;flex-direction:column;gap:8px;overflow:hidden}
.hm-bubble{max-width:86%;font-size:11.5px;line-height:1.55;padding:9px 12px;border-radius:15px;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.06);color:#2c2d31}
.hm-bubble.me{align-self:flex-end;background:#d9e8ff}
.hm-bubble.them b{color:var(--red)}
.hm-bubble.threat{background:#2c2d33;color:#fff;border:1px solid rgba(210,11,37,.5)}
.hm-bubble.threat b{color:#ff8296}
.hm-bubble.file{display:flex;gap:10px;align-items:center;max-width:92%;border:1px solid rgba(210,11,37,.35);background:#fff7f8}
.hm-file-ico{flex:0 0 auto;width:34px;height:34px;border-radius:9px;background:#22252c;color:#fff;font-size:9px;font-weight:900;display:grid;place-items:center;letter-spacing:.04em}
.hm-bubble.file b{display:block;font-size:11px}
.hm-bubble.file em{font-style:normal;font-size:9.5px;color:#6f7176}
.hm-file-warn{margin-left:auto;font-size:8.5px;font-weight:900;color:var(--red);border:1px solid rgba(210,11,37,.5);border-radius:6px;padding:3px 6px;background:#fff}
.hm-chat-profile{display:flex;gap:10px;align-items:center;background:#fff;border:1px solid rgba(210,11,37,.3);border-radius:14px;padding:10px 12px;position:relative}
.hm-chat-profile b{display:block;font-size:12px}
.hm-chat-profile em{display:block;font-style:normal;font-size:9.5px;color:var(--red);margin-top:2px}
.hm-chat-profile i{display:block;font-style:normal;font-size:9px;color:#6f7176;margin-top:1px}
.hm-flag{position:absolute;right:10px;top:10px;font-size:8px;font-weight:900;letter-spacing:.08em;color:#fff;background:var(--red);border-radius:5px;padding:3px 6px}
.hm-sys-warn{border:1px solid rgba(210,11,37,.45);background:#fff;border-radius:14px;padding:11px 13px;font-size:10.5px;line-height:1.6;color:#4c4e55}
.hm-sys-warn b{display:block;color:var(--red);font-size:11px;margin-bottom:3px}
.hm-replay-arrow{align-self:center;display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--red);font-size:22px;font-weight:900;padding-top:180px}
.hm-replay-arrow span{font-size:9px;letter-spacing:.14em;color:#9b9da3}
.hm-replay [data-step-show]{opacity:0;transform:translateY(6px);transition:.4s ease;pointer-events:none}
.hm-replay [data-step-show].on{opacity:1;transform:none;pointer-events:auto}
.hm-replay-analysis{background:#fff;border:1px solid var(--line);border-radius:22px;padding:20px;box-shadow:var(--shadow);min-width:0}
.hm-replay-result{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
.hm-replay-result div{background:#faf7f8;border-radius:12px;padding:11px 12px}
.hm-replay-result span{display:block;font-size:9.5px;color:#8b8c92}
.hm-replay-result b{font-size:17px;color:var(--red)}
.hm-replay-ctrl{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.hm-play{border:0;border-radius:99px;background:var(--red);color:#fff;font-weight:800;font-size:13px;padding:13px 22px;box-shadow:0 12px 30px rgba(210,11,37,.25)}
.hm-play:hover{background:var(--red-dark)}
@media (max-width:1180px){
  .hm-replay-stage{grid-template-columns:1fr 1fr}
  .hm-replay-arrow{display:none}
  .hm-replay-analysis{grid-column:1/-1}
  .hm-phone-chat{margin:0 auto}
}
@media (max-width:780px){
  .hm-replay-stage{grid-template-columns:1fr}
  .hm-phone,.hm-phone-chat{max-width:310px}
  .hm-replay-result{grid-template-columns:1fr 1fr 1fr}
}
.hm-msg-t{display:block;font-size:8.5px;color:#9a9ca3;margin-top:4px;text-align:right}
.hm-msg-t i{font-style:normal;color:#f2b544;margin-right:5px;font-weight:700}
.hm-bubble.threat .hm-msg-t{color:#8d8f99}
.hm-bubble.photo{padding:6px;background:#fff}
.hm-photo-blur{display:block;width:158px;height:100px;border-radius:11px;position:relative;overflow:hidden;background:
  radial-gradient(60% 70% at 30% 35%,#e9c9cf 0%,transparent 60%),
  radial-gradient(50% 60% at 70% 60%,#d3b6c4 0%,transparent 65%),
  linear-gradient(135deg,#c9b3bb 0%,#8d7a85 100%)}
.hm-photo-blur i{position:absolute;inset:0;backdrop-filter:blur(7px);background:rgba(255,255,255,.12)}
.hm-photo-blur em{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-style:normal;font-size:9px;font-weight:700;color:#fff;background:rgba(20,16,18,.55);border-radius:99px;padding:4px 9px;white-space:nowrap}
.hm-leak{display:grid;gap:3px;margin:8px 0;background:rgba(255,255,255,.07);border:1px dashed rgba(255,130,150,.4);border-radius:10px;padding:8px 10px}
.hm-leak i{font-style:normal;font-size:10px;color:#ffc7d0;font-family:var(--hm-mono)}
.hm-btn-outline{display:inline-flex;align-items:center;gap:6px;border:1.5px solid #111;border-radius:99px;padding:12px 20px;font-size:13px;font-weight:800;color:#111;text-decoration:none;transition:.2s;background:#fff}
.hm-btn-outline:hover{background:#111;color:#fff}
.hm-replay-patchip{display:inline-flex;gap:8px;align-items:center;margin-top:12px;font-family:var(--hm-mono);font-size:10.5px;letter-spacing:.04em;color:#8b8c92;border:1px solid var(--line);border-radius:99px;padding:6px 13px;background:#fff}
.hm-replay-patchip b{color:var(--red);font-weight:700}
.hm-replay-bridge{margin-top:14px;padding:16px 17px;border-radius:16px;background:linear-gradient(150deg,#fff3f4,#fff);border:1px solid rgba(210,11,37,.28)}
.hm-replay-bridge b{display:block;font-size:14.5px;color:var(--ink);letter-spacing:-.02em}
.hm-replay-bridge p{margin:7px 0 12px;font-size:12.5px;line-height:1.65;color:#5f6167}
.hm-replay-bridge .btn{width:100%;justify-content:center}
.hm-replay-pick{margin:0 0 26px;padding:22px 24px;border:1px solid rgba(255,255,255,.1);border-radius:20px;background:rgba(255,255,255,.035)}
.hm-chat-head.rp-flash{animation:rpFlashHead .55s ease}
@media(max-width:900px){
  .hm-replay-pick{padding:18px}
}
@media(prefers-reduced-motion:reduce){
  .rp-flash,.hm-chat-head.rp-flash{animation:none}
}
.hm-replay-apps{display:flex;gap:10px;margin:14px 0 4px;padding:2px 2px 10px;overflow-x:auto;scrollbar-width:thin;scrollbar-color:rgba(255,48,79,.5) transparent}
.hm-replay-apps::-webkit-scrollbar{height:6px}
.hm-replay-apps::-webkit-scrollbar-thumb{background:rgba(255,48,79,.5);border-radius:99px}
.rp2{display:grid;gap:24px}
.rp2-pick{border:1px solid var(--line);border-radius:20px;background:#fff;padding:22px 24px;box-shadow:var(--shadow)}
.rp2-q{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px;margin:0 0 14px;font-size:15.5px;font-weight:850;color:#111;letter-spacing:-.01em}
.rp2-q em{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:7px;background:#fdebee;border:1px solid rgba(210,11,37,.4);color:var(--red);font-style:normal;font-size:11px;font-weight:900}
.rp2-q span{font-size:12.5px;font-weight:700;color:#111}
.rp2-types{display:flex;gap:12px;flex-wrap:wrap}
.rp2-typewrap{position:relative}
.rp2-type{display:flex;align-items:center;gap:10px;border:1.5px solid #d8d2d4;background:#fff;border-radius:14px;padding:13px 16px;cursor:pointer;transition:.18s}
.rp2-type b{font-size:14.5px;font-weight:800;color:#111;letter-spacing:-.02em}
.rp2-type i{font-style:normal;font-size:10.5px;font-weight:800;color:#111;border:1px solid #d8d2d4;border-radius:99px;padding:4px 9px;background:#faf7f8}
.rp2-type:hover{border-color:var(--red);transform:translateY(-1px)}
.rp2-type.active{border-color:var(--red);background:#fff5f6;box-shadow:0 10px 26px rgba(210,11,37,.12)}
.rp2-type.active i{border-color:rgba(210,11,37,.4);color:var(--red);background:#fff}
.rp2-pop{position:absolute;left:0;top:calc(100% + 8px);z-index:60;display:flex;gap:8px;flex-wrap:wrap;width:max-content;max-width:min(540px,calc(100vw - 48px));background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px;box-shadow:0 24px 60px rgba(20,8,12,.2);opacity:0;visibility:hidden;transform:translateY(-6px);transition:.2s}
.rp2-typewrap:hover .rp2-pop,.rp2-typewrap:focus-within .rp2-pop,.rp2-typewrap.open .rp2-pop{opacity:1;visibility:visible;transform:none}
.rp2-ic-item{width:52px;cursor:pointer;border:0;background:none;padding:0;display:flex;flex-direction:column;align-items:center;gap:4px}
.rp2-ic-item img{width:46px;height:46px;border-radius:12px;object-fit:cover;border:1px solid var(--line);background:#fff;transition:.15s}
.rp2-ic-item:hover img,.rp2-ic-item:focus-visible img{border-color:var(--red);transform:translateY(-2px);box-shadow:0 8px 18px rgba(210,11,37,.2)}
.rp2-why{display:block;margin:16px 0 0;padding:13px 16px;border-left:3px solid var(--red);background:#fff7f8;border-radius:0 12px 12px 0;font-size:13px;line-height:1.7;color:#111}
.rp2-why b{display:block;color:var(--red);font-size:12px;margin-bottom:4px;letter-spacing:.02em}
.rp2-note{margin:14px 0 0;font-size:12px;line-height:1.65;color:#111;font-weight:600}
.rp2-stage{display:grid;grid-template-columns:minmax(320px,430px) auto minmax(320px,430px);gap:22px;justify-content:center;align-items:start}
.rp2-phone{max-width:430px;width:100%}
.rp2-phone .hm-phone-screen{min-height:560px}
.rp2-body{flex:1}
.rp2-body .hm-bubble{font-size:12.5px;max-width:88%}
.rp2-arrow{align-self:center;display:flex;flex-direction:column;align-items:center;gap:9px;padding-top:210px}
.rp2-arrow-t{font-size:11px;font-weight:800;color:#111;text-align:center;line-height:1.5}
.rp2-arrow-icons{display:flex;gap:6px}
.rp2-arrow-icons img{width:30px;height:30px;border-radius:8px;object-fit:cover;border:1px solid var(--line);background:#fff}
.rp2-arrow>b{color:var(--red);font-size:24px;font-weight:900}
.rp2-hint{margin:0;font-size:13.5px;color:#111;font-weight:700}
.rp2-hint b{color:var(--red)}
.rp2-body>*{opacity:0;transform:translateY(8px);transition:.35s ease}
.rp2-body>.on{opacity:1;transform:none}
.rp2-file{cursor:pointer;position:relative}
.rp2-file:hover{border-color:var(--red);box-shadow:0 6px 16px rgba(210,11,37,.18)}
.rp2-file-ico{background:#fff;border:1px solid var(--line);color:var(--ink)}
.rp2-file-ico img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}
.rp2-tap{margin-left:auto;flex:none;font-size:9.5px;font-weight:900;color:#fff;background:var(--red);border-radius:99px;padding:4px 8px;animation:rp2Tap 1.6s ease infinite}
@keyframes rp2Tap{0%,100%{transform:none}50%{transform:scale(1.1)}}
.hm-sys-warn.rp2-warn{border-width:2px;border-color:var(--red);background:#fff2f4}
.rp2-post{background:#fff;border:1px solid var(--line);border-radius:14px;padding:11px 13px;font-size:12px;color:#2c2d31;max-width:92%;box-shadow:0 1px 2px rgba(0,0,0,.06)}
.rp2-post-h{display:flex;gap:8px;align-items:center;margin-bottom:6px}
.rp2-post-h i{width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,#f7cfd6,#e7a1ad);flex:none}
.rp2-post-h b{font-size:11.5px}
.rp2-post-h em{font-style:normal;font-size:9.5px;color:#6f7176}
.rp2-photo{display:block;width:150px;height:100px;border-radius:12px;background:repeating-linear-gradient(45deg,#d8cfd2 0 8px,#cbc0c4 8px 16px);position:relative;overflow:hidden}
.rp2-photo em{position:absolute;left:6px;right:6px;bottom:6px;font-style:normal;font-size:9px;color:#5f6167;background:rgba(255,255,255,.88);border-radius:6px;padding:2px 6px;text-align:center}
.rp2-modal{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;background:rgba(14,10,12,.66);backdrop-filter:blur(4px);opacity:0;visibility:hidden;transition:.25s}
.rp2-modal.open{opacity:1;visibility:visible}
.rp2-modal-inner{width:min(860px,calc(100vw - 32px));max-height:calc(100vh - 60px);overflow:auto;background:#fff;border-radius:24px;padding:28px;position:relative;box-shadow:0 40px 120px rgba(0,0,0,.4)}
.rp2-modal-x{position:absolute;right:16px;top:16px;border:0;background:#f4f2f3;border-radius:50%;width:34px;height:34px;font-size:14px;color:#75767c;cursor:pointer}
.rp2-modal-x:hover{background:#111;color:#fff}
.rp2-modal-inner h3{margin:0 30px 6px 0;font-size:21px;letter-spacing:-.03em;color:#111}
.rp2-modal-sub{margin:0 0 18px;font-size:13px;color:#111;line-height:1.6}
.rp2-steps{display:flex;gap:10px;align-items:stretch;overflow-x:auto;padding:6px 2px 10px}
.rp2-stepc{flex:0 0 150px;display:flex;flex-direction:column;gap:6px;border:1px solid var(--line);border-radius:14px;padding:10px;position:relative;background:#fff}
.rp2-stepc img{width:100%;aspect-ratio:9/16;object-fit:cover;object-position:top;border-radius:10px;background:#111}
.rp2-num{position:absolute;left:-6px;top:-6px;width:24px;height:24px;border-radius:50%;background:#111;color:#fff;font-size:11px;font-weight:900;display:grid;place-items:center;z-index:1}
.rp2-stepc.leak{background:#2a0e14;border-color:var(--red);justify-content:center;text-align:center}
.rp2-stepc.leak .rp2-num{background:var(--red)}
.rp2-leakcue{font-size:14.5px;font-weight:900;color:#ff8296;line-height:1.4}
.rp2-sc-t{font-size:12px;font-weight:800;color:#111}
.rp2-stepc.leak .rp2-sc-t{color:#fff}
.rp2-sc-s{font-size:10.5px;color:#5f6167;line-height:1.5}
.rp2-stepc.leak .rp2-sc-s{color:#ffb3bd}
.rp2-arw{align-self:center;color:var(--red);font-weight:900;font-size:18px;flex:none}
.rp2-leakbox{margin-top:16px;border:2px solid rgba(210,11,37,.4);border-radius:16px;padding:16px;background:#fff7f8}
.rp2-leakbox>b{display:block;font-size:14px;color:var(--red);margin-bottom:10px}
.rp2-leaklist{display:flex;flex-wrap:wrap;gap:8px}
.rp2-leaklist span{font-size:12px;font-weight:800;color:#fff;background:#111;border-radius:99px;padding:7px 12px}
.rp2-leak-foot{margin:10px 0 0;font-size:10.5px;color:#5f6167}
@media(max-width:1080px){
  .rp2-stage{grid-template-columns:1fr;justify-items:center}
  .rp2-arrow{flex-direction:row;padding:4px 0}
  .rp2-arrow-t br{display:none}
}
@media(prefers-reduced-motion:reduce){
  .rp2-body>*{transition:none}
  .rp2-tap{animation:none}
  .rp2-modal{transition:none}
}
.hm-msg-t{color:#75767c}
.hm-msg-t i{color:#b26a00}
.hm-chat-head.datalk span{color:rgba(255,255,255,.95)}
.hm-chat-head.line span{color:rgba(255,255,255,.95)}

/* ==== /assets/css/global-cta.css?v=20260830w ==== */
/* =====================================================================
   LAVARWAVE GLOBAL CTA — 긴급 행동 안내 + 자동 상담 경로 가이드
   ===================================================================== */
html.gc-dialog-open{overflow:hidden}
body.gc-enhanced .floating-contact{display:none!important}
.gc-root,.gc-root *,.gc-emg,.gc-emg *{box-sizing:border-box}
.gc-root{font-family:Pretendard,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.gc-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* floating dock */
.gc-dock{position:fixed;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));z-index:1400;display:flex;align-items:stretch;gap:9px;filter:drop-shadow(0 18px 34px rgba(8,9,12,.23))}
.gc-guide-open{min-width:326px;min-height:72px;padding:10px 14px 10px 11px;display:grid;grid-template-columns:48px minmax(0,1fr) 24px;align-items:center;gap:11px;border:1px solid #323944;border-radius:18px;background:linear-gradient(138deg,#10151d 0,#090d13 72%,#161018 100%);color:#fff;text-align:left;cursor:pointer;box-shadow:inset 0 1px rgba(255,255,255,.045);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.gc-guide-open:hover{transform:translateY(-3px);border-color:#7a3140;box-shadow:0 18px 38px rgba(9,10,13,.25)}
.gc-guide-mark{position:relative;width:48px;height:48px;display:grid;place-items:center;border:1px solid #3b434f;border-radius:14px;background:#151b24;overflow:hidden}
.gc-guide-mark:before,.gc-guide-mark:after{content:"";position:absolute;border:1px solid rgba(255,82,108,.26);border-radius:50%}
.gc-guide-mark:before{width:39px;height:39px}
.gc-guide-mark:after{width:24px;height:24px}
.gc-guide-mark>i:first-child{position:absolute;width:56px;height:1px;background:linear-gradient(90deg,transparent,#ff526c,transparent);transform:rotate(-32deg)}
.gc-guide-mark>i:nth-child(2){position:absolute;width:6px;height:6px;border-radius:50%;background:#45d695;box-shadow:0 0 0 5px rgba(69,214,149,.08)}
.gc-guide-mark>b{position:relative;z-index:1;color:#fff;font:950 9px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:-.03em}
.gc-guide-copy{min-width:0;display:grid;gap:4px}
.gc-guide-copy>small{color:#ff637b;font:900 8px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.1em}
.gc-guide-copy>strong{color:#f5f6f8;font-size:14px;line-height:1.15;letter-spacing:-.025em}
.gc-guide-copy>em{overflow:hidden;color:#7f8997;font-size:9px;line-height:1.25;font-style:normal;white-space:nowrap;text-overflow:ellipsis}
.gc-guide-arrow{color:#ff6077;font:900 15px/1 ui-monospace,SFMono-Regular,Consolas,monospace;font-style:normal}
.gc-emergency-open{width:84px;min-height:72px;padding:10px 9px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;border:1px solid #ac0a22;border-radius:18px;background:linear-gradient(145deg,#dc1730,#a5071d);color:#fff;cursor:pointer;box-shadow:inset 0 1px rgba(255,255,255,.12);transition:transform .2s ease,box-shadow .2s ease}
.gc-emergency-open>span{color:rgba(255,255,255,.72);font:900 8px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.1em}
.gc-emergency-open>b{font-size:11px;line-height:1.15}
.gc-emergency-open:hover{transform:translateY(-3px);box-shadow:0 16px 30px rgba(178,8,31,.3)}

/* automatic guide dialog */
dialog.gc-chat{position:fixed;inset:auto max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) auto;width:min(420px,calc(100vw - 36px));height:min(660px,calc(100dvh - 36px));max-width:none;max-height:none;margin:0;padding:0;overflow:hidden;border:1px solid #373d47;border-radius:25px;background:#fff;color:#17191e;box-shadow:0 38px 100px rgba(5,7,10,.44)}
dialog.gc-chat::backdrop{background:rgba(6,8,12,.42);backdrop-filter:blur(3px)}
dialog.gc-chat[open]{animation:gcGuideIn .23s cubic-bezier(.2,.75,.25,1) both}
@keyframes gcGuideIn{from{opacity:0;transform:translateY(15px) scale(.985)}to{opacity:1;transform:none}}
.gc-chat-shell{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden;background:#f5f4f5}
.gc-chat-head{min-height:92px;padding:17px 17px 16px;display:grid;grid-template-columns:48px minmax(0,1fr) 44px;align-items:center;gap:13px;background:radial-gradient(circle at 100% 0,rgba(255,83,108,.22),transparent 38%),linear-gradient(135deg,#151019,#0c1118 72%);color:#fff}
.gc-chat-mark{position:relative;width:48px;height:48px;display:grid;place-items:center;overflow:hidden;border:1px solid #3c434e;border-radius:14px;background:#171d26}
.gc-chat-mark:before{content:"";position:absolute;width:35px;height:35px;border:1px solid rgba(255,82,108,.28);border-radius:50%}
.gc-chat-mark>i{position:absolute;width:7px;height:7px;border-radius:50%;background:#45d695;box-shadow:0 0 0 5px rgba(69,214,149,.08)}
.gc-chat-mark>b{position:relative;color:#fff;font:950 9px/1 ui-monospace,SFMono-Regular,Consolas,monospace}
.gc-chat-head>div{min-width:0}
.gc-chat-head small{display:block;color:#ff637b;font:900 8px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.1em}
.gc-chat-head h2{margin:7px 0 0;color:#f6f7f8;font-size:18px;line-height:1.1;letter-spacing:-.035em}
.gc-chat-head p{margin:5px 0 0;color:#8c96a4;font-size:9px;line-height:1.35}
.gc-chat-close{width:44px;height:44px;padding:0;display:grid;place-items:center;border:1px solid rgba(255,255,255,.16);border-radius:50%;background:rgba(255,255,255,.08);color:#fff;font-size:15px;cursor:pointer;transition:background .18s ease,color .18s ease}
.gc-chat-close:hover{background:#fff;color:#16191f}
.gc-chat-disclosure{padding:11px 16px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;border-bottom:1px solid #dedadc;background:#fff}
.gc-chat-disclosure>span{color:#b50b23;font:900 8px/1.3 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.075em}
.gc-chat-disclosure>p{margin:0;color:#71757c;font-size:9px;line-height:1.45;word-break:keep-all}
.gc-chat-log{flex:1;min-height:0;overflow:auto;padding:17px 16px 19px;display:flex;flex-direction:column;gap:9px;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#c7c2c4 transparent}
.gc-message{max-width:88%;padding:11px 13px;border-radius:15px;font-size:11.5px;line-height:1.62;word-break:keep-all;animation:gcMessageIn .2s ease both}
.gc-message--guide{align-self:flex-start;border:1px solid #dedadc;border-bottom-left-radius:5px;background:#fff;color:#3a3d43;box-shadow:0 6px 15px rgba(35,22,27,.04)}
.gc-message--user{align-self:flex-end;border-bottom-right-radius:5px;background:#bd1027;color:#fff;font-weight:800}
@keyframes gcMessageIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.gc-chat-choices{max-height:185px;overflow:auto;padding:12px 14px;display:flex;flex-wrap:wrap;align-content:flex-start;gap:8px;border-top:1px solid #dedadc;background:#fff;overscroll-behavior:contain}
.gc-choice{min-height:44px;padding:10px 14px;border:1px solid #d9d4d6;border-radius:12px;background:#fff;color:#383b41;font:800 10.5px/1.3 inherit;cursor:pointer;transition:border-color .18s ease,color .18s ease,background .18s ease,transform .18s ease}
.gc-choice:hover{transform:translateY(-1px);border-color:#bd1027;color:#bd1027;background:#fff8f9}
.gc-choice--urgent{border-color:#d99aa4;background:#fff5f6;color:#a9081f}
.gc-chat-foot{margin:0;padding:9px 14px calc(10px + env(safe-area-inset-bottom));border-top:1px solid #ece8e9;background:#fff;color:#8a8e95;font-size:8.5px;line-height:1.4;text-align:center}

/* official contact card */
.gc-contact-card{align-self:stretch;margin-top:2px;padding:14px;display:grid;gap:9px;border:1px solid #cfc8ca;border-radius:17px;background:#fff;box-shadow:0 12px 28px rgba(35,19,25,.08);animation:gcMessageIn .2s ease both}
.gc-contact-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.gc-contact-head>span{color:#bd1027;font:900 8px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.09em}
.gc-contact-head>b{color:#3b3e44;font-size:10px}
.gc-contact-phone{min-height:74px;padding:14px 15px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;overflow:hidden;border-radius:13px;background:linear-gradient(135deg,#d9142e,#a5071c);color:#fff;text-decoration:none}
.gc-contact-phone>span{grid-column:1/-1;color:rgba(255,255,255,.72);font:900 8px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.08em}
.gc-contact-phone>strong{margin-top:8px;font:950 24px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:-.055em}
.gc-contact-phone>em{color:#fff;font-size:9px;font-style:normal;font-weight:850}
.gc-contact-phone>em i{margin-left:6px;font:900 11px/1 ui-monospace,SFMono-Regular,Consolas,monospace;font-style:normal}
.gc-contact-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.gc-contact-links>a{position:relative;min-height:62px;padding:11px 12px;display:flex;flex-direction:column;justify-content:center;border-radius:12px;text-decoration:none}
.gc-contact-links>a>span{font:900 8px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.08em;opacity:.68}
.gc-contact-links>a>b{margin-top:7px;font-size:10.5px}
.gc-contact-links>a>i{position:absolute;right:11px;top:11px;font:900 10px/1 ui-monospace,SFMono-Regular,Consolas,monospace;font-style:normal}
.gc-contact-kakao{background:#fee500;color:#181600}
.gc-contact-naver{background:#03c75a;color:#fff}
.gc-contact-card>p{margin:0;color:#858990;font-size:8.5px;line-height:1.45}

/* emergency dialog used on non-home pages */
dialog.gc-emg{width:min(720px,calc(100% - 32px));max-width:none;max-height:min(88dvh,820px);margin:auto;padding:0;overflow:auto;border:1px solid #393e47;border-radius:27px;background:#fff;color:#17191e;font-family:Pretendard,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;box-shadow:0 40px 115px rgba(5,7,10,.46)}
dialog.gc-emg::backdrop{background:rgba(6,8,12,.72);backdrop-filter:blur(7px)}
dialog.gc-emg[open]{animation:gcGuideIn .23s cubic-bezier(.2,.75,.25,1) both}
.gc-emg-shell{position:relative}
.gc-emg-close{position:absolute;right:18px;top:18px;z-index:3;width:44px;height:44px;padding:0;display:grid;place-items:center;border:1px solid rgba(255,255,255,.18);border-radius:50%;background:rgba(255,255,255,.09);color:#fff;font-size:15px;cursor:pointer;transition:background .18s ease,color .18s ease}
.gc-emg-close:hover{background:#fff;color:#16191f}
.gc-emg-head{position:relative;overflow:hidden;padding:39px 78px 36px 42px;background:radial-gradient(circle at 92% 5%,rgba(255,79,105,.24),transparent 32%),linear-gradient(138deg,#1a0d12,#10141b 68%,#0b1017);color:#fff}
.gc-emg-head:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:34px 34px;mask-image:linear-gradient(90deg,transparent,black)}
.gc-emg-head>span{position:relative;z-index:1;display:flex;align-items:center;gap:10px;color:#ff7689;font:900 8px/1.25 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.1em}
.gc-emg-head>span i{width:7px;height:7px;border-radius:50%;background:#45d695;box-shadow:0 0 0 5px rgba(69,214,149,.1)}
.gc-emg-head h2{position:relative;z-index:1;margin:24px 0 0;color:#fff;font-size:clamp(31px,4.2vw,46px);line-height:1.08;letter-spacing:-.055em;word-break:keep-all}
.gc-emg-head h2 b{color:#ff6077}
.gc-emg-head h2:focus{outline:none}
.gc-emg-head p{position:relative;z-index:1;max-width:590px;margin:18px 0 0;color:#aab1bd;font-size:12.5px;line-height:1.72;word-break:keep-all}
.gc-emg-body{padding:28px 32px 31px}
.gc-emg-body ol{margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;list-style:none}
.gc-emg-body li{min-width:0;min-height:148px;padding:18px 17px;border:1px solid #e1dcde;border-radius:15px}
.gc-emg-body li span{color:#bd1027;font:900 8px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.08em}
.gc-emg-body li b{margin-top:14px;display:block;color:#22252a;font-size:13.5px;line-height:1.35;word-break:keep-all}
.gc-emg-body li p{margin:9px 0 0;color:#74787f;font-size:10px;line-height:1.62;word-break:keep-all}
.gc-emg-public{margin-top:10px;padding:13px 15px;display:grid;grid-template-columns:100px minmax(0,1fr);gap:13px;border:1px solid #e0dcdd;border-radius:13px;background:#faf8f8}
.gc-emg-public>b{color:#bd1027;font-size:10px}
.gc-emg-public>p{margin:0;color:#666a71;font-size:10px;line-height:1.55;word-break:keep-all}
.gc-emg-actions{margin-top:10px;display:grid;grid-template-columns:1.08fr minmax(0,1fr);gap:9px}
.gc-emg-actions>a{position:relative;min-height:82px;padding:15px 16px;display:flex;flex-direction:column;justify-content:center;border:1px solid #ded8da;border-radius:14px;background:#f9f7f8;color:#1d2025;text-decoration:none;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.gc-emg-actions>a>span{color:#9a3a48;font:900 8px/1.25 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.075em}
.gc-emg-actions>a>strong{margin-top:9px;font-size:13.5px}
.gc-emg-actions>a>i{position:absolute;right:15px;bottom:15px;color:#bd1027;font:900 13px/1 ui-monospace,SFMono-Regular,Consolas,monospace;font-style:normal}
.gc-emg-actions>a:hover{transform:translateY(-2px);border-color:#bd1027;box-shadow:0 13px 26px rgba(48,22,29,.09)}
.gc-emg-actions .gc-emg-phone{border-color:#bd1027;background:linear-gradient(135deg,#d9142e,#a8071d);color:#fff}
.gc-emg-actions .gc-emg-phone>span{color:rgba(255,255,255,.72)}
.gc-emg-actions .gc-emg-phone>strong{font:950 25px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:-.05em}
.gc-emg-note{margin:15px 0 0;padding:13px 15px;border-left:3px solid #bd1027;background:#faf7f8;color:#74787f;font-size:10.5px;line-height:1.62;word-break:keep-all}
.gc-emg-note b{margin-right:7px;color:#3a3d43}

.gc-root button:focus-visible,.gc-root a:focus-visible,.gc-chat button:focus-visible,.gc-chat a:focus-visible,.gc-emg button:focus-visible,.gc-emg a:focus-visible{outline:3px solid #ff6077;outline-offset:3px}
.gc-contact-phone:focus-visible{outline-color:#fff!important;outline-offset:-5px!important}

@media(max-width:600px){
  .gc-dock{left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));bottom:max(10px,env(safe-area-inset-bottom));gap:7px}
  .gc-guide-open{min-width:0;min-height:72px;flex:1;padding-right:12px;grid-template-columns:46px minmax(0,1fr) 18px}
  .gc-guide-mark{width:46px;height:46px}
  .gc-emergency-open{width:78px;min-height:72px;border-radius:17px}
  dialog.gc-chat{inset:0;width:100%;height:100dvh;max-width:none;max-height:none;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);border:0;border-radius:0;background:#0d1219}
  .gc-chat-shell{border-radius:0}
  .gc-chat-head{padding-top:15px}
  .gc-chat-choices{max-height:210px}
  dialog.gc-emg{width:calc(100% - 20px);max-height:calc(100dvh - 20px);border-radius:23px}
  .gc-emg-head{padding:34px 66px 30px 25px}
  .gc-emg-head h2{font-size:31px}
  .gc-emg-body{padding:21px 20px 23px}
  .gc-emg-body ol,.gc-emg-actions{grid-template-columns:1fr}
  .gc-emg-body li{min-height:0}
  .gc-emg-public{grid-template-columns:1fr;gap:7px}
}
@media(max-width:390px){
  .gc-guide-open{grid-template-columns:44px minmax(0,1fr);gap:9px}
  .gc-guide-mark{width:44px;height:44px}
  .gc-guide-arrow{display:none}
  .gc-guide-copy>em{font-size:8px}
  .gc-emergency-open{width:72px}
  .gc-chat-head{grid-template-columns:44px minmax(0,1fr) 44px;gap:10px}
  .gc-chat-mark{width:44px;height:44px}
  .gc-contact-links{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  dialog.gc-chat[open],dialog.gc-emg[open],.gc-message,.gc-contact-card{animation:none}
  .gc-guide-open,.gc-emergency-open,.gc-chat-close,.gc-choice,.gc-emg-close,.gc-emg-actions>a{transition:none}
  .gc-guide-open:hover,.gc-emergency-open:hover,.gc-choice:hover,.gc-emg-actions>a:hover{transform:none}
}

/* ==== /assets/css/evo-cine.css?v=20260905c ==== */
/* ============================================================
   EVOLUTION CINEMA — 몸캠피싱 범죄의 진화 · 11개 변곡점 (2026-09-03)
   #evolution 전용 · 접두사 evo-
   프레임 톤은 tech-cine(tc-) 계열과 동일하게 맞추되 파일은 완전히 독립.
   ============================================================ */

body.service-page main > .page-section.evo,
.page-section.evo{
  padding:96px 0 0;
  border-bottom:0;
  background:linear-gradient(180deg,#fbfdfe 0%,#eef5f9 100%);
}

/* ── 섹션 헤드 ── */
.evo-head{display:grid;grid-template-columns:1.15fr .85fr;gap:28px;align-items:end;margin-bottom:34px}
.evo-eyebrow{margin:0;display:flex;align-items:center;gap:9px;flex-wrap:wrap;
  font:800 10px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.16em;color:#7c8ba0}
.evo-eyebrow span{display:inline-flex;align-items:center;gap:7px;padding:5px 10px;border-radius:999px;
  border:1px solid rgba(210,11,37,.28);background:rgba(210,11,37,.06);color:#c8102e}
.evo-eyebrow span::before{content:"";width:5px;height:5px;border-radius:50%;background:#d20b25}
.evo-head h2{margin:14px 0 0;font-size:clamp(28px,3.2vw,44px);line-height:1.16;letter-spacing:-.045em;color:#101318}
.evo-head h2 em{font-style:normal;color:#c8102e}
.evo-head > p{margin:0;font-size:14px;line-height:1.8;color:#5a6572;max-width:46ch}

/* ── 시네마 프레임 토큰 ── */
.evo-cine{
  --e-bg:#070a10; --e-panel:#0f141d; --e-panel2:#0b111a;
  --e-line:rgba(120,150,190,.24); --e-line2:rgba(120,150,190,.13);
  --e-txt:#eef3f9; --e-dim:#9fb2c6; --e-mute:#68798e;
  --e-red:#ff3f5a; --e-blue:#5ab0ff; --e-cyan:#42ebd1; --e-amber:#ffb840; --e-green:#39d98a; --e-violet:#a86fff;
  --e-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --evo-in:1;
  position:relative;color:var(--e-txt);-webkit-font-smoothing:antialiased;
}

/* 시네마(데스크톱) 모드 */
.evo-cine.is-active{width:100vw;margin-left:calc(50% - 50vw)}
.evo-cine.is-active .evo-sticky{position:sticky;top:0;height:var(--evo-vh,100vh);overflow:hidden;overflow:clip}
.evo-cine.is-active .evo-frame{
  position:relative;height:100%;transform-origin:50% 46%;will-change:transform;
  background:radial-gradient(120% 90% at 50% 12%,#111a27 0%,#080c14 46%,#05070c 100%);
}
.evo-cine.is-active:not(.is-entered) .evo-frame{border-radius:30px;overflow:hidden}
.evo-cine.is-entered .evo-frame{will-change:auto}

.evo-grid{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:calc(.35 + .65 * var(--evo-in));
  background-image:linear-gradient(rgba(127,146,172,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(127,146,172,.055) 1px,transparent 1px);
  background-size:46px 46px}
.evo-tunnel{position:absolute;inset:0;z-index:1;pointer-events:none;width:100%;height:100%;display:block;
  opacity:calc(.25 + .75 * var(--evo-in))}
/* 진입 흡입 링 — 진행률이 0 일 때 가장 크고 밝다 */
.evo-warp{position:absolute;inset:-25%;z-index:2;pointer-events:none;
  background:repeating-radial-gradient(circle at 50% 46%,rgba(120,170,225,.16) 0 2px,transparent 2px 62px);
  opacity:calc((1 - var(--evo-in)) * .85);
  transform:scale(calc(1 + (1 - var(--evo-in)) * 1.9))}
.evo-vig{position:absolute;inset:0;z-index:3;pointer-events:none;
  background:radial-gradient(118% 96% at 50% 44%,transparent calc(34% + var(--evo-in) * 22%),rgba(4,6,11,.86) 100%)}

/* ── 스테이지: 좌측 연표 + 카드 무대 ── */
.evo-stage{position:absolute;z-index:5;left:0;right:0;
  top:calc(var(--evo-top,92px) + 16px);bottom:62px;padding:0 3.2vw;
  display:grid;grid-template-columns:96px minmax(0,1fr);gap:0 24px}

/* ── 연표(2024.01 → 2026.08) ── */
.evo-axis{position:relative;display:flex;flex-direction:column;justify-content:space-between;
  padding:6px 0 6px 13px;min-width:0}
.evo-axis::before{content:"";position:absolute;left:3px;top:10px;bottom:10px;width:1px;
  background:linear-gradient(180deg,rgba(120,150,190,.05),rgba(120,150,190,.34) 12%,rgba(120,150,190,.34) 88%,rgba(120,150,190,.05))}
.evo-axis-cap{position:absolute;left:13px;top:-14px;font:800 9.5px/1 var(--e-mono);letter-spacing:.16em;color:var(--e-mute)}
.evo-tick{position:relative;display:block;width:100%;text-align:left;padding:3px 0 3px 2px;border:0;background:none;
  font:700 10.5px/1.25 var(--e-mono);letter-spacing:.02em;color:#67788d;cursor:pointer;transition:color .28s}
.evo-tick::before{content:"";position:absolute;left:-13px;top:50%;width:7px;height:7px;margin-top:-3.5px;border-radius:50%;
  background:#2b3646;border:1px solid rgba(120,150,190,.4);transition:background .28s,box-shadow .28s,transform .28s}
.evo-tick b{display:block;font-weight:800;font-size:10.5px;color:inherit}
.evo-tick i{display:block;font-style:normal;font-size:9.5px;font-weight:600;color:#4f5e72;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:84px;margin-top:1px}
.evo-tick:hover{color:#cfdcea}
.evo-tick.is-done{color:#8496ac}
.evo-tick.is-done::before{background:rgba(255,63,90,.45);border-color:rgba(255,63,90,.5)}
.evo-tick.is-on{color:#fff}
.evo-tick.is-on i{color:#a9b9cb}
.evo-tick.is-on::before{background:var(--e-red);border-color:var(--e-red);box-shadow:0 0 10px rgba(255,63,90,.75);transform:scale(1.18)}
.evo-tick:focus-visible{outline:2px solid var(--e-blue);outline-offset:3px;border-radius:6px}

/* ── 카드 무대 ── */
.evo-cards{position:relative;min-width:0;perspective:1500px;perspective-origin:50% 45%}
.evo-card{position:absolute;inset:0;display:flex;align-items:center;opacity:0;visibility:hidden;will-change:transform,opacity}
.evo-card.is-on{visibility:visible}
.evo-card-veil{position:absolute;inset:-2px;z-index:9;pointer-events:none;border-radius:16px;
  background:#05080e;opacity:0}
.evo-card-in{position:relative;width:100%;max-height:100%;display:grid;
  grid-template-columns:minmax(250px,31%) minmax(0,1fr);gap:22px;align-items:start}

/* 좌측 카피 */
.evo-copy{display:flex;flex-direction:column;min-width:0}
.evo-c-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.evo-no{font:800 11px/1 var(--e-mono);letter-spacing:.14em;color:#ff8296}
.evo-date{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border-radius:999px;
  border:1px solid rgba(255,63,90,.4);background:rgba(255,63,90,.1);
  font:800 10.5px/1 var(--e-mono);letter-spacing:.06em;color:#ffb3bf}
.evo-fam{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border-radius:999px;
  border:1px solid var(--e-line);background:rgba(8,13,22,.7);
  font:700 10.5px/1 var(--e-mono);color:#a9bacd}
.evo-fam::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--e-blue);box-shadow:0 0 8px var(--e-blue)}
.evo-copy h3{margin:12px 0 0;font-size:clamp(21px,2.05vw,30px);line-height:1.16;letter-spacing:-.04em;color:#fff}
.evo-lead{margin:11px 0 0;font-size:12.5px;line-height:1.78;color:var(--e-dim)}
.evo-points{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:7px}
.evo-points li{position:relative;padding:7px 10px 7px 26px;border:1px solid var(--e-line2);border-radius:9px;
  background:rgba(10,16,26,.62);font-size:11.5px;line-height:1.6;color:#c7d5e4}
.evo-points li::before{content:"";position:absolute;left:11px;top:14px;width:5px;height:5px;border-radius:50%;
  background:var(--e-red);box-shadow:0 0 7px rgba(255,63,90,.7)}
.evo-copy .evo-foot{margin-top:auto;padding-top:12px;font:600 9.5px/1.5 var(--e-mono);color:#5b6b7f;letter-spacing:.02em}

/* 우측 4패널 */
.evo-panels{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:13px;min-width:0;align-items:start}
.evo-p-app{grid-column:span 7}
.evo-p-code{grid-column:span 5}
.evo-p-c2{grid-column:span 5}
.evo-p-route{grid-column:span 7}
.evo-p{position:relative;display:flex;flex-direction:column;min-width:0;min-height:0;
  border:1px solid var(--e-line);border-radius:12px;background:linear-gradient(180deg,rgba(16,22,33,.92),rgba(9,13,21,.92));
  box-shadow:0 22px 54px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.04);overflow:hidden}
.evo-p > h4{display:flex;align-items:center;gap:8px;flex:none;margin:0;height:30px;padding:0 12px;
  border-bottom:1px solid var(--e-line2);background:linear-gradient(#1a2130,#151b27);
  font:800 10px/1 var(--e-mono);letter-spacing:.13em;color:#b7c6d8}
.evo-p > h4 i{width:6px;height:6px;border-radius:50%;background:var(--e-blue);box-shadow:0 0 8px var(--e-blue)}
.evo-p > h4 em{margin-left:auto;font-style:normal;font-size:9.5px;font-weight:700;letter-spacing:.06em;color:#5f7086}
.evo-p-app > h4 i{background:var(--e-amber);box-shadow:0 0 8px var(--e-amber)}
.evo-p-code > h4 i{background:var(--e-cyan);box-shadow:0 0 8px var(--e-cyan)}
.evo-p-c2 > h4 i{background:var(--e-red);box-shadow:0 0 8px var(--e-red)}
.evo-p-route > h4 i{background:var(--e-green);box-shadow:0 0 8px var(--e-green)}
.evo-p-body{min-height:0;padding:12px;overflow:hidden}

/* 1) 실제 악성앱 아이콘 */
.evo-apps{display:flex;flex-wrap:wrap;gap:10px}
.evo-app{display:flex;align-items:center;gap:9px;margin:0;padding:7px 10px 7px 7px;border-radius:11px;
  border:1px solid var(--e-line2);background:rgba(8,13,22,.72);min-width:0}
.evo-app img{width:44px;height:44px;flex:none;border-radius:11px;object-fit:cover;display:block;
  border:1px solid rgba(255,255,255,.1);background:#151b27}
.evo-app .evo-ico-t{width:44px;height:44px;flex:none;border-radius:11px;display:flex;align-items:center;justify-content:center;
  border:1px dashed rgba(255,184,64,.5);background:rgba(255,184,64,.08);
  font:800 15px/1 var(--e-mono);color:#ffcf87}
.evo-app figcaption{min-width:0}
.evo-app b{display:block;font-size:12px;font-weight:800;color:#eaf1f9;letter-spacing:-.01em;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:15ch}
.evo-app span{display:block;margin-top:3px;font:700 9.5px/1.3 var(--e-mono);color:#ff9aab}
.evo-app em{display:block;margin-top:2px;font:600 9.5px/1.3 var(--e-mono);font-style:normal;color:#67788d}
.evo-shots{display:flex;align-items:flex-start;gap:8px;margin-top:11px;padding-top:10px;border-top:1px dashed var(--e-line2)}
.evo-shots > span{flex:none;font:700 9.5px/1.4 var(--e-mono);letter-spacing:.06em;color:#5f7086;max-width:56px}
.evo-shots img{width:56px;height:98px;object-fit:cover;object-position:top center;border-radius:7px;display:block;
  border:1px solid var(--e-line2);background:#0d1219}
.evo-nofile{margin:0;font-size:11px;line-height:1.65;color:#8496ac}

/* 2) 소스코드 */
.evo-p-code .evo-p-body{padding:0;display:flex;flex-direction:column;background:#0a0e15;min-height:118px}
.evo-codebar{flex:none;display:flex;align-items:center;gap:8px;height:24px;padding:0 11px;
  border-bottom:1px solid var(--e-line2);background:#111722;
  font:600 9.5px/1 var(--e-mono);color:#6d7f95}
.evo-codebar s{width:8px;height:8px;border-radius:50%;background:#39445a;text-decoration:none}
.evo-code{flex:1;min-height:0;margin:0;padding:11px 0;list-style:none;overflow:hidden}
.evo-code li{display:flex;gap:10px;padding:3px 12px;font:600 11.5px/1.65 var(--e-mono);color:#c3d2e3;white-space:pre-wrap;word-break:break-word}
.evo-code li .ln{flex:none;width:16px;text-align:right;color:#3f4b5f;font-weight:700}
.evo-code li.dg{background:linear-gradient(90deg,rgba(255,63,90,.16),rgba(255,63,90,.02));
  box-shadow:inset 2px 0 0 var(--e-red);color:#ffc4cd}
.evo-code li.dg .ln{color:#ff8296}
.evo-code li.cm,.evo-code li.cm .ln{color:#5d6f85}
.evo-codefoot{flex:none;display:flex;align-items:center;gap:8px;height:24px;padding:0 11px;
  border-top:1px solid var(--e-line2);background:#0d1219;font:700 9.5px/1 var(--e-mono);color:#6d7f95}
.evo-codefoot b{color:#ff9aab;font-weight:800}

/* 3) C&C 서버 레코드 */
.evo-rec{display:grid;gap:9px;margin:0}
.evo-rec > div{display:grid;grid-template-columns:64px minmax(0,1fr);gap:9px;align-items:start}
.evo-rec dt{font:700 9.5px/1.6 var(--e-mono);letter-spacing:.08em;color:#5f7086}
.evo-rec dd{margin:0;min-width:0;font:700 11.5px/1.6 var(--e-mono);color:#dbe6f2;word-break:break-all}
.evo-rec dd.ip{font-size:14px;font-weight:800;color:#ff9aab;letter-spacing:.01em}
.evo-doms{display:grid;gap:5px;margin:0;padding:0;list-style:none}
.evo-doms li{padding:4px 8px;border-radius:6px;border:1px solid var(--e-line2);background:rgba(8,13,22,.7);
  font:600 10.5px/1.45 var(--e-mono);color:#a9bacd;word-break:break-all}
.evo-masknote{margin:10px 0 0;padding-top:9px;border-top:1px dashed var(--e-line2);
  font:600 9.5px/1.55 var(--e-mono);color:#5f7086}

/* 4) 피해 매체 수단 */
.evo-flow{display:grid;gap:8px}
.evo-flow-row{display:grid;grid-template-columns:44px minmax(0,1fr);gap:10px;align-items:center}
.evo-flow-lb{display:inline-flex;align-items:center;justify-content:center;padding:5px 0;border-radius:7px;
  border:1px solid var(--e-line2);background:rgba(8,13,22,.72);
  font:800 10px/1 var(--e-mono);letter-spacing:.08em;color:#8ea0b5}
.evo-flow-row.mv .evo-flow-lb{border-color:rgba(90,176,255,.36);background:rgba(90,176,255,.09);color:#9fcdff}
.evo-flow-arw{margin-left:19px;font:800 12px/1 var(--e-mono);color:#5f7086}
.evo-route{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin:0;padding:0;list-style:none}
.evo-route li{display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border-radius:9px;
  border:1px solid rgba(57,217,138,.34);background:rgba(57,217,138,.08);
  font-size:11.5px;font-weight:700;color:#cdeedd;white-space:nowrap}
.evo-route li.mv{border-color:rgba(90,176,255,.38);background:rgba(90,176,255,.09);color:#cfe6ff}
.evo-route li .evo-arw{font:800 11px/1 var(--e-mono);color:#5ab0ff}
.evo-route li i{width:5px;height:5px;border-radius:50%;background:var(--e-green);box-shadow:0 0 7px var(--e-green);flex:none}
.evo-route li.mv i{background:var(--e-blue);box-shadow:0 0 7px var(--e-blue)}
.evo-routecap{margin:11px 0 0;font-size:11px;line-height:1.7;color:#8496ac}
.evo-routecap b{color:#cfe6ff;font-weight:800}

/* ── 하단 HUD ── */
.evo-hud{position:absolute;left:50%;bottom:16px;z-index:8;transform:translateX(-50%);
  display:flex;align-items:center;gap:10px;max-width:min(92vw,860px);padding:9px 15px;
  border:1px solid var(--e-line);border-radius:999px;background:rgba(8,13,22,.8);backdrop-filter:blur(10px);
  opacity:0;transition:opacity .4s;pointer-events:none;white-space:nowrap}
.evo-cine.is-locked .evo-hud{opacity:1}
.evo-hud-cap{font:800 9.5px/1 var(--e-mono);letter-spacing:.16em;color:#ff8296}
.evo-hud-no{font:800 11px/1 var(--e-mono);color:#fff}
.evo-hud-no s{text-decoration:none;color:#5f7086}
.evo-hud-t{font-size:11.5px;font-weight:800;color:#cfdcea;padding-left:11px;border-left:1px solid var(--e-line);
  overflow:hidden;text-overflow:ellipsis}
.evo-hud-bar{width:110px;height:3px;border-radius:2px;background:rgba(120,150,190,.22);overflow:hidden;flex:none}
.evo-hud-bar i{display:block;height:100%;width:0;background:var(--e-red);box-shadow:0 0 8px rgba(255,63,90,.7)}

/* 전역 CTA 도크가 시네마를 가리지 않게 (tc/svc 시네마와 동일 규칙) */
body.evo-cine-locked .gc-dock{opacity:0;transform:translateY(24px);pointer-events:none}

/* 패널 머리글 접기 표식 — 좁은 화면에서만 보인다 */
.evo-p-cv{display:none;flex:none;width:7px;height:7px;margin-left:9px;
  border-right:1.6px solid #6d7f95;border-bottom:1.6px solid #6d7f95;
  transform:translateY(1px) rotate(-135deg);transition:transform .26s,border-color .26s}

/* ════════════════════════════════════════════════════════════
   슬림 시네마 (≤880px) — 같은 연출을 1열로 재구성하고
   카드는 JS(evo-cine.js)가 무대 박스에 맞춰 scale 로 fit 시킨다.
   카드 안의 글자는 전부 12px 이상(배율 하한 .68 → 실제 렌더 ≥ 8px).
   ════════════════════════════════════════════════════════════ */
.evo-cine.is-slim.is-active{width:100%;margin-left:0}
@supports (height:100svh){
  .evo-cine.is-slim.is-active .evo-sticky{height:100svh}
}
.evo-cine.is-slim.is-active .evo-stage{
  top:calc(var(--evo-top,64px) + 10px);bottom:50px;padding:0 14px;
  display:flex;flex-direction:column;gap:9px;grid-template-columns:none}

/* 연표 — 가로 스크롤 띠가 되지 않게 점 레일로 접는다(현재 항목만 날짜를 편다) */
.evo-cine.is-slim.is-active .evo-axis{
  flex:none;flex-direction:row;flex-wrap:wrap;justify-content:center;align-items:center;
  gap:5px;padding:0;margin:0}
.evo-cine.is-slim.is-active .evo-axis::before,
.evo-cine.is-slim.is-active .evo-axis-cap{display:none}
.evo-cine.is-slim.is-active .evo-tick{
  width:auto;display:inline-flex;align-items:center;padding:5px 4px;overflow:hidden}
.evo-cine.is-slim.is-active .evo-tick::before{
  position:static;left:auto;top:auto;margin:0;flex:none;width:7px;height:7px}
.evo-cine.is-slim.is-active .evo-tick b{
  width:0;margin:0;overflow:hidden;white-space:nowrap;
  font:800 9.5px/1 var(--e-mono);letter-spacing:.03em;
  transition:width .32s cubic-bezier(.2,.75,.2,1),margin .32s cubic-bezier(.2,.75,.2,1)}
.evo-cine.is-slim.is-active .evo-tick.is-on b{width:64px;margin-left:6px}   /* 2026.05.31 까지 들어간다 */
.evo-cine.is-slim.is-active .evo-tick i{display:none}
.evo-cine.is-slim.is-active .evo-tick.is-on::before{transform:scale(1.1)}

/* 카드 무대 */
.evo-cine.is-slim.is-active .evo-cards{flex:1 1 auto;min-height:0;perspective:1150px}
.evo-cine.is-slim.is-active .evo-card{align-items:flex-start;justify-content:center}
.evo-cine.is-slim.is-active .evo-card-in{
  flex:0 0 auto;grid-template-columns:minmax(0,1fr);gap:10px;max-height:none;
  transform-origin:50% 0;will-change:transform}
/* 글자 하한 — 슬림 카드는 JS 가 scale 로 맞추므로(하한 .68) 카드 안의 모든 글자를 12px 이상으로 둔다.
   12 × .68 = 8.16px → 실제 렌더 8px 미만 글자가 생기지 않는다. */
.evo-cine.is-slim.is-active .evo-no,
.evo-cine.is-slim.is-active .evo-date,
.evo-cine.is-slim.is-active .evo-fam{font-size:12px}
.evo-cine.is-slim.is-active .evo-date,
.evo-cine.is-slim.is-active .evo-fam{padding:4px 9px}
.evo-cine.is-slim.is-active .evo-copy h3{margin-top:9px;font-size:23px;letter-spacing:-.038em}
.evo-cine.is-slim.is-active .evo-lead{margin-top:8px;font-size:12.5px;line-height:1.62}
.evo-cine.is-slim.is-active .evo-points{margin-top:9px;gap:5px}
.evo-cine.is-slim.is-active .evo-points li{padding:5px 10px 5px 25px;font-size:12px;line-height:1.5}
.evo-cine.is-slim.is-active .evo-points li::before{top:11px}
.evo-cine.is-slim.is-active .evo-copy .evo-foot{padding-top:8px;font-size:12px;line-height:1.4}

/* 패널 — 1열 스택, 우선순위 순서(앱 → C&C → 코드 → 매체) */
.evo-cine.is-slim.is-active .evo-panels{grid-template-columns:minmax(0,1fr);gap:9px}
.evo-cine.is-slim.is-active .evo-panels > .evo-p{grid-column:auto}
.evo-cine.is-slim.is-active .evo-p-app{order:1}
.evo-cine.is-slim.is-active .evo-p-c2{order:2}
.evo-cine.is-slim.is-active .evo-p-code{order:3}
.evo-cine.is-slim.is-active .evo-p-route{order:4}
.evo-cine.is-slim.is-active .evo-p > h4{height:30px;font-size:12.5px;letter-spacing:.1em;cursor:pointer;-webkit-tap-highlight-color:transparent}
.evo-cine.is-slim.is-active .evo-p > h4 em{font-size:12px;letter-spacing:.04em}
.evo-cine.is-slim.is-active .evo-p > h4:focus-visible{outline:2px solid var(--e-blue);outline-offset:-2px}
.evo-cine.is-slim.is-active .evo-p-body{padding:10px}
.evo-cine.is-slim.is-active .evo-p-cv{display:block}
.evo-cine.is-slim.is-active .evo-p.is-fold .evo-p-body{display:none}
.evo-cine.is-slim.is-active .evo-p.is-fold{background:linear-gradient(180deg,rgba(16,22,33,.72),rgba(9,13,21,.72))}
.evo-cine.is-slim.is-active .evo-p.is-fold > h4{border-bottom:0}
.evo-cine.is-slim.is-active .evo-p.is-fold .evo-p-cv{transform:translateY(-2px) rotate(45deg);border-color:#8fa2b8}
/* 1) 악성앱 */
.evo-cine.is-slim.is-active .evo-apps{gap:7px}
.evo-cine.is-slim.is-active .evo-app{gap:8px;padding:6px 10px 6px 6px}
.evo-cine.is-slim.is-active .evo-app img,
.evo-cine.is-slim.is-active .evo-app .evo-ico-t{width:46px;height:46px}
.evo-cine.is-slim.is-active .evo-app b{font-size:12.5px}
.evo-cine.is-slim.is-active .evo-app span{margin-top:2px;font-size:12px;line-height:1.25}
.evo-cine.is-slim.is-active .evo-app em{margin-top:1px;font-size:12px;line-height:1.25}
.evo-cine.is-slim.is-active .evo-nofile{font-size:12px;line-height:1.5}
.evo-cine.is-slim.is-active .evo-shots{margin-top:9px;padding-top:8px;align-items:center}
.evo-cine.is-slim.is-active .evo-shots > span{font-size:12px;line-height:1.3;letter-spacing:.04em;max-width:60px}
.evo-cine.is-slim.is-active .evo-shots img{width:46px;height:80px}
/* 2) 소스코드 */
.evo-cine.is-slim.is-active .evo-code{overflow:visible;padding:8px 0}
.evo-cine.is-slim.is-active .evo-p-code .evo-p-body{min-height:0}
.evo-cine.is-slim.is-active .evo-codebar,
.evo-cine.is-slim.is-active .evo-codefoot{font-size:12px;height:26px}
.evo-cine.is-slim.is-active .evo-code li{padding:2px 11px;font-size:12px;line-height:1.5}
.evo-cine.is-slim.is-active .evo-code li .ln{width:18px}
/* 3) C&C */
.evo-cine.is-slim.is-active .evo-rec{gap:6px}
.evo-cine.is-slim.is-active .evo-rec > div{grid-template-columns:68px minmax(0,1fr);gap:8px}
.evo-cine.is-slim.is-active .evo-rec dt{font-size:12px;line-height:1.5;letter-spacing:.05em}
.evo-cine.is-slim.is-active .evo-rec dd{font-size:12px;line-height:1.5}
.evo-cine.is-slim.is-active .evo-rec dd.ip{font-size:14px}
.evo-cine.is-slim.is-active .evo-doms{gap:4px}
.evo-cine.is-slim.is-active .evo-doms li{padding:3px 8px;font-size:12px;line-height:1.4}
.evo-cine.is-slim.is-active .evo-masknote{margin-top:8px;padding-top:7px;font-size:12px;line-height:1.4}
/* 4) 피해 매체 */
.evo-cine.is-slim.is-active .evo-flow{gap:6px}
.evo-cine.is-slim.is-active .evo-flow-row{grid-template-columns:46px minmax(0,1fr);gap:8px}
.evo-cine.is-slim.is-active .evo-flow-lb{font-size:12px;letter-spacing:.05em}
.evo-cine.is-slim.is-active .evo-flow-arw{margin-left:20px}
.evo-cine.is-slim.is-active .evo-route{gap:6px}
.evo-cine.is-slim.is-active .evo-route li{padding:6px 10px;font-size:12px;white-space:normal}
.evo-cine.is-slim.is-active .evo-route li .evo-arw{font-size:12px}
.evo-cine.is-slim.is-active .evo-routecap{margin-top:9px;font-size:12px;line-height:1.55}

/* HUD */
.evo-cine.is-slim.is-active .evo-hud{
  left:14px;right:14px;bottom:12px;transform:none;max-width:none;
  gap:8px;padding:8px 12px}
.evo-cine.is-slim.is-active .evo-hud-cap{display:none}
.evo-cine.is-slim.is-active .evo-hud-bar{width:52px}
.evo-cine.is-slim.is-active .evo-hud-t{min-width:0;flex:1 1 auto;padding-left:9px;font-size:11px}

/* 슬림이라도 폭이 남는 구간(태블릿·큰 폰)은 패널을 2열로 묶어 카드를 낮춘다 */
@media (min-width:600px){
  .evo-cine.is-slim.is-active .evo-stage{padding:0 3vw}
  .evo-cine.is-slim.is-active .evo-panels{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
  .evo-cine.is-slim.is-active .evo-copy h3{font-size:27px}
  /* 접힌 패널은 머리글만 남으므로 한 줄 띠로 깔고, 남는 폭은 펼친 패널이 쓴다 */
  .evo-cine.is-slim.is-active .evo-p.is-fold{grid-column:1 / -1}
  .evo-cine.is-slim.is-active .evo-panels:has(> .evo-p-c2.is-fold) > .evo-p-app{grid-column:1 / -1}
}
/* 아주 좁은 폰 — 점 레일이 두 줄로 접히지 않게 간격을 좁힌다 */
@media (max-width:365px){
  .evo-cine.is-slim.is-active .evo-axis{gap:4px}
  .evo-cine.is-slim.is-active .evo-tick{padding:5px 3px}
  .evo-cine.is-slim.is-active .evo-tick.is-on b{width:58px;margin-left:5px}
  .evo-cine.is-slim.is-active .evo-stage{padding:0 12px}
}
/* 가로로 누운 폰처럼 세로가 극히 짧은 화면 — 세로가 아니라 가로가 남으므로
   카피와 패널을 나란히 두고, 접힌 머리글 띠는 두 개씩 한 줄에 놓아 카드 높이를 낮춘다
   (높이가 낮아야 배율 하한 .68 이 지켜진다). */
@media (max-height:520px){
  .evo-cine.is-slim.is-active .evo-stage{top:calc(var(--evo-top,64px) + 6px);bottom:44px;gap:6px}
  .evo-cine.is-slim.is-active .evo-hud{bottom:8px;padding:6px 11px}
  .evo-cine.is-slim.is-active .evo-card-in{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:12px}
  .evo-cine.is-slim.is-active .evo-copy h3{font-size:21px}
  .evo-cine.is-slim.is-active .evo-panels{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-content:start}
  .evo-cine.is-slim.is-active .evo-p.is-fold{grid-column:auto}
  .evo-cine.is-slim.is-active .evo-panels:has(> .evo-p-c2.is-fold) > .evo-p-app{grid-column:auto}
  .evo-cine.is-slim.is-active .evo-p:not(.is-fold){grid-column:1 / -1}
}

/* ════════════════════════════════════════════════════════════
   리스트 모드 — 모바일(≤880px) · 감속 모션 · JS 미실행 폴백
   ════════════════════════════════════════════════════════════ */
.evo-cine:not(.is-active){width:auto;margin-left:0;background:linear-gradient(180deg,#070a10,#0a0f18);
  border-radius:26px;padding:22px 0 26px;overflow:hidden}
.evo-cine:not(.is-active) .evo-sticky,
.evo-cine:not(.is-active) .evo-frame{position:relative;height:auto;transform:none;background:none;overflow:visible}
.evo-cine:not(.is-active) .evo-grid,
.evo-cine:not(.is-active) .evo-tunnel,
.evo-cine:not(.is-active) .evo-warp,
.evo-cine:not(.is-active) .evo-vig,
.evo-cine:not(.is-active) .evo-hud{display:none}
.evo-cine:not(.is-active) .evo-stage{position:relative;inset:auto;top:auto;bottom:auto;padding:0 16px;
  display:block;grid-template-columns:none}
.evo-cine:not(.is-active) .evo-axis{flex-direction:row;flex-wrap:wrap;gap:6px;padding:0 0 4px;margin:0 0 16px}
.evo-cine:not(.is-active) .evo-axis::before{display:none}
.evo-cine:not(.is-active) .evo-axis-cap{position:relative;left:auto;top:auto;display:block;width:100%;margin-bottom:8px}
.evo-cine:not(.is-active) .evo-tick{width:auto;padding:6px 10px;border:1px solid var(--e-line2);border-radius:999px;
  background:rgba(10,16,26,.7)}
.evo-cine:not(.is-active) .evo-tick::before{position:relative;left:auto;top:auto;margin:0 6px 0 0;display:inline-block;vertical-align:middle}
.evo-cine:not(.is-active) .evo-tick b{display:inline-block;vertical-align:middle}
.evo-cine:not(.is-active) .evo-tick i{display:none}
.evo-cine:not(.is-active) .evo-cards{perspective:none;display:grid;gap:16px}
.evo-cine:not(.is-active) .evo-card{position:relative;inset:auto;opacity:1;visibility:visible;transform:none;
  border:1px solid var(--e-line2);border-radius:16px;background:rgba(10,15,24,.6);padding:16px}
.evo-cine:not(.is-active) .evo-card-veil{display:none}
.evo-cine:not(.is-active) .evo-card-in{position:relative;inset:auto;display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
.evo-cine:not(.is-active) .evo-panels{grid-template-rows:none;grid-auto-rows:auto}
.evo-cine:not(.is-active) .evo-p-body{padding:12px}
.evo-cine:not(.is-active) .evo-code{overflow:visible}
/* 리스트 모드의 약한 흡입 — 화면에 들어올 때만 살짝 당겨진다 */
.evo-cine.is-list .evo-card{opacity:.35;transform:scale(.965);transition:opacity .5s ease,transform .5s cubic-bezier(.2,.75,.2,1)}
.evo-cine.is-list .evo-card.is-in{opacity:1;transform:none}

@media (max-width:880px){
  .page-section.evo,body.service-page main > .page-section.evo{padding:64px 0 0}
  .evo-head{grid-template-columns:1fr;gap:14px;align-items:start;margin-bottom:22px}
  .evo-head h2{font-size:clamp(24px,7vw,32px)}
  .evo-head > p{font-size:13px;max-width:none}
  .evo-cine:not(.is-active) .evo-panels{grid-template-columns:minmax(0,1fr)}
  .evo-cine:not(.is-active) .evo-card{padding:14px}
  .evo-copy h3{font-size:20px}
  .evo-shots img{width:52px;height:90px}
  .evo-app b{max-width:none}
}

/* 좁은 데스크톱·짧은 화면 대응 */
@media (max-width:1180px) and (min-width:881px){
  .evo-stage{grid-template-columns:84px minmax(0,1fr);gap:0 16px;padding:0 2.6vw}
  .evo-card-in{grid-template-columns:minmax(220px,29%) minmax(0,1fr);gap:14px}
  .evo-panels{gap:10px}
  .evo-tick i{display:none}
}
@media (max-height:860px) and (min-width:881px){
  .evo-lead{font-size:12px;line-height:1.7}
  .evo-points li{padding:6px 9px 6px 24px;font-size:11px}
  .evo-points li::before{top:12px}
  .evo-shots img{width:48px;height:76px}
  .evo-app img,.evo-app .evo-ico-t{width:38px;height:38px}
  .evo-code li{font-size:11px;line-height:1.5}
}
@media (max-height:740px) and (min-width:881px){
  .evo-copy h3{font-size:21px}
  /* 회사 관측 기록 문장은 숨기지 않는다 — 줄 수만 줄여 유지 */
  .evo-lead{font-size:12.5px;line-height:1.55;-webkit-line-clamp:3;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}
  .evo-shots img{width:44px;height:78px}
}

@media (prefers-reduced-motion:reduce){
  .evo-cine.is-list .evo-card{opacity:1;transform:none;transition:none}
}

/* ==== /assets/css/hc3d.css?v=20260903v ==== */
/* ============================================================
   HYPER CLOUD V3 — 피해자 스마트폰 × 실드 스크롤 3D 체험 (hc3d)
   /service/solution · #products 카드 뒤 · #demo-intel 앞 (legacy.html #hc-experience)
   접두사 hc3d- (hc-infra 의 hci- 와 충돌 없음)
   - 스크롤 컨테이너(500vh · ≤880px 400vh)
     > .hc3d-in(라이트→다크 12vh, 흐름) → sticky 100vh 스테이지 → .hc3d-out(다크→라이트, 섹션 하단 절대)
   - 카피: 데스크톱 좌/우 교차, ≤880px 상/하 교차 (translateX 리빌 금지 — opacity + translateY 18px)
   - .hc3d-nogl : WebGL 실패 — 키비주얼 정지 이미지 + 카피 세로 나열
   - .is-static  : prefers-reduced-motion — 완성 정지 프레임 + 카피 전부 표시
   ============================================================ */

.hc3d{
  --hc3d-bg:#05070c;
  --hc3d-ink:#f4f7fb;
  --hc3d-ice:#8ee0ff;
  --hc3d-mute:rgba(244,247,251,.62);
  --hc3d-font:"Pretendard Variable",Pretendard,"Noto Sans KR","Apple SD Gothic Neo",Inter,Arial,sans-serif;
  position:relative;
  height:500vh;
  margin:0;
  background:var(--hc3d-bg);
  color:var(--hc3d-ink);
  font-family:var(--hc3d-font);
  -webkit-font-smoothing:antialiased;
}
/* site.css .page-section 의 padding:100px 0 은 스크롤 컨테이너에 쓰지 않는다 */
.hc3d.page-section,
body.service-page .hc3d.page-section{padding:0;border:0;background:var(--hc3d-bg);color:var(--hc3d-ink)}

/* 앞(#products 라이트) → 다크 스튜디오 완충, 뒤(#demo-intel 라이트) 완충 */
.hc3d-in{height:12vh;background:linear-gradient(180deg,#f5f9fc 0%,#d3dde6 20%,#5b6876 52%,#1a2230 78%,var(--hc3d-bg) 100%)}
.hc3d-out{position:absolute;left:0;right:0;bottom:0;height:12vh;z-index:3;pointer-events:none;
  background:linear-gradient(180deg,rgba(5,7,12,0) 0%,rgba(5,7,12,.35) 38%,#1a2230 62%,#6b7886 82%,#f5f9fc 100%)}

/* ── sticky 스테이지 ── */
.hc3d-sticky{
  position:sticky;top:0;
  height:100vh;
  overflow:hidden;overflow:clip;
  background:var(--hc3d-bg);
  touch-action:pan-y;
  user-select:none;-webkit-user-select:none;
  isolation:isolate;
}
.hc3d-gl{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:grab;z-index:0}
.hc3d-gl.is-drag{cursor:grabbing}

/* WebGL 실패 — 키비주얼 정지 이미지 */
.hc3d-still{position:absolute;inset:0;display:none;z-index:0;
  background:radial-gradient(60% 50% at 66% 50%,rgba(58,151,230,.20),rgba(5,7,12,0) 70%),linear-gradient(180deg,#0b1220,var(--hc3d-bg))}
.hc3d-still img{position:absolute;right:6vw;top:50%;width:min(46vw,760px);height:auto;transform:translateY(-50%);
  border-radius:22px;box-shadow:0 40px 90px rgba(0,0,0,.55),0 0 0 1px rgba(120,190,255,.14)}
.hc3d-nogl .hc3d-gl{display:none}
.hc3d-nogl .hc3d-still{display:block}

/* ── 오버레이 레이어 ── */
.hc3d-ui{position:absolute;inset:0;z-index:2;pointer-events:none}

/* 상단 고정 소형 워드마크(비트 2·4 브랜드 앵커, 정적 점 — 점멸 없음) */
.hc3d-brand{position:absolute;left:6vw;top:calc(var(--cine-top,92px) + 28px);margin:0;
  font-size:13px;font-weight:600;letter-spacing:.26em;line-height:1;color:rgba(244,247,251,.72);opacity:0;will-change:opacity}
.hc3d-brand i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--hc3d-ice);vertical-align:1px;margin-right:12px}

/* 카피 블록 — 데스크톱 좌/우 교차 (리빌 = opacity + translateY, 1.1s cubic-bezier 감각은 JS 이징) */
.hc3d-copy{position:absolute;top:calc(50% + var(--cine-top,92px) * .5);width:min(680px,46vw);margin:0;opacity:0;visibility:hidden;
  --hc3d-y:18px;transform:translate3d(0,calc(-50% + var(--hc3d-y)),0);will-change:opacity,transform}
.hc3d-copy.is-on{visibility:visible}
.hc3d-l{left:6vw;text-align:left}
.hc3d-r{right:6vw;text-align:right}
.hc3d-kicker{margin:0 0 22px;font-size:14px;font-weight:600;letter-spacing:.24em;line-height:1;color:var(--hc3d-ice);text-transform:uppercase}
.hc3d-copy h2{margin:0;font-size:clamp(34px,4.2vw,64px);font-weight:700;letter-spacing:-.04em;line-height:1.12;color:var(--hc3d-ink);word-break:keep-all}
.hc3d-mark{margin:0;font-size:clamp(28px,3.2vw,50px);font-weight:600;letter-spacing:.12em;line-height:1.05;white-space:nowrap;color:var(--hc3d-ink);max-width:40vw;overflow:visible}
.hc3d-stat{display:flex;flex-direction:column;align-items:flex-end;gap:0}
.hc3d-stat-l{font-size:clamp(22px,2.2vw,32px);font-weight:600;letter-spacing:-.03em;line-height:1.2;color:rgba(244,247,251,.86)}
.hc3d-num{display:flex;align-items:baseline;justify-content:flex-end;gap:4px;margin:2px 0 6px;
  font-size:clamp(112px,12.5vw,184px);font-weight:700;letter-spacing:-.06em;line-height:.96;color:var(--hc3d-ink);font-variant-numeric:tabular-nums}
.hc3d-num b{font-weight:700;display:inline-block;min-width:2ch;text-align:right}
.hc3d-num small{font-size:.42em;font-weight:600;letter-spacing:-.02em;color:var(--hc3d-ice)}
.hc3d-link{display:inline-flex;align-items:center;gap:6px;margin-top:22px;padding:10px 0 4px;
  font-size:13px;font-weight:600;letter-spacing:.08em;color:rgba(244,247,251,.72);text-decoration:none;
  border-bottom:1px solid rgba(244,247,251,.22);pointer-events:none;transition:color .35s ease,border-color .35s ease}
.hc3d-copy.is-on .hc3d-link{pointer-events:auto}
.hc3d-link:hover,.hc3d-link:focus-visible{color:var(--hc3d-ice);border-color:rgba(142,224,255,.6);outline:none}

/* HUD — 좌하단(우하단은 사이트 고정 상담 도크 .gc-dock 자리): 드래그 힌트(아이콘 + DRAG) · 텍스트 없는 진행 레일 */
.hc3d-hud{position:absolute;left:6vw;bottom:34px;display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.hc3d-drag{display:flex;align-items:center;gap:9px;font-size:11px;font-weight:600;letter-spacing:.26em;line-height:1;color:rgba(244,247,251,.58);opacity:0;will-change:opacity}
.hc3d-drag svg{width:20px;height:20px;display:block;color:rgba(244,247,251,.78)}
.hc3d-rail{display:flex;gap:6px;align-items:center}
.hc3d-rail i{display:block;position:relative;width:22px;height:2px;border-radius:2px;background:rgba(244,247,251,.16);overflow:hidden}
.hc3d-rail i::after{content:"";position:absolute;inset:0;background:var(--hc3d-ice);transform:scaleX(var(--f,0));transform-origin:left center}

/* ── 정지 상태(reduced-motion / no-gl): 카피 세로 나열(좌) + 폰/키비주얼(우) ── */
.is-static .hc3d-copy{position:static;transform:none;opacity:1;visibility:visible;width:auto;text-align:left;margin:0 0 30px}
.is-static .hc3d-copy:last-of-type{margin-bottom:0}
.is-static .hc3d-stack{position:absolute;left:6vw;top:calc(50% + var(--cine-top,92px) * .5);transform:translateY(-50%);width:min(560px,44vw)}
.is-static .hc3d-stat{align-items:flex-start}
.is-static .hc3d-num{justify-content:flex-start}
.is-static [data-hc3d-copy="3"],.is-static [data-hc3d-copy="5"] .hc3d-kicker{display:none}
.is-static .hc3d-copy h2{font-size:clamp(26px,2.7vw,40px)}
.is-static .hc3d-num{font-size:clamp(88px,8.5vw,132px)}
.is-static .hc3d-link{pointer-events:auto}
.is-static .hc3d-brand,.is-static .hc3d-hud{display:none}

/* ── 반응형 ── */
@media (max-width:1180px){
  .hc3d-copy{width:min(600px,48vw)}
  .hc3d-mark{font-size:clamp(28px,3.4vw,48px)}
}
@media (max-width:880px){
  .hc3d{height:400vh}
  /* 상/하 카피 가독을 위한 정적 그라디언트(위 얕게 · 아래 56vh) */
  .hc3d-sticky::before{content:"";position:absolute;left:0;right:0;top:0;height:38vh;z-index:1;pointer-events:none;
    background:linear-gradient(180deg,rgba(5,7,12,.82) 0%,rgba(5,7,12,.42) 55%,rgba(5,7,12,0) 100%)}
  .hc3d-sticky::after{content:"";position:absolute;left:0;right:0;bottom:0;height:56vh;z-index:1;pointer-events:none;
    background:linear-gradient(180deg,rgba(5,7,12,0) 0%,rgba(5,7,12,.5) 45%,rgba(5,7,12,.84) 100%)}
  .hc3d-copy{width:88vw;left:6vw;right:auto;text-align:left;top:auto;transform:translate3d(0,var(--hc3d-y),0)}
  .hc3d-copy.hc3d-t{top:calc(var(--cine-top,76px) + 4vh)}
  .hc3d-copy.hc3d-b{bottom:13vh}
  .hc3d-copy h2{font-size:clamp(30px,7.4vw,44px)}
  .hc3d-mark{font-size:clamp(26px,7vw,40px);max-width:88vw}
  .hc3d-stat{align-items:flex-start}
  .hc3d-num{justify-content:flex-start;font-size:clamp(96px,30vw,150px)}
  .hc3d-kicker{margin-bottom:14px}
  .hc3d-brand{display:none}
  .hc3d-hud{left:auto;right:6vw;top:calc(var(--cine-top,76px) + 18px);bottom:auto;align-items:flex-end;gap:10px}
  .hc3d-rail{display:none}
  .is-static .hc3d-stack{position:static;transform:none;width:auto;padding:calc(var(--cine-top,76px) + 6vh) 6vw 8vh}
  .is-static .hc3d-copy{margin-bottom:22px}
  .is-static .hc3d-copy h2{font-size:clamp(24px,6.4vw,34px)}
  .is-static .hc3d-num{font-size:clamp(76px,22vw,110px)}
  .hc3d-still img{right:auto;left:50%;top:auto;bottom:8vh;width:min(84vw,520px);transform:translateX(-50%)}
  .is-static .hc3d-still img{opacity:.35}
}
@media (max-width:480px){
  .hc3d-copy.hc3d-b{bottom:11vh}
  .hc3d-num{font-size:clamp(88px,34vw,130px)}
}
@media (prefers-reduced-motion:reduce){
  .hc3d-link{transition:none}
}

/* ==== /assets/css/hc3d-infra.css?v=20260904b ==== */
/* ============================================================
   HYPER CLOUD V3 — 악성 앱 투입 → 인프라 노출 스크롤 3D (hc3d-infra)
   /service/solution · legacy.html #demo-intel 안 · .demo-cat 뒤 · #hypercloud(2D) 앞
   접두사 hc3i- (hc3d- / hci- 와 충돌 없음)
   - 스크롤 컨테이너(480vh · ≤880px 390vh)
     > .hc3i-in(라이트 .demo-cat 레일 → 다크 스테이지, 크리스프 에지 + 아이스 헤어라인) → sticky 100vh 스테이지
     > .hc3i-out(다크→라이트, 하단 절대)
   - 라벨은 JS 가 투영 좌표로 배치(.hc3i-lab, 노드 투영 박스 밖 · 위/아래 × 좌/우) · 프로스트 플레이트 · 최소 글자 10px(≤880px 9px)
   - .hc3i-nogl : WebGL 실패 — 키비주얼 정지 이미지 + 카피
   - .is-static  : prefers-reduced-motion — 전개 완료 정지 프레임 + 라벨
   ============================================================ */

.hc3i{
  --hc3i-bg:#05070c;
  --hc3i-ink:#f4f7fb;
  --hc3i-ice:#8ee0ff;
  --hc3i-red:#ff4d6a;
  --hc3i-vio:#b39cff;
  --hc3i-mute:rgba(244,247,251,.62);
  --hc3i-font:"Pretendard Variable",Pretendard,"Noto Sans KR","Apple SD Gothic Neo",Inter,Arial,sans-serif;
  position:relative;
  height:480vh;
  margin:14px 0 0;
  padding:0;
  border:0;
  background:var(--hc3i-bg);
  color:var(--hc3i-ink);
  font-family:var(--hc3i-font);
  -webkit-font-smoothing:antialiased;
}
body.service-page .hc3i{background:var(--hc3i-bg);color:var(--hc3i-ink)}

/* 앞(.demo-cat 라이트 레일) → 다크 스테이지: 긴 그라디언트 대신 크리스프 에지(흰 띠가 번져 보이지 않게).
   레일과 스테이지 사이 1px 아이스 헤어라인이 경계를 의도된 패널 시작으로 읽히게 한다 */
.hc3i-in{height:1px;background:linear-gradient(90deg,rgba(142,224,255,0) 0%,rgba(142,224,255,.55) 18%,rgba(142,224,255,.55) 82%,rgba(142,224,255,0) 100%)}
/* 뒤(#hypercloud 라이트 셸) 완충 */
.hc3i-out{position:absolute;left:0;right:0;bottom:0;height:12vh;z-index:3;pointer-events:none;
  background:linear-gradient(180deg,rgba(5,7,12,0) 0%,rgba(5,7,12,.35) 36%,#1a2230 60%,#6b7886 80%,#fbfdfe 100%)}

/* ── sticky 스테이지 ── */
.hc3i-sticky{
  position:sticky;top:0;
  height:100vh;
  overflow:hidden;overflow:clip;
  background:var(--hc3i-bg);
  touch-action:pan-y;
  user-select:none;-webkit-user-select:none;
  isolation:isolate;
}
.hc3i-gl{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:grab;z-index:0}
.hc3i-gl.is-drag{cursor:grabbing}

/* WebGL 실패 — 키비주얼 정지 이미지 */
.hc3i-still{position:absolute;inset:0;display:none;z-index:0;
  background:radial-gradient(60% 50% at 66% 50%,rgba(58,151,230,.20),rgba(5,7,12,0) 70%),linear-gradient(180deg,#0b1220,var(--hc3i-bg))}
.hc3i-still img{position:absolute;right:6vw;top:50%;width:min(46vw,760px);height:auto;transform:translateY(-50%);
  border-radius:22px;box-shadow:0 40px 90px rgba(0,0,0,.55),0 0 0 1px rgba(120,190,255,.14)}
.hc3i-nogl .hc3i-gl{display:none}
.hc3i-nogl .hc3i-still{display:block}
.hc3i-nogl .hc3i-labels,.hc3i-nogl .hc3i-tag,.hc3i-nogl .hc3i-hud{display:none}
.hc3i-nogl .hc3i-copy{opacity:1;visibility:visible;transform:none}

/* ── 오버레이 ── */
.hc3i-ui{position:absolute;inset:0;z-index:2;pointer-events:none}

/* 카피 — 좌상단(오너 승인 문구만) */
.hc3i-copy{position:absolute;left:6vw;top:calc(var(--cine-top,92px) + 7vh);width:min(680px,52vw);margin:0;opacity:0;visibility:hidden;
  --hc3i-y:16px;transform:translate3d(0,var(--hc3i-y),0);will-change:opacity,transform}
.hc3i-copy.is-on{visibility:visible}
.hc3i-kicker{margin:0 0 20px;font-size:14px;font-weight:600;letter-spacing:.24em;line-height:1;color:var(--hc3i-ice);text-transform:uppercase}
.hc3i-copy h2{margin:0;font-size:clamp(30px,3.6vw,56px);font-weight:700;letter-spacing:-.04em;line-height:1.14;color:var(--hc3i-ink);word-break:keep-all}

/* 투입 앱 태그 — 슬랩 투영 좌표 옆(JS 배치) */
.hc3i-tag{position:absolute;left:0;top:0;display:flex;flex-direction:column;align-items:flex-end;gap:5px;padding:0 14px 0 0;opacity:0;
  border-right:1px solid rgba(255,77,106,.55);transform:translate3d(-9999px,0,0);will-change:transform,opacity;white-space:nowrap}
.hc3i-tag b{font-size:15px;font-weight:700;letter-spacing:-.01em;line-height:1;color:var(--hc3i-ink)}
.hc3i-tag small{font-size:11px;font-weight:600;letter-spacing:.14em;line-height:1;color:var(--hc3i-red);text-transform:uppercase}

/* 노드 라벨 — JS 가 translate3d 로 배치(노드 투영 박스 밖 · 위/아래 × 좌/우), 겹치면 우선순위 낮은 것부터 숨김
   앵커(점)는 노드 가장자리, 리더 1px 이 텍스트까지. 텍스트는 프로스트 플레이트(.hc3i-lab-t) 위 — 라인 다발·링 위에서도 판독 */
.hc3i-labels{position:absolute;inset:0;overflow:hidden}
.hc3i-lab{position:absolute;left:0;top:0;display:flex;flex-direction:column;align-items:flex-start;padding:0 0 10px 9px;
  opacity:0;visibility:hidden;transform:translate3d(-9999px,-9999px,0);will-change:transform,opacity;white-space:nowrap;line-height:1}
.hc3i-lab::before{content:"";position:absolute;left:0;bottom:0;width:1px;height:100%;background:var(--lab,rgba(244,247,251,.5));opacity:.6}
.hc3i-lab::after{content:"";position:absolute;left:-2px;bottom:-2px;width:5px;height:5px;border-radius:50%;background:var(--lab,rgba(244,247,251,.8));
  box-shadow:0 0 8px var(--lab,rgba(244,247,251,.6))}
.hc3i-lab-t{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:5px 8px 5px 7px;border-radius:7px;
  background:rgba(6,9,15,.58);border:1px solid rgba(244,247,251,.09);box-shadow:0 8px 22px rgba(0,0,0,.30);
  -webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}
.hc3i-lab b{font-size:12px;font-weight:600;letter-spacing:.01em;color:var(--hc3i-ink);font-variant-numeric:tabular-nums;
  text-shadow:0 1px 2px rgba(5,7,12,.7)}
.hc3i-lab small{font-size:10px;font-weight:600;letter-spacing:.12em;color:var(--lab,var(--hc3i-mute));text-transform:uppercase;
  text-shadow:0 1px 2px rgba(5,7,12,.7)}
.hc3i-lab.is-on{visibility:visible}
.hc3i-lab.is-flip{align-items:flex-end;padding:0 9px 10px 0}
.hc3i-lab.is-flip .hc3i-lab-t{align-items:flex-end;padding:5px 7px 5px 8px}
.hc3i-lab.is-flip::before{left:auto;right:0}
.hc3i-lab.is-flip::after{left:auto;right:-2px}
/* 노드 아래 배치 — 점·리더가 위쪽 */
.hc3i-lab.is-below{padding:10px 0 0 9px}
.hc3i-lab.is-below.is-flip{padding:10px 9px 0 0}
.hc3i-lab.is-below::after{bottom:auto;top:-2px}
.hc3i-lab.t-c2{--lab:#ff6f86}
.hc3i-lab.t-net{--lab:#ffb28a}
.hc3i-lab.t-srv{--lab:#ff8f9f}
.hc3i-lab.t-dom{--lab:#8ee0ff}
.hc3i-lab.t-acc{--lab:#b39cff}
.hc3i-lab.t-app{--lab:#c9a6b2}

/* HUD — 좌하단(우하단은 사이트 고정 상담 도크 .gc-dock 자리): 카운터 · 앱 칩 · 드래그 힌트 */
.hc3i-hud{position:absolute;left:6vw;bottom:36px;display:flex;flex-direction:column;align-items:flex-start;gap:18px;max-width:min(640px,60vw)}
.hc3i-stats{display:flex;gap:34px;margin:0;opacity:0;will-change:opacity}
.hc3i-stats > div{display:flex;flex-direction:column;gap:6px}
.hc3i-stats dt{font-size:11px;font-weight:600;letter-spacing:.24em;line-height:1;color:rgba(244,247,251,.58)}
.hc3i-stats dd{margin:0;font-size:clamp(34px,3.4vw,48px);font-weight:700;letter-spacing:-.05em;line-height:.96;color:var(--hc3i-ink);font-variant-numeric:tabular-nums;min-width:2ch}
.hc3i-stats dd::after{content:"";display:inline-block;width:6px;height:6px;margin:0 0 3px 6px;border-radius:50%;background:var(--dot,var(--hc3i-ice));vertical-align:baseline}
.hc3i-stats > div:nth-child(1){--dot:#ff6f86}
.hc3i-stats > div:nth-child(2){--dot:#8ee0ff}
.hc3i-stats > div:nth-child(3){--dot:#b39cff}

.hc3i-chips{display:flex;flex-wrap:wrap;gap:8px;opacity:0;will-change:opacity;pointer-events:none}
.hc3i-chips.is-on{pointer-events:auto}
.hc3i-chip{display:inline-flex;align-items:center;gap:9px;margin:0;padding:6px 12px 6px 6px;border:1px solid rgba(244,247,251,.14);border-radius:999px;
  background:rgba(12,17,26,.72);color:rgba(244,247,251,.8);font:600 12px/1 var(--hc3i-font);letter-spacing:.02em;cursor:pointer;
  transition:border-color .25s ease,color .25s ease,background .25s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.hc3i-chip img{width:22px;height:22px;border-radius:7px;display:block;object-fit:cover;background:#0b0f16}
.hc3i-chip small{font-size:10px;font-weight:600;letter-spacing:.12em;color:rgba(244,247,251,.42);text-transform:uppercase;margin-left:2px}
.hc3i-chip:hover,.hc3i-chip:focus-visible{border-color:rgba(142,224,255,.5);color:var(--hc3i-ink);outline:none}
.hc3i-chip[aria-pressed="true"]{border-color:rgba(255,77,106,.62);background:rgba(40,14,22,.78);color:var(--hc3i-ink)}
.hc3i-chip[aria-pressed="true"] small{color:#ff8f9f}

.hc3i-drag{display:flex;align-items:center;gap:9px;font-size:11px;font-weight:600;letter-spacing:.26em;line-height:1;color:rgba(244,247,251,.58);opacity:0;will-change:opacity}
.hc3i-drag svg{width:20px;height:20px;display:block;color:rgba(244,247,251,.78)}

/* ── 정지 상태(reduced-motion / no-gl) ── */
.is-static .hc3i-copy{opacity:1;visibility:visible;transform:none}
.is-static .hc3i-stats,.is-static .hc3i-chips{opacity:1}
.is-static .hc3i-chips{pointer-events:auto}
.is-static .hc3i-drag,.is-static .hc3i-tag{display:none}

/* ── 반응형 ── */
@media (max-width:1180px){
  .hc3i-copy{width:min(600px,56vw)}
}
@media (max-width:880px){
  .hc3i{height:390vh}
  /* 상/하 가독 스크림(정적) */
  .hc3i-sticky::before{content:"";position:absolute;left:0;right:0;top:0;height:34vh;z-index:1;pointer-events:none;
    background:linear-gradient(180deg,rgba(5,7,12,.84) 0%,rgba(5,7,12,.42) 55%,rgba(5,7,12,0) 100%)}
  .hc3i-sticky::after{content:"";position:absolute;left:0;right:0;bottom:0;height:40vh;z-index:1;pointer-events:none;
    background:linear-gradient(180deg,rgba(5,7,12,0) 0%,rgba(5,7,12,.5) 50%,rgba(5,7,12,.86) 100%)}
  .hc3i-copy{width:88vw;top:calc(var(--cine-top,76px) + 4vh)}
  .hc3i-copy h2{font-size:clamp(26px,6.8vw,40px)}
  .hc3i-kicker{margin-bottom:14px}
  .hc3i-lab b{font-size:11px}
  .hc3i-lab small{font-size:9px;letter-spacing:.1em}
  .hc3i-lab-t{padding:4px 7px 4px 6px;gap:3px;border-radius:6px}
  .hc3i-tag b{font-size:14px}
  .hc3i-hud{left:6vw;right:6vw;bottom:calc(max(18px,env(safe-area-inset-bottom)) + 88px);max-width:none;gap:14px}
  .hc3i-stats{gap:24px}
  .hc3i-stats dd{font-size:clamp(28px,8vw,40px)}
  .hc3i-stats dt{font-size:10px;letter-spacing:.2em}
  .hc3i-chip{padding:5px 10px 5px 5px;font-size:11px}
  .hc3i-chip img{width:20px;height:20px}
  .hc3i-chip small{display:none}
  .hc3i-drag{display:none}
  .hc3i-still img{right:auto;left:50%;top:auto;bottom:8vh;width:min(84vw,520px);transform:translateX(-50%)}
}
@media (prefers-reduced-motion:reduce){
  .hc3i-chip{transition:none}
}

/* ==== /assets/css/tech3d.css?v=20260904d ==== */
/* ============================================================
   Technology Explorer — 8기술 3D 투어 (tech3d)
   /service/solution · #systems(2D 콘솔) 바로 위 · 접두사 tech3d- (tcon-/hc3d-/hc3i- 와 충돌 없음)
   - 스크롤 컨테이너(960vh · ≤880px 760vh)
     > .tech3d-in(라이트→다크 12vh) → sticky 100vh 스테이지 → .tech3d-out(다크→라이트, 하단 절대)
   - 카피: 데스크톱 좌측 오프축 자리(3D 는 우측 투영) · ≤880px 상단 카피 / 하단 3D
   - 레일: 데스크톱 우측 세로 8단계 · ≤880px 하단 가로 8칸 (sys 그룹 3색 · 점멸 없음)
   - 라벨(.tech3d-lab)은 JS 가 투영 좌표로 배치 · 프로스트 플레이트 · 최소 12px(≤880px 11/10px)
   - .tech3d-nogl : WebGL 실패 — 정지 키비주얼 + 8기술 카피 목록
   - .is-static   : prefers-reduced-motion — 비트 4 정지 프레임 + 카피 전부 표시
     (정지 상태 레이아웃: 헤드 → 정지 캔버스(56vh 카드) → 레일 → 카피 그리드. .tech3d-ui 는 display:contents 로 풀어 sticky 의 flex 열에 합류)
   - 꼬리 홀드: JS 가 섹션 높이를 inline 으로 늘리므로 overflow-anchor:none (브라우저 스크롤 앵커링이 끼어들지 않게)
   ============================================================ */

.tech3d{
  --t3-bg:#05070c;
  --t3-ink:#f4f7fb;
  --t3-mute:rgba(244,247,251,.62);
  --t3-ice:#8ee0ff;
  --t3-vio:#b39cff;
  --t3-warm:#ffb28a;
  --t3-red:#ff4d6a;
  --t3-g:var(--t3-ice);
  --t3-font:"Pretendard Variable",Pretendard,"Noto Sans KR","Apple SD Gothic Neo",Inter,Arial,sans-serif;
  position:relative;
  height:960vh;
  margin:0;
  overflow-anchor:none;
  background:var(--t3-bg);
  color:var(--t3-ink);
  font-family:var(--t3-font);
  -webkit-font-smoothing:antialiased;
}
/* site.css .page-section 의 padding:100px 0 은 스크롤 컨테이너에 쓰지 않는다 */
.tech3d.page-section,
body.service-page main > .tech3d.page-section{padding:0;border:0;background:var(--t3-bg);color:var(--t3-ink)}

.tech3d-in{height:12vh;background:linear-gradient(180deg,#f5f9fc 0%,#d3dde6 20%,#5b6876 52%,#1a2230 78%,var(--t3-bg) 100%)}
.tech3d-out{position:absolute;left:0;right:0;bottom:0;height:12vh;z-index:3;pointer-events:none;
  background:linear-gradient(180deg,rgba(5,7,12,0) 0%,rgba(5,7,12,.35) 38%,#1a2230 62%,#6b7886 82%,#f5f9fc 100%)}

/* ── sticky 스테이지 ── */
.tech3d-sticky{
  position:sticky;top:0;
  height:100vh;
  overflow:hidden;overflow:clip;
  background:var(--t3-bg);
  touch-action:pan-y;
  user-select:none;-webkit-user-select:none;
  isolation:isolate;
}
.tech3d-gl{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:0}

/* WebGL 실패 — 정지 키비주얼(CSS) */
.tech3d-still{position:absolute;inset:0;display:none;z-index:0;overflow:hidden;
  background:radial-gradient(48% 42% at 68% 56%,rgba(58,151,230,.22),rgba(5,7,12,0) 70%),linear-gradient(180deg,#0b1220,var(--t3-bg))}
.tech3d-still::before{content:"";position:absolute;left:68%;top:56%;width:min(52vw,720px);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;
  background:repeating-radial-gradient(circle at center,rgba(142,224,255,.16) 0 1px,rgba(142,224,255,0) 1px 56px);
  -webkit-mask-image:radial-gradient(circle,#000 30%,transparent 72%);mask-image:radial-gradient(circle,#000 30%,transparent 72%)}
.tech3d-still::after{content:"";position:absolute;left:68%;top:56%;width:min(22vw,300px);aspect-ratio:1;transform:translate(-50%,-50%) rotate(28deg);border-radius:22%;
  background:linear-gradient(135deg,#1c2432,#0a0e16);box-shadow:0 40px 90px rgba(0,0,0,.6),inset 0 0 0 1px rgba(142,224,255,.22),0 0 60px rgba(58,151,230,.18)}
.tech3d-nogl .tech3d-gl{display:none}
.tech3d-nogl .tech3d-still{display:block}

/* ── 오버레이 ── */
.tech3d-ui{position:absolute;inset:0;z-index:2;pointer-events:none}

/* 섹션 헤드(도입부 — 승인 문구) */
.tech3d-head{position:absolute;left:6vw;top:calc(var(--cine-top,92px) + 9vh);width:min(760px,60vw);margin:0;opacity:0;visibility:hidden;
  --t3-y:16px;transform:translate3d(0,var(--t3-y),0);will-change:opacity,transform}
.tech3d-head.is-on{visibility:visible}
.tech3d-kicker{margin:0 0 20px;font-size:14px;font-weight:600;letter-spacing:.24em;line-height:1;color:var(--t3-ice);text-transform:uppercase}
.tech3d-head h2{margin:0;font-size:clamp(32px,4vw,60px);font-weight:700;letter-spacing:-.045em;line-height:1.12;color:var(--t3-ink);word-break:keep-all}
.tech3d-head p{margin:22px 0 0;font-size:17px;line-height:1.7;color:var(--t3-mute);word-break:keep-all}

/* 비트 카피 블록 — 좌측 오프축 자리(3D 는 우측), 세로 중앙 */
.tech3d-copy{position:absolute;left:6vw;top:calc(50% + var(--cine-top,92px) * .5);width:min(520px,36vw);margin:0;opacity:0;visibility:hidden;
  --t3-y:18px;transform:translate3d(0,calc(-50% + var(--t3-y)),0);will-change:opacity,transform}
.tech3d-copy.is-on{visibility:visible}
.tech3d-copy.g-analysis{--t3-g:var(--t3-ice)}
.tech3d-copy.g-cs{--t3-g:var(--t3-vio)}
.tech3d-copy.g-scanner{--t3-g:var(--t3-warm)}
.tech3d-sys{display:flex;align-items:center;flex-wrap:wrap;gap:10px 12px;margin:0 0 18px;font-size:13px;font-weight:600;letter-spacing:.06em;line-height:1.2;color:var(--t3-g)}
.tech3d-sys i{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--t3-g);box-shadow:0 0 12px var(--t3-g)}
.tech3d-sys em{font-style:normal;font-weight:600;letter-spacing:.18em;color:var(--t3-mute);font-variant-numeric:tabular-nums}
.tech3d-sys span{color:rgba(244,247,251,.78)}
.tech3d-copy h3{margin:0;font-size:clamp(28px,2.6vw,42px);font-weight:700;letter-spacing:-.04em;line-height:1.16;color:var(--t3-ink);word-break:keep-all}
.tech3d-desc{margin:18px 0 0;font-size:15px;line-height:1.75;color:rgba(244,247,251,.74);word-break:keep-all}
.tech3d-flow{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 0;padding:0;list-style:none;counter-reset:t3f}
.tech3d-flow li{counter-increment:t3f;display:inline-flex;align-items:center;gap:8px;padding:7px 12px 7px 9px;border-radius:999px;
  border:1px solid rgba(244,247,251,.14);background:rgba(12,17,26,.66);font-size:12px;font-weight:600;letter-spacing:.01em;line-height:1.2;color:rgba(244,247,251,.82);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);word-break:keep-all}
.tech3d-flow li::before{content:counter(t3f,decimal-leading-zero);font-size:10px;font-weight:700;letter-spacing:.1em;color:var(--t3-g);font-variant-numeric:tabular-nums}

/* 투영 라벨 — hc3i-lab 언어(앵커 점 + 리더 1px + 프로스트 플레이트) */
.tech3d-labels{position:absolute;inset:0;overflow:hidden}
.tech3d-lab{position:absolute;left:0;top:0;display:flex;flex-direction:column;align-items:flex-start;padding:0 0 10px 9px;
  opacity:0;visibility:hidden;transform:translate3d(-9999px,-9999px,0);will-change:transform,opacity;white-space:nowrap;line-height:1}
.tech3d-lab::before{content:"";position:absolute;left:0;bottom:0;width:1px;height:100%;background:var(--lab,rgba(244,247,251,.5));opacity:.6}
.tech3d-lab::after{content:"";position:absolute;left:-2px;bottom:-2px;width:5px;height:5px;border-radius:50%;background:var(--lab,rgba(244,247,251,.8));box-shadow:0 0 8px var(--lab,rgba(244,247,251,.6))}
.tech3d-lab-t{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:5px 8px 5px 7px;border-radius:7px;
  background:rgba(6,9,15,.62);border:1px solid rgba(244,247,251,.09);box-shadow:0 8px 22px rgba(0,0,0,.30);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}
.tech3d-lab b{font-size:12px;font-weight:600;letter-spacing:.01em;color:var(--t3-ink);font-variant-numeric:tabular-nums;text-shadow:0 1px 2px rgba(5,7,12,.7)}
.tech3d-lab small{font-size:10px;font-weight:600;letter-spacing:.12em;color:var(--lab,var(--t3-mute));text-transform:uppercase;text-shadow:0 1px 2px rgba(5,7,12,.7)}
.tech3d-lab.is-on{visibility:visible}
.tech3d-lab.is-flip{align-items:flex-end;padding:0 9px 10px 0}
.tech3d-lab.is-flip .tech3d-lab-t{align-items:flex-end;padding:5px 7px 5px 8px}
.tech3d-lab.is-flip::before{left:auto;right:0}
.tech3d-lab.is-flip::after{left:auto;right:-2px}
.tech3d-lab.is-below{padding:10px 0 0 9px}
.tech3d-lab.is-below.is-flip{padding:10px 9px 0 0}
.tech3d-lab.is-below::after{bottom:auto;top:-2px}
.tech3d-lab.t-red{--lab:#ff6f86}
.tech3d-lab.t-ice{--lab:#8ee0ff}
.tech3d-lab.t-vio{--lab:#b39cff}
.tech3d-lab.t-warm{--lab:#ffb28a}
.tech3d-lab.t-big b{font-size:26px;font-weight:700;letter-spacing:-.03em}
.tech3d-lab.t-big b small{display:inline;font-size:14px;letter-spacing:0;text-transform:none;color:var(--lab);margin-left:2px}

/* 레일 — 우측 세로 8단계 (현재 비트 채움 = --f, 그룹색 = --t3-g) */
/* 데스크톱 레일은 프로스트 플레이트 위에 — 이웃 스테이션이 뒤로 투영돼도 글자가 읽힌다(라벨 플레이트와 같은 언어) */
.tech3d-rail{position:absolute;right:5vw;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:4px;margin:0;padding:12px 14px 12px 12px;list-style:none;width:206px;box-sizing:border-box;
  border-radius:14px;background:rgba(6,9,15,.58);border:1px solid rgba(244,247,251,.08);box-shadow:0 14px 40px rgba(0,0,0,.32);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.tech3d-rail li{--f:0;position:relative;display:flex;align-items:center;gap:10px;padding:7px 0 7px 14px;opacity:.5;transition:opacity .35s ease}
.tech3d-rail li::before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:2px;border-radius:2px;background:rgba(244,247,251,.14)}
.tech3d-rail li::after{content:"";position:absolute;left:0;top:6px;width:2px;height:calc((100% - 12px) * var(--f));border-radius:2px;background:var(--t3-g);box-shadow:0 0 10px var(--t3-g)}
.tech3d-rail li.g-analysis{--t3-g:var(--t3-ice)}
.tech3d-rail li.g-cs{--t3-g:var(--t3-vio)}
.tech3d-rail li.g-scanner{--t3-g:var(--t3-warm)}
.tech3d-rail li.is-cur{opacity:1}
.tech3d-rail li.is-done{opacity:.72}
.tech3d-rail li.is-done::after{height:calc(100% - 12px);box-shadow:none;opacity:.55}
.tech3d-rail i{flex:none;font-style:normal;font-size:10px;font-weight:700;letter-spacing:.12em;color:var(--t3-g);font-variant-numeric:tabular-nums;width:18px}
.tech3d-rail b{display:block;font-size:12px;font-weight:600;letter-spacing:-.005em;line-height:1.25;color:var(--t3-ink);word-break:keep-all}
.tech3d-rail small{display:block;margin-top:2px;font-size:10px;font-weight:600;letter-spacing:.09em;color:var(--t3-mute);text-transform:uppercase;white-space:nowrap} /* 소문구 = 승인 영문 태그(flow[1]) — 'KEYWORD FILTERING' 한 줄 */
.tech3d-rail li.is-cur b{color:#fff}

/* ── 정지 상태(reduced-motion / no-gl): 컨테이너를 문서 흐름으로 되돌리고 헤드 → 정지 캔버스 → 레일 → 카피 8개 순으로 펼친다 ── */
.tech3d.is-static,.tech3d.tech3d-nogl{height:auto!important}
.tech3d.is-static .tech3d-sticky,.tech3d.tech3d-nogl .tech3d-sticky{position:relative;height:auto;min-height:0;display:flex;flex-direction:column;align-items:stretch;
  padding:calc(var(--cine-top,92px) + 6vh) 6vw 10vh;box-sizing:border-box;pointer-events:auto;overflow:visible}
.tech3d.is-static .tech3d-ui,.tech3d.tech3d-nogl .tech3d-ui{display:contents}
.tech3d.is-static .tech3d-head,.tech3d.tech3d-nogl .tech3d-head{order:1;position:relative;left:auto;top:auto;width:min(760px,80vw);opacity:1;visibility:visible;transform:none;margin:0 0 6vh}
/* 정지 캔버스: 캔버스 자신의 CSS 박스로 렌더(JS resize 가 canvas.clientWidth/Height 로 잰다 — 종횡비 왜곡 없음) */
.tech3d.is-static .tech3d-gl{order:2;position:relative;inset:auto;width:100%;height:56vh;min-height:300px;max-height:620px;margin:0 0 6vh;border-radius:18px;overflow:hidden;
  box-shadow:0 30px 80px rgba(0,0,0,.45),inset 0 0 0 1px rgba(244,247,251,.06)}
.tech3d.tech3d-nogl .tech3d-gl{display:none}
.tech3d.is-static .tech3d-still{display:none}
.tech3d.tech3d-nogl .tech3d-still{order:2;display:block;position:relative;inset:auto;width:100%;height:56vh;min-height:300px;max-height:620px;margin:0 0 6vh;border-radius:18px;
  box-shadow:0 30px 80px rgba(0,0,0,.45),inset 0 0 0 1px rgba(244,247,251,.06)}
.tech3d.is-static .tech3d-rail,.tech3d.tech3d-nogl .tech3d-rail{order:3;position:relative;right:auto;top:auto;transform:none;display:flex;flex-direction:row;flex-wrap:wrap;gap:8px 22px;width:auto;max-width:1240px;margin:0 0 48px;
  padding:0;background:none;border:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:0}
/* 정지/nogl 레일은 번호(i)와 제목(span) 사이 간격을 스스로 갖는다 — ≤880px 가로 레일의 gap:0 이 상속돼 "01악성…" 으로 붙지 않게 */
.tech3d.is-static .tech3d-rail li,.tech3d.tech3d-nogl .tech3d-rail li{opacity:.9;gap:10px;padding:6px 0 6px 12px}
.tech3d.is-static .tech3d-copies,.tech3d.tech3d-nogl .tech3d-copies{order:4;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 48px;max-width:1240px}
.tech3d.is-static .tech3d-copy,.tech3d.tech3d-nogl .tech3d-copy{position:relative;left:auto;top:auto;width:auto;opacity:1;visibility:visible;transform:none}
.tech3d.is-static .tech3d-labels,.tech3d.tech3d-nogl .tech3d-labels{display:none}
.tech3d.is-static .tech3d-out,.tech3d.tech3d-nogl .tech3d-out{position:relative;height:8vh}

/* ── 반응형 ── */
@media (max-width:1180px){
  .tech3d-copy{width:min(460px,36vw)}
  .tech3d-rail{width:184px}
}
@media (max-width:880px){
  .tech3d{height:760vh}
  /* 상단 카피 / 하단 3D — 상/하 가독 스크림(정적) */
  .tech3d-sticky::before{content:"";position:absolute;left:0;right:0;top:0;height:46vh;z-index:1;pointer-events:none;
    background:linear-gradient(180deg,rgba(5,7,12,.9) 0%,rgba(5,7,12,.72) 55%,rgba(5,7,12,0) 100%)}
  .tech3d-sticky::after{content:"";position:absolute;left:0;right:0;bottom:0;height:22vh;z-index:1;pointer-events:none;
    background:linear-gradient(180deg,rgba(5,7,12,0) 0%,rgba(5,7,12,.55) 60%,rgba(5,7,12,.86) 100%)}
  .tech3d-head{left:6vw;top:calc(var(--cine-top,76px) + 4vh);width:88vw}
  .tech3d-head h2{font-size:clamp(26px,6.8vw,40px)}
  .tech3d-head p{margin-top:14px;font-size:14px}
  .tech3d-kicker{margin-bottom:14px;font-size:12px}
  .tech3d-copy{left:6vw;top:calc(var(--cine-top,76px) + 3vh);width:88vw;transform:translate3d(0,var(--t3-y),0)}
  .tech3d-sys{margin-bottom:12px;font-size:11px;gap:8px 10px}
  .tech3d-copy h3{font-size:clamp(22px,6vw,30px)}
  .tech3d-desc{margin-top:12px;font-size:13px;line-height:1.65;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
  .tech3d-flow{margin-top:14px;gap:6px}
  .tech3d-flow li{padding:5px 9px 5px 7px;font-size:11px;gap:6px}
  .tech3d-flow li::before{font-size:10px}
  .tech3d-lab b{font-size:11px}
  .tech3d-lab small{font-size:10px;letter-spacing:.1em}
  .tech3d-lab-t{padding:4px 7px 4px 6px;gap:3px;border-radius:6px}
  .tech3d-lab.t-big b{font-size:22px}
  .tech3d-lab.t-big b small{font-size:12px}
  /* 하단 가로 레일 8칸 (사이트 고정 상담 도크 위) */
  .tech3d-rail{right:6vw;left:6vw;top:auto;bottom:calc(max(18px,env(safe-area-inset-bottom)) + 84px);transform:none;flex-direction:row;gap:5px;width:auto;
    padding:0;background:none;border:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:0}
  .tech3d-rail li{flex:1;padding:12px 0 0;gap:0;opacity:.45}
  .tech3d-rail li::before{left:0;right:0;top:0;bottom:auto;width:auto;height:2px}
  .tech3d-rail li::after{left:0;top:0;height:2px;width:calc(100% * var(--f))}
  .tech3d-rail li.is-done::after{width:100%;height:2px}
  .tech3d-rail i{width:auto;font-size:10px}
  .tech3d-rail b,.tech3d-rail small{display:none}
  .tech3d.is-static .tech3d-copies,.tech3d.tech3d-nogl .tech3d-copies{grid-template-columns:1fr;gap:34px}
  .tech3d.is-static .tech3d-head,.tech3d.tech3d-nogl .tech3d-head{width:auto;margin-bottom:5vh}
  .tech3d.is-static .tech3d-sticky,.tech3d.tech3d-nogl .tech3d-sticky{padding-top:calc(var(--cine-top,76px) + 4vh)}
  .tech3d.is-static .tech3d-sticky::before,.tech3d.is-static .tech3d-sticky::after,.tech3d.tech3d-nogl .tech3d-sticky::before,.tech3d.tech3d-nogl .tech3d-sticky::after{content:none}
  .tech3d.is-static .tech3d-gl,.tech3d.tech3d-nogl .tech3d-still{height:48vh;min-height:260px;border-radius:14px;margin-bottom:5vh}
  .tech3d.is-static .tech3d-desc,.tech3d.tech3d-nogl .tech3d-desc{display:block;-webkit-line-clamp:none;overflow:visible}
  .tech3d.is-static .tech3d-rail,.tech3d.tech3d-nogl .tech3d-rail{left:auto;bottom:auto;gap:6px 14px;margin-bottom:36px}
  .tech3d.is-static .tech3d-rail li,.tech3d.tech3d-nogl .tech3d-rail li{flex:0 0 auto;padding:4px 0 4px 10px}
  .tech3d.is-static .tech3d-rail li::before,.tech3d.tech3d-nogl .tech3d-rail li::before{left:0;right:auto;top:4px;bottom:4px;width:2px;height:auto}
  .tech3d.is-static .tech3d-rail li::after,.tech3d.tech3d-nogl .tech3d-rail li::after{width:2px;height:calc(100% - 8px)}
  .tech3d.is-static .tech3d-rail b,.tech3d.tech3d-nogl .tech3d-rail b{display:block;font-size:12px}
  .tech3d.is-static .tech3d-rail small,.tech3d.tech3d-nogl .tech3d-rail small{display:none}
}
/* ── 가로폰(≤880px 이면서 3:2 이상) ──
   세로형(상단 카피 / 하단 3D)은 무대 높이가 390px 뿐인 가로폰에서 카피(88vw)·가로 레일·상담 도크가 3D 를 거의 다 덮는다.
   그래서 데스크톱형으로 되돌린다: 카피는 좌측 컬럼(≈46vw), 레일은 우측 세로, 스크림도 상단이 아니라 좌측.
   JS 도 같은 분기(LAND)에서 오프축(ox)·이웃 감쇠·라벨 회피를 데스크톱 규칙으로 쓴다. */
@media (max-width:880px) and (min-aspect-ratio:3/2){
  /* 좌측 가독 스크림(상/하 스크림 대체) */
  .tech3d-sticky::before{left:0;right:auto;top:0;bottom:0;width:60vw;height:auto;
    background:linear-gradient(90deg,rgba(5,7,12,.92) 0%,rgba(5,7,12,.74) 52%,rgba(5,7,12,0) 100%)}
  .tech3d-sticky::after{content:none}
  .tech3d-head{left:5vw;top:calc(var(--cine-top,76px) + 2vh);width:min(560px,52vw)}
  .tech3d-head h2{font-size:clamp(20px,3.4vw,30px)}
  .tech3d-head p{margin-top:10px;font-size:12px;line-height:1.6}
  .tech3d-kicker{margin-bottom:10px;font-size:11px}
  .tech3d-copy{left:5vw;right:auto;top:calc(50% + var(--cine-top,76px) * .34);width:min(430px,46vw);
    transform:translate3d(0,calc(-50% + var(--t3-y)),0)}
  .tech3d-sys{margin-bottom:8px;font-size:10px;gap:5px 8px}
  .tech3d-copy h3{font-size:clamp(17px,2.9vw,25px)}
  .tech3d-desc{margin-top:8px;font-size:12px;line-height:1.6;-webkit-line-clamp:2}
  .tech3d:not(.is-static):not(.tech3d-nogl) .tech3d-flow{display:none}
  /* 우측 세로 레일 (하단 가로 8칸 대신) */
  .tech3d-rail{right:3vw;left:auto;top:50%;bottom:auto;transform:translateY(-50%);flex-direction:column;gap:1px;width:148px;
    padding:8px 10px 8px 9px;border-radius:12px;background:rgba(6,9,15,.58);border:1px solid rgba(244,247,251,.08);
    box-shadow:0 14px 40px rgba(0,0,0,.32);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
  .tech3d-rail li{flex:0 0 auto;padding:3px 0 3px 11px;gap:8px;opacity:.5}
  .tech3d-rail li::before{left:0;right:auto;top:3px;bottom:3px;width:2px;height:auto;border-radius:2px}
  .tech3d-rail li::after{left:0;top:3px;width:2px;height:calc((100% - 6px) * var(--f));border-radius:2px}
  .tech3d-rail li.is-done::after{width:2px;height:calc(100% - 6px)}
  .tech3d:not(.is-static):not(.tech3d-nogl) .tech3d-rail i{width:16px;font-size:9px}
  .tech3d-rail b{display:block;font-size:10px;line-height:1.2}
  .tech3d-rail small{display:none}
}
@media (prefers-reduced-motion:reduce){
  .tech3d-rail li{transition:none}
}
