미디어위키:Layout.css: 두 판 사이의 차이

편집 요약 없음
편집 요약 없음
1번째 줄: 1번째 줄:
/* =========================================
/* =========================================
  COASTLINE: BLACK ICE - Layout
COASTLINE: BLACK ICE - Layout
  ========================================= */
Core page shell / top nav / sidebars
========================================= */


/* 상단하단 텔레포트 버튼 숨기기 */
/*
설계 목적
-----------------------------------------
이 파일은 MediaWiki/Liberty 스킨 위에 올라가는
기본 레이아웃 뼈대를 담당한다.
 
담당 범위:
- 기본 Liberty 네비 숨김
- 본문 컨테이너 폭과 배치
- 본문 컨테이너 외곽 테마
- 상단 네비바
- 좌우 사이드바
- 유저 박스와 사이드 링크 버튼
- 하단 푸터
 
현재 디자인 기준:
- 대문 MainPage.css에서 잡은 어두운 금속 패널 문법을 따른다.
- 보라색 강조색(#854369, #d45aa2) 중심의 이전 테마는 제거한다.
- 공사선 모티프는 이 파일에서 쓰지 않는다.
  공사선은 프로젝트 트래커, 제작 로그, 정비 알림처럼
  "우리가 만들고 있음"이 전면에 오는 곳에서만 사용한다.
- 본문 컨테이너, 상단 네비바, 좌우 사이드바는
  같은 기록 장치/조작 패널 계열로 보이게 한다.
 
주의:
- 대문 내부 전용 구성은 MediaWiki:MainPage.css가 담당한다.
- 카테고리 SVG 네비는 MediaWiki:CategoryNav.js + MainPage.css가 담당한다.
- 언어 드로어는 MediaWiki:LangDrawer.css가 담당한다.
*/
 
/* -----------------------------------------
0. 공통 색상 메모
----------------------------------------- */
 
/*
North-light rule:
상단은 밝게, 좌우는 중간, 하단은 어둡게 잡는다.
 
주요 표면:
#101010 : 기본 프레임
#141414 : 약간 밝은 패널 표면
#1d1d1d : 타이틀바
#252525 : 호버 표면
#080808 : 내부 우물/본문 배경
 
주요 테두리:
#555555 : 상단광
#2b2b2b : 좌우
#050505 : 하단암
#202020 : 내부 약한 구분선
*/
 
/* -----------------------------------------
1. Liberty 기본 요소 정리
----------------------------------------- */
 
/* 상단/하단 텔레포트 버튼 숨기기 */
#liberty-bottombtn {
#liberty-bottombtn {
    display: none !important;
display:none !important;
}
}


/* 토론 탭 숨기기 */
/* 토론 탭 숨기기 */
a[accesskey="t"] {
a[accesskey="t"] {
    display: none !important;
display:none !important;
}
}


/* 네비게이션 */
/* Liberty 기본 네비게이션 숨김 */
.Liberty .nav-wrapper { display: none !important; }
.Liberty .nav-wrapper {
display:none !important;
}
 
/* 기본 Liberty 사이드바 숨김 */
.liberty-sidebar {
display:none !important;
}
 
/* -----------------------------------------
2. 전체 배치
----------------------------------------- */
 
/*
좌우 커스텀 사이드바 230px + 중앙 본문 1500px 기준.
이 폭 배치는 기존 작업에서 맞춰놓은 구조를 유지한다.
 
주의:
여기서 margin-right 같은 임의 보정값을 넣으면
좌우 사이드바와 본문 컨테이너가 다시 틀어진다.
*/


/* 더 넓은 본문 영역 */
.liberty-sidebar { display: none !important; }
.container-fluid.liberty-content {
.container-fluid.liberty-content {
    padding-bottom: 0 !important;
padding-bottom:0 !important;
    margin: 0 16px !important;
margin:0 16px !important;
    flex: none !important;
flex:none !important;
    width: 1500px !important;
width:1500px !important;
    max-width: 1500px !important;
max-width:1500px !important;
    min-width: 1500px !important;
min-width:1500px !important;
border:none !important;
box-shadow:none !important;
border-radius:0 !important;
}
}
.content-wrapper {
.content-wrapper {
    max-width: 1720px !important;
max-width:1720px !important;
    margin: 0 auto !important;
margin:0 auto !important;
    padding: 16px !important;
padding:16px !important;
    padding-top: 0 !important;
padding-top:0 !important;
    display: flex !important;
display:flex !important;
    align-items: flex-start !important;
align-items:flex-start !important;
    gap: 0 !important;
gap:0 !important;
    justify-content: center !important;
justify-content:center !important;
}
}


/* 헤더 */
/* -----------------------------------------
3. 본문 컨테이너
----------------------------------------- */
 
/*
이전에는 본문 컨테이너 외곽선이 보라색 2px이었다.
이제 대문 패널과 같은 금속 프레임으로 맞춘다.
*/
 
.liberty-content-main {
.liberty-content-main {
    border: 2px solid #854369 !important;
border:1px solid !important;
border-color:
#555555
#2b2b2b
#050505
#2b2b2b !important;
background:#080808 !important;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.035),
inset 0 -1px 0 rgba(0,0,0,0.70) !important;
}
}
.Liberty .content-wrapper .liberty-content .liberty-content-main {
.Liberty .content-wrapper .liberty-content .liberty-content-main {
    border: 2px solid #854369 !important;
border:1px solid !important;
    border-bottom: none !important;
border-color:
#555555
#2b2b2b
#050505
#2b2b2b !important;
border-bottom:none !important;
}
}
.liberty-content { border: none !important; box-shadow: none !important; border-radius: 0 !important; }
 
.liberty-content {
border:none !important;
box-shadow:none !important;
border-radius:0 !important;
}
 
/* -----------------------------------------
4. 본문 헤더
----------------------------------------- */
 
.liberty-content-header {
.liberty-content-header {
    background: transparent !important;
background:transparent !important;
    box-shadow: none !important;
box-shadow:none !important;
    border: none !important;
border:none !important;
    display: flex !important;
display:flex !important;
    align-items: flex-end !important;
align-items:flex-end !important;
    justify-content: space-between !important;
justify-content:space-between !important;
    padding: 0 !important;
padding:0 !important;
    height: auto !important;
height:auto !important;
    min-height: 0 !important;
min-height:0 !important;
}
}
.liberty-content-header .content-tools {
.liberty-content-header .content-tools {
    order: 2 !important;
order:2 !important;
    flex-shrink: 0 !important;
flex-shrink:0 !important;
    padding-top: 0 !important;
padding-top:0 !important;
    padding-right: 0 !important;
padding-right:0 !important;
}
}
.liberty-content-header .title {
.liberty-content-header .title {
    order: 1 !important;
order:1 !important;
    flex: 1 !important;
flex:1 !important;
    display: flex !important;
display:flex !important;
    align-items: flex-end !important;
align-items:flex-end !important;
    margin: 0 !important;
margin:0 !important;
    padding: 0 !important;
padding:0 !important;
}
}
.liberty-content-header h1 {
.liberty-content-header h1 {
    margin: 0 !important;
margin:0 !important;
    padding: 0 !important;
padding:0 !important;
}
}
.liberty-content-header .contentSub {
.liberty-content-header .contentSub {
    display: none !important;
display:none !important;
}
}


