/* ================================== Encoding & Font Face ================================== */ @charset "UTF-8"; /* 웹 폰트 예시 (Pretendard) + font-display: swap */ @font-face { font-family: 'Pretendard-Regular'; src: url('https://fastly.jsdelivr.net/gh/Project-Noonnu/noonfonts_2107@1.1/Pretendard-Regular.woff') format('woff'); font-weight: 400; font-style: normal; font-display: swap; /* 핵심: 웹폰트 로드 전 시스템 폰트로 표시 */ } /* ================================== Reset & Global ================================== */ :focus-visible { outline: 3px solid #0052B3; outline-offset: 3px; border-radius: 5px; } html, body { margin: 0; padding: 0; font-family: "Pretendard-Regular", sans-serif; font-weight: 400; color: #000; scroll-behavior: smooth; letter-spacing: 0.2px; min-width: 320px; -webkit-tap-highlight-color: transparent; -moz-tap-highlight-color: transparent; -ms-tap-highlight-color: transparent; } /* HTML5 요소 초기화 */ article, aside, canvas, details, figcaption, figure, footer, header, main, menu, nav, section, summary { display: block; } /* 기본 여백 초기화 */ body, button, dd, dl, dt, fieldset, form, h1, h2, h3, h4, h5, h6, input, legend, li, ol, p, select, table, td, textarea, th, ul { margin: 0; padding: 0; } /* 폼 요소 기본 스타일 제거 */ body, button, input, select, textarea { color: inherit; font-family: inherit; } /* 링크 & 리스트 */ a { color: inherit; cursor: pointer; text-decoration: none !important; } ol, ul { list-style: disc; } address, em { font-style: normal; } /* 버튼 & 이미지 */ button, input { border: 0; border-radius: 0; background-color: transparent; } img { border-style: none; box-sizing: border-box; } /* 시각적 숨김 (접근성) */ .blind, .sr-only { position: absolute; overflow: hidden; clip: rect(0 0 0 0); margin: -1px; width: 1px; height: 1px; } .sr-only-focusable:active, .sr-only-focusable:focus { clip: auto; height: auto; margin: 0; overflow: visible; position: static; width: auto; } /* ================================== Layout: Wrap, Container, Header ================================== */ #wrap { width: 100%; max-width: 900px; /* 원하시는 값으로 조정 */ margin: 92px auto 0; /* 기존 margin-top: 92px 적용 + 좌우 auto */ display: block; /* inline-block 대신 block 권장 */ } #container { width: auto; margin: 0 auto; min-height: 100vh; } header { display: flex; justify-content: center; } #header_wrap { width: 100%; position: absolute; z-index: 99; top: 0; min-width: 300px; max-width: 800px; } #container #main #content { flex: 2.85; overflow: hidden; position: relative; } /* 헤더 스크롤 효과 */ .shrink { /* 예시로, 스크롤 시 헤더 높이 줄이는 스타일 */ /* 필요 시 사용: #header_wrap.shrink { height: 60px; transition: 0.3s; } */ } /* ================================== Index / List / Paging ================================== */ .index_wrap { position: relative; background-color: inherit; overflow: hidden; } .list_detail_wrap { overflow: hidden; text-decoration: none; } .list_detail_wrap .post_title { margin-bottom: 10px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; font-weight: 600; line-height: 150%; font-size: 20px; } .list_detail_wrap .post_text { position: relative; font-size: 15px; max-height: 75px; overflow: hidden; margin-bottom: 0; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; line-height: 1.7; } #paging { margin: 20px auto; text-align: center; } #paging .page-icon { font-size: 21px; vertical-align: middle; } #paging .pagination li { display: inline-block; } #paging .pagination li a { position: relative; display: block; padding: 10px 0; color: #555; min-width: 30px; } #paging .pagination li a:hover { color: #000; font-weight: 600; } #paging .pagination li .selected { color: #000; font-weight: 600; border-bottom: 1px solid; } #paging .prevpage, #paging .nextpage { width: inherit !important; } .paging-line { display: none; } /* ================================== Post & Content Area ================================== */ .hd .hd-heading { display: inline-block; margin-top: 20px; margin-bottom: 10px; font-size: 50px; font-weight: bold; } .section-title { font-size: 18px; text-align: center; font-weight: bold; margin-top: 25px; margin-bottom: 25px; } .e-content.post-content { max-width: 100%; padding-bottom: 0; font-size: 20px; margin-top: 20px; } .e-content.post-content iframe { margin: 0; padding: 0; border: 0; width: 100%; } .e-content.post-content a { color: #0052B3; } .e-content.post-content a:hover { font-weight: 600; } .e-content.post-content h2 { margin-top: 30px; margin-bottom: 20px; font-size: 30px; font-weight: bold!important; word-break: normal; word-wrap: break-word; color: #ffffff; background-color: #004B87; padding: 16px 24px; border-radius: 12px 12px 0 0; } .e-content.post-content h3, .e-content.post-content h4 { margin-top: 40px; margin-bottom: 15px; font-size: 25px; font-weight: bold!important; word-break: normal; word-wrap: break-word; text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.25); } .e-content.post-content h2::before { content: "📋 "; /* 텍스트(또는 이모지) + 끝에 공백으로 간격 */ display: inline-block; margin-right: 4px; /* 아이콘과 제목 사이 여유 */ } .e-content.post-content h3::before { content: "✅ "; /* 텍스트(또는 이모지) + 끝에 공백으로 간격 */ display: inline-block; margin-right: 4px; /* 아이콘과 제목 사이 여유 */ } .e-content.post-content ul, .e-content.post-content ol { margin: 14px auto 24px; padding: 0 0 0 10px; } .e-content.post-content ol li, .e-content.post-content ul li { margin: 0 0 3px 22px; line-height: 1.9; } .e-content.post-content p { position: relative; display: block; line-height: 1.9; margin: 0 0 20px!important; } /* 구분선 (카테고리/인덱스 등) */ #tt-body-index .h-entry:after, #tt-body-category .h-entry:after, #tt-body-search .h-entry:after, #tt-body-tag .h-entry:after { display: block; border-bottom: 1px solid #dadce0; width: 100%; content: ""; margin: 20px 0; } #tt-body-index .index_s_list, #tt-body-category .index_s_list { padding-bottom: 0; margin-bottom: 10px; } #tt-body-page .h-entry { max-width: 100%; width: 100%; margin: 0 auto; } #tt-body-index .h-entry h2, #tt-body-category .h-entry h2 { line-height: 140%; } #tt-body-index .h-entry, #tt-body-category .h-entry, #tt-body-search .h-entry { max-width: 100%; } #tt-body-page #comment .control { position: relative; } /* ================================== Table of Contents (TOC) ================================== */ .toc-wrap { background-color: #f9f9f9; border: 1px solid #dadce0; border-radius: 10px; padding: 0 10px; margin: 0 3px 30px 1px; font-size: 14px; box-sizing: border-box; position: relative; box-shadow: 1px 2px 3px 1px rgba(0, 0, 0, 0.1); } .toc-wrap .toc-title { border-bottom: 1px solid #ccd0d7; padding: 0 5px; position: relative; line-height: 40px; display: flex; } .toc-wrap .toc-title .toc-icon:before { content: "\e242"; font-family: "Material Icons Outlined"; font-size: 20px; margin-right: 3px; vertical-align: bottom; } .toc-wrap .toc-item a { color: var(--color-alpha-80, #555); } .toc-wrap .toc-item.h2 { font-size: 14px; } .toc-wrap .toc-item.h3 { padding-left: 20px; font-size: 14px; } .toc-wrap .toc-item.h2:before { content: "\e315"; font-family: "Material Icons Outlined"; margin-right: 5px; font-size: 16px; vertical-align: bottom; } .toc-wrap .toc-item.h3:before { content: "-"; margin-right: 7px; font-size: 16px; vertical-align: bottom; } .toc-wrap ul { margin: 0; } .toc-wrap .toc li { list-style: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin: 9px 0; line-height: 1.3; } /* 플로팅 TOC */ .toc-wrap.floating { /* ex) position: fixed; top: 20%; right: 2%; ... */ } .toc-wrap.floating.active { /* ex) transform: translateX(0); */ } /* ================================== Related Area ================================== */ .area_related_wrap .related_table { margin: 15px 0; display: table; width: 100%; } .area_related_wrap .list_related { border-top: 1px solid #dadce0; } .area_related_wrap .list_item { position: relative; overflow: hidden; padding: 10px 5px 10px 0; border-bottom: 1px solid #dadce0; } .area_related_wrap .list_item .area_info .title { display: block; overflow: hidden; height: auto; white-space: nowrap; text-overflow: ellipsis; font-size: 16px; line-height: 20px; padding-right: 10px; } .area_related_wrap .list_item .area_info .title:hover { color: #3ea2ff; transition: 0.3s; } /* ================================== Container Post Buttons ================================== */ .container_postbtn { padding-bottom: 15px !important; visibility: hidden; /* 초기에는 지연 로드 전 숨김 */ } .container_postbtn button { outline-style: none !important; } .container_postbtn .btn_menu_toolbar { background: #f9f9f9; border-radius: 7px; border: 0; margin: 0; box-shadow: 1px 2px 3px 1px rgba(0, 0, 0, 0.1); height: 40px !important; cursor: pointer; transition: 0.3s; } .container_postbtn .btn_menu_toolbar:hover { background: #000 !important; color: #fff; } .container_postbtn .btn_menu_toolbar.following .ico_check_type1 { margin-top: 16px; } .container_postbtn .btn_menu_toolbar .txt_state { display: flex; padding-left: 5px; } .container_postbtn .txt_state::before { content: "\e866"; font-family: "Material Icons Outlined"; font-size: 18px; margin-right: 2px; } .container_postbtn .postbtn_like { display: inline-block; border: 0 !important; padding: 0 !important; } .container_postbtn .btn_post { height: 40px !important; padding: 0 5px !important; } .container_postbtn .postbtn_ccl { float: none !important; position: absolute !important; right: 0 !important; top: 50% !important; } .container_postbtn .wrap_btn { padding: 0 10px; margin-right: 8px !important; background: #f9f9f9; border-radius: 7px; box-shadow: 1px 2px 3px 1px rgba(0, 0, 0, 0.1); } .container_postbtn .wrap_btn:hover { background: #f0f0f0; transition: 0.3s; } /* ================================== Ad Module, Misc ================================== */ .ad-module { text-align: center; margin-left: -2px; margin-bottom: 5px; } /* ================================== Syntax Highlighting ================================== */ code, kbd, samp { font-family: Consolas, monospace; line-height: 150%; font-size: 14px; border-radius: 10px; } pre code { margin: 14px auto; display: inline-block; } pre > code.hljs { margin: 0 auto; } .hljs-ln-numbers { -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; text-align: center; color: #b5b5b5; border-right: 1px solid #b5b5b5; vertical-align: top; width: 20px; padding-left: 0; } .hljs-ln td.hljs-ln-numbers { padding-right: 10px; } .hljs-ln td.hljs-ln-code { padding-left: 10px; } /* ================================== My Button (예시) ================================== */ .myButton { box-shadow: inset 0 1px 0 0 #f29c93; background: linear-gradient(to bottom, #ff2a12 5%, #ce0100 100%); background-color: #ff2a12; border-radius: 30px; border: 1px solid #d83526; display: inline-block; cursor: pointer; color: #fff !important; font-family: "Pretendard-Regular", sans-serif; font-size: 26px; font-weight: bold; padding: 36px 20px; text-decoration: none; text-shadow: 0 1px 50px #b23e35; white-space: nowrap; margin-top: 30px; margin-bottom: 30px; } .myButton:hover { background: linear-gradient(to bottom, #ce0100 5%, #ff2a12 100%); background-color: #ce0100; } .myButton:active { position: relative; top: 1px; } /* ================================== Open Graph ================================== */ figure[data-ke-type="opengraph"], #tt-body-page figure[data-ke-type="opengraph"] { max-width: 500px; margin: 10px 0; } figure[data-ke-type='opengraph'] a, #tt-body-page figure[data-ke-type='opengraph'] a { height: 110px; width: auto; border-radius: 7px; background: #f6f6f6; border: 0; box-shadow: 1px 2px 3px 1px rgba(0, 0, 0, 0.1); } figure[data-ke-type='opengraph'] div.og-image { width: 105px; border-radius: 7px; margin: 5px; border: 0; overflow: hidden; } figure[data-ke-type='opengraph'] div.og-text { left: 100px !important; padding: 13px 0 0 20px !important; margin-bottom: 5px; } figure[data-ke-type='opengraph'] div.og-text p.og-title, #tt-body-page figure[data-ke-type='opengraph'] div.og-text p.og-title { font-size: 16px; font-family: inherit; } figure[data-ke-type='opengraph'] div.og-text p.og-desc, #tt-body-page figure[data-ke-type='opengraph'] div.og-text p.og-desc { font-family: inherit; color: #555; padding-right: 10px; max-height: initial; -webkit-line-clamp: 1; display: -webkit-box; } figure[data-ke-type='opengraph'] div.og-text p.og-host, #tt-body-page figure[data-ke-type='opengraph'] div.og-text p.og-host { font-family: inherit; font-weight: 300; bottom: 5px; color: #555; } /* ================================== 표 스타일 (Table Style) ================================== */ .e-content.post-content table { width: 100%; /* 표 너비를 100%로 설정 */ border-collapse: collapse; /* 테두리 한 줄로 합치기 */ margin: 30px 0; /* 표 위아래 여백 */ font-size: 16px; /* 표 안의 기본 글자 크기 */ text-align: left; /* 글자 왼쪽 정렬 */ } /* 표의 제목(th)과 내용(td) 칸 스타일 */ .e-content.post-content th, .e-content.post-content td { border: 1px solid #e0e0e0; /* 칸 테두리 색상 */ padding: 12px 15px; /* 칸 안쪽 여백 (핵심!) */ line-height: 1.6; /* 줄 간격 */ vertical-align: middle; /* 내용 세로 중앙 정렬 */ } /* 표의 제목(th) 칸 스타일 */ .e-content.post-content th { background-color: #f9f9f9; /* 제목 칸 배경색 */ font-weight: bold; /* 굵은 글씨 */ text-align: center; /* 제목 글자 가운데 정렬 */ } /* ================================== Responsive Media Queries ================================== */ @media only screen and (max-width: 1023px) { #tt-body-category .h-entry .content-width, #tt-body-category .protected .content-width, #tt-body-search .h-entry .content-width, #tt-body-search .protected .content-width, #tt-body-tag .h-entry .content-width, #tt-body-tag .protected .content-width { margin: 0; } .list_content { cursor: pointer; justify-content: center; align-items: center; max-height: unset !important; } .h-entry { max-width: 900px; width: auto !important; max-height: unset; padding: 0 20px 0 24px; } .list_detail_wrap { max-height: unset; vertical-align: middle; } .paging-line { display: block; } } @media only screen and (max-width: 450px) { #header_wrap { line-height: 20px; } .hd .hd-heading { font-size: 40px; } #wrap { margin-top: 70px; } #paging .pagination li { font-size: 15px; } .h-entry { padding: 0 14px 0 18px; } .e-content.post-content h2 { font-weight: bold!important; line-height: 1.6; margin-top: 25px; margin-bottom: 15px; font-size: 25px; } .e-content.post-content h3, .e-content.post-content h4 { font-weight: bold!important; line-height: 1.6; margin-top: 40px; margin-bottom: 15px; font-size: 20px; text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.25); } /* 2) 버튼 폭 & 줄바꿈 처리 */ .myButton, .container_postbtn .btn_menu_toolbar { max-width: 100%; /* 부모 폭을 넘지 않도록 */ white-space: normal; /* 필요 시 줄바꿈 허용 */ word-break: keep-all; /* 한국어 단어 단위로 줄바꿈 */ font-size: 18px; /* 26px → 18px */ padding: 18px 20px; /* 패딩 절반으로 축소 */ } /* 3) 전체 글자 크기 ↓ */ body { font-size: 0.9375rem; /* 약 15px – Pretendard 기준 가독성 유지 */ } /* 목록·본문 세부 조정 ---------------- */ .list_detail_wrap .post_title { font-size: 18px; line-height: 1.5; } .list_detail_wrap .post_text { font-size: 14px; } .e-content.post-content { font-size: 16px; } .e-content.post-content ol li, .e-content.post-content ul li { font-size: 16px; } /* Table-of-Contents(TOC) 글자도 ↓ */ .toc-wrap, .toc-wrap .toc-item.h2, .toc-wrap .toc-item.h3 { font-size: 13px; } }