/* ============================================================
   GMEUM — 공통 스타일
   팔레트는 기존 Wix 사이트에서 추출한 값을 그대로 사용합니다.
   ============================================================ */

/* --- 폰트 ---
   display     : Kingthings Organica  (GMEUM 타이틀용, 8.5KB — Wix 원본)
   body        : SUIT Variable (본문 전체, SIL OFL 라이선스, sun.fo/suit)
   body-legacy : KT Y (YPairingFont Bold, Wix 원본) — 캘린더 년월 표시 전용.
                 본문 폰트를 SUIT으로 바꾸면서 이 부분만 기존 모습을
                 유지해 달라는 요청이 있어 따로 남겨뒀습니다.

   GmeumDisplay/GmeumBody는 Bold 단일 웨이트라 font-weight 범위를 넓게
   잡아 모든 굵기가 이 파일 하나로 매핑되게 합니다. 이렇게 안 하면
   브라우저가 가짜 볼드(synthetic bold)를 만들어 글자가 뭉개집니다. */
@font-face {
  font-family: "SUIT Variable";
  src: url("../fonts/suit-variable.woff2") format("woff2-variations");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "GmeumDisplay";
  src: url("../fonts/display.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
/* 한글은 두 조각으로 나눠 둡니다.
   - body-rest   : 잘 안 쓰는 음절 8,776자 (1.4MB) — 해당 글자가 나올 때만 받습니다
   - body-common : 자주 쓰는 음절 2,396자 (400KB) — 사실상 이것만 받습니다
   아래 순서를 바꾸면 안 됩니다. 겹치는 글자는 뒤에 선언된 쪽이 이깁니다. */
@font-face {
  font-family: "GmeumBody";
  src: url("../fonts/body-rest.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+AC00-D7A3;
}
@font-face {
  font-family: "GmeumBody";
  src: url("../fonts/body-common.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+20-7e, U+a0, U+a9, U+ae, U+b0-b1, U+b7, U+d7, U+f7, U+2013-2014, U+2018-2019, U+201c-201d, U+2026, U+2032-2033, U+2190-2193, U+2260, U+2264-2265, U+2605-2606, U+2665, U+266a, U+3001-3002, U+300c-300f, U+301c, U+3131-318e, U+ac00-ac01, U+ac04, U+ac08, U+ac10-ac13, U+ac15-ac16, U+ac19-ac1d, U+ac20, U+ac24, U+ac2c-ac2d, U+ac2f, U+ac31-ac32, U+ac35-ac39, U+ac3c, U+ac40, U+ac48-ac49, U+ac4b, U+ac4d-ac4e, U+ac51-ac55, U+ac58, U+ac5c, U+ac64-ac65, U+ac67, U+ac69-ac6a, U+ac6d-ac71, U+ac74, U+ac78, U+ac80-ac81, U+ac83, U+ac85-ac86, U+ac89-ac8d, U+ac90, U+ac94, U+ac9c-ac9d, U+ac9f-aca2, U+aca5-aca9, U+acac, U+acb0, U+acb8-acb9, U+acbb, U+acbd-acbe, U+acc1-acc5, U+acc8, U+accc, U+acd4-acd5, U+acd7, U+acd9-acda, U+acdd-ace1, U+ace4, U+ace8, U+acf0-acf1, U+acf3, U+acf5-acf6, U+acf9-acfc, U+ad50-ad51, U+ad54, U+ad58, U+ad60-ad61, U+ad63, U+ad65-ad66, U+ad69-ad6d, U+ad70, U+ad74-ad75, U+ad7c-ad7d, U+ad7f, U+ad81-ad82, U+ad85-ad87, U+addc-addd, U+ade0, U+ade4, U+adec-aded, U+adef, U+adf1-adf2, U+adf5-adf9, U+adfc, U+ae00, U+ae08-ae09, U+ae0b, U+ae0d-ae0e, U+ae11-ae15, U+ae18, U+ae1c, U+ae24-ae25, U+ae27, U+ae29-ae2a, U+ae2d-ae31, U+ae34, U+ae38, U+ae40-ae41, U+ae43, U+ae45-ae46, U+ae49-ae4b, U+afb8, U+b098-b099, U+b09c, U+b0a0, U+b0a8-b0a9, U+b0ab, U+b0ad-b0ae, U+b0b1-b0b5, U+b0b8, U+b0bc, U+b0c4-b0c5, U+b0c7, U+b0c9-b0ca, U+b0cd-b0d1, U+b0d4, U+b0d8, U+b0e0-b0e1, U+b0e3, U+b0e5-b0e6, U+b0e9-b0ed, U+b0f0, U+b0f4, U+b0fc-b0fd, U+b0ff, U+b101-b102, U+b105-b109, U+b10c, U+b110, U+b113, U+b118-b119, U+b11b, U+b11d-b11e, U+b121-b125, U+b128, U+b12c, U+b134-b135, U+b137, U+b139-b13a, U+b13d-b141, U+b144, U+b148, U+b150-b151, U+b153, U+b155-b156, U+b159-b15d, U+b160, U+b164, U+b16c-b16d, U+b16f, U+b171-b172, U+b175-b179, U+b17c, U+b180, U+b188-b189, U+b18b, U+b18d-b18e, U+b191-b193, U+b1e8-b1e9, U+b1ec, U+b1f0, U+b1f8-b1f9, U+b1fb, U+b1fd-b1fe, U+b201-b205, U+b208, U+b20c, U+b214-b215, U+b217, U+b219-b21a, U+b21d-b21f, U+b274-b275, U+b278, U+b27c, U+b284-b285, U+b287, U+b289-b28a, U+b28d-b291, U+b294, U+b298, U+b2a0-b2a1, U+b2a3, U+b2a5-b2a6, U+b2a9-b2ad, U+b2b0, U+b2b4, U+b2bc-b2bd, U+b2bf, U+b2c1-b2c2, U+b2c5-b2c9, U+b2cc, U+b2d0, U+b2d8-b2d9, U+b2db, U+b2dd-b2de, U+b2e1-b2e5, U+b2e8, U+b2ec, U+b2f4-b2f5, U+b2f7, U+b2f9-b2fa, U+b2fd-b301, U+b304, U+b308, U+b310-b311, U+b313, U+b315-b316, U+b319-b31d, U+b320, U+b324, U+b32c-b32d, U+b32f, U+b331-b332, U+b335-b339, U+b33c, U+b340, U+b348-b349, U+b34b, U+b34d-b34e, U+b351-b355, U+b358, U+b35c, U+b364-b365, U+b367, U+b369-b36a, U+b36d-b371, U+b374, U+b378, U+b380-b381, U+b383, U+b385-b386, U+b389-b38d, U+b390, U+b394, U+b39c-b39d, U+b39f, U+b3a1-b3a2, U+b3a5-b3a9, U+b3ac, U+b3b0, U+b3b8-b3b9, U+b3bb, U+b3bd-b3be, U+b3c1-b3c5, U+b3c8, U+b3cc, U+b3d4-b3d5, U+b3d7, U+b3d9-b3da, U+b3dd-b3df, U+b3fc, U+b418, U+b428-b429, U+b434-b435, U+b438, U+b43c, U+b444-b445, U+b447, U+b449-b44a, U+b44d-b451, U+b454, U+b458, U+b460-b461, U+b463, U+b465-b466, U+b469-b46c, U+b4a4, U+b4c0-b4c1, U+b4c4, U+b4c8, U+b4d0-b4d1, U+b4d3, U+b4d5-b4d6, U+b4d9-b4dd, U+b4e0, U+b4e4, U+b4ec-b4ed, U+b4ef, U+b4f1-b4f2, U+b4f5-b4f9, U+b4fc, U+b500, U+b508-b509, U+b50b, U+b50d-b50e, U+b511-b515, U+b518, U+b51c, U+b524-b525, U+b527, U+b529-b52a, U+b52d-b52f, U+b54c, U+b6f0, U+b77c-b77d, U+b780, U+b784, U+b78c-b78d, U+b78f, U+b791-b792, U+b795-b799, U+b79c, U+b7a0, U+b7a8-b7a9, U+b7ab, U+b7ad-b7ae, U+b7b1-b7b5, U+b7b8, U+b7bc, U+b7c4-b7c5, U+b7c7, U+b7c9-b7ca, U+b7cd-b7d1, U+b7d4, U+b7d8, U+b7e0-b7e1, U+b7e3, U+b7e5-b7e6, U+b7e9-b7ed, U+b7f0, U+b7f4, U+b7fc-b7fd, U+b7ff, U+b801-b802, U+b805-b809, U+b80c, U+b810, U+b818-b819, U+b81b, U+b81d-b81e, U+b821-b825, U+b828, U+b82c, U+b834-b835, U+b837, U+b839-b83a, U+b83d-b841, U+b844, U+b848, U+b850-b851, U+b853, U+b855-b856, U+b859-b85d, U+b860, U+b864, U+b86c-b86d, U+b86f, U+b871-b872, U+b875-b877, U+b8cc-b8cd, U+b8d0, U+b8d4, U+b8dc-b8dd, U+b8df, U+b8e1-b8e2, U+b8e5-b8e9, U+b8ec, U+b8f0, U+b8f8-b8f9, U+b8fb, U+b8fd-b8fe, U+b901-b903, U+b958-b959, U+b95c, U+b960, U+b968-b969, U+b96b, U+b96d-b96e, U+b971-b975, U+b978, U+b97c, U+b984-b985, U+b987, U+b989-b98a, U+b98d-b991, U+b994, U+b998, U+b9a0-b9a1, U+b9a3, U+b9a5-b9a6, U+b9a9-b9ad, U+b9b0, U+b9b4, U+b9bc-b9bd, U+b9bf, U+b9c1-b9c2, U+b9c5-b9c9, U+b9cc, U+b9d0, U+b9d8-b9d9, U+b9db, U+b9dd-b9de, U+b9e1-b9e5, U+b9e8, U+b9ec, U+b9f4-b9f5, U+b9f7, U+b9f9-b9fa, U+b9fd-ba01, U+ba04, U+ba08, U+ba10-ba11, U+ba13, U+ba15-ba16, U+ba19-ba1d, U+ba20, U+ba24, U+ba2c-ba2d, U+ba2f, U+ba31-ba32, U+ba35-ba39, U+ba3c, U+ba40, U+ba48-ba49, U+ba4b, U+ba4d-ba4e, U+ba51-ba55, U+ba58, U+ba5c, U+ba64-ba65, U+ba67, U+ba69-ba6a, U+ba6d-ba71, U+ba74, U+ba78, U+ba80-ba81, U+ba83, U+ba85-ba86, U+ba89-ba8d, U+ba90, U+ba94, U+ba9c-ba9d, U+ba9f, U+baa1-baa2, U+baa5-baa9, U+baac, U+bab0, U+bab8-bab9, U+babb, U+babd-babe, U+bac1-bac3, U+bb18-bb19, U+bb1c, U+bb20, U+bb28-bb29, U+bb2b, U+bb2d-bb2e, U+bb31-bb35, U+bb38, U+bb3c, U+bb44-bb45, U+bb47, U+bb49-bb4a, U+bb4d-bb4f, U+bba4-bba5, U+bba8, U+bbac, U+bbb4-bbb5, U+bbb7, U+bbb9-bbba, U+bbbd-bbc1, U+bbc4, U+bbc8, U+bbd0-bbd1, U+bbd3, U+bbd5-bbd6, U+bbd9-bbdd, U+bbe0, U+bbe4, U+bbec-bbed, U+bbef, U+bbf1-bbf2, U+bbf5-bbf9, U+bbfc, U+bc00, U+bc08-bc09, U+bc0b, U+bc0d-bc0e, U+bc11-bc15, U+bc18, U+bc1b-bc1c, U+bc24-bc25, U+bc27, U+bc29-bc2a, U+bc2d-bc31, U+bc34, U+bc38, U+bc40-bc41, U+bc43, U+bc45-bc46, U+bc49-bc4d, U+bc50, U+bc54, U+bc5c-bc5d, U+bc5f, U+bc61-bc62, U+bc65-bc69, U+bc6c, U+bc70, U+bc78-bc79, U+bc7b, U+bc7d-bc7e, U+bc81-bc85, U+bc88, U+bc8c, U+bc94-bc95, U+bc97, U+bc99-bc9a, U+bc9d-bca1, U+bca4, U+bca8, U+bcb0-bcb1, U+bcb3, U+bcb5-bcb6, U+bcb9-bcbd, U+bcc0, U+bcc4, U+bccc-bccd, U+bccf, U+bcd1-bcd2, U+bcd5-bcd9, U+bcdc, U+bce0, U+bce8-bce9, U+bceb, U+bced-bcee, U+bcf1-bcf5, U+bcf8, U+bcfc, U+bd04-bd05, U+bd07, U+bd09-bd0a, U+bd0d-bd0f, U+bd64-bd65, U+bd68, U+bd6c, U+bd74-bd75, U+bd77, U+bd79-bd7a, U+bd7d-bd81, U+bd84, U+bd88, U+bd90-bd91, U+bd93, U+bd95-bd96, U+bd99-bd9b, U+bdf0-bdf1, U+bdf4, U+bdf8, U+be00-be01, U+be03, U+be05-be06, U+be09-be0d, U+be10, U+be14, U+be1c-be1d, U+be1f, U+be21-be22, U+be25-be29, U+be2c, U+be30, U+be38-be39, U+be3b, U+be3d-be3e, U+be41-be45, U+be48, U+be4c, U+be54-be55, U+be57, U+be59-be5a, U+be5d-be5f, U+be7c, U+be84, U+be90, U+c0ac-c0ad, U+c0b0, U+c0b4, U+c0bc-c0bd, U+c0bf, U+c0c1-c0c2, U+c0c5-c0c9, U+c0cc, U+c0d0, U+c0d8-c0d9, U+c0db, U+c0dd-c0de, U+c0e1-c0e5, U+c0e8, U+c0ec, U+c0f4-c0f5, U+c0f7, U+c0f9-c0fa, U+c0fd-c101, U+c104, U+c108, U+c110-c111, U+c113, U+c115-c116, U+c119-c11d, U+c120, U+c124, U+c12c-c12d, U+c12f, U+c131-c132, U+c135-c139, U+c13c, U+c140, U+c148-c149, U+c14b, U+c14d-c14e, U+c151-c155, U+c158, U+c15c, U+c164-c165, U+c167, U+c169-c16a, U+c16d-c171, U+c174, U+c178, U+c180-c181, U+c183, U+c185-c186, U+c189-c18d, U+c190, U+c194, U+c19c-c19d, U+c19f, U+c1a1-c1a2, U+c1a5-c1a7, U+c1fc-c1fd, U+c200, U+c204, U+c20c-c20d, U+c20f, U+c211-c212, U+c215-c219, U+c21c, U+c220, U+c228-c229, U+c22b, U+c22d-c22e, U+c231-c233, U+c27c, U+c288-c289, U+c28c, U+c290, U+c298-c299, U+c29b, U+c29d-c29e, U+c2a1-c2a5, U+c2a8, U+c2ac, U+c2b4-c2b5, U+c2b7, U+c2b9-c2ba, U+c2bd-c2c1, U+c2c4, U+c2c8, U+c2d0-c2d1, U+c2d3, U+c2d5-c2d6, U+c2d9-c2dd, U+c2e0, U+c2e4, U+c2ec-c2ed, U+c2ef, U+c2f1-c2f2, U+c2f5-c2f7, U+c4f0, U+c501, U+c529, U+c544-c545, U+c548, U+c54a, U+c54c, U+c554-c555, U+c557-c55a, U+c55d-c561, U+c564, U+c568, U+c570-c571, U+c573, U+c575-c576, U+c579-c57d, U+c580, U+c584, U+c58c-c58d, U+c58f, U+c591-c592, U+c595-c599, U+c59c, U+c5a0, U+c5a8-c5a9, U+c5ab, U+c5ad-c5ae, U+c5b1-c5b5, U+c5b8, U+c5bc, U+c5c4-c5c7, U+c5c9-c5ca, U+c5cd-c5d1, U+c5d4, U+c5d8, U+c5e0-c5e1, U+c5e3, U+c5e5-c5e6, U+c5e9-c5ed, U+c5f0, U+c5f4, U+c5fc-c5fd, U+c5ff, U+c601-c602, U+c605-c609, U+c60c, U+c610, U+c618-c619, U+c61b, U+c61d-c61e, U+c621-c625, U+c628, U+c62c, U+c62e, U+c634-c635, U+c637, U+c639-c63a, U+c63d-c640, U+c644, U+c654, U+c678, U+c694-c695, U+c698, U+c69c, U+c6a4-c6a5, U+c6a7, U+c6a9-c6aa, U+c6ad-c6b1, U+c6b4, U+c6b8, U+c6c0-c6c1, U+c6c3, U+c6c5-c6c6, U+c6c9-c6cc, U+c6d0, U+c6d4, U+c6e8, U+c704, U+c720-c721, U+c724, U+c728, U+c730-c731, U+c733, U+c735-c736, U+c739-c73d, U+c740, U+c744, U+c74c-c74d, U+c74f, U+c751-c752, U+c755-c759, U+c75c, U+c760, U+c768-c769, U+c76b, U+c76d-c76e, U+c771-c775, U+c778, U+c77c-c77d, U+c784-c785, U+c787-c78a, U+c78d-c791, U+c794, U+c798, U+c7a0-c7a1, U+c7a3, U+c7a5-c7a6, U+c7a9-c7ad, U+c7b0, U+c7b4, U+c7bc-c7bd, U+c7bf, U+c7c1-c7c2, U+c7c5-c7c9, U+c7cc, U+c7d0, U+c7d8-c7d9, U+c7db, U+c7dd-c7de, U+c7e1-c7e5, U+c7e8, U+c7ec, U+c7f4-c7f5, U+c7f7, U+c7f9-c7fa, U+c7fd-c801, U+c804, U+c808, U+c810-c811, U+c813, U+c815-c816, U+c819-c81d, U+c820, U+c824, U+c82c-c82d, U+c82f, U+c831-c832, U+c835-c839, U+c83c, U+c840, U+c848-c849, U+c84b, U+c84d-c84e, U+c851-c855, U+c858, U+c85c, U+c864-c865, U+c867, U+c869-c86a, U+c86d-c871, U+c874, U+c878, U+c880-c881, U+c883, U+c885-c886, U+c889-c88b, U+c8e0-c8e1, U+c8e4, U+c8e8, U+c8f0-c8f1, U+c8f3, U+c8f5-c8f6, U+c8f9-c8fd, U+c900, U+c904, U+c90c-c90d, U+c90f, U+c911-c912, U+c915-c917, U+c96c-c96d, U+c970, U+c974, U+c97c-c97d, U+c97f, U+c981-c982, U+c985-c989, U+c98c, U+c990, U+c998-c999, U+c99b, U+c99d-c99e, U+c9a1-c9a5, U+c9a8, U+c9ac, U+c9b4-c9b5, U+c9b7, U+c9b9-c9ba, U+c9bd-c9c1, U+c9c4, U+c9c8, U+c9d0-c9d1, U+c9d3, U+c9d5-c9d6, U+c9d9-c9dc, U+cc28-cc29, U+cc2c, U+cc30, U+cc38-cc39, U+cc3b, U+cc3d-cc3e, U+cc41-cc45, U+cc48, U+cc4c, U+cc54-cc55, U+cc57, U+cc59-cc5a, U+cc5d-cc61, U+cc64, U+cc68, U+cc70-cc71, U+cc73, U+cc75-cc76, U+cc79-cc7d, U+cc80, U+cc84, U+cc8c-cc8d, U+cc8f, U+cc91-cc92, U+cc95-cc99, U+cc9c, U+cca0, U+cca8-cca9, U+ccab, U+ccad-ccae, U+ccb1-ccb5, U+ccb8, U+ccbc, U+ccc4-ccc5, U+ccc7, U+ccc9-ccca, U+cccd-ccd1, U+ccd4, U+ccd8, U+cce0-cce1, U+cce3, U+cce5-cce6, U+cce9-cced, U+ccf0, U+ccf4, U+ccfc-ccfd, U+ccff, U+cd01-cd02, U+cd05-cd09, U+cd0c, U+cd10, U+cd18-cd19, U+cd1b, U+cd1d-cd1e, U+cd21-cd23, U+cd5c, U+cd78-cd79, U+cd7c, U+cd80, U+cd88-cd89, U+cd8b, U+cd8d-cd8e, U+cd91-cd95, U+cd98, U+cd9c, U+cda4-cda5, U+cda7, U+cda9-cdaa, U+cdad-cdaf, U+ce04-ce05, U+ce08, U+ce0c, U+ce14-ce15, U+ce17, U+ce19-ce1a, U+ce1d-ce21, U+ce24, U+ce28, U+ce30-ce31, U+ce33, U+ce35-ce36, U+ce39-ce3d, U+ce40, U+ce44, U+ce4c-ce4d, U+ce4f, U+ce51-ce52, U+ce55-ce59, U+ce5c, U+ce60, U+ce68-ce69, U+ce6b, U+ce6d-ce6e, U+ce71-ce75, U+ce78, U+ce7c, U+ce84-ce85, U+ce87, U+ce89-ce8a, U+ce8d-ce91, U+ce94, U+ce98, U+cea0-cea1, U+cea3, U+cea5-cea6, U+cea9-cead, U+ceb0, U+ceb4, U+cebc-cebd, U+cebf, U+cec1-cec2, U+cec5-cec9, U+cecc, U+ced0, U+ced8-ced9, U+cedb, U+cedd-cede, U+cee1-cee5, U+cee8, U+ceec, U+cef4-cef5, U+cef7, U+cef9-cefa, U+cefd-cf01, U+cf04, U+cf08, U+cf10-cf11, U+cf13, U+cf15-cf16, U+cf19-cf1d, U+cf20, U+cf24, U+cf2c-cf2d, U+cf2f, U+cf31-cf32, U+cf35-cf39, U+cf3c, U+cf40, U+cf48-cf49, U+cf4b, U+cf4d-cf4e, U+cf51-cf55, U+cf58, U+cf5c, U+cf64-cf65, U+cf67, U+cf69-cf6a, U+cf6d-cf6f, U+cfc4-cfc5, U+cfc8, U+cfcc, U+cfd4-cfd5, U+cfd7, U+cfd9-cfda, U+cfdd-cfe1, U+cfe4, U+cfe8, U+cff0-cff1, U+cff3, U+cff5-cff6, U+cff9-cffb, U+d050-d051, U+d054, U+d058, U+d060-d061, U+d063, U+d065-d066, U+d069-d06d, U+d070, U+d074, U+d07c-d07d, U+d07f, U+d081-d082, U+d085-d089, U+d08c, U+d090, U+d098-d099, U+d09b, U+d09d-d09e, U+d0a1-d0a5, U+d0a8, U+d0ac, U+d0b4-d0b5, U+d0b7, U+d0b9-d0ba, U+d0bd-d0c0, U+d0dd, U+d0ed, U+d130, U+d150, U+d1a0, U+d1b5, U+d29c, U+d2b8, U+d2bc, U+d2c0, U+d30c-d30d, U+d310, U+d314, U+d31c-d31d, U+d31f, U+d321-d322, U+d325-d329, U+d32c, U+d330, U+d338-d339, U+d33b, U+d33d-d33e, U+d341-d345, U+d348, U+d34c, U+d354-d355, U+d357, U+d359-d35a, U+d35d-d361, U+d364, U+d368, U+d370-d371, U+d373, U+d375-d376, U+d379-d37d, U+d380, U+d384, U+d38c-d38d, U+d38f, U+d391-d392, U+d395-d399, U+d39c, U+d3a0, U+d3a8-d3a9, U+d3ab, U+d3ad-d3ae, U+d3b1-d3b5, U+d3b8, U+d3bc, U+d3c4-d3c5, U+d3c7, U+d3c9-d3ca, U+d3cd-d3d1, U+d3d4, U+d3d8, U+d3e0-d3e1, U+d3e3, U+d3e5-d3e6, U+d3e9-d3ed, U+d3f0, U+d3f4, U+d3fc-d3fd, U+d3ff, U+d401-d402, U+d405-d407, U+d45c-d45d, U+d460, U+d464, U+d46c-d46d, U+d46f, U+d471-d472, U+d475-d479, U+d47c, U+d480, U+d488-d489, U+d48b, U+d48d-d48e, U+d491-d493, U+d4e8-d4e9, U+d4ec, U+d4f0, U+d4f8-d4f9, U+d4fb, U+d4fd-d4fe, U+d501-d505, U+d508, U+d50c, U+d514-d515, U+d517, U+d519-d51a, U+d51d-d521, U+d524, U+d528, U+d530-d531, U+d533, U+d535-d536, U+d539-d53d, U+d540, U+d544, U+d54c-d54d, U+d54f, U+d551-d552, U+d555-d559, U+d55c, U+d560, U+d568-d569, U+d56b, U+d56d-d56e, U+d571-d575, U+d578, U+d57c, U+d584-d585, U+d587-d58a, U+d58d-d591, U+d594, U+d598, U+d5a0-d5a1, U+d5a3, U+d5a5-d5a6, U+d5a9-d5ad, U+d5b0, U+d5b4, U+d5bc-d5bd, U+d5bf, U+d5c1-d5c2, U+d5c5-d5c9, U+d5cc, U+d5d0, U+d5d8-d5d9, U+d5db, U+d5dd-d5de, U+d5e1-d5e5, U+d5e8, U+d5ec, U+d5f4-d5f5, U+d5f7, U+d5f9-d5fa, U+d5fd-d601, U+d604, U+d608, U+d610-d611, U+d613, U+d615-d616, U+d619-d61d, U+d620, U+d624, U+d62c-d62d, U+d62f, U+d631-d632, U+d635-d639, U+d63c, U+d640, U+d648-d649, U+d64b, U+d64d-d64e, U+d651-d655, U+d658, U+d65c, U+d68c, U+d6a8-d6a9, U+d6ac, U+d6b0, U+d6b8-d6b9, U+d6bb, U+d6bd-d6be, U+d6c1-d6c5, U+d6c8, U+d6cc, U+d6d4-d6d5, U+d6d7, U+d6d9-d6da, U+d6dd-d6df, U+d734-d735, U+d738, U+d73c, U+d744-d745, U+d747, U+d749-d74a, U+d74d-d751, U+d754, U+d758, U+d760-d761, U+d763, U+d765-d766, U+d769-d76d, U+d770, U+d774, U+d77c-d77d, U+d77f, U+d781-d782, U+d785-d789, U+d78c, U+d790, U+d798-d799, U+d79b, U+d79d-d79e, U+d7a1-d7a3;
}

:root {
  --purple: #9578aa;
  --plum: #9d5881;
  --deep: #2c152b;
  --magenta: #b062a3;
  --muted: #6c5f75;
  --card: #eeeeee;
  --white: #ffffff;
  --menu: #c46cbe; /* 메뉴 드로어 배경 */

  --header-h: 77px;
  --maxw: 1200px;

  --font-display: "GmeumDisplay", "GmeumBody", sans-serif;
  --font-body: "SUIT Variable", "GmeumBody", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
  --font-body-legacy: "GmeumBody", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  font-family: var(--font-body);
  background: var(--purple);
  color: var(--deep);
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }

.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  background: var(--deep);
  color: var(--white);
  padding: 10px 16px;
  z-index: 100;
}
.skip-link:focus { left: 8px; top: 8px; }

/* ---------------- 헤더 ----------------
   완전 투명하게 띄워 둡니다. 사이트 배경이 전체적으로 보라 단색이라
   글자/아이콘 색(--deep)만으로 어디서든 읽힙니다. */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 50;
  height: var(--header-h);
  display: flex;
  align-items: center;
  padding: 0 clamp(16px, 4vw, 48px);
  background: transparent;
}

.brand { display: flex; align-items: center; flex-shrink: 0; }
.brand img { width: 49px; height: 49px; object-fit: contain; }

/* ---------------- 햄버거 버튼 ---------------- */
.menu-btn {
  margin-left: auto;
  width: 54px;
  height: 46px;
  display: grid;
  place-content: center;
  gap: 7px;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  border-radius: 10px;
  transition: opacity 0.18s ease;
}
.menu-btn:hover { opacity: 0.62; }
.menu-btn:focus-visible { outline: 2px solid var(--deep); outline-offset: 4px; }

.menu-btn__bar {
  display: block;
  width: 34px;
  height: 3px;
  border-radius: 2px;
  background: var(--deep);
}

/* ---------------- 메뉴 드로어 ----------------
   오른쪽에서 밀려 나오는 전체 높이 패널. 나머지 화면은 어둡게 덮습니다. */
.menu-scrim {
  position: fixed;
  inset: 0;
  z-index: 60;
  background: rgba(26, 12, 30, 0.74);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
.menu-scrim[data-open="true"] { opacity: 1; pointer-events: auto; }

.site-menu {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 70;
  width: min(430px, 84vw);
  padding: clamp(96px, 12vh, 132px) clamp(28px, 4vw, 60px) clamp(32px, 5vh, 52px);
  background: var(--menu);
  display: flex;
  flex-direction: column;
  gap: 6px;
  /* 닫혀 있을 땐 화면 밖 + visibility로 탭 이동에서도 빠지게 합니다 */
  visibility: hidden;
  transform: translateX(100%);
  transition: transform 0.36s cubic-bezier(0.22, 0.8, 0.28, 1), visibility 0s 0.36s;
}
.site-menu[data-open="true"] {
  visibility: visible;
  transform: none;
  transition: transform 0.36s cubic-bezier(0.22, 0.8, 0.28, 1), visibility 0s;
}

.menu-close {
  position: absolute;
  top: clamp(22px, 3vh, 34px);
  right: clamp(24px, 3vw, 44px);
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  padding: 0;
  border: none;
  background: transparent;
  color: var(--deep);
  cursor: pointer;
  border-radius: 10px;
  transition: opacity 0.18s ease;
}
.menu-close:hover { opacity: 0.6; }
.menu-close:focus-visible { outline: 2px solid var(--white); outline-offset: 3px; }
.menu-close svg { width: 26px; height: 26px; }

.site-menu a {
  padding: 10px 0;
  font-size: clamp(24px, 3.2vw, 32px);
  font-weight: 700;
  line-height: 1.35;
  color: var(--white);
  transition: opacity 0.16s ease;
}
.site-menu a:hover { opacity: 0.68; }
.site-menu a[aria-current="page"] { opacity: 0.72; }

.site-menu__socials {
  display: flex;
  gap: 20px;
  margin-top: auto;
  padding-top: 32px;
}
.site-menu__socials a {
  padding: 6px;
  color: var(--white);
  display: grid;
  place-items: center;
}
.site-menu__socials svg { width: 22px; height: 22px; fill: currentColor; }

/* ---------------- 히어로 (메인) ---------------- */
/* 헤더가 떠 있으므로 화면 전체 높이를 씁니다.
   위쪽 패딩으로 헤더 아래 공간을 확보해, 창이 낮아도 로고가 잘리지 않습니다. */
.hero {
  position: relative;
  min-height: 100svh;
  padding: calc(var(--header-h) + 24px) 24px 64px;
  display: grid;
  place-items: center;
  overflow: hidden;
  isolation: isolate;
}

.hero__media {
  position: absolute;
  inset: 0;
  z-index: -2;
  background: var(--purple);
}
/* 배경 영상은 필름 그레인(노이즈) 텍스처입니다.
   보라 바탕 위에 0.28로 얹어 살짝 거친 질감만 주는 용도라,
   여기에 오버레이를 더 씌우면 안 됩니다 (원본보다 탁해집니다). */
.hero__media video,
.hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.28; /* 원본 Wix 설정값 */
}

.hero__inner {
  display: grid;
  justify-items: center;
  gap: 0;
  text-align: center;
}

/* 마우스를 따라 젤리처럼 움직입니다 (hero-jelly.js).
   transform은 스크립트가 매 프레임 덮어쓰므로 여기에 transition을 걸면 안 됩니다. */
.hero__logo {
  width: clamp(200px, 30vw, 400px);
  height: auto;
  filter: drop-shadow(0 16px 34px rgba(44, 21, 43, 0.3));
  transform-origin: center bottom;
  will-change: transform;
}

.hero__title {
  /* 캐릭터와 살짝 겹치도록 위로 당김. 캐릭터 PNG는 아래쪽 14%가 투명
     여백이라, 실제 그림보다 더 끌어와야 눈으로 겹쳐 보입니다. */
  margin: clamp(-100px, -9vw, -28px) 0 0;
  font-family: var(--font-display);
  font-size: clamp(58px, 12vw, 150px);
  line-height: 1;
  font-weight: 400;
  color: var(--deep);
  letter-spacing: 0.01em;
  transform-origin: center center;
  will-change: transform;
}

/* ---------------- 버튼 ---------------- */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 26px;
  border-radius: 999px;
  background: var(--plum);
  color: var(--white);
  font-size: 15px;
  font-weight: 700;
  border: none;
  cursor: pointer;
  transition: background 0.18s ease, transform 0.18s ease;
}
.btn:hover { background: var(--magenta); transform: translateY(-2px); }
.btn--ghost {
  background: transparent;
  color: var(--deep);
  border: 2px solid var(--deep);
}
.btn--ghost:hover { background: var(--deep); color: var(--white); }

/* ---------------- 페이지 공통 ---------------- */
/* 헤더가 떠 있으므로 그만큼 위를 비워 둡니다. */
.page {
  max-width: var(--maxw);
  margin: 0 auto;
  padding: calc(var(--header-h) + clamp(28px, 5vw, 56px)) clamp(16px, 4vw, 32px) 100px;
}

.page__title {
  margin: 0 0 8px;
  font-family: var(--font-display);
  font-size: clamp(38px, 8vw, 72px);
  line-height: 1;
  font-weight: 400;
  color: var(--deep);
}

/* 부제 문구 없이 제목 바로 아래 콘텐츠가 오는 페이지용 (예: 방송일정) */
.page__title--spaced {
  margin-bottom: 32px;
}

.page__sub {
  margin: 0 0 40px;
  font-size: 15px;
  color: rgba(44, 21, 43, 0.72);
}

/* ---------------- 검색창 ---------------- */
.search-box {
  position: relative;
  max-width: 480px;
  margin: -8px 0 36px;
}

.search-box__icon {
  position: absolute;
  left: 16px;
  top: 50%;
  transform: translateY(-50%);
  width: 18px;
  height: 18px;
  color: rgba(44, 21, 43, 0.55);
  pointer-events: none;
}

.search-box__input {
  width: 100%;
  padding: 13px 16px 13px 44px;
  border-radius: 999px;
  border: 1.5px solid rgba(44, 21, 43, 0.2);
  background: rgba(255, 255, 255, 0.55);
  font: inherit;
  font-size: 16px; /* 16px 미만이면 iOS Safari가 포커스 시 자동 확대를 합니다 */
  color: var(--deep);
  transition: border-color 0.18s ease, background 0.18s ease;
}
.search-box__input::placeholder { color: rgba(44, 21, 43, 0.48); }
.search-box__input:focus {
  outline: none;
  border-color: var(--plum);
  background: rgba(255, 255, 255, 0.85);
}
/* 브라우저 기본 검색창 지우기(x) 버튼 스타일 통일 */
.search-box__input::-webkit-search-cancel-button { cursor: pointer; }

/* ---------------- 게임 카드 ---------------- */
.game-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(272px, 1fr));
  gap: clamp(16px, 2.5vw, 28px);
}