/* 클릭 피드백 */
/* -----------------------------------------
5. 페이지 전환 피드백
----------------------------------------- */
 
body::after {
body::after {
    content: '';
content:'';
    position: fixed;
position:fixed;
    inset: 0;
inset:0;
    background: rgba(0, 0, 0, 0);
background:rgba(0,0,0,0);
    transition: background 0.2s ease, opacity 0.2s ease;
transition:background 0.2s ease, opacity 0.2s ease;
    opacity: 0;
opacity:0;
    pointer-events: none;
pointer-events:none;
    z-index: 99999;
z-index:99999;
}
}


body.page-loading::after {
body.page-loading::after {
    background: rgba(0, 0, 0, 0.5);
background:rgba(0,0,0,0.5);
    opacity: 1;
opacity:1;
}
}


/* 오른쪽 사이드바 */
/* -----------------------------------------
6. 좌우 사이드바 공통
----------------------------------------- */
 
#clbi-left-sidebar,
#clbi-right-sidebar {
#clbi-right-sidebar {
    position: relative;
position:relative;
    width: 230px;
width:230px;
    z-index: 1000;
z-index:1000;
    display: flex;
display:flex;
    flex-direction: column;
flex-direction:column;
    gap: 10px;
gap:8px;
    padding: 0;
padding:0;
    flex-shrink: 0;
flex-shrink:0;
    align-self: flex-start;
align-self:flex-start;
}
}
.clbi-left-box,
.clbi-right-box {
.clbi-right-box {
    background: #0a0909;
background:#101010;
    border: 2px solid #854369;
border:1px solid;
    border-radius: 5px;
border-color:
    overflow: hidden;
#555555
    box-shadow: 0 0 0 1px #1a1a1a, 0 6px 18px rgba(0,0,0,0.45);
#2b2b2b
#050505
#2b2b2b;
border-radius:5px;
overflow:hidden;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.025),
0 6px 18px rgba(0,0,0,0.38);
}
}
.clbi-left-title,
.clbi-right-title {
.clbi-right-title {
    padding: 10px 14px;
min-height:28px;
    font-weight: 700;
padding:0 10px;
    font-size: 13px;
font-weight:700;
    color: #E2E2E2;
font-size:12px;
    border-bottom: 2px solid #854369;
color:#e2e2e2;
    background: linear-gradient(to bottom, #171114 0%, #0a0909 100%);
border-bottom:1px solid #050505;
background:#1d1d1d;
display:flex;
align-items:center;
gap:6px;
line-height:1;
text-shadow:1px 1px 0 #000;
}
}
.clbi-left-content,
.clbi-right-content {
.clbi-right-content {
    padding: 10px 14px;
padding:8px;
    color: #E2E2E2;
color:#c8c8c8;
    font-size: 12px;
font-size:12px;
    line-height: 1.8;
line-height:1.65;
background:#080808;
}
 
.clbi-right-content a,
.clbi-left-content a {
color:#c8c8c8 !important;
text-decoration:none;
display:block;
}
}
.clbi-right-content a {
 
    color: #E2E2E2 !important;
.clbi-right-content a:not(.clbi-user-btn):hover,
    text-decoration: none;
.clbi-left-content a:not(.clbi-user-btn):hover {
    display: block;
color:#ffffff !important;
}
}
.clbi-right-content a:not(.clbi-user-btn):hover { color: #d45aa2 !important; }
 
/* -----------------------------------------
7. 검색 박스
----------------------------------------- */
 
#clbi-search-input {
#clbi-search-input {
    width: 100%;
width:100%;
    background: #171717;
height:26px;
    border: 1px solid #854369;
background:#070707;
    color: #fff;
border:1px solid #202020;
    padding: 5px 8px;
color:#e2e2e2;
    border-radius: 4px;
padding:0 8px;
    font-size: 12px;
border-radius:4px;
    box-sizing: border-box;
font-size:12px;
    margin-bottom: 6px;
box-sizing:border-box;
margin-bottom:6px;
outline:none;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.025),
inset 0 -1px 0 rgba(0,0,0,0.55);
}
 
#clbi-search-input:focus {
border-color:#555555;
background:#0c0c0c;
}
}
#clbi-search-btn {
#clbi-search-btn {
    width: 100%;
width:100%;
    background: #854369;
height:24px;
    color: #fff;
background:#151515;
    border: none;
color:#c8c8c8;
    padding: 5px;
border:1px solid #202020;
    border-radius: 4px;
padding:0;
    cursor: pointer;
border-radius:4px;
    font-size: 12px;
cursor:pointer;
font-size:12px;
font-weight:700;
text-shadow:1px 1px 0 #000;
}
}
#clbi-search-btn:hover { background: #b45c8f; }


