참고: 설정을 저장한 후에 바뀐 점을 확인하기 위해서는 브라우저의 캐시를 새로 고쳐야 합니다.
- 파이어폭스 / 사파리: Shift 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5 또는 Ctrl-R을 입력 (Mac에서는 ⌘-R)
- 구글 크롬: Ctrl-Shift-R키를 입력 (Mac에서는 ⌘-Shift-R)
- 인터넷 익스플로러 / 엣지: Ctrl 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5를 입력.
- 오페라: Ctrl-F5를 입력.
/* =========================================
COASTLINE: BLACK ICE - Theme
========================================= */
/* screen-header 쓰는 문서만 푸커 숨기기 */
body:has(.screen-header) .liberty-footer {
display: none !important;
}
body:has(.screen-header) footer {
display: none !important;
}
/* 색상 텍스트 틀 및 색상 범위 공통 처리 */
.color-text {
color: var(--text-color, #fff) !important;
}
.color-text a,
.color-text a:visited,
.color-text a.external {
color: var(--text-color, #fff) !important;
}
.color-text a:hover {
color: var(--text-color, #fff) !important;
}
/* 선택 영역 */
::selection {
background: rgba(133, 67, 105, 0.50);
color: #ffffff;
}
::-moz-selection {
background: rgba(133, 67, 105, 0.50);
color: #ffffff;
}
/* SVG + 테두리일 때 사각 테두리 제거, 형태 외곽선만 적용
기존 [[파일:...|테두리]]의 alpha drop-shadow 구조를 2색/2px 국기 획 기준으로 통일한다. */
:root {
--clbi-flag-stroke-inner: #050505;
--clbi-flag-stroke-outer: #3a3a3a;
--clbi-flag-stroke-filter:
drop-shadow(1px 0 0 var(--clbi-flag-stroke-inner))
drop-shadow(-1px 0 0 var(--clbi-flag-stroke-inner))
drop-shadow(0 1px 0 var(--clbi-flag-stroke-inner))
drop-shadow(0 -1px 0 var(--clbi-flag-stroke-inner))
drop-shadow(1px 0 0 var(--clbi-flag-stroke-outer))
drop-shadow(-1px 0 0 var(--clbi-flag-stroke-outer))
drop-shadow(0 1px 0 var(--clbi-flag-stroke-outer))
drop-shadow(0 -1px 0 var(--clbi-flag-stroke-outer));
}
.mw-image-border:has(img[src$=".svg.png"]),
.mw-image-border:has(img[src*=".svg.png?"]) {
border: none !important;
box-shadow: none !important;
background: transparent !important;
padding: 0 !important;
overflow: visible !important;
}
.mw-image-border img[src$=".svg.png"],
.mw-image-border img[src*=".svg.png?"] {
border: none !important;
box-shadow: none !important;
outline: none !important;
background: transparent !important;
filter: var(--clbi-flag-stroke-filter) !important;
}
/* 폰트 */
@font-face {
font-family: 'Galmuri11';
src: url('/fonts/Galmuri11.woff2') format('woff2');
font-weight: 400;
font-display: block;
}
@font-face {
font-family: 'Galmuri11';
src: url('/fonts/Galmuri11-Bold.woff2') format('woff2');
font-weight: 700;
font-display: block;
}
/* 대문 선언문 전용 로컬 글꼴. Galmuri와 같은 서버 /fonts 경로에서 로드한다. */
@font-face {
font-family: 'YiSunShin Bold';
src:
local('YiSunShin Bold'),
local('YiSunShinBold'),
url('/fonts/YiSunShinBold.ttf?v=20260712-2') format('truetype');
font-weight: 400;
font-style: normal;
font-display: block;
}
@font-face {
font-family: 'BoldRound';
src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/2507-2@1.0/BoldDungGeunMo.woff2') format('woff2');
font-weight: normal;
font-display: swap;
}
html body, html .liberty-content-main {
font-family: 'Galmuri11', sans-serif !important;
font-weight: 400 !important;
font-size: 12px;
}
* { font-family: inherit !important; }
.fa, .far, .fas, .fab, [class*="fa-"] {
font-family: 'Font Awesome 5 Free', 'Font Awesome 5 Brands', 'FontAwesome' !important;
}
.mw-page-title-main, .mw-page-title-namespace,
.liberty-content-main h1, .liberty-content-main h2,
.liberty-content-main h3, .liberty-content-main h4,
.liberty-content-main h5, .liberty-content-main h6 {
font-family: 'BoldRound', sans-serif !important;
}
/* 배경 */
html {
min-height: 100%;
overflow-y: scroll;
background: #000000 !important;
}
body {
min-height: 100%;
margin: 0 !important;
background: #000000 !important;
}
/* 이전 JS 배경 레이어는 사용하지 않음 */
.WW-bg {
display: none !important;
}
/* Canvas 기반 고정 하프톤 배경 */
#site-halftone-bg {
position: fixed;
inset: 0;
width: 100vw;
height: 100vh;
z-index: 0;
pointer-events: none;
background: #000000;
}
/* 배경 캔버스보다 실제 위키 UI가 위에 놓이도록 함 */
body > :not(#site-halftone-bg) {
position: relative;
z-index: 1;
}
/* 관리자 툴은 기존 우선순위를 유지 */
#dev-tools-panel {
position: fixed !important;
z-index: 99998 !important;
}
/* OOUI/MediaWiki 팝업 계열 안전 보정 */
.oo-ui-windowManager,
.oo-ui-defaultOverlay,
.mw-notification-area,
.mw-notification-area-overlay {
position: relative;
z-index: 100000 !important;
}
/* 스크롤 */
html { overflow-y: scroll; }
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: #0a0909; }
::-webkit-scrollbar-thumb { background: #854369; border-radius: 3px; }
/* 제목 */
.mw-page-title-main {
border-radius: 5px 5px 0 0 !important;
padding: 7px !important;
border: 2px solid #854369 !important;
border-bottom: none !important;
background: #171717 !important;
color: #e2e2e2 !important;
display: inline-block !important;
position: relative !important;
}
.mw-page-title-main::after {
content: '';
position: absolute;
bottom: -2px;
left: 0;
right: 0;
height: 2px;
background: #171717;
}
.mw-page-title-namespace {
padding: 7px 0 7px 7px !important;
border: 2px solid #854369 !important;
border-right: none !important;
border-bottom: none !important;
border-radius: 5px 0 0 0 !important;
background: #171717 !important;
color: #e2e2e2 !important;
display: inline-block !important;
vertical-align: bottom !important;
position: relative !important;
}
.mw-page-title-namespace::after {
content: '';
position: absolute;
bottom: -2px;
left: 0;
right: 0;
height: 2px;
background: #171717;
}
.mw-page-title-separator {
padding: 7px 0 !important;
border-top: 2px solid #854369 !important;
border-bottom: none !important;
background: #171717 !important;
color: #e2e2e2 !important;
display: inline-block !important;
vertical-align: bottom !important;
position: relative !important;
}
.mw-page-title-separator::after {
content: '';
position: absolute;
bottom: -2px;
left: 0;
right: 0;
height: 2px;
background: #171717;
}
.mw-page-title-namespace ~ .mw-page-title-main {
border-radius: 0 5px 0 0 !important;
padding: 7px 7px 7px 0 !important;
border-left: none !important;
vertical-align: bottom !important;
}
/* 특수 페이지 h1 */
.liberty-content-header .title h1:not(:has(.mw-page-title-main)) {
background: #171717 !important;
color: #e2e2e2 !important;
border: 2px solid #854369 !important;
border-bottom: none !important;
border-radius: 5px 5px 0 0 !important;
padding: 7px !important;
display: inline-block !important;
position: relative !important;
font-family: 'BoldRound', sans-serif !important;
}
.liberty-content-header .title h1:not(:has(.mw-page-title-main))::after {
content: '';
position: absolute;
bottom: -2px;
left: 0;
right: 0;
height: 2px;
background: #171717;
}
/* 대문 제목 숨기기 */
.mw-page-title-main.clbi-hide,
.mw-page-title-main.clbi-hide::after {
display: none !important;
}
/* 본문 */
.Liberty .content-wrapper .liberty-content .liberty-content-main,
.mw-datatable th, .mw-datatable tr:hover td, textarea,
div.mw-warning-with-logexcerpt, div.mw-lag-warn-high,
div.mw-cascadeprotectedwarning, div#mw-protect-cascadeon {
background: #171717;
color: #ffffff;
}
.mw-references-columns {
border-top: 1px solid #414141 !important;
}
/* 문단 보더 */
.Liberty .content-wrapper .liberty-content .liberty-content-main h1,
.Liberty .content-wrapper .liberty-content .liberty-content-main h2,
.Liberty .content-wrapper .liberty-content .liberty-content-main h3,
.Liberty .content-wrapper .liberty-content .liberty-content-main h4,
.Liberty .content-wrapper .liberty-content .liberty-content-main h5,
.Liberty .content-wrapper .liberty-content .liberty-content-main h6 {
margin-top: 1rem;
border-bottom: 1px solid #414141 !important;
margin-bottom: 0.6rem;
padding-bottom: 0.6rem;
overflow-wrap: break-word;
overflow: hidden;
}
/* 링크 색상 */
a { color: #d45aa2 !important; }
a:hover { color: #fdecf9 !important; }
a:active { color: #b3337d !important; }
a.new { color: #ba0000 !important; }
a.new:hover { color: #fe5757 !important; }
a.new:active { color: #ba0000 !important; }
a.external { color: #33b733 !important; text-decoration: underline !important; }
a.external:hover { color: #95ed95 !important; }
a.external:active { color: #33b733 !important; }
a.external:before { display: none !important; }
/* CLBI 템플릿 링크 */
.CLBI-template a { color: #d45aa2 !important; }
.CLBI-template a:hover { color: #fdecf9 !important; }
.CLBI-template a:active { color: #b3337d !important; }
.CLBI-template a.new { color: #ba0000 !important; }
.CLBI-template a.new:hover { color: #fe5757 !important; }
.CLBI-template a.new:active { color: #ba0000 !important; }
.CLBI-template a.external { color: #33b733 !important; }
.CLBI-template a.external:hover { color: #95ed95 !important; }
.CLBI-template a.external:active { color: #33b733 !important; }
/* 편집 버튼 */
.btn-secondary {
color: #e2e2e2 !important;
background-color: #171717 !important;
border: 2px solid #854369 !important;
border-bottom: none !important;
border-radius: 0 !important;
box-shadow: 0 2px 0 0 #854369 !important;
}
.btn-secondary:hover {
color: #d46262 !important;
background-color: #171717 !important;
border: 2px solid #854369 !important;
border-bottom: none !important;
border-radius: 0 !important;
box-shadow: 0 2px 0 0 #854369 !important;
}
.btn-group .btn:first-child { border-radius: 5px 0 0 0 !important; }
.btn-group .dropdown-toggle { border-radius: 0 5px 0 0 !important; }
/* 기본 목차: 본문에서는 숨김 */
.liberty-content-main #toc,
.liberty-content-main .toc {
display: none !important;
}
/* 왼쪽 목차: 전체 내용 영역 */
#side-toc-box .toc-sidebar-content {
padding: 10px 12px !important;
}
/* 왼쪽 목차: 새로 생성한 목차 목록 */
#side-toc-box .generated-toc {
margin: 0 !important;
padding: 0 !important;
list-style: none !important;
background: transparent !important;
border: none !important;
box-shadow: none !important;
}
/* 왼쪽 목차: 목록 항목 */
#side-toc-box .generated-toc li {
margin: 0 0 4px 0 !important;
padding: 0 !important;
background: transparent !important;
line-height: 1.5 !important;
}
#side-toc-box .generated-toc li:last-child {
margin-bottom: 0 !important;
}
/* 왼쪽 목차: 링크 박스 */
#side-toc-box .generated-toc a {
display: block !important;
color: #E2E2E2 !important;
text-decoration: none !important;
padding: 4px 6px !important;
border-radius: 4px !important;
overflow: hidden !important;
}
#side-toc-box .generated-toc a:hover {
background: rgba(133, 67, 105, 0.18) !important;
color: #ffffff !important;
}
/* 왼쪽 목차: 긴 제목 감싸는 영역 */
#side-toc-box .toc-scroll-wrap {
display: block !important;
width: 100% !important;
overflow: hidden !important;
position: relative !important;
}
/* 왼쪽 목차: 실제로 스크롤되는 긴 제목에만 오른쪽 페이드 적용 */
#side-toc-box .toc-scroll-wrap.is-scrolling {
mask-image: linear-gradient(to right, black 88%, transparent 100%) !important;
-webkit-mask-image: linear-gradient(to right, black 88%, transparent 100%) !important;
}
/* 왼쪽 목차: 실제 스크롤되는 텍스트 */
#side-toc-box .toc-scroll-text {
display: inline-block !important;
white-space: nowrap !important;
max-width: none !important;
}
/* 왼쪽 목차: h2 항목 */
#side-toc-box .toc-level-2 .toc-scroll-text {
font-size: 12px !important;
font-weight: 700 !important;
color: #E2E2E2 !important;
}
/* 왼쪽 목차: h3 항목 */
#side-toc-box .toc-level-3 {
padding-left: 12px !important;
}
#side-toc-box .toc-level-3 .toc-scroll-text {
font-size: 11px !important;
font-weight: 400 !important;
color: #b8b8b8 !important;
}
#side-toc-box .toc-level-3 a:hover .toc-scroll-text {
color: #ffffff !important;
}
/* 왼쪽 목차: 문서 스크롤 중에도 목차가 화면 안에 남도록 처리 */
#clbi-left-sidebar {
align-self: stretch !important;
}
/* 왼쪽 목차: 목차 박스만 화면 상단에 고정되듯 따라오게 함 */
#side-toc-box {
position: sticky !important;
top: 10px !important;
z-index: 1001;
max-height: calc(100vh - 40px);
overflow: hidden;
}
/* 왼쪽 목차: 항목이 많을 때 목차 내부만 스크롤되게 함 */
#side-toc-box .toc-sidebar-content {
max-height: calc(100vh - 88px);
overflow-y: auto;
overflow-x: hidden;
}
/* 분류 칸 — 전역 단일 기준
기본 상태는 숨김이다. JS가 현재 문서의 실제 분류 내용을 확인하고
.clbi-catlinks-ready를 붙인 뒤에만 사용자에게 패널을 보여준다. */
#catlinks,
.catlinks {
display: none !important;
}
#catlinks.clbi-catlinks-ready,
.catlinks.clbi-catlinks-ready {
position: relative !important;
z-index: 49 !important;
display: block !important;
visibility: visible !important;
width: 100% !important;
max-width: none !important;
left: auto !important;
right: auto !important;
height: auto !important;
min-height: 24px !important;
max-height: none !important;
margin: 4px 0 0 0 !important;
padding: 4px 7px !important;
box-sizing: border-box !important;
background: #1d1d1d !important;
border: 1px solid #050505 !important;
border-radius: 0 !important;
box-shadow:
inset 0 1px 0 #555555,
inset -1px 0 0 #555555,
inset 1px 0 0 #101010,
inset 0 -1px 0 #101010 !important;
color: #e2e2e2 !important;
font-size: 12px !important;
line-height: 1.5 !important;
text-align: left !important;
text-shadow: 1px 1px 0 #000 !important;
white-space: normal !important;
overflow: visible !important;
}
#catlinks *,
.catlinks * {
box-sizing: border-box !important;
}
#catlinks .mw-normal-catlinks,
.catlinks .mw-normal-catlinks,
#catlinks #mw-normal-catlinks,
.catlinks #mw-normal-catlinks,
#catlinks .mw-hidden-catlinks,
.catlinks .mw-hidden-catlinks,
#catlinks #mw-hidden-catlinks,
.catlinks #mw-hidden-catlinks,
#mw-hidden-catlinks.mw-hidden-catlinks,
#mw-hidden-catlinks.mw-hidden-cats-hidden,
#mw-hidden-catlinks.mw-hidden-cats-user-shown {
display: block !important;
visibility: visible !important;
opacity: 1 !important;
width: auto !important;
height: auto !important;
min-height: 0 !important;
max-height: none !important;
margin: 0 !important;
padding: 0 !important;
background: transparent !important;
border: 0 !important;
box-shadow: none !important;
color: #e2e2e2 !important;
font-size: 12px !important;
line-height: 1.5 !important;
white-space: normal !important;
overflow: visible !important;
}
#catlinks .mw-hidden-catlinks,
.catlinks .mw-hidden-catlinks,
#catlinks #mw-hidden-catlinks,
.catlinks #mw-hidden-catlinks,
#mw-hidden-catlinks.mw-hidden-catlinks,
#mw-hidden-catlinks.mw-hidden-cats-hidden,
#mw-hidden-catlinks.mw-hidden-cats-user-shown {
margin-top: 4px !important;
}
#catlinks.catlinks-allhidden .mw-hidden-catlinks,
.catlinks.catlinks-allhidden .mw-hidden-catlinks,
#catlinks.catlinks-allhidden #mw-hidden-catlinks,
.catlinks.catlinks-allhidden #mw-hidden-catlinks {
margin-top: 0 !important;
}
#catlinks .mw-hidden-cats-hidden,
.catlinks .mw-hidden-cats-hidden,
#catlinks .mw-hidden-cats-user-shown,
.catlinks .mw-hidden-cats-user-shown {
display: block !important;
visibility: visible !important;
opacity: 1 !important;
height: auto !important;
max-height: none !important;
overflow: visible !important;
}
#catlinks ul,
.catlinks ul {
display: inline !important;
margin: 0 !important;
padding: 0 !important;
list-style: none !important;
list-style-image: none !important;
background: transparent !important;
border: 0 !important;
}
#catlinks li,
.catlinks li {
display: inline !important;
margin: 0 0 0 4px !important;
padding: 0 !important;
list-style: none !important;
list-style-image: none !important;
background: transparent !important;
border: 0 !important;
color: #e2e2e2 !important;
font-size: 12px !important;
line-height: 1.5 !important;
}
#catlinks li::before,
#catlinks li::after,
.catlinks li::before,
.catlinks li::after {
content: none !important;
}
#catlinks a,
.catlinks a {
display: inline !important;
color: #e2e2e2 !important;
text-decoration: none !important;
font-size: 12px !important;
font-weight: 400 !important;
line-height: 1.5 !important;
}
#catlinks a:hover,
.catlinks a:hover {
color: #ffffff !important;
text-decoration: none !important;
}
/* JS가 DOM/config/API를 모두 확인한 뒤 실제 분류가 없다고 확정한 경우만 숨긴다.
catlinks-allhidden 자체는 숨김 사유가 아니다. 숨은 분류 링크가 있으면 JS가
.clbi-catlinks-empty를 제거하고 패널을 표시한다. */
#catlinks.clbi-catlinks-empty,
.catlinks.clbi-catlinks-empty,
#catlinks.clbi-catlinks-pending,
.catlinks.clbi-catlinks-pending {
display: none !important;
}
body.clbi-main-page #catlinks,
body.clbi-main-page .catlinks {
display: none !important;
}
#catlinks.clbi-catlinks-api-populated .mw-normal-catlinks,
.catlinks.clbi-catlinks-api-populated .mw-normal-catlinks {
display: block !important;
}
/* 분류 문서 */
.mw-category-generated { color: #e2e2e2 !important; }
.mw-category-generated a { color: #854369 !important; }
.CategoryTreeToggle { color: #854369 !important; }
.number-link { color: #854369 !important; }
/* 편집 섹션 */
.mw-editsection {
color: #b45c8f !important;
float: right;
font-weight: bold;
}
/* 넘겨주기 */
.mw-redirectedfrom { color: #854369 !important; }
.mw-redirectedfrom a { color: #854369 !important; }
/* 서브페이지 */
.subpages { color: #fdecec !important; }
.subpages a { color: #854369 !important; }
.subpages a:active { color: #854369 !important; }
/* 공지사항 */
.alert-info {
background-color: #171717 !important;
border: 2px solid #854369 !important;
box-shadow: 0px 0px 3px #000000;
}
/* 푸터 */
.footer-info-lastmod { color: #e2e2e2 !important; }
.footer-info-copyright { color: #e2e2e2 !important; }
.footer-places-privacy a { color: #c95197 !important; }
.footer-places-privacy a:active { color: #e2e2e2 !important; }
.footer-places-about a { color: #c95197 !important; }
.footer-places-about a:active { color: #e2e2e2 !important; }
.footer-places-disclaimers a { color: #c95197 !important; }
.footer-places-disclaimers a:active { color: #e2e2e2 !important; }
/* 리스트 */
.liberty-content-main ul:not(#toc) {
list-style-type: disc;
list-style-image: none;
}
.liberty-content-main ul ul:not(#toc) {
list-style-type: circle;
list-style-image: none;
}
.liberty-content-main ul ul ul:not(#toc) {
list-style-type: square;
list-style-image: none;
}
/* 반전 */
.invert {
filter: invert(1);
}
/* 편집 권한에 따라 우측 모서리 처리 */
.liberty-content.content-tools-hidden .liberty-content-main {
border-top-right-radius: 5px !important;
}
/* 이미지 위에 이미지 얹기 */
.portrait-overlay-img,
.portrait-overlay-img a {
max-width: none !important;
max-height: none !important;
overflow: visible !important;
}
.portrait-overlay-img img {
height: var(--overlay-height, 180px) !important;
width: auto !important;
max-width: none !important;
max-height: none !important;
}
/* 관련 틀 본문 하단 여백 보정 */
.related-template-body > *:last-child {
margin-bottom: 1px !important;
}
.related-template-body table:last-child,
.related-template-body .wikitable:last-child,
.related-template-body [id^="collapsible"]:last-child {
margin-bottom: 1px !important;
}
.related-template-body > br:last-child {
display: none !important;
}
/* 컨트리볼 */
#clbi-left-nations-image {
display: block;
width: 100%;
height: auto;
margin: 0;
padding: 0;
border: 0;
}
/* =========================================
Foundation UI — final standard class layer
=========================================
이 위키에서 새로 만드는 기반 UI가 곧 표준이다.
새 범용 클래스에는 clbi/ui/v3 같은 접두사를 붙이지 않는다.
기존 clbi-* 계열은 호환을 위해 유지하되, 새 공통 문법은 아래 표준명으로 통합한다.
*/
:root {
--panel-surface: #1d1d1d;
--well-surface: #080808;
--edge-cut: #050505;
--edge-light: #555555;
--edge-dark: #101010;
--text-title: #ffffff;
--text-body: #e2e2e2;
--text-muted: #626262;
--text-dev: #8a8a8a;
--frame-face: 8px;
--item-gap: 2px;
--line-ui-h: 24px;
--line-face-h: 20px;
--well-line-ui-h: 22px;
--frame-title-h: 34px;
--body-line-h: 18px;
}
.panel,
.frame,
.button,
.bookmark,
.bookmark-title,
.item,
.plate {
background: var(--panel-surface);
border: 1px solid var(--edge-cut);
border-radius: 0;
box-shadow:
inset 0 1px 0 var(--edge-light),
inset -1px 0 0 var(--edge-light),
inset 1px 0 0 var(--edge-dark),
inset 0 -1px 0 var(--edge-dark);
}
.well,
.content-well,
.input {
background: var(--well-surface);
border: 0;
border-radius: 0;
box-shadow:
inset 0 1px 0 var(--edge-dark),
inset -1px 0 0 var(--edge-dark),
inset 1px 0 0 var(--edge-light),
inset 0 -1px 0 var(--edge-light);
}
.button,
.bookmark,
.bookmark-title,
.line-control {
height: var(--line-ui-h);
min-height: var(--line-ui-h);
max-height: var(--line-ui-h);
line-height: var(--line-face-h);
box-sizing: border-box;
display: inline-flex;
align-items: center;
justify-content: center;
}
.input {
height: var(--well-line-ui-h);
min-height: var(--well-line-ui-h);
max-height: var(--well-line-ui-h);
line-height: var(--line-face-h);
box-sizing: border-box;
}
.button,
.bookmark,
.bookmark-title,
.frame-title {
font-size: 12px;
font-weight: 700;
}
.input {
font-size: 12px;
font-weight: 400;
color: var(--text-body);
outline: 0;
}
.input::placeholder {
color: var(--text-muted);
opacity: 1;
}
.input:focus {
box-shadow:
inset 0 1px 0 var(--text-muted),
inset -1px 0 0 var(--text-muted),
inset 1px 0 0 var(--text-muted),
inset 0 -1px 0 var(--text-muted);
}
.input:disabled,
.input[readonly] {
color: var(--text-muted);
}
.frame-title {
height: var(--frame-title-h);
min-height: var(--frame-title-h);
line-height: var(--frame-title-h);
background: transparent;
border: 0;
box-shadow: none;
color: var(--text-title);
}
.frame-title-inner {
height: var(--frame-title-h);
display: inline-flex;
align-items: center;
justify-content: center;
gap: 4px;
}
.frame-title-icon,
.icon-16 {
width: 16px;
height: 16px;
flex: 0 0 16px;
color: currentColor;
}
.bookmark {
color: var(--text-muted);
}
.bookmark:hover,
.bookmark:focus,
.bookmark:active,
.bookmark.is-active {
background: var(--panel-surface);
color: var(--text-title);
box-shadow:
inset 0 1px 0 var(--edge-light),
inset -1px 0 0 var(--edge-light),
inset 1px 0 0 var(--edge-dark),
inset 0 -1px 0 var(--edge-dark);
}
.content-well {
min-height: var(--well-line-ui-h);
padding: 1px 8px;
color: var(--text-body);
font-size: 12px;
font-weight: 400;
line-height: var(--line-face-h);
}
.body-text {
color: var(--text-body);
font-size: 12px;
font-weight: 400;
line-height: var(--body-line-h);
}
.body-text a,
.body-text a:visited,
.mw-parser-output a,
.mw-parser-output a:visited {
color: var(--text-body);
text-decoration: none;
}
.body-text a:hover,
.body-text a:focus,
.body-text a:visited:hover,
.body-text a:visited:focus,
.mw-parser-output a:hover,
.mw-parser-output a:focus,
.mw-parser-output a:visited:hover,
.mw-parser-output a:visited:focus {
color: var(--text-title);
text-decoration: underline;
}
.body-text a:active,
.body-text a:visited:active,
.mw-parser-output a:active,
.mw-parser-output a:visited:active {
color: var(--text-body);
text-decoration: underline;
}
/* Foundation correction — document link normalization
일반 문서 링크는 방문 여부로 색을 바꾸지 않는다.
hover/focus에서만 #ffffff와 밑줄로 클릭 가능 상태를 표시한다.
글자 굵기는 기존 문맥을 유지한다. */
.liberty-content-main .mw-parser-output a:not(.new):not(.external),
.liberty-content-main .mw-parser-output a:not(.new):not(.external):visited,
#catlinks a,
.catlinks a {
color: #e2e2e2 !important;
text-decoration: none !important;
}
.liberty-content-main .mw-parser-output a:not(.new):not(.external):hover,
.liberty-content-main .mw-parser-output a:not(.new):not(.external):focus,
.liberty-content-main .mw-parser-output a:not(.new):not(.external):visited:hover,
.liberty-content-main .mw-parser-output a:not(.new):not(.external):visited:focus,
#catlinks a:hover,
#catlinks a:focus,
.catlinks a:hover,
.catlinks a:focus {
color: #ffffff !important;
text-decoration: underline !important;
}
.liberty-content-main .mw-parser-output a:not(.new):not(.external):active,
.liberty-content-main .mw-parser-output a:not(.new):not(.external):visited:active,
#catlinks a:active,
.catlinks a:active {
color: #e2e2e2 !important;
text-decoration: underline !important;
}
/* =========================================================
Foundation wells — explicit 20px usable #080808 face (20260709-fix33)
---------------------------------------------------------
A well has no #050505 outer edge. Its one-line border-box is 22px:
1px top shadow + 20px usable #080808 face + 1px bottom reflection.
Background layers are used instead of relying on inset shadows so the
visible #080808 face is actually 20px in the final pixels.
========================================================= */
.well,
.content-well,
.input {
background:
linear-gradient(var(--edge-dark),var(--edge-dark)) 0 0 / 100% 1px no-repeat,
linear-gradient(var(--edge-dark),var(--edge-dark)) 100% 0 / 1px 100% no-repeat,
linear-gradient(var(--edge-light),var(--edge-light)) 0 0 / 1px 100% no-repeat,
linear-gradient(var(--edge-light),var(--edge-light)) 0 100% / 100% 1px no-repeat,
var(--well-surface);
border:0;
box-shadow:none;
}
.input,
.content-well {
min-height:var(--well-line-ui-h);
line-height:var(--line-face-h);
box-sizing:border-box;
}
.input:focus {
background:
linear-gradient(var(--text-muted),var(--text-muted)) 0 0 / 100% 1px no-repeat,
linear-gradient(var(--text-muted),var(--text-muted)) 100% 0 / 1px 100% no-repeat,
linear-gradient(var(--text-muted),var(--text-muted)) 0 0 / 1px 100% no-repeat,
linear-gradient(var(--text-muted),var(--text-muted)) 0 100% / 100% 1px no-repeat,
var(--well-surface);
box-shadow:none;
}
/* =========================================================
Foundation wells — 22px one-line well / 20px usable #080808 face (20260709-fix35)
---------------------------------------------------------
A one-line raised control remains 24px because it has both the #050505
outer edge and the 1px inset. A well has no #050505 outer edge, so the
well itself must be reduced to 22px: 1px shadow + 20px usable face +
1px reflection. The #101010 / #555555 edges must not become 2px.
========================================================= */
:root {
--well-line-ui-h:22px;
--well-edge-h:1px;
}
.well,
.content-well,
.input {
min-height:var(--well-line-ui-h);
line-height:var(--line-face-h);
box-sizing:border-box;
background:
linear-gradient(var(--edge-dark),var(--edge-dark)) 0 0 / 100% var(--well-edge-h) no-repeat,
linear-gradient(var(--edge-dark),var(--edge-dark)) 100% 0 / var(--well-edge-h) 100% no-repeat,
linear-gradient(var(--edge-light),var(--edge-light)) 0 0 / var(--well-edge-h) 100% no-repeat,
linear-gradient(var(--edge-light),var(--edge-light)) 0 100% / 100% var(--well-edge-h) no-repeat,
var(--well-surface);
border:0;
box-shadow:none;
}
.input {
height:var(--well-line-ui-h);
max-height:var(--well-line-ui-h);
padding:1px 8px;
}
.content-well {
padding:1px 8px;
}
.input:focus {
background:
linear-gradient(var(--text-muted),var(--text-muted)) 0 0 / 100% var(--well-edge-h) no-repeat,
linear-gradient(var(--text-muted),var(--text-muted)) 100% 0 / var(--well-edge-h) 100% no-repeat,
linear-gradient(var(--text-muted),var(--text-muted)) 0 0 / var(--well-edge-h) 100% no-repeat,
linear-gradient(var(--text-muted),var(--text-muted)) 0 100% / 100% var(--well-edge-h) no-repeat,
var(--well-surface);
box-shadow:none;
}