.game-card {
  background: var(--card);
  border-radius: 14px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: 0 6px 20px rgba(44, 21, 43, 0.14);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.game-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 32px rgba(44, 21, 43, 0.24);
}

.game-card__art {
  aspect-ratio: 460 / 215;
  width: 100%;
  object-fit: cover;
  background: var(--muted);
}

/* Steam에 헤더 이미지가 없는 게임용 대체 블록 */
.game-card__art--empty {
  display: grid;
  place-items: center;
  padding: 14px;
  text-align: center;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.3;
  color: rgba(255, 255, 255, 0.94);
  background: linear-gradient(135deg, var(--muted), var(--plum));
  word-break: keep-all;
}

.game-card__body {
  padding: 16px 18px 18px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex: 1;
}

.game-card__title {
  margin: 0;
  font-size: 20px;
  font-weight: 800;
  line-height: 1.25;
  color: var(--deep);
  word-break: keep-all;
}

.game-card__meta {
  margin: 0;
  font-size: 14px;
  font-weight: 500;
  color: var(--muted);
}

.game-card__link {
  margin-top: auto;
  padding-top: 12px;
  align-self: flex-start;
  font-size: 13px;
  font-weight: 800;
  color: var(--plum);
}
.game-card__link:hover { color: var(--magenta); text-decoration: underline; }