/* 유저 버튼 */
#clbi-search-btn:hover {
.clbi-user-btn {
background:#202020;
    display: block !important;
border-color:#333333;
    padding: 4px 10px !important;
color:#ffffff;
    margin-bottom: 4px !important;
    border-radius: 4px !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    color: #E2E2E2 !important;
    text-decoration: none !important;
    background: linear-gradient(to bottom, #2a2a2a 0%, #1a1a1a 50%, #111111 100%) !important;
    border: 1px solid #333 !important;
    border-left: 3px solid #854369 !important;
}
.clbi-user-btn:last-child { margin-bottom: 0 !important; }
.clbi-user-btn:hover {
    background: linear-gradient(to bottom, #333 0%, #252525 50%, #1a1a1a 100%) !important;
    border-color: #854369 !important;
    color: #ffffff !important;
}
.clbi-user-btn-logout {
    border-left: 3px solid #d46262 !important;
    color: #d46262 !important;
}
.clbi-user-btn-logout:hover {
    background: linear-gradient(to bottom, #333 0%, #252525 50%, #1a1a1a 100%) !important;
    border-left: 3px solid #d46262 !important;
    border-color: #d46262 !important;
    color: #d46262 !important;
}
.clbi-user-btn.clbi-user-btn-active {
    background: linear-gradient(to bottom, #5a2040 0%, #3d1a2f 50%, #2e1222 100%) !important;
    border-color: #854369 !important;
    color: #ffffff !important;
}
}


/* 왼쪽 사이드바 */
/* -----------------------------------------
#clbi-left-sidebar {
8. 유저 버튼
    position: relative;
----------------------------------------- */
    width: 230px;
 
    z-index: 1000;
/*
    display: flex;
이전 유저 버튼은 왼쪽 보라색 강조선으로 활성/호버를 표현했다.
    flex-direction: column;
이제는 일반 금속 버튼으로 정리한다.
    gap: 10px;
 
    padding: 0;
로그아웃 같은 기능성 위험 항목만 낮은 채도 붉은색을 유지할 수 있다.
    flex-shrink: 0;
*/
    align-self: flex-start;
}


.clbi-left-box {
.clbi-user-btn {
    background: #0a0909;
display:block !important;
    border: 2px solid #854369;
height:24px !important;
    border-radius: 5px;
padding:0 8px !important;
    overflow: hidden;
margin-bottom:4px !important;
    box-shadow: 0 0 0 1px #1a1a1a, 0 6px 18px rgba(0,0,0,0.45);
border-radius:4px !important;
font-size:11px !important;
font-weight:700 !important;
line-height:22px !important;
color:#c8c8c8 !important;
text-decoration:none !important;
text-align:center !important;
background:#141414 !important;
border:1px solid #202020 !important;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.035),
inset 0 -1px 0 rgba(0,0,0,0.65) !important;
text-shadow:1px 1px 0 #000 !important;
}
}


.clbi-left-title {
.clbi-user-btn:last-child {
    padding: 10px 14px;
margin-bottom:0 !important;
    font-weight: 700;
    font-size: 13px;
    color: #E2E2E2;
    border-bottom: 2px solid #854369;
    background: linear-gradient(to bottom, #171114 0%, #0a0909 100%);
    display: flex;
    align-items: center;
    gap: 6px;
}
}


.clbi-left-content {
.clbi-user-btn:hover {
    padding: 10px 14px;
background:#202020 !important;
    color: #E2E2E2;
border-color:#333333 !important;
    font-size: 12px;
color:#ffffff !important;
    line-height: 1.8;
}
}


.clbi-left-news-box {
.clbi-user-btn-logout {
    /* 하드코딩 min-height 제거 */
border-color:#3f2623 !important;
color:#c88a80 !important;
}
}


.clbi-news-box {
.clbi-user-btn-logout:hover {
    padding: 0 !important;
background:#1b1110 !important;
    box-sizing: border-box;
border-color:#6a3933 !important;
color:#e0a199 !important;
}
}


/* 섹션 구역 래퍼 */
.clbi-user-btn.clbi-user-btn-active {
.clbi-news-section {
background:#242424 !important;
    padding: 12px 10px 12px;
border-color:#555555 !important;
color:#ffffff !important;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.055),
inset 0 -1px 0 rgba(0,0,0,0.75) !important;
}
}


.clbi-news-section:first-child {
/* -----------------------------------------
    padding-bottom: 0;
9. 왼쪽 뉴스 박스
}
----------------------------------------- */


/* 섹션 레이블 — CHANGELOG / RECENT CHANGES */
.clbi-left-news-box {
.clbi-news-section-label {
min-height:624px;
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 0 0 9px;
    color: #4a4a4a;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 1.4px;
    line-height: 1;
    text-transform: uppercase;
}
}


.clbi-news-section-label::after {
.clbi-news-box {
    content: '';
padding:8px !important;
    display: block;
min-height:574px;
    flex: 1;
box-sizing:border-box;
    height: 1px;
    background: linear-gradient(to right, #2a2a2a, transparent);
}
}


/* 레거시 — 구버전 .clbi-news-feed-title 호환 */
.clbi-news-feed-title {
.clbi-news-feed-title {
    margin: 0 0 7px 0;
margin:0 0 7px 0;
    padding: 0 2px;
padding:0 2px;
    color: #4a4a4a;
color:#8a8a8a;
    font-size: 9px;
font-size:9px;
    font-weight: 700;
font-weight:700;
    line-height: 1.2;
line-height:1.2;
    letter-spacing: 1.4px;
letter-spacing:0.6px;
}
}


.clbi-left-changelog-feed {
.clbi-left-changelog-feed {
    /* min-height 제거 */
min-height:28px;
}
}


.clbi-left-changelog-feed .clbi-recent-item {
.clbi-left-changelog-feed .clbi-recent-item {
    margin-bottom: 0;
margin-bottom:0;
}
}


.clbi-news-divider {
.clbi-news-divider {
    height: 1px;
height:1px;
    margin: 12px 10px;
margin:12px 0 9px;
    background: linear-gradient(to right, transparent, #2a2a2a 30%, #2a2a2a 70%, transparent);
background:
linear-gradient(
to right,
transparent 0%,
#202020 18%,
#555555 50%,
#202020 82%,
transparent 100%
);
box-shadow:none;
}
}


.clbi-left-news-feed {
.clbi-left-news-feed {
    /* 하드코딩 min/max-height 제거 */
min-height:440px;
    overflow: hidden;
max-height:468px;
    padding: 0;
overflow:hidden;
    font-size: 11px;
padding:2px 0 0;
    line-height: 1.55;
color:#9a9a9a;
font-size:11px;
line-height:1.55;
}
}


.clbi-left-news-feed .clbi-recent-item {
.clbi-left-news-feed .clbi-recent-item {
    margin-bottom: 8px;
margin-bottom:8px;
}
}


.clbi-left-news-feed .clbi-recent-title,
.clbi-left-news-feed .clbi-recent-title,
.clbi-left-changelog-feed .clbi-recent-title {
.clbi-left-changelog-feed .clbi-recent-title {
    font-size: 11px;
font-size:11px;
}
}


.clbi-left-news-feed .clbi-recent-time,
.clbi-left-news-feed .clbi-recent-time,
.clbi-left-changelog-feed .clbi-recent-time {
.clbi-left-changelog-feed .clbi-recent-time {
    font-size: 9px;
font-size:9px;
}
}


/* 오른쪽 링크 박스에서도 계속 사용하는 공통 링크 박스 */
/* -----------------------------------------
10. 오른쪽 링크 박스 / 공통 링크 그리드
----------------------------------------- */
 
.clbi-link-box {
.clbi-link-box {
    padding: 8px !important;
padding:8px !important;
}
}


.clbi-link-box ul {
.clbi-link-box ul {
    list-style: none !important;
list-style:none !important;
    margin: 0 !important;
margin:0 !important;
    padding: 0 !important;
padding:0 !important;
    display: flex !important;
display:flex !important;
    gap: 6px !important;
gap:6px !important;
}
}


.clbi-link-box ul li {
.clbi-link-box ul li {
    flex: 1 !important;
flex:1 !important;
    margin: 0 !important;
margin:0 !important;
    padding: 0 !important;
padding:0 !important;
}
}


.clbi-link-box ul li a {
.clbi-link-box ul li a,
    display: flex !important;
.clbi-link-btn {
    align-items: center !important;
display:flex !important;
    justify-content: center !important;
align-items:center !important;
    width: 100% !important;
justify-content:center !important;
    padding: 10px 0 !important;
width:100% !important;
    border-radius: 4px !important;
min-height:26px !important;
    font-size: 11px !important;
padding:0 6px !important;
    font-weight: 700 !important;
border-radius:4px !important;
    background: linear-gradient(to bottom, #2a2a2a 0%, #1a1a1a 50%, #111111 100%) !important;
font-size:11px !important;
    color: #a0a0a0 !important;
font-weight:700 !important;
    border: 1px solid #333 !important;
background:#141414 !important;
    text-align: center !important;
color:#c8c8c8 !important;
border:1px solid #202020 !important;
text-align:center !important;
text-decoration:none !important;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.030),
inset 0 -1px 0 rgba(0,0,0,0.60) !important;
text-shadow:1px 1px 0 #000 !important;
box-sizing:border-box !important;
}
}


.clbi-link-box ul li a:hover {
.clbi-link-box ul li a:hover,
    border-color: #854369 !important;
.clbi-link-btn:hover {
    color: #ffffff !important;
background:#202020 !important;
border-color:#333333 !important;
color:#ffffff !important;
}
}


@media screen and (max-width: 1720px) {
/* -----------------------------------------
    #clbi-left-sidebar { display: none; }
11. 반응형 사이드바
----------------------------------------- */
 
@media screen and (max-width:1720px) {
#clbi-left-sidebar {
display:none;
}
}
}


/* 하단 푸터 */
/* -----------------------------------------
12. 하단 푸터
----------------------------------------- */
 
footer {
footer {
    border: 2px solid #854369 !important;
border:1px solid !important;
    border-top: none !important;
border-color:
    border-radius: 0 0 5px 5px !important;
#555555
#2b2b2b
#050505
#2b2b2b !important;
border-top:none !important;
border-radius:0 0 5px 5px !important;
background:#101010 !important;
}
}
.liberty-footer {
.liberty-footer {
    background-color: #0a0909 !important;
background-color:#101010 !important;
    border-top: 2px solid #854369 !important;
border-top:1px solid #050505 !important;
    border-bottom: none !important;
border-bottom:none !important;
    border-right: none !important;
border-right:none !important;
    border-left: none !important;
border-left:none !important;
}
}


/* =========================================
/* =========================================
  상단 카테고리 네비게이션 바
13. 상단 네비게이션 바
  ========================================= */
========================================= */
 
/*
상단 네비바는 전체 사이트의 조작 패널이다.
대문 카테고리 SVG 네비와 달리, 여기서는 일반 사각형 탭 구조를 유지한다.
 
역할:
- 언어
- 메인 메뉴
- 프로젝트
- 세계관 드로어
- 검색
- 정보
 
디자인:
- 보라색 포인트 제거
- 하나의 금속 패널 안에 탭들이 들어간 형태
- 호버는 낮은 밝기 변화만 사용
*/
 
#clbi-top-nav-wrap {
#clbi-top-nav-wrap {
    width: 2024px;
width:2024px;
    margin: 0 auto;
margin:0 auto;
    padding: 20px 16px 0;
padding:20px 16px 0;
    box-sizing: border-box;
box-sizing:border-box;
}
}


#clbi-top-nav {
#clbi-top-nav {
    position: relative;
position:relative;
    width: 100%;
width:100%;
    background: linear-gradient(to bottom, #171114 0%, #0a0909 100%);
background:#101010;
    border: 2px solid #854369;
border:1px solid;
    border-radius: 5px;
border-color:
    overflow: hidden;
#555555
    box-shadow: 0 0 0 1px #1a1a1a, 0 6px 18px rgba(0,0,0,0.45);
#2b2b2b
    margin-bottom: 10px;
#050505
#2b2b2b;
border-radius:5px;
overflow:hidden;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.030),
0 6px 18px rgba(0,0,0,0.38);
margin-bottom:10px;
}
}


#clbi-top-nav-main {
#clbi-top-nav-main {
    position: relative;
position:relative;
    display: flex;
display:flex;
    align-items: stretch;
align-items:stretch;
    width: 100%;
width:100%;
    min-height: 55px;
min-height:55px;
}
}