.load-more-wrap { display: grid; place-items: center; margin-top: 48px; }

.state-msg {
  padding: 40px 0;
  text-align: center;
  color: rgba(44, 21, 43, 0.75);
  font-size: 15px;
  line-height: 1.7;
}

/* ---------------- 달력 ---------------- */
/* 흰 카드 대신 배경 위에 흰 테두리 칸만 얹어 차분하게 갑니다. */
.cal {
  background: transparent;
  padding: 0;
  box-shadow: none;
}

.cal__head {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(16px, 4vw, 40px);
  margin-bottom: 22px;
}

.cal__nav {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: none;
  background: transparent;
  color: var(--white);
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
  transition: opacity 0.18s ease;
}
.cal__nav:hover { opacity: 0.6; }

.cal__month {
  margin: 0;
  font-family: var(--font-body-legacy); /* 본문 폰트가 SUIT으로 바뀌어도 이 부분만 기존 모습 유지 */
  font-size: clamp(20px, 4vw, 28px);
  font-weight: 700;
  min-width: 150px;
  text-align: center;
  color: var(--white);
}

.cal__grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: clamp(6px, 1vw, 12px);
}

.cal__dow {
  text-align: center;
  font-size: 13px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.8);
  padding-bottom: 8px;
}

.cal__cell {
  min-height: clamp(78px, 12vw, 122px);
  border-radius: 16px;
  background: transparent;
  border: 1.5px solid rgba(255, 255, 255, 0.85);
  padding: 10px 12px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  overflow: hidden;
}
/* 일요일 칸만 살짝 어둡게 눌러 한 주의 시작을 구분합니다 */
.cal__cell--sun { background: rgba(44, 21, 43, 0.14); }
.cal__cell--empty { background: transparent; border: none; }
.cal__cell--today { border-width: 3px; border-color: var(--white); }

.cal__date {
  font-size: 15px;
  font-weight: 700;
  color: var(--white);
}

.cal__event {
  font-size: 12.5px;
  line-height: 1.35;
  font-weight: 600;
  padding: 0 0 0 2px;
  color: rgba(255, 255, 255, 0.95);
  word-break: keep-all;
}

/* ---------------- 반응형 ---------------- */
@media (max-width: 640px) {
  .site-header { padding: 0 12px; }
  .site-menu { right: 12px; left: 12px; min-width: 0; }
  .cal__cell { min-height: 62px; padding: 5px; }
  .cal__event { font-size: 10px; padding: 2px 4px; }
}

@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