/* 로고 */
/* 로고 슬롯: 현재 JS 생성 HTML에는 없을 수 있지만 레거시 호환으로 유지 */
#clbi-top-nav-logo {
#clbi-top-nav-logo {
    display: flex;
display:flex;
    align-items: center;
align-items:center;
    padding: 0 16px;
padding:0 16px;
    flex-shrink: 0;
flex-shrink:0;
}
}


#clbi-top-nav-logo img {
#clbi-top-nav-logo img {
    height: 64px;
height:64px;
    width: auto;
width:auto;
    display: block;
display:block;
}
}


/* 탭 영역 */
/* 탭 영역 */
#clbi-top-nav-tabs {
#clbi-top-nav-tabs {
    display: flex;
display:flex;
    align-items: stretch;
align-items:stretch;
    flex: 1;
flex:1;
    flex-shrink: 0;
flex-shrink:0;
}
}


.clbi-top-nav-item {
.clbi-top-nav-item {
    position: relative;
position:relative;
    display: flex;
display:flex;
    align-items: center;
align-items:center;
    justify-content: center;
justify-content:center;
    gap: 8px;
gap:8px;
    width: 120px;
width:120px;
    min-height: 55px;
min-height:55px;
    flex-shrink: 0;
flex-shrink:0;
    padding: 0;
padding:0;
    background: transparent;
background:transparent;
    border-left: 1px solid transparent;
border-left:1px solid transparent;
    border-right: 1px solid #2a2a2a;
border-right:1px solid #202020;
    cursor: pointer;
cursor:pointer;
    transition:
transition:
        background 0.12s,
background 0.12s,
        border-color 0.12s,
border-color 0.12s,
        color 0.12s,
color 0.12s,
        box-shadow 0.12s;
box-shadow 0.12s;
    user-select: none;
user-select:none;
    white-space: nowrap;
white-space:nowrap;
    text-decoration: none !important;
text-decoration:none !important;
    color: #E2E2E2 !important;
color:#e2e2e2 !important;
    overflow: hidden;
overflow:hidden;
    box-sizing: border-box;
box-sizing:border-box;
text-shadow:1px 1px 0 #000;
}
}


.clbi-top-nav-item:hover {
.clbi-top-nav-item:hover {
    min-height: 55px;
min-height:55px;
    background: linear-gradient(to bottom, #333 0%, #252525 50%, #1a1a1a 100%);
background:#1d1d1d;
    border-left-color: #854369;
border-left-color:#333333;
    border-right-color: #854369;
border-right-color:#333333;
    color: #fff !important;
color:#ffffff !important;
    box-shadow:
box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.06),
inset 0 1px 0 rgba(255,255,255,0.045),
        inset 0 -1px 0 rgba(0,0,0,0.65);
inset 0 -1px 0 rgba(0,0,0,0.65);
}
 
.clbi-top-nav-item:hover .clbi-tnav-arrow {
    color: #ff85c0;
}
}


.clbi-top-nav-item.clbi-tnav-active {
.clbi-top-nav-item.clbi-tnav-active {
    background: linear-gradient(to bottom, #5a2040 0%, #3d1a2f 50%, #2e1222 100%);
background:#242424;
    border-left-color: #854369;
border-left-color:#444444;
    border-right-color: #854369;
border-right-color:#444444;
    color: #fff !important;
color:#ffffff !important;
    box-shadow:
box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.05),
inset 0 1px 0 rgba(255,255,255,0.050),
        inset 0 -1px 0 rgba(0,0,0,0.70);
inset 0 -1px 0 rgba(0,0,0,0.70);
}
}


.clbi-top-nav-item.clbi-tnav-active .clbi-tnav-arrow {
.clbi-tnav-icon {
    color: #ff85c0;
display:block;
width:22px;
height:22px;
object-fit:contain;
flex:0 0 22px;
image-rendering:pixelated;
opacity:0.88;
align-self:center;
}
}


.clbi-tnav-icon {
.clbi-top-nav-item:hover .clbi-tnav-icon,
    display: block;
.clbi-top-nav-item.clbi-tnav-active .clbi-tnav-icon {
    width: 22px;
opacity:1;
    height: 22px;
    object-fit: contain;
    flex: 0 0 22px;
    image-rendering: pixelated;
    opacity: 0.92;
    align-self: center;
}
}


/* 언어 버튼 */
/* 언어 버튼 */
.clbi-tnav-lang {
.clbi-tnav-lang {
    flex-direction: column;
flex-direction:column;
    justify-content: center;
justify-content:center;
    align-items: center;
align-items:center;
    width: 54px;
width:54px;
    min-height: 55px;
min-height:55px;
    gap: 3px;
gap:3px;
    padding: 10px 0;
padding:10px 0;
    border-left: 1px solid transparent;
border-left:1px solid transparent;
}
}


.clbi-tnav-lang-code {
.clbi-tnav-lang-code {
    font-size: 11px;
font-size:11px;
    font-weight: 700;
font-weight:700;
    color: #e2e2e2;
color:#e2e2e2;
    letter-spacing: 0;
letter-spacing:0;
}
}


.clbi-tnav-lang .clbi-tnav-arrow {
.clbi-tnav-lang .clbi-tnav-arrow {
    font-size: 9px;
font-size:9px;
    color: #854369;
color:#8a8a8a;
    width: 8px;
width:8px;
    text-align: center;
text-align:center;
    flex-shrink: 0;
flex-shrink:0;
}
}


.clbi-tnav-lang:hover {
.clbi-tnav-lang:hover {
    border-left-color: transparent !important;   /* hover 시에도 왼쪽 테두리 없음 */
border-left-color:transparent !important;
}
}


.clbi-tnav-lang.clbi-tnav-active {
.clbi-tnav-lang.clbi-tnav-active {
    border-left-color: transparent !important;
border-left-color:transparent !important;
}
 
.clbi-top-nav-item:hover .clbi-tnav-icon,
.clbi-top-nav-item.clbi-tnav-active .clbi-tnav-icon {
    opacity: 1;
}
}


.clbi-tnav-lang-bottom {
.clbi-tnav-lang-bottom {
    display: flex;
display:flex;
    align-items: center;
align-items:center;
    justify-content: center;
justify-content:center;
    gap: 3px;
gap:3px;
    line-height: 1;
line-height:1;
    width: 100%;
width:100%;
}
}


.clbi-tnav-label {
.clbi-tnav-label {
    position: relative;
position:relative;
    z-index: 1;
z-index:1;
    display: inline-flex;
display:inline-flex;
    align-items: center;
align-items:center;
    height: 22px;
height:22px;
    line-height: 22px;
line-height:22px;
    font-size: 13px;
font-size:13px;
    font-weight: 700;
font-weight:700;
}
}


.clbi-tnav-arrow {
.clbi-tnav-arrow {
    position: relative;
position:relative;
    z-index: 1;
z-index:1;
    font-size: 12px;
font-size:12px;
    color: #854369;
color:#8a8a8a;
    transition: color 0.12s;
transition:color 0.12s;
}
}


/* 검색 */
.clbi-top-nav-item:hover .clbi-tnav-arrow,
.clbi-top-nav-item.clbi-tnav-active .clbi-tnav-arrow {
color:#ffffff;
}
 
/* -----------------------------------------
14. 상단 검색
----------------------------------------- */
 
#clbi-top-nav-search {
#clbi-top-nav-search {
    position: absolute;
position:absolute;
    left: 50%;
left:50%;
    top: 0;
top:0;
    bottom: 0;
bottom:0;
    transform: translateX(-50%);
transform:translateX(-50%);
    display: flex;
display:flex;
    align-items: center;
align-items:center;
    justify-content: center;
justify-content:center;
    pointer-events: none;
pointer-events:none;
}
}


#clbi-top-search-input {
#clbi-top-search-input {
    width: 240px;
width:240px;
    background: #111;
height:26px;
    border: 1px solid #333;
background:#070707;
    color: #fff;
border:1px solid #202020;
    padding: 4px 10px;
color:#e2e2e2;
    border-radius: 4px;
padding:0 10px;
    font-size: 11px;
border-radius:4px;
    box-sizing: border-box;
font-size:11px;
    outline: none;
box-sizing:border-box;
    pointer-events: all;
outline:none;
    transition: border-color 0.12s, width 0.2s;
pointer-events:all;
transition:border-color 0.12s, width 0.2s, background 0.12s;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.025),
inset 0 -1px 0 rgba(0,0,0,0.55);
}
}


#clbi-top-search-input:focus {
#clbi-top-search-input:focus {
    border-color: #854369;
border-color:#555555;
    width: 320px;
background:#0c0c0c;
width:320px;
}
}


#clbi-top-nav-right {
#clbi-top-nav-right {
    margin-left: auto;
margin-left:auto;
    display: flex;
display:flex;
    align-items: stretch;
align-items:stretch;
    border-left: 1px solid #2a2a2a;
border-left:1px solid #202020;
}
}


/* 세계관 펼침 영역 */
/* -----------------------------------------
15. 세계관 펼침 영역
----------------------------------------- */
 
#clbi-sub-worldbuilding {
#clbi-sub-worldbuilding {
    box-sizing: border-box;
box-sizing:border-box;
    width: 100%;
width:100%;
    height: 0;
height:0;
    overflow: hidden;
overflow:hidden;
    border-top: 0 solid #854369;
border-top:0 solid #050505;
    background: #0a0909;
background:#080808;
    transition:
transition:
        height 180ms ease,
height 180ms ease,
        border-top-width 0ms linear 180ms;
border-top-width 0ms linear 180ms;
}
}


#clbi-sub-worldbuilding.worldbuilding-open {
#clbi-sub-worldbuilding.worldbuilding-open {
    height: 34px;
height:34px;
    border-top-width: 2px;
border-top-width:1px;
    transition:
transition:
        height 180ms ease,
height 180ms ease,
        border-top-width 0ms linear 0ms;
border-top-width 0ms linear 0ms;
}
}


#clbi-sub-worldbuilding-inner {
#clbi-sub-worldbuilding-inner {
    height: 34px;
height:34px;
    overflow: hidden;
overflow:hidden;
}
}


.clbi-tnav-sub-list {
.clbi-tnav-sub-list {
    display: flex;
display:flex;
    align-items: stretch;
align-items:stretch;
    flex-wrap: nowrap;
flex-wrap:nowrap;
    height: 34px;
height:34px;
    padding: 0;
padding:0;
    margin: 0;
margin:0;
}
}


.clbi-tnav-sub-item {
.clbi-tnav-sub-item {
    position: relative;
position:relative;
    display: flex;
display:flex;
    align-items: center;
align-items:center;
    justify-content: center;
justify-content:center;
    height: 34px;
height:34px;
    padding: 0 15px 1px 15px;
padding:0 15px 1px 15px;
    background: transparent;
background:transparent;
    color: #E2E2E2 !important;
color:#c8c8c8 !important;
    font-size: 11px;
font-size:11px;
    font-weight: 700;
font-weight:700;
    line-height: 1;
line-height:1;
    white-space: nowrap;
white-space:nowrap;
    text-decoration: none !important;
text-decoration:none !important;
    box-sizing: border-box;
box-sizing:border-box;
    transition:
transition:
        background 0.12s,
background 0.12s,
        color 0.12s,
color 0.12s,
        box-shadow 0.12s;
box-shadow 0.12s;
text-shadow:1px 1px 0 #000;
}
}


.clbi-tnav-sub-item::after {
.clbi-tnav-sub-item::after {
    content: "";
content:"";
    position: absolute;
position:absolute;
    top: 7px;
top:7px;
    right: 0;
right:0;
    bottom: 7px;
bottom:7px;
    width: 1px;
width:1px;
    background: #1f1f1f;
background:#202020;
    pointer-events: none;
pointer-events:none;
}
}


.clbi-tnav-sub-item:last-child::after {
.clbi-tnav-sub-item:last-child::after {
    display: none;
display:none;
}
}


.clbi-tnav-sub-item:hover {
.clbi-tnav-sub-item:hover {
    background: #111111;
background:#151515;
    color: #ffffff !important;
color:#ffffff !important;
    box-shadow:
box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.035),
inset 0 1px 0 rgba(255,255,255,0.030),
        inset 0 -1px 0 rgba(0,0,0,0.60);
inset 0 -1px 0 rgba(0,0,0,0.60);
}
}


/* 상단 네비: hover/active 인접 경계선 중복 방지 */
/* 상단 네비: hover/active 인접 경계선 중복 방지 */
.clbi-top-nav-item:hover + .clbi-top-nav-item.clbi-tnav-active {
.clbi-top-nav-item:hover + .clbi-top-nav-item.clbi-tnav-active {
    border-left-color: transparent;
border-left-color:transparent;
}
}


.clbi-top-nav-item.clbi-tnav-active:has(+ .clbi-top-nav-item:hover) {
.clbi-top-nav-item.clbi-tnav-active:has(+ .clbi-top-nav-item:hover) {
    border-right-color: transparent;
border-right-color:transparent;
}
}

2026년 5월 19일 (화) 11:51 판

/* =========================================
COASTLINE: BLACK ICE - Layout
Core page shell / top nav / sidebars
========================================= */

/*
설계 목적
-----------------------------------------
이 파일은 MediaWiki/Liberty 스킨 위에 올라가는
기본 레이아웃 뼈대를 담당한다.

담당 범위:
- 기본 Liberty 네비 숨김
- 본문 컨테이너 폭과 배치
- 본문 컨테이너 외곽 테마
- 상단 네비바
- 좌우 사이드바
- 유저 박스와 사이드 링크 버튼
- 하단 푸터

현재 디자인 기준:
- 대문 MainPage.css에서 잡은 어두운 금속 패널 문법을 따른다.
- 보라색 강조색(#854369, #d45aa2) 중심의 이전 테마는 제거한다.
- 공사선 모티프는 이 파일에서 쓰지 않는다.
  공사선은 프로젝트 트래커, 제작 로그, 정비 알림처럼
  "우리가 만들고 있음"이 전면에 오는 곳에서만 사용한다.
- 본문 컨테이너, 상단 네비바, 좌우 사이드바는
  같은 기록 장치/조작 패널 계열로 보이게 한다.

주의:
- 대문 내부 전용 구성은 MediaWiki:MainPage.css가 담당한다.
- 카테고리 SVG 네비는 MediaWiki:CategoryNav.js + MainPage.css가 담당한다.
- 언어 드로어는 MediaWiki:LangDrawer.css가 담당한다.
*/

/* -----------------------------------------
0. 공통 색상 메모
----------------------------------------- */

/*
North-light rule:
상단은 밝게, 좌우는 중간, 하단은 어둡게 잡는다.

주요 표면:
#101010 : 기본 프레임
#141414 : 약간 밝은 패널 표면
#1d1d1d : 타이틀바
#252525 : 호버 표면
#080808 : 내부 우물/본문 배경

주요 테두리:
#555555 : 상단광
#2b2b2b : 좌우
#050505 : 하단암
#202020 : 내부 약한 구분선
*/

/* -----------------------------------------
1. Liberty 기본 요소 정리
----------------------------------------- */

/* 상단/하단 텔레포트 버튼 숨기기 */
#liberty-bottombtn {
display:none !important;
}

/* 토론 탭 숨기기 */
a[accesskey="t"] {
display:none !important;
}

/* Liberty 기본 네비게이션 숨김 */
.Liberty .nav-wrapper {
display:none !important;
}

/* 기본 Liberty 사이드바 숨김 */
.liberty-sidebar {
display:none !important;
}

/* -----------------------------------------
2. 전체 배치
----------------------------------------- */

/*
좌우 커스텀 사이드바 230px + 중앙 본문 1500px 기준.
이 폭 배치는 기존 작업에서 맞춰놓은 구조를 유지한다.

주의:
여기서 margin-right 같은 임의 보정값을 넣으면
좌우 사이드바와 본문 컨테이너가 다시 틀어진다.
*/

.container-fluid.liberty-content {
padding-bottom:0 !important;
margin:0 16px !important;
flex:none !important;
width:1500px !important;
max-width:1500px !important;
min-width:1500px !important;
border:none !important;
box-shadow:none !important;
border-radius:0 !important;
}

.content-wrapper {
max-width:1720px !important;
margin:0 auto !important;
padding:16px !important;
padding-top:0 !important;
display:flex !important;
align-items:flex-start !important;
gap:0 !important;
justify-content:center !important;
}

/* -----------------------------------------
3. 본문 컨테이너
----------------------------------------- */

/*
이전에는 본문 컨테이너 외곽선이 보라색 2px이었다.
이제 대문 패널과 같은 금속 프레임으로 맞춘다.
*/

.liberty-content-main {
border:1px solid !important;
border-color:
#555555
#2b2b2b
#050505
#2b2b2b !important;
background:#080808 !important;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.035),
inset 0 -1px 0 rgba(0,0,0,0.70) !important;
}

.Liberty .content-wrapper .liberty-content .liberty-content-main {
border:1px solid !important;
border-color:
#555555
#2b2b2b
#050505
#2b2b2b !important;
border-bottom:none !important;
}

.liberty-content {
border:none !important;
box-shadow:none !important;
border-radius:0 !important;
}

/* -----------------------------------------
4. 본문 헤더
----------------------------------------- */

.liberty-content-header {
background:transparent !important;
box-shadow:none !important;
border:none !important;
display:flex !important;
align-items:flex-end !important;
justify-content:space-between !important;
padding:0 !important;
height:auto !important;
min-height:0 !important;
}

.liberty-content-header .content-tools {
order:2 !important;
flex-shrink:0 !important;
padding-top:0 !important;
padding-right:0 !important;
}

.liberty-content-header .title {
order:1 !important;
flex:1 !important;
display:flex !important;
align-items:flex-end !important;
margin:0 !important;
padding:0 !important;
}

.liberty-content-header h1 {
margin:0 !important;
padding:0 !important;
}

.liberty-content-header .contentSub {
display:none !important;
}

/* -----------------------------------------
5. 페이지 전환 피드백
----------------------------------------- */

body::after {
content:'';
position:fixed;
inset:0;
background:rgba(0,0,0,0);
transition:background 0.2s ease, opacity 0.2s ease;
opacity:0;
pointer-events:none;
z-index:99999;
}

body.page-loading::after {
background:rgba(0,0,0,0.5);
opacity:1;
}

/* -----------------------------------------
6. 좌우 사이드바 공통
----------------------------------------- */

#clbi-left-sidebar,
#clbi-right-sidebar {
position:relative;
width:230px;
z-index:1000;
display:flex;
flex-direction:column;
gap:8px;
padding:0;
flex-shrink:0;
align-self:flex-start;
}

.clbi-left-box,
.clbi-right-box {
background:#101010;
border:1px solid;
border-color:
#555555
#2b2b2b
#050505
#2b2b2b;
border-radius:5px;
overflow:hidden;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.025),
0 6px 18px rgba(0,0,0,0.38);
}

.clbi-left-title,
.clbi-right-title {
min-height:28px;
padding:0 10px;
font-weight:700;
font-size:12px;
color:#e2e2e2;
border-bottom:1px solid #050505;
background:#1d1d1d;
display:flex;
align-items:center;
gap:6px;
line-height:1;
text-shadow:1px 1px 0 #000;
}

.clbi-left-content,
.clbi-right-content {
padding:8px;
color:#c8c8c8;
font-size:12px;
line-height:1.65;
background:#080808;
}

.clbi-right-content a,
.clbi-left-content a {
color:#c8c8c8 !important;
text-decoration:none;
display:block;
}

.clbi-right-content a:not(.clbi-user-btn):hover,
.clbi-left-content a:not(.clbi-user-btn):hover {
color:#ffffff !important;
}

/* -----------------------------------------
7. 검색 박스
----------------------------------------- */

#clbi-search-input {
width:100%;
height:26px;
background:#070707;
border:1px solid #202020;
color:#e2e2e2;
padding:0 8px;
border-radius:4px;
font-size:12px;
box-sizing:border-box;
margin-bottom:6px;
outline:none;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.025),
inset 0 -1px 0 rgba(0,0,0,0.55);
}

#clbi-search-input:focus {
border-color:#555555;
background:#0c0c0c;
}

#clbi-search-btn {
width:100%;
height:24px;
background:#151515;
color:#c8c8c8;
border:1px solid #202020;
padding:0;
border-radius:4px;
cursor:pointer;
font-size:12px;
font-weight:700;
text-shadow:1px 1px 0 #000;
}

#clbi-search-btn:hover {
background:#202020;
border-color:#333333;
color:#ffffff;
}

/* -----------------------------------------
8. 유저 버튼
----------------------------------------- */

/*
이전 유저 버튼은 왼쪽 보라색 강조선으로 활성/호버를 표현했다.
이제는 일반 금속 버튼으로 정리한다.

로그아웃 같은 기능성 위험 항목만 낮은 채도 붉은색을 유지할 수 있다.
*/

.clbi-user-btn {
display:block !important;
height:24px !important;
padding:0 8px !important;
margin-bottom:4px !important;
border-radius:4px !important;
font-size:11px !important;
font-weight:700 !important;
line-height:22px !important;
color:#c8c8c8 !important;
text-decoration:none !important;
text-align:center !important;
background:#141414 !important;
border:1px solid #202020 !important;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.035),
inset 0 -1px 0 rgba(0,0,0,0.65) !important;
text-shadow:1px 1px 0 #000 !important;
}

.clbi-user-btn:last-child {
margin-bottom:0 !important;
}

.clbi-user-btn:hover {
background:#202020 !important;
border-color:#333333 !important;
color:#ffffff !important;
}

.clbi-user-btn-logout {
border-color:#3f2623 !important;
color:#c88a80 !important;
}

.clbi-user-btn-logout:hover {
background:#1b1110 !important;
border-color:#6a3933 !important;
color:#e0a199 !important;
}

.clbi-user-btn.clbi-user-btn-active {
background:#242424 !important;
border-color:#555555 !important;
color:#ffffff !important;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.055),
inset 0 -1px 0 rgba(0,0,0,0.75) !important;
}

/* -----------------------------------------
9. 왼쪽 뉴스 박스
----------------------------------------- */

.clbi-left-news-box {
min-height:624px;
}

.clbi-news-box {
padding:8px !important;
min-height:574px;
box-sizing:border-box;
}

.clbi-news-feed-title {
margin:0 0 7px 0;
padding:0 2px;
color:#8a8a8a;
font-size:9px;
font-weight:700;
line-height:1.2;
letter-spacing:0.6px;
}

.clbi-left-changelog-feed {
min-height:28px;
}

.clbi-left-changelog-feed .clbi-recent-item {
margin-bottom:0;
}

.clbi-news-divider {
height:1px;
margin:12px 0 9px;
background:
linear-gradient(
to right,
transparent 0%,
#202020 18%,
#555555 50%,
#202020 82%,
transparent 100%
);
box-shadow:none;
}

.clbi-left-news-feed {
min-height:440px;
max-height:468px;
overflow:hidden;
padding:2px 0 0;
color:#9a9a9a;
font-size:11px;
line-height:1.55;
}

.clbi-left-news-feed .clbi-recent-item {
margin-bottom:8px;
}

.clbi-left-news-feed .clbi-recent-title,
.clbi-left-changelog-feed .clbi-recent-title {
font-size:11px;
}

.clbi-left-news-feed .clbi-recent-time,
.clbi-left-changelog-feed .clbi-recent-time {
font-size:9px;
}

/* -----------------------------------------
10. 오른쪽 링크 박스 / 공통 링크 그리드
----------------------------------------- */

.clbi-link-box {
padding:8px !important;
}

.clbi-link-box ul {
list-style:none !important;
margin:0 !important;
padding:0 !important;
display:flex !important;
gap:6px !important;
}

.clbi-link-box ul li {
flex:1 !important;
margin:0 !important;
padding:0 !important;
}

.clbi-link-box ul li a,
.clbi-link-btn {
display:flex !important;
align-items:center !important;
justify-content:center !important;
width:100% !important;
min-height:26px !important;
padding:0 6px !important;
border-radius:4px !important;
font-size:11px !important;
font-weight:700 !important;
background:#141414 !important;
color:#c8c8c8 !important;
border:1px solid #202020 !important;
text-align:center !important;
text-decoration:none !important;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.030),
inset 0 -1px 0 rgba(0,0,0,0.60) !important;
text-shadow:1px 1px 0 #000 !important;
box-sizing:border-box !important;
}

.clbi-link-box ul li a:hover,
.clbi-link-btn:hover {
background:#202020 !important;
border-color:#333333 !important;
color:#ffffff !important;
}

/* -----------------------------------------
11. 반응형 사이드바
----------------------------------------- */

@media screen and (max-width:1720px) {
#clbi-left-sidebar {
display:none;
}
}

/* -----------------------------------------
12. 하단 푸터
----------------------------------------- */

footer {
border:1px solid !important;
border-color:
#555555
#2b2b2b
#050505
#2b2b2b !important;
border-top:none !important;
border-radius:0 0 5px 5px !important;
background:#101010 !important;
}

.liberty-footer {
background-color:#101010 !important;
border-top:1px solid #050505 !important;
border-bottom:none !important;
border-right:none !important;
border-left:none !important;
}

/* =========================================
13. 상단 네비게이션 바
========================================= */

/*
상단 네비바는 전체 사이트의 조작 패널이다.
대문 카테고리 SVG 네비와 달리, 여기서는 일반 사각형 탭 구조를 유지한다.

역할:
- 언어
- 메인 메뉴
- 프로젝트
- 세계관 드로어
- 검색
- 정보

디자인:
- 보라색 포인트 제거
- 하나의 금속 패널 안에 탭들이 들어간 형태
- 호버는 낮은 밝기 변화만 사용
*/

#clbi-top-nav-wrap {
width:2024px;
margin:0 auto;
padding:20px 16px 0;
box-sizing:border-box;
}

#clbi-top-nav {
position:relative;
width:100%;
background:#101010;
border:1px solid;
border-color:
#555555
#2b2b2b
#050505
#2b2b2b;
border-radius:5px;
overflow:hidden;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.030),
0 6px 18px rgba(0,0,0,0.38);
margin-bottom:10px;
}

#clbi-top-nav-main {
position:relative;
display:flex;
align-items:stretch;
width:100%;
min-height:55px;
}

/* 로고 슬롯: 현재 JS 생성 HTML에는 없을 수 있지만 레거시 호환으로 유지 */
#clbi-top-nav-logo {
display:flex;
align-items:center;
padding:0 16px;
flex-shrink:0;
}

#clbi-top-nav-logo img {
height:64px;
width:auto;
display:block;
}

/* 탭 영역 */
#clbi-top-nav-tabs {
display:flex;
align-items:stretch;
flex:1;
flex-shrink:0;
}

.clbi-top-nav-item {
position:relative;
display:flex;
align-items:center;
justify-content:center;
gap:8px;
width:120px;
min-height:55px;
flex-shrink:0;
padding:0;
background:transparent;
border-left:1px solid transparent;
border-right:1px solid #202020;
cursor:pointer;
transition:
background 0.12s,
border-color 0.12s,
color 0.12s,
box-shadow 0.12s;
user-select:none;
white-space:nowrap;
text-decoration:none !important;
color:#e2e2e2 !important;
overflow:hidden;
box-sizing:border-box;
text-shadow:1px 1px 0 #000;
}

.clbi-top-nav-item:hover {
min-height:55px;
background:#1d1d1d;
border-left-color:#333333;
border-right-color:#333333;
color:#ffffff !important;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.045),
inset 0 -1px 0 rgba(0,0,0,0.65);
}

.clbi-top-nav-item.clbi-tnav-active {
background:#242424;
border-left-color:#444444;
border-right-color:#444444;
color:#ffffff !important;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.050),
inset 0 -1px 0 rgba(0,0,0,0.70);
}

.clbi-tnav-icon {
display:block;
width:22px;
height:22px;
object-fit:contain;
flex:0 0 22px;
image-rendering:pixelated;
opacity:0.88;
align-self:center;
}

.clbi-top-nav-item:hover .clbi-tnav-icon,
.clbi-top-nav-item.clbi-tnav-active .clbi-tnav-icon {
opacity:1;
}

/* 언어 버튼 */
.clbi-tnav-lang {
flex-direction:column;
justify-content:center;
align-items:center;
width:54px;
min-height:55px;
gap:3px;
padding:10px 0;
border-left:1px solid transparent;
}

.clbi-tnav-lang-code {
font-size:11px;
font-weight:700;
color:#e2e2e2;
letter-spacing:0;
}

.clbi-tnav-lang .clbi-tnav-arrow {
font-size:9px;
color:#8a8a8a;
width:8px;
text-align:center;
flex-shrink:0;
}

.clbi-tnav-lang:hover {
border-left-color:transparent !important;
}

.clbi-tnav-lang.clbi-tnav-active {
border-left-color:transparent !important;
}

.clbi-tnav-lang-bottom {
display:flex;
align-items:center;
justify-content:center;
gap:3px;
line-height:1;
width:100%;
}

.clbi-tnav-label {
position:relative;
z-index:1;
display:inline-flex;
align-items:center;
height:22px;
line-height:22px;
font-size:13px;
font-weight:700;
}

.clbi-tnav-arrow {
position:relative;
z-index:1;
font-size:12px;
color:#8a8a8a;
transition:color 0.12s;
}

.clbi-top-nav-item:hover .clbi-tnav-arrow,
.clbi-top-nav-item.clbi-tnav-active .clbi-tnav-arrow {
color:#ffffff;
}

/* -----------------------------------------
14. 상단 검색
----------------------------------------- */

#clbi-top-nav-search {
position:absolute;
left:50%;
top:0;
bottom:0;
transform:translateX(-50%);
display:flex;
align-items:center;
justify-content:center;
pointer-events:none;
}

#clbi-top-search-input {
width:240px;
height:26px;
background:#070707;
border:1px solid #202020;
color:#e2e2e2;
padding:0 10px;
border-radius:4px;
font-size:11px;
box-sizing:border-box;
outline:none;
pointer-events:all;
transition:border-color 0.12s, width 0.2s, background 0.12s;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.025),
inset 0 -1px 0 rgba(0,0,0,0.55);
}

#clbi-top-search-input:focus {
border-color:#555555;
background:#0c0c0c;
width:320px;
}

#clbi-top-nav-right {
margin-left:auto;
display:flex;
align-items:stretch;
border-left:1px solid #202020;
}

/* -----------------------------------------
15. 세계관 펼침 영역
----------------------------------------- */

#clbi-sub-worldbuilding {
box-sizing:border-box;
width:100%;
height:0;
overflow:hidden;
border-top:0 solid #050505;
background:#080808;
transition:
height 180ms ease,
border-top-width 0ms linear 180ms;
}

#clbi-sub-worldbuilding.worldbuilding-open {
height:34px;
border-top-width:1px;
transition:
height 180ms ease,
border-top-width 0ms linear 0ms;
}

#clbi-sub-worldbuilding-inner {
height:34px;
overflow:hidden;
}

.clbi-tnav-sub-list {
display:flex;
align-items:stretch;
flex-wrap:nowrap;
height:34px;
padding:0;
margin:0;
}

.clbi-tnav-sub-item {
position:relative;
display:flex;
align-items:center;
justify-content:center;
height:34px;
padding:0 15px 1px 15px;
background:transparent;
color:#c8c8c8 !important;
font-size:11px;
font-weight:700;
line-height:1;
white-space:nowrap;
text-decoration:none !important;
box-sizing:border-box;
transition:
background 0.12s,
color 0.12s,
box-shadow 0.12s;
text-shadow:1px 1px 0 #000;
}

.clbi-tnav-sub-item::after {
content:"";
position:absolute;
top:7px;
right:0;
bottom:7px;
width:1px;
background:#202020;
pointer-events:none;
}

.clbi-tnav-sub-item:last-child::after {
display:none;
}

.clbi-tnav-sub-item:hover {
background:#151515;
color:#ffffff !important;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.030),
inset 0 -1px 0 rgba(0,0,0,0.60);
}

/* 상단 네비: hover/active 인접 경계선 중복 방지 */
.clbi-top-nav-item:hover + .clbi-top-nav-item.clbi-tnav-active {
border-left-color:transparent;
}

.clbi-top-nav-item.clbi-tnav-active:has(+ .clbi-top-nav-item:hover) {
border-right-color:transparent;
}