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

편집 요약 없음
편집 요약 없음
태그: 되돌려진 기여
1번째 줄: 1번째 줄:
@import url('/index.php?title=MediaWiki:Template.Infobox.css&action=raw&ctype=text/css');
/* =========================================
/* =========================================
COASTLINE: BLACK ICE - Layout
  Proitem Animation
Core page shell / top nav / sidebars
  ========================================= */
========================================= */
 
/*
설계 목적
-----------------------------------------
이 파일은 MediaWiki/Liberty 스킨 위에 올라가는 기본 레이아웃 뼈대를 담당한다.
 
담당 범위:
- 기본 Liberty 네비 숨김
- 본문 컨테이너 폭과 배치
- 본문 컨테이너 외곽 테마
- 상단 네비바
- 좌우 사이드바
- 유저 박스와 사이드 링크 버튼
- 하단 푸터
 
현재 디자인 공식
-----------------------------------------
1. 전체 컨테이너는 각진 금속 패널로 처리한다.
2. radius는 사용하지 않는다.
3. 본문 컨테이너 표면은 #171717을 기준으로 한다.
4. 상단 네비바와 좌우 사이드바도 같은 장치 계열로 맞춘다.
5. 상단은 밝게, 좌우는 중간, 하단은 어둡게 잡는 north-light rule을 사용한다.
6. 보라색 강조색(#854369, #d45aa2) 중심의 이전 테마는 제거한다.
7. 공사선 모티프는 이 파일에서 쓰지 않는다.
  공사선은 프로젝트 트래커, 제작 로그, 정비 알림처럼
  "우리가 만들고 있음"이 전면에 오는 곳에서만 사용한다.


주의:
.wip-stripe-layer {
- 대문 내부 전용 구성은 MediaWiki:MainPage.css가 담당한다.
    position: absolute;
- 카테고리 SVG 네비는 MediaWiki:CategoryNav.js + MainPage.css가 담당한다.
    top: 0;
- 언어 다이얼은 이 파일의 좌측 사이드바 언어 선택기 블록이 담당한다.
    left: -280px;
*/
    width: calc(100% + 560px);
 
    height: 100%;
/* -----------------------------------------
    opacity: 0.08;
0. 공통 색상 메모
    background: repeating-linear-gradient(
----------------------------------------- */
        45deg,
 
        #969696,
/*
        #969696 10px,
주요 표면:
        transparent 10px,
#080808 : 깊은 내부 우물 / 화면 내부
        transparent 20px
#101010 : 기본 프레임
    );
#141414 : 약간 밝은 패널 표면
    z-index: 0;
#171717 : 본문 컨테이너 / 상단 네비 / 사이드 장치 표면
#1d1d1d : 타이틀바 / 활성 표면
#252525 : 호버 표면
 
주요 테두리:
#555555 : 상단광
#2b2b2b : 좌우 중간 테두리
#050505 : 하단암 / 깊은 구분선
#202020 : 내부 약한 구분선
*/
 
/* -----------------------------------------
1. Liberty 기본 요소 정리
----------------------------------------- */
 
#liberty-bottombtn {
display:none !important;
}
}


a[accesskey="t"] {
.wip-active .wip-stripe-layer {
display:none !important;
    animation: wip-stripe-move 8s linear infinite;
}
}


.Liberty .nav-wrapper {
.wip-standby .wip-stripe-layer {
display:none !important;
    animation: none;
}
}


.liberty-sidebar {
@keyframes wip-stripe-move {
display:none !important;
    from { transform: translateX(0); }
    to { transform: translateX(280px); }
}
}


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


:root {
[id^="collapsible"] {
--layout-shell-w:1880px;
    overflow: hidden;
--layout-side-w:230px;
    transition: max-height .25s ease;
--layout-gap:8px;
    max-height: 0;
--layout-gap-double:16px;
--clbi-top-nav-outer-h:47px;
--clbi-bottom-nav-outer-h:47px;
}
}


/* 상단 네비와 본문 행의 세로 간격도 좌우 사이드바 간격과 같은 값을 사용한다. */
/* =========================================
  Color
  ========================================= */


html {
.color-text {
height:100%;
    color: var(--text-color);
overflow-x:auto;
overflow-y:hidden;
}
}


body {
.color-text a,
margin:0 !important;
.color-text a:visited,
min-width:calc(var(--layout-shell-w) + 32px) !important;
.color-text a:hover,
height:100vh !important;
.color-text a:active {
overflow-x:visible !important;
    color: var(--text-color) !important;
overflow-y:hidden !important;
    text-decoration-color: var(--text-color) !important;
}
}


#clbi-top-nav-wrap,
/* =========================================
#clbi-bottom-nav-wrap,
  CRT Glitch Panel
.content-wrapper {
  ========================================= */
width:var(--layout-shell-w) !important;
max-width:var(--layout-shell-w) !important;
min-width:var(--layout-shell-w) !important;
box-sizing:border-box !important;
}


#clbi-top-nav-wrap {
.crt-glitch-panel {
margin:0 auto !important;
    position: relative;
padding:var(--layout-gap) 0 0 !important;
    overflow: hidden;
    isolation: isolate;
    border-radius: 5px;
    box-shadow:
        inset 0 0 18px rgba(255,255,255,0.04),
        inset 0 0 42px rgba(133,67,105,0.10),
        0 0 18px rgba(133,67,105,0.20);
}
}


#clbi-bottom-nav-wrap {
.crt-glitch-panel .vanishing-grid-bg {
margin:var(--layout-gap) auto 0 !important;
    position: relative;
padding:0 0 var(--layout-gap) !important;
    overflow: hidden;
    border-radius: 5px;
    background:
        radial-gradient(circle at 50% 45%, rgba(212,90,162,0.18) 0%, transparent 32%),
        linear-gradient(to bottom, #111 0%, #090909 58%, #030303 100%) !important;
}
}


.content-wrapper {
.crt-glitch-panel > * {
margin:var(--layout-gap) auto 0 !important;
    position: relative;
padding:0 !important;
    z-index: 2;
display:grid !important;
grid-template-columns:var(--layout-side-w) minmax(0, 1fr) var(--layout-side-w) !important;
gap:var(--layout-gap) !important;
align-items:stretch !important;
justify-content:stretch !important;
height:calc(100vh - var(--clbi-top-nav-outer-h, 47px) - var(--clbi-bottom-nav-outer-h, 47px) - var(--layout-gap-double, 16px)) !important;
min-height:0 !important;
max-height:calc(100vh - var(--clbi-top-nav-outer-h, 47px) - var(--clbi-bottom-nav-outer-h, 47px) - var(--layout-gap-double, 16px)) !important;
overflow:visible !important;
}
}


#clbi-left-sidebar {
.crt-glow-content {
grid-column:1;
    position: relative;
grid-row:1;
    z-index: 2;
    text-shadow:
        -1px 0 0 rgba(80,160,255,0.75),
        1px 0 0 rgba(255,55,90,0.65),
        2px 0 0 rgba(255,210,70,0.45),
        0 0 2px rgba(255,255,255,0.35),
        0 0 6px rgba(212,90,162,0.22),
        0 0 12px rgba(133,67,105,0.18);
    filter: drop-shadow(0 0 5px rgba(212,90,162,0.18));
}
}


.container-fluid.liberty-content {
.crt-glow-content::before {
grid-column:2;
    content: "";
grid-row:1;
    position: absolute;
padding-bottom:0 !important;
    inset: -24px;
margin:0 !important;
    z-index: -1;
flex:none !important;
    pointer-events: none;
width:auto !important;
    background:
/*
        radial-gradient(
Liberty/Bootstrap의 중앙 content 래퍼는 grid 행 안에서 height:100%를 잡아도
            circle at 50% 35%,
실제 wrapper 높이보다 14px 짧게 계산된다. 이 14px은 화면에 보이는
            rgba(255,255,255,0.08) 0%,
본문 컨테이너 하단 ↔ 하단 네비 사이의 추가 빈공간으로 나타난다.
            rgba(212,90,162,0.10) 18%,
좌우 사이드바나 외부 셸을 건드리지 않고 중앙 래퍼만 보정한다.
            rgba(133,67,105,0.08) 34%,
*/
            transparent 68%
height:calc(100% + var(--clbi-content-extra, 14px)) !important;
        );
max-height:calc(100% + var(--clbi-content-extra, 14px)) !important;
    filter: blur(18px);
max-width:none !important;
    opacity: 0.75;
min-width:0 !important;
min-height:0 !important;
border:none !important;
box-shadow:none !important;
border-radius:0 !important;
background:transparent !important;
display:flex !important;
flex-direction:column !important;
}
}


#clbi-right-sidebar {
.crt-glitch-panel .fake-h1,
grid-column:3;
.crt-glitch-panel h1,
grid-row:1;
.crt-glitch-panel h2,
.crt-glitch-panel strong {
    text-shadow:
        -1px 0 0 rgba(80,160,255,0.95),
        1px 0 0 rgba(255,55,90,0.85),
        2px 0 0 rgba(255,210,70,0.55),
        0 0 3px rgba(255,255,255,0.65),
        0 0 10px rgba(255,255,255,0.28),
        0 0 18px rgba(212,90,162,0.35),
        0 0 32px rgba(133,67,105,0.24);
}
}


/* 줌/축소 화면에서도 좌우 사이드바를 문서 폭에 포함시키기 위해
.crt-glitch-panel img {
  사이드바 숨김 반응형 규칙은 제거한다. */
    filter:
 
        drop-shadow(-1px 0 0 rgba(80,160,255,0.65))
 
        drop-shadow(1px 0 0 rgba(255,55,90,0.55))
/* -----------------------------------------
        drop-shadow(2px 0 0 rgba(255,210,70,0.35))
2-A. CLBI shell visibility safety
        drop-shadow(0 0 6px rgba(212,90,162,0.18));
----------------------------------------- */
 
/*
If a browser/user stylesheet or Liberty wrapper gives .content-wrapper a negative
stacking order, the generated shell can exist in the DOM while only the
background is visible.  The CLBI shell parts must sit above the halftone canvas.
*/
 
#clbi-top-nav-wrap,
.content-wrapper,
#clbi-bottom-nav-wrap {
position:relative !important;
z-index:1 !important;
}
}


body.clbi-shell-ready #clbi-top-nav-wrap,
.crt-glitch-panel::before {
body.clbi-shell-ready .content-wrapper,
    content: "";
body.clbi-shell-ready #clbi-bottom-nav-wrap {
    position: absolute;
visibility:visible !important;
    inset: -80px 0;
opacity:1 !important;
    z-index: 3;
    pointer-events: none;
    opacity: 0.22;
    background:
        repeating-linear-gradient(
            to bottom,
            rgba(255,255,255,0.08) 0px,
            rgba(255,255,255,0.08) 1px,
            transparent 2px,
            transparent 5px
        );
    mix-blend-mode: screen;
    animation: crt-scanlines-up 7s linear infinite;
}
}


 
.crt-glitch-panel::after {
/* -----------------------------------------
    content: "";
2-B. 세로 가변 셸 / 좌측 최근 변경 최종 구조
    position: absolute;
----------------------------------------- */
    inset: 0;
 
    z-index: 4;
/*
    pointer-events: none;
목표:
    opacity: 0;
- 기본 상태에서는 원래 높이와 원래 배치를 유지한다.
    background:
- 세로가 부족할 때만 뉴스 박스 외곽 프레임을 줄인다.
        linear-gradient(
- 최근 변경 항목은 모두 렌더링한다.
            to bottom,
- 항목은 viewport 내부에서만 잘린다.
            transparent 0%,
- 하단 마감은 실제 .news-bottom-finish DOM 행이 담당한다.
            rgba(255,255,255,0.18) 48%,
*/
            rgba(212,90,162,0.28) 50%,
 
            rgba(90,120,255,0.16) 52%,
@supports (height: 100dvh) {
            transparent 56%
body {
        );
height:100dvh !important;
    mix-blend-mode: screen;
    animation: crt-glitch-band-up 6.5s steps(1, end) infinite;
}
}


.content-wrapper {
/* =========================================
height:calc(100dvh - var(--clbi-top-nav-outer-h, 47px) - var(--clbi-bottom-nav-outer-h, 47px) - var(--layout-gap-double, 16px)) !important;
  Horizontal CRT Warp
max-height:calc(100dvh - var(--clbi-top-nav-outer-h, 47px) - var(--clbi-bottom-nav-outer-h, 47px) - var(--layout-gap-double, 16px)) !important;
  ========================================= */
}
}


#clbi-top-nav-wrap,
.crt-horizontal-warp {
#clbi-bottom-nav-wrap,
    position: relative;
.content-wrapper {
    overflow: hidden;
top:0 !important;
    isolation: isolate;
bottom:auto !important;
transform:none !important;
}
}


.clbi-shell-host {
.crt-horizontal-warp .crt-glow-content {
display:flex !important;
    animation: crt-base-drift 9s steps(1, end) infinite;
flex-direction:column !important;
    background-image:
align-items:stretch !important;
        repeating-linear-gradient(
justify-content:flex-start !important;
            to bottom,
gap:0 !important;
            rgba(120,180,255,0.00) 0px,
min-height:0 !important;
            rgba(120,180,255,0.00) 3px,
margin:0 !important;
            rgba(120,180,255,0.05) 4px,
padding:0 !important;
            rgba(255,80,170,0.035) 5px,
position:relative !important;
            rgba(120,180,255,0.00) 7px
z-index:1 !important;
        );
    background-blend-mode: screen;
}
}


.clbi-shell-host > #clbi-top-nav-wrap,
.crt-horizontal-warp .crt-glow-content::after {
.clbi-shell-host > .content-wrapper,
    content: "";
.clbi-shell-host > #clbi-bottom-nav-wrap {
    position: absolute;
flex:0 0 auto !important;
    inset: 0;
    z-index: 6;
    pointer-events: none;
    opacity: 0;
    background:
        linear-gradient(
            to right,
            transparent 0%,
            rgba(120,180,255,0.18) 10%,
            rgba(255,255,255,0.18) 48%,
            rgba(212,90,162,0.20) 78%,
            transparent 100%
        );
    mix-blend-mode: screen;
    animation: crt-wide-horizontal-tear 3.8s steps(1, end) infinite;
}
}


.clbi-shell-host > .content-wrapper {
/* =========================================
margin-top:var(--layout-gap) !important;
  CRT Animations
}
  ========================================= */


.clbi-shell-host > #clbi-bottom-nav-wrap {
@keyframes crt-scanlines-up {
margin-top:var(--layout-gap) !important;
    from {
}
        transform: translateY(0);
    }


#clbi-left-sidebar,
    to {
#clbi-right-sidebar {
        transform: translateY(-80px);
max-height:100% !important;
    }
min-height:0 !important;
}
}


#clbi-left-sidebar {
@keyframes crt-glitch-band-up {
align-self:flex-start !important;
    0%, 12%, 27%, 43%, 58%, 76%, 100% {
overflow:hidden !important;
        opacity: 0;
}
        transform: translateY(100%);
    }


#clbi-right-sidebar {
    13% {
align-self:flex-start !important;
        opacity: 0.75;
overflow-y:auto !important;
        transform: translateY(70%);
overflow-x:hidden !important;
    }
}


#clbi-left-sidebar .clbi-left-lang-box,
    14% {
#clbi-left-sidebar .clbi-left-news-box {
        opacity: 0.15;
flex:0 0 auto !important;
        transform: translateY(62%) skewX(-2deg);
}
    }


.news-bottom-finish {
    28% {
display:none;
        opacity: 0.55;
}
        transform: translateY(35%);
    }


#clbi-left-sidebar .clbi-left-news-box.is-adaptive-constrained {
    29% {
display:flex !important;
        opacity: 0.18;
flex-direction:column !important;
        transform: translateY(28%) skewX(2deg);
height:var(--adaptive-news-h) !important;
    }
max-height:var(--adaptive-news-h) !important;
min-height:0 !important;
overflow:hidden !important;
padding:0 8px 8px !important;
box-sizing:border-box !important;
position:relative !important;
}


#clbi-left-sidebar .clbi-left-news-box.is-adaptive-constrained > .clbi-left-title {
    44% {
flex:0 0 auto !important;
        opacity: 0.65;
}
        transform: translateY(10%);
    }


#clbi-left-sidebar .clbi-left-news-box.is-adaptive-constrained .clbi-news-box {
    45% {
display:grid !important;
        opacity: 0.12;
grid-template-rows:auto auto auto minmax(0, 1fr) 12px !important;
        transform: translateY(4%) skewX(-1deg);
grid-template-columns:minmax(0, 1fr) !important;
    }
flex:1 1 auto !important;
height:auto !important;
min-height:0 !important;
padding:3px !important;
overflow:hidden !important;
position:relative !important;
box-sizing:border-box !important;
background:#080808 !important;
}


#clbi-left-sidebar .clbi-left-news-box.is-adaptive-constrained #clbi-left-news-changelog-title {
    59% {
grid-row:1 !important;
        opacity: 0.5;
}
        transform: translateY(-20%);
    }


#clbi-left-sidebar .clbi-left-news-box.is-adaptive-constrained .news-left-changelog-feed {
    60% {
grid-row:2 !important;
        opacity: 0.16;
min-height:0 !important;
        transform: translateY(-26%) skewX(2deg);
overflow:hidden !important;
    }
}


#clbi-left-sidebar .clbi-left-news-box.is-adaptive-constrained #clbi-left-news-recent-title {
    77% {
grid-row:3 !important;
        opacity: 0.55;
}
        transform: translateY(-55%);
    }


#clbi-left-sidebar .clbi-left-news-box.is-adaptive-constrained .news-left-recent-feed {
    78% {
grid-row:4 !important;
        opacity: 0;
min-height:0 !important;
        transform: translateY(-70%);
height:auto !important;
    }
max-height:none !important;
overflow:hidden !important;
position:relative !important;
padding:0 !important;
margin:0 !important;
box-sizing:border-box !important;
}
}


#clbi-left-sidebar .clbi-left-news-box.is-adaptive-constrained .news-recent-viewport {
@keyframes crt-base-drift {
position:relative !important;
    0%, 88%, 100% {
display:block !important;
        transform: translateX(0);
width:100% !important;
        filter: drop-shadow(0 0 5px rgba(212,90,162,0.18));
height:100% !important;
    }
min-height:0 !important;
overflow:hidden !important;
box-sizing:border-box !important;
}


#clbi-left-sidebar .clbi-left-news-box.is-adaptive-constrained .news-recent-stack {
    89% {
position:relative !important;
        transform: translateX(-2px) skewX(-0.4deg);
display:block !important;
        filter:
width:100% !important;
            contrast(1.08)
min-height:0 !important;
            brightness(1.05)
box-sizing:border-box !important;
            drop-shadow(0 0 7px rgba(212,90,162,0.24));
}
    }


#clbi-left-sidebar .clbi-left-news-box.is-adaptive-constrained .news-bottom-finish {
    90% {
grid-row:5 !important;
        transform: translateX(3px) skewX(0.5deg);
display:block !important;
    }
height:12px !important;
min-height:12px !important;
width:100% !important;
background:#080808 !important;
box-shadow:none !important;
pointer-events:none !important;
box-sizing:border-box !important;
}


#clbi-left-sidebar .clbi-left-news-box.is-adaptive-constrained .news-left-recent-feed.is-adaptive-faded .news-recent-viewport::after {
    91% {
content:"" !important;
        transform: translateX(-1px);
position:absolute !important;
    }
left:0 !important;
right:0 !important;
bottom:0 !important;
height:42px !important;
z-index:20 !important;
pointer-events:none !important;
background:
linear-gradient(
to bottom,
rgba(8,8,8,0) 0%,
rgba(8,8,8,0.30) 34%,
rgba(8,8,8,0.72) 68%,
#080808 100%
) !important;
}


#clbi-left-sidebar .clbi-left-news-box.is-adaptive-constrained .news-recent-item.is-adaptive-hidden {
    92% {
display:grid !important;
        transform: translateX(0);
        filter: drop-shadow(0 0 5px rgba(212,90,162,0.18));
    }
}
}


#clbi-left-sidebar .clbi-left-news-box.is-adaptive-constrained::before,
@keyframes crt-wide-horizontal-tear {
#clbi-left-sidebar .clbi-left-news-box.is-adaptive-constrained::after,
    0%, 8%, 17%, 29%, 43%, 61%, 78%, 100% {
#clbi-left-sidebar .clbi-left-news-box.is-adaptive-constrained .clbi-news-box::before,
        opacity: 0;
#clbi-left-sidebar .clbi-left-news-box.is-adaptive-constrained .clbi-news-box::after,
        transform: translateX(0);
#clbi-left-sidebar .clbi-left-news-box.is-adaptive-constrained .news-left-recent-feed::after {
        clip-path: inset(0 0 0 0);
content:none !important;
    }
display:none !important;
}


    9% {
        opacity: 0.45;
        transform: translateX(-18px) skewX(-3deg);
        clip-path: inset(18% 0 70% 0);
    }


    10% {
        opacity: 0.28;
        transform: translateX(24px) skewX(4deg);
        clip-path: inset(21% 0 64% 0);
    }


/* -----------------------------------------
    18% {
2-Q. 좌측 뉴스 하단 마감 회색선 제거
        opacity: 0.38;
----------------------------------------- */
        transform: translateX(32px) skewX(5deg);
        clip-path: inset(42% 0 47% 0);
    }


/*
    19% {
뉴스 하단 마감 안쪽의 회색선은 .news-bottom-finish의 inset shadow였다.
        opacity: 0.16;
마감 영역은 #080808 면으로 닫고, 별도 내부 밝은 선을 만들지 않는다.
        transform: translateX(-28px) skewX(-4deg);
*/
        clip-path: inset(46% 0 43% 0);
    }


#clbi-left-sidebar .clbi-left-news-box.is-adaptive-constrained .news-bottom-finish {
    30% {
background:#080808 !important;
        opacity: 0.48;
box-shadow:none !important;
        transform: translateX(-36px) skewX(-6deg);
transition:background .12s ease, color .12s ease;
        clip-path: inset(58% 0 30% 0);
}
    }


    31% {
        opacity: 0.18;
        transform: translateX(20px) skewX(3deg);
        clip-path: inset(61% 0 27% 0);
    }


/* -----------------------------------------
    44% {
2-S. 좌측 뉴스 하단 기준선 정렬 / finish 고정
        opacity: 0.36;
----------------------------------------- */
        transform: translateX(18px) skewX(3deg);
        clip-path: inset(8% 0 84% 0);
    }


/*
    45% {
짧은 세로 화면에서 좌측 뉴스 박스의 외곽 하단은 본문 컨테이너 하단선과 맞춘다.
        opacity: 0.12;
최근 변경 항목은 feed 안에서만 잘리고, 실제 finish 행 12px은 항상 남는다.
        transform: translateX(-14px) skewX(-2deg);
*/
        clip-path: inset(11% 0 80% 0);
    }


#clbi-left-sidebar .clbi-left-news-box.is-adaptive-constrained {
    62% {
display:flex !important;
        opacity: 0.44;
flex-direction:column !important;
        transform: translateX(-42px) skewX(-7deg);
height:var(--adaptive-news-h) !important;
        clip-path: inset(73% 0 16% 0);
max-height:var(--adaptive-news-h) !important;
    }
min-height:0 !important;
overflow:hidden !important;
padding:0 8px 8px !important;
box-sizing:border-box !important;
position:relative !important;
}


#clbi-left-sidebar .clbi-left-news-box.is-adaptive-constrained > .clbi-left-title {
    63% {
flex:0 0 auto !important;
        opacity: 0.18;
}
        transform: translateX(30px) skewX(4deg);
        clip-path: inset(76% 0 12% 0);
    }


#clbi-left-sidebar .clbi-left-news-box.is-adaptive-constrained .clbi-news-box {
    79% {
display:flex !important;
        opacity: 0.42;
flex-direction:column !important;
        transform: translateX(26px) skewX(4deg);
flex:1 1 auto !important;
        clip-path: inset(31% 0 58% 0);
height:auto !important;
    }
min-height:0 !important;
padding:3px !important;
overflow:hidden !important;
position:relative !important;
box-sizing:border-box !important;
background:#080808 !important;
}


#clbi-left-sidebar .clbi-left-news-box.is-adaptive-constrained .news-feed-title,
    80% {
#clbi-left-sidebar .clbi-left-news-box.is-adaptive-constrained .news-left-changelog-feed {
        opacity: 0.14;
flex:0 0 auto !important;
        transform: translateX(-20px) skewX(-3deg);
        clip-path: inset(34% 0 54% 0);
    }
}
}


#clbi-left-sidebar .clbi-left-news-box.is-adaptive-constrained .news-left-recent-feed {
/* =========================================
flex:0 0 var(--adaptive-recent-h) !important;
  Retro Horizon Grid Background
height:var(--adaptive-recent-h) !important;
  ========================================= */
max-height:var(--adaptive-recent-h) !important;
min-height:0 !important;
position:relative !important;
overflow:hidden !important;
padding:0 !important;
margin:0 !important;
box-sizing:border-box !important;
}


#clbi-left-sidebar .clbi-left-news-box.is-adaptive-constrained .news-recent-viewport {
.retro-grid-bg {
position:relative !important;
    position: relative;
display:block !important;
    overflow: hidden;
width:100% !important;
    border-radius: 5px;
height:100% !important;
    background:
max-height:100% !important;
        linear-gradient(
min-height:0 !important;
            to bottom,
overflow:hidden !important;
            rgba(13, 6, 19, 0.98) 0%,
box-sizing:border-box !important;
            rgba(25, 9, 33, 0.82) 44%,
            rgba(53, 19, 56, 0.50) 60%,
            rgba(4, 4, 7, 0.96) 61%,
            rgba(2, 2, 4, 1) 100%
        ) !important;
}
}


#clbi-left-sidebar .clbi-left-news-box.is-adaptive-constrained .news-recent-stack {
.retro-grid-bg .crt-glow-content {
position:relative !important;
    position: relative;
display:block !important;
    z-index: 5;
width:100% !important;
min-height:0 !important;
box-sizing:border-box !important;
}
}


#clbi-left-sidebar .clbi-left-news-box.is-adaptive-constrained .news-bottom-finish {
.retro-grid-bg::before {
display:block !important;
    content: "";
flex:0 0 12px !important;
    position: absolute;
height:12px !important;
    left: -10%;
min-height:12px !important;
    right: -10%;
width:100% !important;
    top: 56%;
background:#080808 !important;
    height: 16%;
box-shadow:none !important;
    z-index: 1;
pointer-events:none !important;
    pointer-events: none;
box-sizing:border-box !important;
    background:
        radial-gradient(
            ellipse at 50% 50%,
            rgba(230,210,225,0.28) 0%,
            rgba(204,94,168,0.30) 20%,
            rgba(184,56,142,0.20) 44%,
            transparent 76%
        );
    filter: blur(9px);
    opacity: 0.68;
}
}


#clbi-left-sidebar .clbi-left-news-box.is-adaptive-constrained .news-left-recent-feed.is-adaptive-faded .news-recent-viewport::after {
.retro-grid-bg::after {
content:"" !important;
    content: "";
position:absolute !important;
    position: absolute;
left:0 !important;
    left: 50%;
right:0 !important;
    top: 61%;
bottom:0 !important;
    width: 150%;
height:42px !important;
    height: 115%;
z-index:20 !important;
    z-index: 2;
pointer-events:none !important;
    pointer-events: none;
background:
    background-image:
linear-gradient(
        linear-gradient(
to bottom,
            to right,
rgba(8,8,8,0) 0%,
            rgba(204,64,156,0.72) 1px,
rgba(8,8,8,0.28) 32%,
            transparent 1px
rgba(8,8,8,0.70) 68%,
        ),
#080808 100%
        linear-gradient(
) !important;
            to bottom,
            rgba(204,64,156,0.70) 1px,
            transparent 1px
        );
    background-size:
        48px 100%,
        100% 26px;
    transform-origin: 50% 0%;
    transform:
        translateX(-50%)
        perspective(430px)
        rotateX(66deg);
    opacity: 0.78;
    filter:
        drop-shadow(0 0 3px rgba(204,64,156,0.58))
        drop-shadow(0 0 10px rgba(204,64,156,0.30));
    animation: retro-grid-flow 1.8s linear infinite;
    mask-image:
        linear-gradient(
            to bottom,
            transparent 0%,
            black 4%,
            black 82%,
            transparent 100%
        );
    -webkit-mask-image:
        linear-gradient(
            to bottom,
            transparent 0%,
            black 4%,
            black 82%,
            transparent 100%
        );
}
}


/* 이전 실험용 pseudo 마감/페이드는 모두 끈다. */
.retro-grid-bg .crt-glow-content::before {
#clbi-left-sidebar .clbi-left-news-box.is-adaptive-constrained::before,
    content: "";
#clbi-left-sidebar .clbi-left-news-box.is-adaptive-constrained::after,
    position: absolute;
#clbi-left-sidebar .clbi-left-news-box.is-adaptive-constrained .clbi-news-box::before,
    inset: -42px;
#clbi-left-sidebar .clbi-left-news-box.is-adaptive-constrained .clbi-news-box::after,
    z-index: -1;
#clbi-left-sidebar .clbi-left-news-box.is-adaptive-constrained .news-left-recent-feed::after {
    pointer-events: none;
content:none !important;
    background:
display:none !important;
        radial-gradient(
            ellipse at 50% 56%,
            rgba(220,220,225,0.05) 0%,
            rgba(204,64,156,0.07) 22%,
            rgba(96,152,204,0.05) 42%,
            transparent 70%
        );
    filter: blur(20px);
    opacity: 0.52;
}
}


@keyframes retro-grid-flow {
    from {
        background-position:
            0 0,
            0 0;
    }


/* -----------------------------------------
    to {
2-T. 좌측 뉴스 기본 높이 보존 기준
        background-position:
----------------------------------------- */
            0 0,
 
            0 -26px;
/*
    }
뉴스 박스는 충분한 높이에서 자연 내용 높이를 유지한다.
adaptive-constrained 상태는 실제로 본문 하단을 넘칠 때만 JS가 부여한다.
*/
 
 
/* -----------------------------------------
2-U. 좌측 뉴스 페이드 마스크 / 기존 하단선 보존
----------------------------------------- */
 
/*
하단 마감선은 새로 만들지 않는다.
페이드 오버레이도 그리지 않는다.
 
기존 문제:
- ::after 페이드가 기존 하단 하이라이트 위를 덮었다.
- border/pseudo로 새 선을 만들면 내부에 의도하지 않은 획처럼 보였다.
 
수정:
- viewport에 그라데이션 overlay를 그리지 않고, mask로 항목 내용만 흐리게 한다.
- .news-bottom-finish는 투명한 공간으로 두어 부모 우물의 기존 마감이 보이게 한다.
*/
 
#clbi-left-sidebar .clbi-left-news-box.is-adaptive-constrained .news-left-recent-feed.is-adaptive-faded .news-recent-viewport::after {
content:none !important;
display:none !important;
}
}


#clbi-left-sidebar .clbi-left-news-box.is-adaptive-constrained .news-left-recent-feed.is-adaptive-faded .news-recent-viewport {
/* =========================================
-webkit-mask-image:linear-gradient(
  CRT Monitor Frame
to bottom,
  ========================================= */
#000 0%,
#000 calc(100% - 46px),
rgba(0,0,0,0.70) calc(100% - 26px),
rgba(0,0,0,0.28) calc(100% - 10px),
transparent 100%
) !important;
mask-image:linear-gradient(
to bottom,
#000 0%,
#000 calc(100% - 46px),
rgba(0,0,0,0.70) calc(100% - 26px),
rgba(0,0,0,0.28) calc(100% - 10px),
transparent 100%
) !important;
}


#clbi-left-sidebar .clbi-left-news-box.is-adaptive-constrained .news-bottom-finish {
.crt-monitor-frame {
background:transparent !important;
    position: relative;
border:0 !important;
    box-sizing: border-box;
box-shadow:none !important;
    padding: 34px 46px 38px 46px;
    border-radius: 22px;
    background:
        linear-gradient(145deg, #303030 0%, #181818 22%, #080808 58%, #202020 100%);
    border: 2px solid #2f2f2f;
    box-shadow:
        inset 0 2px 0 rgba(255,255,255,0.18),
        inset 0 -3px 0 rgba(0,0,0,0.85),
        inset 3px 0 0 rgba(255,255,255,0.06),
        inset -3px 0 0 rgba(0,0,0,0.75),
        0 0 0 3px #050505,
        0 0 0 5px #242424,
        0 12px 20px rgba(0,0,0,0.62),
        0 24px 42px rgba(0,0,0,0.52),
        0 42px 70px rgba(0,0,0,0.34);
}
}


#clbi-left-sidebar .clbi-left-news-box.is-adaptive-constrained .news-bottom-finish::before,
.crt-monitor-frame::before {
#clbi-left-sidebar .clbi-left-news-box.is-adaptive-constrained .news-bottom-finish::after {
    content: "";
content:none !important;
    position: absolute;
display:none !important;
    inset: 0;
    border-radius: 22px;
    pointer-events: none;
    opacity: 0.16;
    background:
        repeating-linear-gradient(
            135deg,
            rgba(255,255,255,0.035) 0px,
            rgba(255,255,255,0.035) 1px,
            transparent 1px,
            transparent 5px
        ),
        radial-gradient(
            ellipse at 28% 12%,
            rgba(255,255,255,0.12) 0%,
            transparent 45%
        );
    mix-blend-mode: screen;
}
}


/* -----------------------------------------
.crt-monitor-frame::after {
3. 본문 컨테이너
    content: none;
----------------------------------------- */
 
/*
본문 컨테이너는 바깥 장비 프레임과 내부 우물로 분리한다.
- .liberty-content는 투명 래퍼로 유지한다.
- .liberty-content-main은 외곽 프레임이다.
- .mw-parser-output은 실제 본문이 놓이는 내부 우물이다.
- 외곽과 본문 사이의 기본 간격은 8px이다.
*/
 
.liberty-content-main,
.Liberty .content-wrapper .liberty-content .liberty-content-main,
.liberty-content-main {
position:relative !important;
box-sizing:border-box !important;
height:100% !important;
min-height:0 !important;
background:#1d1d1d !important;
border:1px solid #050505 !important;
border-radius:0 !important;
padding:8px !important;
box-shadow:
inset 0 1px 0 #555555,
inset -1px 0 0 #555555,
inset 1px 0 0 #101010,
inset 0 -1px 0 #101010,
0 6px 18px rgba(0,0,0,0.34) !important;
overflow:hidden !important;
display:flex !important;
flex-direction:column !important;
}
}


/* MediaWiki가 본문 프레임 안에 끼워 넣는 중간 래퍼도 높이를 전달해야 한다.
.crt-monitor-inner {
  시스템 CSS/JS 문서에서는 이미 별도 보정이 있었지만, 일반 문서는 이 단계가 빠져
    position: relative;
  .mw-parser-output이 스크롤 박스가 아니라 내용 높이만큼 늘어나는 블록이 되었다. */
    box-sizing: border-box;
.liberty-content-main > #mw-content-text,
    padding: 18px;
.liberty-content-main > .mw-body-content,
    border-radius: 16px;
.liberty-content-main #mw-content-text,
    background:
.liberty-content-main .mw-body-content {
        linear-gradient(145deg, #050505 0%, #111 44%, #070707 100%);
position:relative !important;
    border: 1px solid #050505;
box-sizing:border-box !important;
    box-shadow:
flex:1 1 auto !important;
        inset 0 5px 14px rgba(0,0,0,0.95),
height:auto !important;
        inset 0 -2px 4px rgba(255,255,255,0.06),
min-height:0 !important;
        inset 4px 0 10px rgba(0,0,0,0.85),
max-height:none !important;
        inset -4px 0 10px rgba(0,0,0,0.85),
margin:0 !important;
        0 1px 0 rgba(255,255,255,0.12);
padding:0 !important;
overflow:hidden !important;
display:flex !important;
flex-direction:column !important;
}
}


.liberty-content-main .mw-parser-output {
.crt-monitor-screen {
position:relative !important;
    position: relative;
box-sizing:border-box !important;
    overflow: hidden;
flex:1 1 auto !important;
    border-radius: 9px / 18px;
height:auto !important;
    background: #050505;
min-height:0 !important;
    border: 2px solid #050505;
max-height:none !important;
    box-shadow:
margin:0 !important;
        inset 0 0 0 2px #151515,
padding:8px !important;
        inset 0 0 22px rgba(0,0,0,0.95),
background:#080808 !important;
        inset 0 0 48px rgba(0,0,0,0.75),
border:0 !important;
        0 0 0 1px rgba(255,255,255,0.08),
box-shadow:
        0 0 18px rgba(133,67,105,0.18);
inset 0 1px 0 #101010,
inset -1px 0 0 #101010,
inset 1px 0 0 #555555,
inset 0 -1px 0 #555555 !important;
overflow-y:auto !important;
overflow-x:hidden !important;
}
}


 
.crt-monitor-screen::before {
.liberty-content-main .mw-parser-output,
    content: "";
#clbi-left-sidebar,
    position: absolute;
#clbi-right-sidebar {
    inset: 0;
scrollbar-width:thin;
    z-index: 20;
scrollbar-color:#333333 #080808;
    pointer-events: none;
    border-radius: 9px / 18px;
    background:
        radial-gradient(
            ellipse at 50% 50%,
            transparent 0%,
            transparent 58%,
            rgba(0,0,0,0.22) 82%,
            rgba(0,0,0,0.58) 100%
        ),
        linear-gradient(
            105deg,
            transparent 0%,
            rgba(255,255,255,0.05) 18%,
            transparent 38%,
            transparent 100%
        );
    box-shadow:
        inset 0 0 28px rgba(255,255,255,0.04),
        inset 0 0 60px rgba(0,0,0,0.65);
}
}


/* 제목이 유지되는 관리/시스템 문서는 제목 영역과 본문 우물 사이에 8px 간격을 둔다. */
.crt-monitor-screen .crt-glitch-panel,
body.page-title-visible .liberty-content-header + .mw-parser-output,
.crt-monitor-screen .retro-grid-bg {
body.backend-system-page .liberty-content-header + .mw-parser-output {
    border-radius: 8px / 16px;
margin-top:8px !important;
}
}


/* title을 숨긴 일반 문서는 내부 우물이 바로 본문 시작점이 된다. */
.crt-monitor-screen .crt-glitch-panel {
body.page-title-hidden .liberty-content-header + .mw-parser-output,
    box-shadow: none;
body.anecdote-namespace-page .liberty-content-header + .mw-parser-output {
margin-top:0 !important;
}
}


.liberty-content {
#clbi-main-crt-hero-wrap {
border:none !important;
    width: 100%;
box-shadow:none !important;
    margin: 0 auto 14px auto;
border-radius:0 !important;
background:transparent !important;
}
}


/* -----------------------------------------
#clbi-main-crt-hero {
4. 본문 헤더
    width: 100%;
----------------------------------------- */
 
.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;
border-radius:0 !important;
}
}


.liberty-content-header .content-tools {
/* =========================================
display:none !important;
  Compact CRT Media Frame
order:2 !important;
  ========================================= */
flex-shrink:0 !important;
padding-top:0 !important;
padding-right:0 !important;
}


.liberty-content-header .title {
.compact-crt-media {
order:1 !important;
    position: relative;
flex:1 !important;
    box-sizing: border-box;
display:flex !important;
    width: fit-content;
align-items:flex-end !important;
    max-width: 100%;
margin:0 !important;
    margin: 6px auto;
padding:0 !important;
    padding: 10px 14px;
    border-radius: 10px;
    background:
        linear-gradient(
            145deg,
            #242424 0%,
            #141414 34%,
            #070707 70%,
            #171717 100%
        );
    border: 1px solid #2b2b2b;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.12),
        inset 0 -2px 0 rgba(0,0,0,0.82),
        inset 2px 0 0 rgba(255,255,255,0.035),
        inset -2px 0 0 rgba(0,0,0,0.62),
        0 0 0 2px #050505,
        0 0 0 3px #242424,
        0 4px 12px rgba(0,0,0,0.68);
    overflow: hidden;
}
}


.liberty-content-header h1 {
.compact-crt-media .mw-default-size,
margin:0 !important;
.compact-crt-media .mw-file-element,
padding:0 !important;
.compact-crt-media img {
    position: relative;
    z-index: 1;
}
}


.liberty-content-header .contentSub {
.compact-crt-media img {
display:none !important;
    max-width: 100%;
    height: auto;
    filter:
        drop-shadow(0 1px 3px rgba(0,0,0,0.72))
        drop-shadow(0 0 4px rgba(255,255,255,0.06));
    animation: compact-crt-image-jitter 1.25s steps(1, end) infinite;
}
}


 
.compact-crt-media::before {
/* 일반 문서에서는 기본 제목 영역을 숨긴다.
    content: "";
  CSS/JS/JSON, MediaWiki, 특수문서, , 파일, 분류 같은 시스템 문서는
    position: absolute;
  Common.js가 body.backend-system-page를 부여하므로 제목을 유지한다. */
    inset: 6px;
body.page-title-hidden .liberty-content-header,
    z-index: 3;
body.page-title-hidden .liberty-content-header .title,
    border-radius: 7px;
body.page-title-hidden .liberty-content-header .title h1 {
    pointer-events: none;
display:none !important;
    background:
visibility:hidden !important;
        radial-gradient(
height:0 !important;
            ellipse at 50% 50%,
min-height:0 !important;
            transparent 0%,
margin:0 !important;
            transparent 54%,
padding:0 !important;
            rgba(0,0,0,0.20) 78%,
overflow:hidden !important;
            rgba(0,0,0,0.58) 100%
        ),
        linear-gradient(
            105deg,
            transparent 0%,
            rgba(255,255,255,0.040) 18%,
            transparent 38%,
            transparent 100%
        ),
        linear-gradient(
            to bottom,
            rgba(255,255,255,0.030) 0%,
            transparent 34%,
            rgba(0,0,0,0.26) 100%
        );
    box-shadow:
        inset 0 0 18px rgba(255,255,255,0.028),
        inset 0 0 38px rgba(0,0,0,0.66);
}
}


body.page-title-hidden .mw-page-title-main,
.compact-crt-media::after {
body.page-title-hidden .mw-page-title-main::after,
    content: "";
body.page-title-hidden .mw-page-title-namespace,
    position: absolute;
body.page-title-hidden .mw-page-title-namespace::after,
    inset: 6px;
body.page-title-hidden .mw-page-title-separator,
    z-index: 4;
body.page-title-hidden .mw-page-title-separator::after,
    border-radius: 7px;
body.page-title-hidden .liberty-content-header .title,
    pointer-events: none;
body.page-title-hidden .liberty-content-header h1,
    opacity: 0.34;
body.page-title-hidden #firstHeading,
    background:
body.page-title-hidden .firstHeading,
        repeating-linear-gradient(
body.page-title-hidden .mw-first-heading,
            to bottom,
body.page-title-hidden .page-heading,
            rgba(255,255,255,0.070) 0px,
body.page-title-hidden .page-header {
            rgba(255,255,255,0.070) 1px,
display:none !important;
            transparent 2px,
visibility:hidden !important;
            transparent 4px
height:0 !important;
        );
min-height:0 !important;
    mix-blend-mode: screen;
margin:0 !important;
padding:0 !important;
overflow:hidden !important;
}
}


 
.compact-crt-static {
/* Anecdote 네임스페이스도 작품/회차 일반 문서 계열로 본다.
    position: absolute;
  감상 모드 여부와 관계없이 MediaWiki 기본 제목은 숨기고,
    inset: 6px;
  뷰어 내부 제목과 작품 허브 내부 제목만 사용한다. */
    z-index: 5;
body.anecdote-namespace-page .liberty-content-header,
    border-radius: 7px;
body.anecdote-namespace-page .liberty-content-header .title,
    pointer-events: none;
body.anecdote-namespace-page .liberty-content-header .title h1,
    opacity: 0.30;
body.anecdote-namespace-page .mw-page-title-main,
    background:
body.anecdote-namespace-page .mw-page-title-main::after,
        repeating-linear-gradient(
body.anecdote-namespace-page .mw-page-title-namespace,
            to bottom,
body.anecdote-namespace-page .mw-page-title-namespace::after,
            transparent 0px,
body.anecdote-namespace-page .mw-page-title-separator,
            transparent 4px,
body.anecdote-namespace-page .mw-page-title-separator::after,
            rgba(255,255,255,0.10) 5px,
body.anecdote-namespace-page #firstHeading,
            transparent 6px,
body.anecdote-namespace-page .firstHeading,
            transparent 10px
body.anecdote-namespace-page .mw-first-heading,
        ),
body.anecdote-namespace-page .page-heading,
        linear-gradient(
body.anecdote-namespace-page .page-header {
            to bottom,
display:none !important;
            transparent 0%,
visibility:hidden !important;
            transparent 43%,
height:0 !important;
            rgba(255,255,255,0.11) 49%,
min-height:0 !important;
            rgba(180,180,180,0.08) 50%,
margin:0 !important;
            rgba(90,90,90,0.08) 51%,
padding:0 !important;
            transparent 56%,
overflow:hidden !important;
            transparent 100%
        );
    mix-blend-mode: screen;
    animation:
        compact-crt-static-roll 3.8s linear infinite,
        compact-crt-static-flicker 1.7s steps(1, end) infinite;
}
}


 
.compact-crt-media:hover::after {
/* action-view fallback: 일반 열람 문서는 JS 재적용 타이밍과 무관하게 기본 제목을 숨긴다.
    opacity: 0.40;
  backend/system 문서는 Common.js가 body.backend-system-page를 붙여 제목을 유지한다. */
body.action-view:not(.backend-system-page) .liberty-content-header,
body.action-view:not(.backend-system-page) .liberty-content-header .title,
body.action-view:not(.backend-system-page) .liberty-content-header .title h1,
body.action-view:not(.backend-system-page) .liberty-content-header h1,
body.action-view:not(.backend-system-page) .mw-page-title-main,
body.action-view:not(.backend-system-page) .mw-page-title-main::after,
body.action-view:not(.backend-system-page) .mw-page-title-namespace,
body.action-view:not(.backend-system-page) .mw-page-title-namespace::after,
body.action-view:not(.backend-system-page) .mw-page-title-separator,
body.action-view:not(.backend-system-page) .mw-page-title-separator::after,
body.action-view:not(.backend-system-page) #firstHeading,
body.action-view:not(.backend-system-page) .firstHeading,
body.action-view:not(.backend-system-page) .mw-first-heading,
body.action-view:not(.backend-system-page) .page-heading,
body.action-view:not(.backend-system-page) .page-header {
display:none !important;
visibility:hidden !important;
height:0 !important;
min-height:0 !important;
margin:0 !important;
padding:0 !important;
overflow:hidden !important;
}
}


body.action-view:not(.backend-system-page) .liberty-content-header + .mw-parser-output {
.compact-crt-media:hover .compact-crt-static {
margin-top:0 !important;
    opacity: 0.36;
}
}


 
.compact-crt-media:hover img {
/* 대문 title hard fallback
    filter:
  Theme.css가 뒤에서 .mw-page-title-main을 다시 보이게 하더라도
        drop-shadow(0 1px 3px rgba(0,0,0,0.78))
  Common.js가 현재 문서를 대문으로 판정해 body.clbi-main-page를 붙인 경우에만
        drop-shadow(0 0 5px rgba(255,255,255,0.08));
  MediaWiki 기본 제목을 강제로 숨긴다.
  SPA 이동 뒤 native page-대문/rootpage-대문 body class가 남아 시스템 문서까지
  대문 규칙을 받는 일을 막기 위해 native page class에는 의존하지 않는다. */
body.action-view.clbi-main-page .liberty-content-header,
body.action-view.clbi-main-page .liberty-content-header .title,
body.action-view.clbi-main-page .liberty-content-header .title h1,
body.action-view.clbi-main-page .liberty-content-header h1,
body.action-view.clbi-main-page .mw-page-title-main,
body.action-view.clbi-main-page .mw-page-title-main::after,
body.action-view.clbi-main-page .mw-page-title-namespace,
body.action-view.clbi-main-page .mw-page-title-namespace::after,
body.action-view.clbi-main-page .mw-page-title-separator,
body.action-view.clbi-main-page .mw-page-title-separator::after,
body.action-view.clbi-main-page #firstHeading,
body.action-view.clbi-main-page .firstHeading,
body.action-view.clbi-main-page .mw-first-heading,
body.action-view.clbi-main-page .page-heading,
body.action-view.clbi-main-page .page-header {
display:none !important;
visibility:hidden !important;
height:0 !important;
min-height:0 !important;
margin:0 !important;
padding:0 !important;
overflow:hidden !important;
}
}


body.action-view.clbi-main-page .liberty-content-header + .mw-parser-output {
@keyframes compact-crt-static-roll {
margin-top:0 !important;
    from {
}
        background-position:
            0 0,
            0 110%;
    }


/* 문서 조작 버튼은 DevTools의 DOCUMENT TOOLS로 이동한다. */
    to {
.liberty-content-header .content-tools,
        background-position:
.content-tools {
            0 -32px,
display:none !important;
            0 -30%;
    }
}
}


@keyframes compact-crt-static-flicker {
    0%, 100% {
        transform: translateX(0);
        opacity: 0.26;
    }


/* -----------------------------------------
    11% {
4-A. MediaWiki CSS/JS 문서 표시
        transform: translateX(-1px);
----------------------------------------- */
        opacity: 0.36;
    }


/*
    12% {
CSS/JS 시스템 문서는 기본 제목을 숨기고 우상단 문서 표식과 raw source viewer를 사용한다.
        transform: translateX(1px);
        opacity: 0.22;
    }


중요 구조:
    36% {
- .liberty-content-main : 외곽 #1d1d1d 프레임
        transform: translateX(0);
- #mw-content-text/.mw-body-content : MediaWiki가 끼워 넣는 중간 래퍼
        opacity: 0.30;
- .mw-parser-output : 내부 #080808 우물
    }
- #clbi-system-source-viewer : 우물 안에서 남은 높이를 차지하는 스크롤 패널


이 중간 래퍼를 채우지 않으면 .mw-parser-output이 내용 높이로 접히고,
    37% {
코드 영역이 얇은 줄처럼 보인다.
        transform: translateX(1px);
*/
        opacity: 0.38;
    }


body.clbi-system-doc-page .liberty-content-main {
    38% {
position:relative !important;
        transform: translateX(-1px);
height:100% !important;
        opacity: 0.24;
min-height:0 !important;
    }
overflow:hidden !important;
display:flex !important;
flex-direction:column !important;
}


body.clbi-system-doc-page #mw-content-text,
    64% {
body.clbi-system-doc-page .mw-body-content {
        transform: translateX(0);
position:relative !important;
        opacity: 0.32;
box-sizing:border-box !important;
    }
flex:1 1 auto !important;
height:auto !important;
min-height:0 !important;
max-height:none !important;
margin:0 !important;
padding:0 !important;
overflow:hidden !important;
display:flex !important;
flex-direction:column !important;
}


body.clbi-system-doc-page .liberty-content-main .mw-parser-output {
    65% {
position:relative !important;
        transform: translateX(-1px);
box-sizing:border-box !important;
        opacity: 0.40;
flex:1 1 auto !important;
    }
height:auto !important;
min-height:0 !important;
max-height:none !important;
margin:0 !important;
padding:8px !important;
background:#080808 !important;
border:0 !important;
box-shadow:
inset 0 1px 0 #101010,
inset -1px 0 0 #101010,
inset 1px 0 0 #555555,
inset 0 -1px 0 #555555 !important;
overflow:hidden !important;
display:flex !important;
flex-direction:column !important;
}


body.clbi-system-doc-page .liberty-content-main .mw-parser-output > :not(#clbi-system-source-viewer):not(#clbi-system-doc-indicator-row) {
    66% {
flex:0 0 auto !important;
        transform: translateX(0);
        opacity: 0.26;
    }
}
}


body.clbi-system-doc-page .clbi-system-original-source-hidden {
@keyframes compact-crt-image-jitter {
display:none !important;
    0%, 82%, 100% {
}
        transform: translateX(0);
    }


body.clbi-system-doc-page #clbi-system-source-viewer {
    83% {
display:block !important;
        transform: translateX(-1px);
box-sizing:border-box !important;
    }
flex:1 1 0 !important;
width:100% !important;
max-width:none !important;
min-width:0 !important;
height:auto !important;
min-height:0 !important;
max-height:none !important;
margin:8px 0 0 !important;
padding:8px 10px !important;
overflow:auto !important;
background:#f3f6f7 !important;
color:#111111 !important;
border:0 !important;
outline:none !important;
font-family:Consolas, Monaco, 'Courier New', monospace !important;
font-size:12px !important;
line-height:1.45 !important;
white-space:pre !important;
tab-size:4;
scrollbar-gutter:stable;
}


body.clbi-system-doc-page .clbi-system-doc-codepane,
    84% {
body.clbi-system-doc-page .clbi-system-doc-codebox {
        transform: translateX(1px);
display:none !important;
    }
}


.clbi-system-doc-indicator-row {
    85% {
position:absolute !important;
        transform: translateX(0);
top:8px !important;
    }
right:8px !important;
z-index:40 !important;
width:auto !important;
max-width:calc(100% - 16px) !important;
height:auto !important;
margin:0 !important;
padding:0 !important;
display:block !important;
pointer-events:none !important;
}


.clbi-system-doc-indicator {
    92% {
display:block !important;
        transform: translateX(1px);
width:max-content !important;
    }
max-width:520px !important;
box-sizing:border-box !important;
padding:5px 8px 6px !important;
background:#171717 !important;
border:1px solid #050505 !important;
box-shadow:
inset 0 1px 0 #555555,
inset -1px 0 0 #555555,
inset 1px 0 0 #101010,
inset 0 -1px 0 #101010 !important;
overflow:hidden !important;
}


.clbi-system-doc-meta {
    93% {
display:flex !important;
        transform: translateX(-1px);
justify-content:flex-end !important;
    }
align-items:center !important;
gap:7px !important;
margin:0 0 3px 0 !important;
font-size:10px !important;
line-height:1 !important;
letter-spacing:0.08em !important;
text-transform:uppercase !important;
color:#8a8a8a !important;
white-space:nowrap !important;
}


.clbi-system-doc-label {
    94% {
color:#8a8a8a !important;
        transform: translateX(0);
font-weight:700 !important;
    }
}
}


.clbi-system-doc-type {
.compact-crt-media.compact-crt-portrait {
display:inline-flex !important;
    padding: 4px 5px;
align-items:center !important;
    border-radius: 8px;
height:14px !important;
padding:0 5px !important;
background:#0d0d0d !important;
border:1px solid #202020 !important;
color:#c8c8c8 !important;
font-weight:700 !important;
}
}


.clbi-system-doc-title {
.compact-crt-media.compact-crt-portrait::before {
display:block !important;
    inset: 3px;
max-width:500px !important;
    border-radius: 5px;
text-align:right !important;
font-size:24px !important;
line-height:1 !important;
font-weight:900 !important;
letter-spacing:0.01em !important;
color:#e2e2e2 !important;
text-shadow:0 1px 0 rgba(0,0,0,0.78) !important;
white-space:nowrap !important;
word-break:normal !important;
overflow:hidden !important;
text-overflow:ellipsis !important;
}
}


body.clbi-system-doc-page .liberty-content-header,
.compact-crt-media.compact-crt-portrait::after {
body.clbi-system-doc-page .liberty-content-header .title,
    inset: 3px;
body.clbi-system-doc-page .liberty-content-header .title h1,
    border-radius: 5px;
body.clbi-system-doc-page .liberty-content-header h1,
body.clbi-system-doc-page .mw-page-title-main,
body.clbi-system-doc-page .mw-page-title-main::after,
body.clbi-system-doc-page .mw-page-title-namespace,
body.clbi-system-doc-page .mw-page-title-namespace::after,
body.clbi-system-doc-page .mw-page-title-separator,
body.clbi-system-doc-page .mw-page-title-separator::after,
body.clbi-system-doc-page #firstHeading,
body.clbi-system-doc-page .firstHeading,
body.clbi-system-doc-page .mw-first-heading,
body.clbi-system-doc-page .page-heading,
body.clbi-system-doc-page .page-header {
display:none !important;
visibility:hidden !important;
height:0 !important;
min-height:0 !important;
margin:0 !important;
padding:0 !important;
overflow:hidden !important;
}
}


body.clbi-system-doc-page .liberty-content-header + .mw-parser-output {
.compact-crt-media.compact-crt-portrait .compact-crt-static {
margin-top:0 !important;
    inset: 3px;
    border-radius: 5px;
}
}


/* -----------------------------------------
.compact-crt-media.compact-crt-portrait img,
5. 페이지 전환 피드백
.compact-crt-media.compact-crt-portrait .mw-file-element {
----------------------------------------- */
    display: block;
 
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);
  Related Template Title
opacity:1;
  ========================================= */
}


/* -----------------------------------------
.related-template-title {
6. 좌우 사이드바 공통
    position: relative;
----------------------------------------- */
    overflow: hidden;
 
    width: 100%;
#clbi-left-sidebar,
    border-radius: 5px;
#clbi-right-sidebar {
    background: #111111;
position:relative;
    color: #fff;
width:230px;
    box-shadow:
z-index:1000;
        inset 1px 0 0 #494949,
display:flex;
        inset 0 -1px 0 #555;
flex-direction:column;
gap:8px;
padding:0;
flex-shrink:0;
align-self:flex-start;
max-height:100%;
overflow-y:auto;
overflow-x:hidden;
}
}


.clbi-left-box,
.related-template-title::before {
.clbi-right-box {
    content: "";
position:relative;
    position: absolute;
box-sizing:border-box;
    inset: 0;
background:#1d1d1d;
    z-index: 1;
border:1px solid #050505;
    pointer-events: none;
border-radius:0;
    border-radius: inherit;
overflow:hidden;
    background:
padding:0 8px 8px;
        linear-gradient(
box-shadow:
            to bottom,
inset 0 1px 0 #555555,
            rgba(255,255,255,0.070) 0%,
inset -1px 0 0 #555555,
            rgba(255,255,255,0.026) 18%,
inset 1px 0 0 #101010,
            transparent 45%,
inset 0 -1px 0 #101010,
            rgba(0,0,0,0.18) 100%
0 6px 18px rgba(0,0,0,0.34);
        ),
        linear-gradient(
            105deg,
            transparent 0%,
            rgba(255,255,255,0.045) 18%,
            transparent 36%,
            transparent 100%
        );
    box-shadow:
        inset 0 0 0 1px rgba(255,255,255,0.026),
        inset 0 0 14px rgba(0,0,0,0.30);
}
}


.clbi-left-title,
.related-template-title::after {
.clbi-right-title {
    content: "";
min-height:34px;
    position: absolute;
padding:0 2px;
    inset: 0;
font-weight:700;
    z-index: 2;
font-size:12px;
    pointer-events: none;
color:#e2e2e2;
    border-radius: inherit;
border:0;
    opacity: 0.20;
background:transparent;
    background:
display:flex;
        repeating-linear-gradient(
align-items:center;
            to bottom,
gap:6px;
            rgba(255,255,255,0.055) 0px,
line-height:1;
            rgba(255,255,255,0.055) 1px,
text-shadow:1px 1px 0 #000;
            transparent 2px,
box-shadow:none;
            transparent 4px
        );
    mix-blend-mode: screen;
}
}


.clbi-left-content,
.related-template-title > * {
.clbi-right-content {
    position: relative;
margin:0;
    z-index: 3;
padding:8px;
box-sizing:border-box;
color:#c8c8c8;
font-size:12px;
line-height:1.65;
background:#080808;
border:0;
box-shadow:
inset 0 1px 0 #101010,
inset -1px 0 0 #101010,
inset 1px 0 0 #555555,
inset 0 -1px 0 #555555;
}
}


.clbi-right-content a,
/* =========================================
.clbi-left-content a {
  Page Top CRT Banner
color:#c8c8c8 !important;
  Template use:
text-decoration:none;
  {{Banner|[[파일:example.png{{!}}1000px{{!}}link=]]|80px|20px}}
display:block;
  2번 인자: 양수면 좌측 이동
}
  3번 인자: 양수면 아래 이동
  ========================================= */


.clbi-right-content a:not(.clbi-user-btn):hover,
.crt-page-monitor-frame {
.clbi-left-content a:not(.clbi-user-btn):hover {
    position: relative;
color:#ffffff !important;
    box-sizing: border-box;
    width: 100%;
    aspect-ratio: 2560 / 580;
    margin: 0 auto 16px auto;
    padding: 14px 20px 16px 20px;
    border-radius: 18px;
    background:
        linear-gradient(
            145deg,
            #151515 0%,
            #0b0b0b 28%,
            #050505 58%,
            #181818 100%
        );
    border: 2px solid #242424;
    box-shadow:
        inset 0 3px 8px rgba(0,0,0,0.78),
        inset 0 -2px 0 rgba(255,255,255,0.030),
        inset 4px 0 10px rgba(0,0,0,0.72),
        inset -3px 0 0 rgba(0,0,0,0.78),
        0 0 0 3px #050505,
        0 0 0 5px #242424;
    overflow: hidden;
}
}


/* -----------------------------------------
.crt-page-monitor-frame::before {
7. 유저 박스
    content: "";
----------------------------------------- */
    position: absolute;
 
    inset: 0;
.profile-card-box {
    border-radius: 18px;
position:relative;
    pointer-events: none;
overflow:hidden;
    opacity: 0.08;
background:#101010;
    background:
        linear-gradient(
            to bottom,
            rgba(0,0,0,0.38) 0%,
            transparent 20%,
            transparent 100%
        ),
        linear-gradient(
            to right,
            rgba(0,0,0,0.34) 0%,
            transparent 18%,
            transparent 100%
        );
    mix-blend-mode: normal;
}
}


#clbi-user-avatar-wrap,
.crt-page-monitor-frame::after {
#clbi-user-avatar-wrap.profile-identity-panel {
    content: none;
position:relative;
display:block;
min-height:180px;
margin:0;
padding:0 8px;
background:#1d1d1d;
border:none;
border-bottom:1px solid #202020;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.050),
inset 0 -1px 0 rgba(0,0,0,0.70);
}
}


.profile-avatar-stage {
.crt-page-monitor-inner {
position:absolute;
    position: relative;
left:50%;
    box-sizing: border-box;
top:50%;
    width: 100%;
transform:translate(-50%, -50%);
    height: 100%;
width:104px;
    padding: 6px;
height:104px;
    border-radius: 13px;
display:flex;
    background:
align-items:center;
        linear-gradient(
justify-content:center;
            145deg,
box-sizing:border-box;
            #020202 0%,
background:#141414;
            #080808 45%,
border:1px solid;
            #030303 100%
border-color:
        );
#2b2b2b
    border: 1px solid #020202;
#202020
    box-shadow:
#101010
        inset 0 11px 24px rgba(0,0,0,0.98),
#202020;
        inset 0 -2px 3px rgba(255,255,255,0.028),
box-shadow:
        inset 8px 0 20px rgba(0,0,0,0.94),
inset 0 1px 0 rgba(255,255,255,0.018),
        inset -8px 0 20px rgba(0,0,0,0.94),
inset 0 -1px 0 rgba(0,0,0,0.42);
        0 0 0 1px rgba(255,255,255,0.030);
}
}


.profile-avatar-stage::before {
.crt-page-monitor-screen {
content:"";
    position: relative;
position:absolute;
    width: 100%;
left:7px;
    height: 100%;
right:7px;
    overflow: hidden;
top:7px;
    border-radius: 8px / 15px;
height:1px;
    background: #050505;
background:rgba(255,255,255,0.026);
    border: 1px solid #060606;
pointer-events:none;
    box-shadow:
        inset 0 0 18px rgba(0,0,0,0.88),
        inset 0 0 42px rgba(0,0,0,0.70),
        0 0 0 1px rgba(255,255,255,0.026);
}
}


.profile-avatar-stage::after {
.crt-page-monitor-image,
content:"";
.crt-page-monitor-image-base,
position:absolute;
.crt-page-monitor-image-bloom,
inset:0;
.crt-page-monitor-slice {
pointer-events:none;
    position: absolute;
box-shadow:
    inset: 0;
inset 1px 0 0 rgba(255,255,255,0.006),
    line-height: 0;
inset -1px 0 0 rgba(0,0,0,0.16);
    overflow: hidden;
}
}


#clbi-user-avatar {
.crt-page-monitor-image {
position:relative;
    z-index: 1;
z-index:1;
display:block;
width:90px;
height:90px;
object-fit:cover;
background:#070707;
border:1px solid #101010;
box-shadow:
0 0 0 1px rgba(255,255,255,0.012);
}
}


#clbi-user-name {
.crt-page-monitor-image-base {
max-width:100%;
    z-index: 3;
margin-top:0;
color:#e2e2e2;
font-size:14px;
font-weight:700;
line-height:1.2;
text-align:center;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
text-shadow:1px 1px 0 #000;
}
}


#clbi-user-name-row,
.crt-page-monitor-image-bloom {
#clbi-user-name-row.profile-name-row {
    z-index: 4;
position:absolute;
    pointer-events: none;
left:8px;
    opacity: 0.38;
right:8px;
    mix-blend-mode: normal;
top:calc(50% + 52px);
    filter:
bottom:0;
        blur(9px)
width:auto;
        brightness(0.92)
margin:0;
        contrast(1.02)
min-height:0;
        saturate(1.04);
line-height:1.2;
text-align:center;
display:flex;
align-items:center;
justify-content:center;
}
}


#clbi-user-name-row.profile-name-row-guest {
.crt-page-monitor-image-base a,
display:flex;
.crt-page-monitor-image-base span,
align-items:center;
.crt-page-monitor-image-base .mw-file-description,
justify-content:center;
.crt-page-monitor-image-base .mw-default-size,
.crt-page-monitor-image-base .mw-image-border,
.crt-page-monitor-image-bloom a,
.crt-page-monitor-image-bloom span,
.crt-page-monitor-image-bloom .mw-file-description,
.crt-page-monitor-image-bloom .mw-default-size,
.crt-page-monitor-image-bloom .mw-image-border,
.crt-page-monitor-slice a,
.crt-page-monitor-slice span,
.crt-page-monitor-slice .mw-file-description,
.crt-page-monitor-slice .mw-default-size,
.crt-page-monitor-slice .mw-image-border {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
}
}


#clbi-user-name-row #clbi-user-name {
.crt-page-monitor-image-base img,
display:inline-block;
.crt-page-monitor-image-base .mw-file-element,
max-width:100%;
.crt-page-monitor-image-bloom img,
margin-top:0;
.crt-page-monitor-image-bloom .mw-file-element,
vertical-align:middle;
.crt-page-monitor-slice img,
color:#e2e2e2 !important;
.crt-page-monitor-slice .mw-file-element,
text-decoration:none !important;
.crt-page-monitor-slice-img {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: center center;
    border: 0 !important;
    transform:
        translate(
            calc(0px - var(--crt-img-left, 0px)),
            var(--crt-img-down, 0px)
        )
        scale(var(--crt-img-scale, 1.04));
    transform-origin: center center;
}
}


#clbi-user-name-row.profile-name-row-guest #clbi-user-name {
.crt-page-monitor-image-base img,
max-width:100%;
.crt-page-monitor-image-base .mw-file-element {
    filter:
        brightness(0.84)
        contrast(1.08)
        saturate(0.90);
}
}


.profile-svg {
.crt-page-monitor-image-bloom img,
display:block;
.crt-page-monitor-image-bloom .mw-file-element {
width:100%;
    transform:
height:100%;
        translate(
stroke:currentColor;
            calc(0px - var(--crt-img-left, 0px)),
fill:none;
            var(--crt-img-down, 0px)
vertical-align:middle;
        )
        scale(calc(var(--crt-img-scale, 1.04) + 0.02));
}
}


.clbi-svg-nav-icon {
.crt-page-monitor-slice img,
display:flex !important;
.crt-page-monitor-slice .mw-file-element,
align-items:center;
.crt-page-monitor-slice-img {
justify-content:center;
    filter:
color:#e2e2e2;
        brightness(0.96)
line-height:1;
        contrast(1.18)
        saturate(0.82);
}
}


.clbi-svg-nav-icon .profile-svg {
.crt-page-monitor-image::after {
width:22px;
    content: "";
height:22px;
    position: absolute;
    inset: -3%;
    z-index: 6;
    pointer-events: none;
    opacity: 0.16;
    background:
        radial-gradient(
            ellipse at 50% 45%,
            rgba(220,235,230,0.12) 0%,
            rgba(170,190,185,0.05) 34%,
            rgba(70,85,82,0.03) 62%,
            transparent 100%
        ),
        linear-gradient(
            to bottom,
            rgba(255,255,255,0.04) 0%,
            rgba(255,255,255,0.014) 28%,
            transparent 70%,
            rgba(0,0,0,0.08) 100%
        );
    mix-blend-mode: normal;
}
}


.sidebar-title-svg {
.crt-page-monitor-slice {
display:inline-flex;
    z-index: 5;
align-items:center;
    opacity: 0;
justify-content:center;
    pointer-events: none;
width:16px;
    mix-blend-mode: screen;
height:16px;
    will-change: transform, opacity, clip-path, filter;
flex:0 0 16px;
color:#e2e2e2 !important;
line-height:1;
}
}


.sidebar-title-svg .profile-svg {
.crt-page-monitor-slice-a {
width:16px;
    animation: crt-slice-tear-a 4.7s steps(1, end) infinite;
height:16px;
}
}


.profile-action-icon {
.crt-page-monitor-slice-b {
position:relative;
    animation: crt-slice-tear-b 6.1s steps(1, end) infinite;
top:0;
display:inline-flex;
align-items:center;
justify-content:center;
width:15px;
height:15px;
color:#8a8a8a;
pointer-events:none;
line-height:1;
}
}


.profile-action-icon .profile-svg {
.crt-page-monitor-slice-c {
width:15px;
    animation: crt-slice-tear-c 7.4s steps(1, end) infinite;
height:15px;
}
}


.profile-action-box .clbi-user-btn:hover .profile-action-icon,
.crt-page-monitor-screen::before {
.profile-action-box .clbi-user-btn.clbi-user-btn-active .profile-action-icon {
    content: "";
color:#ffffff;
    position: absolute;
    inset: 0;
    z-index: 20;
    pointer-events: none;
    border-radius: 8px / 15px;
    background:
        radial-gradient(
            ellipse at 50% 50%,
            transparent 0%,
            transparent 62%,
            rgba(0,0,0,0.16) 78%,
            rgba(0,0,0,0.42) 100%
        ),
        linear-gradient(
            to bottom,
            rgba(0,0,0,0.18) 0%,
            transparent 14%,
            transparent 82%,
            rgba(0,0,0,0.24) 100%
        ),
        linear-gradient(
            to right,
            rgba(0,0,0,0.18) 0%,
            transparent 8%,
            transparent 92%,
            rgba(0,0,0,0.18) 100%
        ),
        linear-gradient(
            105deg,
            transparent 0%,
            rgba(255,255,255,0.030) 18%,
            transparent 38%,
            transparent 100%
        );
    box-shadow:
        inset 0 0 20px rgba(255,255,255,0.018),
        inset 0 0 54px rgba(0,0,0,0.54);
}
}


.profile-action-box .clbi-user-btn-logout .profile-action-icon {
.crt-page-monitor-screen::after {
color:#8b5f59;
    content: "";
    position: absolute;
    inset: -80px 0;
    z-index: 21;
    pointer-events: none;
    opacity: 0.20;
    background:
        repeating-linear-gradient(
            to bottom,
            rgba(255,255,255,0.08) 0px,
            rgba(255,255,255,0.08) 1px,
            transparent 2px,
            transparent 5px
        );
    mix-blend-mode: screen;
    animation: crt-scanlines-up 7s linear infinite;
}
}


.profile-action-box .clbi-user-btn-logout:hover .profile-action-icon {
.crt-page-monitor-glitch {
color:#e0a199;
    position: absolute;
    inset: 0;
    z-index: 22;
    pointer-events: none;
    opacity: 0;
    background:
        linear-gradient(
            to bottom,
            transparent 0%,
            rgba(255,255,255,0.12) 48%,
            rgba(212,90,162,0.14) 50%,
            rgba(90,120,255,0.08) 52%,
            transparent 56%
        );
    mix-blend-mode: screen;
    animation: crt-soft-glitch-band 8.2s steps(1, end) infinite;
}
}


 
.crt-page-monitor-tear {
 
    position: absolute;
.news-title-icon.sidebar-title-svg {
    inset: 0;
display:inline-flex;
    z-index: 23;
align-items:center;
    pointer-events: none;
justify-content:center;
    opacity: 0;
width:16px;
    background:
height:16px;
        linear-gradient(
line-height:1;
            to right,
color:#e2e2e2 !important;
            transparent 0%,
flex:0 0 16px;
            rgba(120,180,255,0.07) 10%,
vertical-align:middle;
            rgba(255,255,255,0.11) 48%,
            rgba(212,90,162,0.08) 78%,
            transparent 100%
        );
    mix-blend-mode: screen;
    animation: crt-soft-horizontal-tear 5.6s steps(1, end) infinite;
}
}


.news-title-icon.sidebar-title-svg .profile-svg {
@keyframes crt-slice-tear-a {
width:16px;
    0%, 11%, 100% {
height:16px;
        opacity: 0;
display:block;
        transform: translateX(0);
}
        clip-path: inset(0 0 100% 0);
    }


.profile-quick-actions {
    12% {
position:relative;
        opacity: 0.38;
display:grid;
        transform: translateX(-18px);
grid-template-columns:repeat(3, minmax(0, 1fr));
        clip-path: inset(17% 0 78% 0);
gap:4px;
    }
margin:0 0 8px;
overflow:visible;
z-index:2;
}


.profile-quick-btn {
    13% {
position:relative;
        opacity: 0.22;
display:flex;
        transform: translateX(11px);
align-items:center;
        clip-path: inset(18% 0 77% 0);
justify-content:center;
        filter: hue-rotate(-8deg);
width:100%;
    }
aspect-ratio:1 / 1;
min-width:0;
min-height:0;
padding:0;
box-sizing:border-box;
background:
linear-gradient(to bottom, #141414 0%, #101010 54%, #0c0c0c 100%);
border:1px solid;
border-color:
#333333
#202020
#181818
#202020;
color:#c8c8c8;
cursor:pointer;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.040);
text-shadow:1px 1px 0 #000;
}


.profile-quick-btn:hover {
    14% {
background:
        opacity: 0;
linear-gradient(to bottom, #1d1d1d 0%, #171717 54%, #101010 100%);
        transform: translateX(0);
border-color:
        clip-path: inset(0 0 100% 0);
#444444
    }
#333333
#202020
#333333;
color:#ffffff;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.060),
0 0 0 1px rgba(255,255,255,0.018);
}


.profile-quick-btn:active {
    63% {
background:
        opacity: 0.30;
linear-gradient(to bottom, #0b0b0b 0%, #101010 55%, #171717 100%);
        transform: translateX(9px);
border-color:
        clip-path: inset(24% 0 70% 0);
#050505
    }
#202020
#333333
#202020;
box-shadow:
inset 1px 1px 3px rgba(0,0,0,0.82),
inset -1px -1px 0 rgba(255,255,255,0.035);
}


.profile-quick-icon {
    64% {
display:flex;
        opacity: 0;
align-items:center;
        transform: translateX(0);
justify-content:center;
        clip-path: inset(0 0 100% 0);
width:22px;
    }
height:22px;
line-height:1;
color:currentColor;
pointer-events:none;
}
}


.profile-quick-icon .profile-svg {
@keyframes crt-slice-tear-b {
display:block;
    0%, 37%, 100% {
width:22px;
        opacity: 0;
height:22px;
        transform: translateX(0);
}
        clip-path: inset(0 0 100% 0);
    }


.profile-quick-tip {
    38% {
position:absolute;
        opacity: 0.42;
left:50%;
        transform: translateX(24px);
top:calc(100% + 4px);
        clip-path: inset(43% 0 50% 0);
z-index:40;
    }
min-width:42px;
padding:3px 6px 4px;
box-sizing:border-box;
background:#101010;
border:1px solid;
border-color:
#555555
#2b2b2b
#050505
#2b2b2b;
color:#e2e2e2;
font-size:9px;
font-weight:700;
line-height:1;
white-space:nowrap;
text-align:center;
text-shadow:1px 1px 0 #000;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.035),
inset 0 -1px 0 rgba(0,0,0,0.70),
0 4px 10px rgba(0,0,0,0.44);
visibility:hidden;
opacity:0;
transform:translate(-50%, -1px);
pointer-events:none;
}


.profile-quick-btn:hover .profile-quick-tip,
    39% {
.profile-quick-btn:focus-visible .profile-quick-tip {
        opacity: 0.26;
visibility:visible;
        transform: translateX(-14px);
opacity:1;
        clip-path: inset(45% 0 48% 0);
transform:translate(-50%, 0);
        filter: hue-rotate(10deg) brightness(1.08);
}
    }


/* -----------------------------------------
    40% {
9. 유저 버튼
        opacity: 0;
----------------------------------------- */
        transform: translateX(0);
        clip-path: inset(0 0 100% 0);
    }


.clbi-user-btn-grid {
    78% {
display:grid;
        opacity: 0.34;
grid-template-columns:1fr;
        transform: translateX(-20px);
gap:4px;
        clip-path: inset(51% 0 43% 0);
}
    }


.profile-divider {
    79% {
height:1px;
        opacity: 0;
margin:9px 7px;
        transform: translateX(0);
background:#202020;
        clip-path: inset(0 0 100% 0);
box-shadow:
    }
0 1px 0 rgba(255,255,255,0.018);
}
}


.profile-action-box {
@keyframes crt-slice-tear-c {
position:relative;
    0%, 21%, 100% {
margin:0 7px 7px;
        opacity: 0;
padding:3px !important;
        transform: translateX(0);
overflow:visible;
        clip-path: inset(0 0 100% 0);
background:#080808;
    }
border:1px solid;
border-color:
#333333
#202020
#050505
#202020;
box-sizing:border-box;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.020),
inset 0 -1px 0 rgba(0,0,0,0.58);
}
 
.profile-action-box .clbi-user-btn {
position:relative;
display:grid !important;
grid-template-columns:15px minmax(0,1fr) 12px !important;
column-gap:7px !important;
align-items:center !important;
justify-content:stretch !important;
width:100% !important;
min-height:26px !important;
height:26px !important;
margin:0 0 4px !important;
padding:0 7px !important;
box-sizing:border-box !important;
background:
linear-gradient(to bottom, #141414 0%, #101010 54%, #0c0c0c 100%) !important;
border:1px solid !important;
border-color:
#333333
#202020
#181818
#202020 !important;
color:#c8c8c8 !important;
font-size:11px !important;
font-weight:700 !important;
line-height:1 !important;
text-align:left !important;
text-decoration:none !important;
text-shadow:1px 1px 0 #000 !important;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.040) !important;
overflow:hidden !important;
}


.profile-action-box .clbi-user-btn:last-child {
    22% {
margin-bottom:0 !important;
        opacity: 0.28;
}
        transform: translateX(-30px);
        clip-path: inset(67% 0 25% 0);
    }


.profile-action-label {
    23% {
display:flex;
        opacity: 0.18;
align-items:center;
        transform: translateX(16px);
min-width:0;
        clip-path: inset(68% 0 23% 0);
height:100%;
        filter: contrast(1.25) brightness(1.06);
overflow:hidden;
    }
text-overflow:ellipsis;
white-space:nowrap;
line-height:1;
}


.profile-action-arrow {
    24% {
position:relative;
        opacity: 0;
top:0;
        transform: translateX(0);
display:inline-flex;
        clip-path: inset(0 0 100% 0);
align-items:center;
    }
justify-content:center;
justify-self:end;
width:12px;
height:12px;
color:#8a8a8a;
font-size:11px;
line-height:1;
pointer-events:none;
}


.profile-action-box .clbi-user-btn:hover {
    91% {
background:
        opacity: 0.36;
linear-gradient(to bottom, #1d1d1d 0%, #171717 54%, #101010 100%) !important;
        transform: translateX(18px);
border-color:
        clip-path: inset(73% 0 18% 0);
#444444
    }
#333333
#202020
#333333 !important;
color:#ffffff !important;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.060),
0 0 0 1px rgba(255,255,255,0.018) !important;
}


.profile-action-box .clbi-user-btn:hover .profile-action-arrow {
    92% {
color:#ffffff;
        opacity: 0;
        transform: translateX(0);
        clip-path: inset(0 0 100% 0);
    }
}
}


.profile-action-box .clbi-user-btn:active {
@keyframes crt-soft-glitch-band {
background:
    0%, 52%, 100% {
linear-gradient(to bottom, #0b0b0b 0%, #101010 55%, #171717 100%) !important;
        opacity: 0;
border-color:
        transform: translateY(80%);
#050505
    }
#202020
#333333
#202020 !important;
box-shadow:
inset 1px 1px 3px rgba(0,0,0,0.82),
inset -1px -1px 0 rgba(255,255,255,0.035) !important;
}


.profile-action-box .clbi-user-btn-logout {
    53% {
color:#c88a80 !important;
        opacity: 0.42;
border-color:
        transform: translateY(36%);
#3f3f3f
    }
#2a2020
#181010
#2a2020 !important;
}


.profile-action-box .clbi-user-btn-logout .profile-action-arrow {
    54% {
color:#8b5f59;
        opacity: 0.16;
}
        transform: translateY(20%) skewX(-1deg);
    }


.profile-action-box .clbi-user-btn-logout:hover {
    55% {
background:
        opacity: 0;
linear-gradient(to bottom, #241615 0%, #1b1110 56%, #100908 100%) !important;
        transform: translateY(-20%);
border-color:
    }
#6a3933
#3f2623
#181010
#3f2623 !important;
color:#e0a199 !important;
}
}


.profile-action-box .clbi-user-btn-logout:hover .profile-action-arrow {
@keyframes crt-soft-horizontal-tear {
color:#e0a199;
    0%, 68%, 100% {
}
        opacity: 0;
        transform: translateX(0);
        clip-path: inset(0 0 0 0);
    }


.profile-action-box .clbi-user-btn.clbi-user-btn-active {
    69% {
background:
        opacity: 0.32;
linear-gradient(to bottom, #242424 0%, #1d1d1d 55%, #141414 100%) !important;
        transform: translateX(-16px);
border-color:
        clip-path: inset(34% 0 58% 0);
#555555
    }
#333333
#202020
#333333 !important;
color:#ffffff !important;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.070),
inset 0 -1px 0 rgba(0,0,0,0.62),
0 0 0 1px rgba(255,255,255,0.022) !important;
}


.profile-action-box .clbi-user-btn.clbi-user-btn-active .profile-action-arrow {
    70% {
color:#ffffff;
        opacity: 0.18;
}
        transform: translateX(12px);
        clip-path: inset(37% 0 55% 0);
    }


/* 기본 유저 버튼: 프로필 액션 박스 밖에서는 기존 사이드 버튼 문법 유지 */
    71% {
.clbi-user-btn {
        opacity: 0;
display:flex !important;
        transform: translateX(0);
align-items:center !important;
        clip-path: inset(0 0 0 0);
justify-content:center !important;
    }
height:24px !important;
padding:0 6px !important;
margin:0 !important;
border-radius:0 !important;
font-size:11px !important;
font-weight:700 !important;
line-height:1 !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;
box-sizing:border-box !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.4 우측 광고판 Ad(not really)
----------------------------------------- */
 
.right-billboard-box {
position:relative;
background:#1d1d1d;
overflow:visible;
}
 
.right-billboard-title {
justify-content:flex-start;
background:transparent;
border:0;
box-shadow:none;
gap:4px;
}
 
.right-billboard-title-text {
display:inline-flex;
align-items:center;
gap:4px;
min-width:0;
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
}
 
.right-billboard-title-main,
.right-billboard-title-note {
display:inline-block;
min-width:0;
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
}
 
.right-billboard-title-note {
opacity:.20;
}
 
.right-billboard-body {
position:relative;
margin:0;
padding:7px;
box-sizing:border-box;
background:#080808;
border:0;
box-shadow:
inset 0 1px 0 #101010,
inset -1px 0 0 #101010,
inset 1px 0 0 #555555,
inset 0 -1px 0 #555555;
overflow:visible;
}
 
.right-billboard-recess {
position:relative;
height:auto;
min-height:0;
box-sizing:border-box;
padding:8px;
background:
linear-gradient(145deg, #050505 0%, #090909 45%, #030303 100%);
border:1px solid;
border-color:#202020 #101010 #050505 #101010;
box-shadow:
inset 0 9px 18px rgba(0,0,0,0.96),
inset 0 -2px 3px rgba(255,255,255,0.024),
inset 7px 0 16px rgba(0,0,0,0.88),
inset -7px 0 16px rgba(0,0,0,0.88),
0 0 0 1px rgba(255,255,255,0.018);
overflow:hidden;
}
 
.right-billboard-recess::before {
content:"";
position:absolute;
inset:0;
z-index:0;
pointer-events:none;
opacity:.10;
background:
linear-gradient(to bottom, rgba(255,255,255,0.08) 0%, transparent 20%, transparent 100%),
linear-gradient(to right, rgba(255,255,255,0.04) 0%, transparent 22%, transparent 100%);
mix-blend-mode:screen;
}
 
.right-billboard-screen {
position:relative;
z-index:1;
width:100%;
height:352px;
min-height:352px;
display:block;
line-height:0;
overflow:hidden;
background:#050505;
border:1px solid #060606;
border-radius:7px / 13px;
box-shadow:
inset 0 0 16px rgba(0,0,0,0.90),
inset 0 0 38px rgba(0,0,0,0.74),
0 0 0 1px rgba(255,255,255,0.026);
}
 
.right-billboard-image {
border:0;
background:#050505;
}
 
.right-billboard-image-base {
position:relative;
z-index:3;
display:block;
width:100%;
height:100%;
max-width:100%;
max-height:none;
object-fit:cover;
object-position:center center;
filter:
brightness(0.84)
contrast(1.08)
saturate(0.90);
transform:none;
transform-origin:center center;
}
 
.right-billboard-image-bloom,
.right-billboard-slice {
position:absolute;
inset:0;
display:block;
width:100%;
height:100%;
max-width:none;
max-height:none;
object-fit:cover;
object-position:center center;
border:0;
background:transparent;
}
 
.right-billboard-image-bloom {
z-index:4;
pointer-events:none;
opacity:.36;
mix-blend-mode:normal;
filter:
blur(7px)
brightness(0.92)
contrast(1.02)
saturate(1.04);
transform:scale(1.015);
transform-origin:center center;
}
 
.right-billboard-slice {
z-index:5;
opacity:0;
pointer-events:none;
mix-blend-mode:screen;
filter:
brightness(0.96)
contrast(1.18)
saturate(0.82);
transform:scale(1.035);
transform-origin:center center;
will-change:transform, opacity, clip-path, filter;
}
 
.right-billboard-slice-a {
animation:right-billboard-slice-tear-a 4.7s steps(1,end) infinite;
}
 
.right-billboard-slice-b {
animation:right-billboard-slice-tear-b 6.1s steps(1,end) infinite;
}
 
.right-billboard-slice-c {
animation:right-billboard-slice-tear-c 7.4s steps(1,end) infinite;
}
 
.right-billboard-screen::before {
content:"";
position:absolute;
inset:0;
z-index:20;
pointer-events:none;
border-radius:7px / 13px;
background:
radial-gradient(
ellipse at 50% 50%,
transparent 0%,
transparent 60%,
rgba(0,0,0,0.18) 78%,
rgba(0,0,0,0.46) 100%
),
linear-gradient(
to bottom,
rgba(0,0,0,0.18) 0%,
transparent 15%,
transparent 82%,
rgba(0,0,0,0.26) 100%
),
linear-gradient(
to right,
rgba(0,0,0,0.20) 0%,
transparent 9%,
transparent 91%,
rgba(0,0,0,0.20) 100%
),
linear-gradient(
105deg,
transparent 0%,
rgba(255,255,255,0.030) 18%,
transparent 38%,
transparent 100%
);
box-shadow:
inset 0 0 20px rgba(255,255,255,0.018),
inset 0 0 48px rgba(0,0,0,0.56);
}
 
.right-billboard-screen::after {
content:"";
position:absolute;
inset:-70px 0;
z-index:21;
pointer-events:none;
opacity:.20;
background:
repeating-linear-gradient(
to bottom,
rgba(255,255,255,0.080) 0px,
rgba(255,255,255,0.080) 1px,
transparent 2px,
transparent 5px
);
mix-blend-mode:screen;
animation:right-billboard-scanlines-up 7s linear infinite;
}
 
.right-billboard-glitch {
position:absolute;
inset:0;
z-index:22;
pointer-events:none;
opacity:0;
background:
linear-gradient(
to bottom,
transparent 0%,
rgba(255,255,255,0.12) 48%,
rgba(212,90,162,0.14) 50%,
rgba(90,120,255,0.08) 52%,
transparent 56%
);
mix-blend-mode:screen;
animation:right-billboard-soft-glitch-band 8.2s steps(1,end) infinite;
}
 
.right-billboard-tear {
position:absolute;
inset:0;
z-index:23;
pointer-events:none;
opacity:0;
background:
linear-gradient(
to right,
transparent 0%,
rgba(120,180,255,0.07) 10%,
rgba(255,255,255,0.11) 48%,
rgba(212,90,162,0.08) 78%,
transparent 100%
);
mix-blend-mode:screen;
animation:right-billboard-soft-horizontal-tear 5.6s steps(1,end) infinite;
}
 
.right-billboard-empty {
position:absolute;
inset:0;
z-index:8;
display:none;
flex-direction:column;
align-items:center;
justify-content:center;
gap:5px;
box-sizing:border-box;
min-height:0;
background:#050505;
color:#626262;
text-align:center;
text-shadow:1px 1px 0 #000;
}
 
.right-billboard-box.is-empty .right-billboard-screen {
min-height:352px;
}
 
.right-billboard-box.is-empty .right-billboard-empty {
display:flex;
}
 
.right-billboard-box.is-empty .right-billboard-image,
.right-billboard-box.is-empty .right-billboard-slice {
display:none !important;
}
 
.right-billboard-empty-main {
display:block;
color:#8a8a8a;
font-size:10px;
font-weight:700;
line-height:1;
letter-spacing:.7px;
}
 
.right-billboard-empty-sub {
display:block;
max-width:100%;
color:#626262;
font-size:9px;
font-weight:700;
line-height:1.2;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
 
 
 
.right-billboard-caption {
position:absolute;
left:50%;
top:calc(100% + 4px);
z-index:40;
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
gap:0;
width:max-content;
min-width:42px;
max-width:calc(100% - 8px);
margin:0;
padding:3px 6px 4px;
box-sizing:border-box;
background:#101010;
border:1px solid;
border-color:
#555555
#2b2b2b
#050505
#2b2b2b;
color:#e2e2e2;
font-size:9px;
font-weight:700;
line-height:1;
white-space:nowrap;
text-align:center;
text-shadow:1px 1px 0 #000;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.035),
inset 0 -1px 0 rgba(0,0,0,0.70),
0 4px 10px rgba(0,0,0,0.44);
visibility:hidden;
opacity:0;
transform:translate(-50%, -1px);
pointer-events:none;
overflow:visible;
}
 
.right-billboard-box:hover .right-billboard-caption,
.right-billboard-box:focus-within .right-billboard-caption {
visibility:visible;
opacity:1;
transform:translate(-50%, 0);
}
 
.right-billboard-caption-line {
display:block;
max-width:100%;
min-width:0;
height:10px;
line-height:10px;
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
}
 
.right-billboard-caption-line.is-gap {
height:10px;
line-height:10px;
font-size:0;
}
 
.right-billboard-box.is-empty .right-billboard-caption {
display:none;
}
 
@keyframes right-billboard-scanlines-up {
from { transform:translateY(0); }
to { transform:translateY(-70px); }
}
 
@keyframes right-billboard-slice-tear-a {
0%, 11%, 100% { opacity:0; transform:translateX(0) scale(1.035); clip-path:inset(0 0 100% 0); }
12% { opacity:.34; transform:translateX(-10px) scale(1.035); clip-path:inset(17% 0 78% 0); }
13% { opacity:.20; transform:translateX(7px) scale(1.035); clip-path:inset(18% 0 77% 0); filter:hue-rotate(-8deg); }
14% { opacity:0; transform:translateX(0) scale(1.035); clip-path:inset(0 0 100% 0); }
63% { opacity:.26; transform:translateX(6px) scale(1.035); clip-path:inset(24% 0 70% 0); }
64% { opacity:0; transform:translateX(0) scale(1.035); clip-path:inset(0 0 100% 0); }
}
 
@keyframes right-billboard-slice-tear-b {
0%, 37%, 100% { opacity:0; transform:translateX(0) scale(1.035); clip-path:inset(0 0 100% 0); }
38% { opacity:.36; transform:translateX(12px) scale(1.035); clip-path:inset(43% 0 50% 0); }
39% { opacity:.22; transform:translateX(-8px) scale(1.035); clip-path:inset(45% 0 48% 0); filter:hue-rotate(10deg) brightness(1.08); }
40% { opacity:0; transform:translateX(0) scale(1.035); clip-path:inset(0 0 100% 0); }
78% { opacity:.30; transform:translateX(-11px) scale(1.035); clip-path:inset(51% 0 43% 0); }
79% { opacity:0; transform:translateX(0) scale(1.035); clip-path:inset(0 0 100% 0); }
}
 
@keyframes right-billboard-slice-tear-c {
0%, 21%, 100% { opacity:0; transform:translateX(0) scale(1.035); clip-path:inset(0 0 100% 0); }
22% { opacity:.24; transform:translateX(-14px) scale(1.035); clip-path:inset(67% 0 25% 0); }
23% { opacity:.16; transform:translateX(10px) scale(1.035); clip-path:inset(68% 0 23% 0); filter:contrast(1.25) brightness(1.06); }
24% { opacity:0; transform:translateX(0) scale(1.035); clip-path:inset(0 0 100% 0); }
91% { opacity:.30; transform:translateX(10px) scale(1.035); clip-path:inset(73% 0 18% 0); }
92% { opacity:0; transform:translateX(0) scale(1.035); clip-path:inset(0 0 100% 0); }
}
 
@keyframes right-billboard-soft-glitch-band {
0%, 52%, 100% { opacity:0; transform:translateY(80%); }
53% { opacity:.38; transform:translateY(36%); }
54% { opacity:.14; transform:translateY(20%) skewX(-1deg); }
55% { opacity:0; transform:translateY(-20%); }
}
 
@keyframes right-billboard-soft-horizontal-tear {
0%, 68%, 100% { opacity:0; transform:translateX(0); clip-path:inset(0 0 0 0); }
69% { opacity:.28; transform:translateX(-10px); clip-path:inset(34% 0 58% 0); }
70% { opacity:.16; transform:translateX(8px); clip-path:inset(37% 0 55% 0); }
71% { opacity:0; transform:translateX(0); clip-path:inset(0 0 0 0); }
}
}


@media (prefers-reduced-motion: reduce) {
@media (prefers-reduced-motion: reduce) {
.right-billboard-slice-a,
    .crt-page-monitor-slice-a,
.right-billboard-slice-b,
    .crt-page-monitor-slice-b,
.right-billboard-slice-c,
    .crt-page-monitor-slice-c,
.right-billboard-screen::after,
    .crt-page-monitor-screen::after,
.right-billboard-glitch,
    .crt-page-monitor-glitch,
.right-billboard-tear {
    .crt-page-monitor-tear {
animation:none !important;
        animation: none !important;
}
    }


.right-billboard-slice,
    .crt-page-monitor-slice,
.right-billboard-glitch,
    .crt-page-monitor-glitch,
.right-billboard-tear {
    .crt-page-monitor-tear {
opacity:0 !important;
        opacity: 0 !important;
}
    }
}
}


/* =========================================
  Historical Events Timeline
  ========================================= */


 
.timeline-event {
/* -----------------------------------------
    position: relative;
9.46 좌측 광고판 Ad
    display: block;
----------------------------------------- */
    width: 100%;
 
    box-sizing: border-box;
/*
    line-height: inherit;
좌측 Ad는 언어/뉴스 사이드 박스의 픽셀 규칙을 따른다.
    text-align: center;
- 제목은 아이콘이 없는 clbi-left-title 우물 변형이다.
- 실제 아이콘 슬롯은 만들지 않고, 텍스트는 좌측 패딩 기준으로 정렬한다.
- right-billboard-recess 이하의 CRT 본체는 원본 구조를 보존한다.
- left-ad-content-shell / right-billboard-body는 구조 래퍼로만 남기고 별도 프레임을 만들지 않는다.
*/
 
#side-toc-box,
.liberty-content-main #toc,
.liberty-content-main .toc {
display:none !important;
}
}


#clbi-left-sidebar .left-ad-box {
.timeline-title {
position:relative !important;
    position: relative;
box-sizing:border-box !important;
    z-index: 2;
background:#1d1d1d !important;
    display: inline-block;
border:1px solid #050505 !important;
    text-align: center;
border-radius:0 !important;
overflow:hidden !important;
padding:0 8px 8px !important;
box-shadow:
inset 0 1px 0 #555555,
inset -1px 0 0 #555555,
inset 1px 0 0 #101010,
inset 0 -1px 0 #101010,
0 6px 18px rgba(0,0,0,0.34) !important;
}
}


#clbi-left-sidebar .left-ad-title {
.timeline-event.he-linked::before {
min-height:0 !important;
    content: "";
height:auto !important;
    position: absolute;
margin:4px 0 3px !important;
    top: -2px;
padding:3px 7px !important;
    left: 2px;
box-sizing:border-box !important;
    right: 2px;
background:#080808 !important;
    height: 3px;
border:0 !important;
    border-radius: 999px;
display:flex !important;
    pointer-events: none;
align-items:center !important;
    background:
justify-content:flex-start !important;
        linear-gradient(
gap:6px !important;
            to right,
box-shadow:
            transparent 0%,
inset 0 1px 0 #101010,
            color-mix(in srgb, var(--he-color) 18%, transparent) 8%,
inset -1px 0 0 #101010,
            color-mix(in srgb, var(--he-color) 92%, transparent) 14%,
inset 1px 0 0 #555555,
            color-mix(in srgb, var(--he-color) 92%, transparent) 86%,
inset 0 -1px 0 #555555 !important;
            color-mix(in srgb, var(--he-color) 18%, transparent) 92%,
color:#e2e2e2 !important;
            transparent 100%
font-size:12px !important;
        );
font-weight:700 !important;
    box-shadow:
line-height:1 !important;
        0 0 7px color-mix(in srgb, var(--he-color) 28%, transparent);
text-align:left !important;
text-shadow:1px 1px 0 #000 !important;
}
}


#clbi-left-sidebar .left-ad-title.left-ad-title-iconless {
.timeline-event.he-root {
gap:0 !important;
    overflow: visible;
}
}


#clbi-title-left-ad,
.timeline-event.he-root::before {
#clbi-left-sidebar .left-ad-title-label {
    content: "";
display:inline-flex !important;
    position: absolute;
align-items:center !important;
    left: 6%;
justify-content:flex-start !important;
    right: 6%;
height:16px !important;
    top: 50%;
min-width:0 !important;
    height: 16px;
max-width:100% !important;
    transform: translateY(-50%);
color:#e2e2e2 !important;
    border-radius: 999px;
font-size:12px !important;
    pointer-events: none;
font-weight:700 !important;
    background:
line-height:1 !important;
        linear-gradient(
letter-spacing:0 !important;
            to bottom,
white-space:nowrap !important;
            rgba(255,255,255,0.05) 0%,
overflow:hidden !important;
            rgba(0,0,0,0.24) 100%
text-overflow:ellipsis !important;
        ),
        linear-gradient(
            to right,
            transparent 0%,
            color-mix(in srgb, var(--he-color) 10%, transparent) 8%,
            color-mix(in srgb, var(--he-color) 24%, transparent) 18%,
            color-mix(in srgb, var(--he-color) 36%, transparent) 50%,
            color-mix(in srgb, var(--he-color) 24%, transparent) 82%,
            color-mix(in srgb, var(--he-color) 10%, transparent) 92%,
            transparent 100%
        );
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.05),
        inset 0 -1px 0 rgba(0,0,0,0.42),
        0 0 8px color-mix(in srgb, var(--he-color) 16%, transparent);
    -webkit-mask-image:
        linear-gradient(
            to right,
            transparent 0%,
            black 10%,
            black 90%,
            transparent 100%
        );
    mask-image:
        linear-gradient(
            to right,
            transparent 0%,
            black 10%,
            black 90%,
            transparent 100%
        );
}
}


#clbi-left-sidebar .left-ad-title-text,
.timeline-event.he-root::after {
#clbi-left-sidebar .left-ad-title-main,
    content: "";
#clbi-left-sidebar .left-ad-title-note {
    position: absolute;
display:none !important;
    left: 10%;
    right: 10%;
    top: 50%;
    height: 22px;
    transform: translateY(-50%);
    pointer-events: none;
    background:
        linear-gradient(
            to right,
            transparent 0%,
            color-mix(in srgb, var(--he-color) 48%, transparent) 16%,
            color-mix(in srgb, var(--he-color) 48%, transparent) 84%,
            transparent 100%
        ) top center / 100% 1px no-repeat,
        linear-gradient(
            to right,
            transparent 0%,
            color-mix(in srgb, var(--he-color) 24%, transparent) 16%,
            color-mix(in srgb, var(--he-color) 24%, transparent) 84%,
            transparent 100%
        ) bottom center / 100% 1px no-repeat;
}
}


#clbi-left-sidebar .left-ad-content-shell {
.timeline-event.he-root .timeline-title {
margin:0 !important;
    text-shadow:
padding:0 !important;
        0 0 4px color-mix(in srgb, var(--he-color) 34%, transparent),
box-sizing:border-box !important;
        0 0 9px color-mix(in srgb, var(--he-color) 16%, transparent);
background:transparent !important;
border:0 !important;
box-shadow:none !important;
overflow:visible !important;
}
}


#clbi-left-sidebar .left-ad-box .right-billboard-body {
/* =========================================
margin:0 !important;
  Tree List
padding:0 !important;
  ========================================= */
box-sizing:border-box !important;
background:transparent !important;
border:0 !important;
box-shadow:none !important;
overflow:visible !important;
}


#clbi-left-sidebar .left-ad-box .right-billboard-recess {
.tree-container {
margin:0 !important;
    margin: 0;
    padding: 0;
}
}


#clbi-left-sidebar .left-ad-bottom-finish {
.tree-node {
display:none !important;
    position: relative;
height:0 !important;
    padding-left: 20px;
min-height:0 !important;
    margin: 0;
background:transparent !important;
    text-indent: 0;
border:0 !important;
    line-height: 1.55;
box-shadow:none !important;
pointer-events:none !important;
}
}


#clbi-left-sidebar .left-ad-box.is-left-ad-extended {
.tree-node::before {
height:auto !important;
    content: "";
max-height:none !important;
    position: absolute;
display:block !important;
    top: 0;
min-height:0 !important;
    left: 7px;
    width: 1.2px;
    height: 100%;
    background: #7F7F7F;
}
}


#clbi-left-sidebar .left-ad-box.is-left-ad-extended .left-ad-title,
.tree-node::after {
#clbi-left-sidebar .left-ad-box.is-left-ad-extended .left-ad-content-shell,
    content: "";
#clbi-left-sidebar .left-ad-box.is-left-ad-extended .right-billboard-body,
    position: absolute;
#clbi-left-sidebar .left-ad-box.is-left-ad-extended .right-billboard-recess,
    top: 12px;
#clbi-left-sidebar .left-ad-box.is-left-ad-extended .right-billboard-caption {
    left: 7px;
flex:none !important;
    width: 8px;
    height: 0;
    border-top: 1.2px solid #7F7F7F;
}
}


#clbi-left-sidebar .left-ad-box.is-left-ad-title-only {
.tree-node:last-of-type::before {
height:auto !important;
    height: 12px;
max-height:none !important;
}
}


#clbi-left-sidebar .left-ad-box.is-left-ad-title-only .left-ad-content-shell {
/* =========================================
display:none !important;
  Meeting Composition Panel
}
  ========================================= */


/* -----------------------------------------
.meeting-panel {
9.44 우측 The Great Wall
    position: relative;
----------------------------------------- */
    isolation: isolate;
 
    z-index: 0;
/* 우측 사이드바는 본문 컨테이너 높이를 기준으로 고정된다.
    width: calc(100% + 4px);
  프로필과 SITE INFORMATION은 자기 높이를 유지하고,
    left: -2px;
  The Great Wall만 남는 세로 공간을 채운다. */
    margin: 0 auto 15px auto;
#clbi-right-sidebar {
    border: 2px solid #1a1a1a;
height:100%;
    border-radius: 5px;
max-height:100%;
    background:
min-height:0;
        radial-gradient(
align-self:stretch;
            ellipse at 50% 35%,
overflow:hidden;
            rgba(255,255,255,0.025) 0%,
            transparent 46%
        ),
        linear-gradient(
            to bottom,
            #1A1A1A 0%,
            #181818 52%,
            #151515 100%
        );
    color: #FFF;
    box-shadow:
        0 4px 12px #000;
    text-align: center;
    font-size: 11px;
    box-sizing: border-box;
    overflow: visible;
}
}


#clbi-right-sidebar > .profile-card-box,
.meeting-panel::before {
#clbi-right-sidebar > .site-info-sidebar {
    content: "";
flex:0 0 auto;
    position: absolute;
    inset: -5px;
    z-index: -2;
    border-radius: 8px;
    background: #854369;
    pointer-events: none;
}
}


.great-wall-sidebar {
.meeting-panel::after {
position:relative;
    content: "";
display:flex;
    position: absolute;
flex-direction:column;
    inset: -3px;
flex:1 1 auto;
    z-index: -1;
min-height:0;
    border-radius: 7px;
background:#1d1d1d;
    background: #1A1A1A;
overflow:hidden;
    pointer-events: none;
}
}


/* The Great Wall은 좌측 언어/뉴스 타이틀에서 확정한 내부 라벨 패널 표준을 따른다. */
.meeting-panel-body {
.great-wall-sidebar > .clbi-right-title {
    width: 100%;
flex:0 0 auto;
    color: #E4E4E4;
min-height:0;
    padding: 4.5px 9px 9px 9px;
height:auto;
    box-sizing: border-box;
margin:4px 0 3px;
    border-radius: 3px;
padding:3px 7px;
    background: transparent;
box-sizing:border-box;
    overflow: hidden;
background:#080808;
border:0;
display:flex;
align-items:center;
gap:6px;
justify-content:flex-start;
box-shadow:
inset 0 1px 0 #101010,
inset -1px 0 0 #101010,
inset 1px 0 0 #555555,
inset 0 -1px 0 #555555;
}
}


.great-wall-title-icon,
.meeting-title-wrap {
.great-wall-title-icon.sidebar-title-svg {
    width: 100%;
display:inline-flex;
    max-width: 760px;
align-items:center;
    margin: 5px auto 8px auto;
justify-content:center;
width:16px;
height:16px;
font-size:13px;
line-height:1;
color:#e2e2e2 !important;
flex:0 0 16px;
vertical-align:middle;
}
}


.great-wall-title-icon .profile-svg,
.meeting-title-wrap .infobox-glass-title {
.great-wall-title-icon.sidebar-title-svg .profile-svg {
    top: 0;
width:16px;
    margin-top: 0;
height:16px;
    padding: 5px;
display:block;
    line-height: 1.2;
stroke:currentColor;
}
}


#clbi-title-great-wall {
.meeting-title-table {
display:inline-flex;
    width: auto;
align-items:center;
    max-width: 100%;
min-width:0;
    margin-left: auto;
height:100%;
    margin-right: auto;
color:#e2e2e2;
    border: 2px solid transparent;
font-size:12px;
    border-collapse: collapse;
font-weight:700;
    table-layout: auto;
line-height:1;
letter-spacing:0;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
}


.great-wall-content {
.meeting-title-table td,
position:relative;
.meeting-title-table th {
flex:1 1 auto;
    background: none !important;
min-height:0;
    border: none !important;
height:auto;
    vertical-align: middle !important;
padding:3px !important;
box-sizing:border-box;
background:#080808;
line-height:1.4;
overflow:hidden;
display:block;
}
}


.great-wall-list {
.meeting-title-table .meeting-title-image-left {
position:relative;
    width: auto;
min-height:0;
    text-align: right !important;
height:100%;
    padding: 0 6px 0 0 !important;
max-height:100%;
    line-height: 0;
margin:0;
    white-space: nowrap;
padding:0;
box-sizing:border-box;
display:flex;
flex-direction:column;
overflow-y:auto;
overflow-x:hidden;
border-top:1px solid #202020;
border-bottom:1px solid #202020;
scrollbar-width:thin;
scrollbar-color:#333333 #080808;
}
}


/* 메시지 행은 기존 대문 GUESTBOOK의 단순 기록행을 기준으로 한다.
.meeting-title-table .meeting-title-image-right {
  클릭형 문서 카드가 아니라, 좌측 프로필 사진과 본문 메시지가 쌓이는 채팅형 기록행이다. */
    width: auto;
.great-wall-entry {
    text-align: left !important;
position:relative;
    padding: 0 0 0 6px !important;
display:grid;
    line-height: 0;
grid-template-columns:27px minmax(0,1fr);
    white-space: nowrap;
gap:5px;
width:100%;
min-height:0;
margin:0;
padding:6px 2px 6px 3px;
box-sizing:border-box;
background:transparent !important;
border:0;
border-bottom:1px solid #202020;
border-radius:0;
color:#c8c8c8 !important;
text-align:left;
text-decoration:none !important;
font:inherit;
line-height:1.2;
overflow:visible;
box-shadow:none !important;
transition:background .12s ease, color .12s ease;
}
}


.great-wall-entry:last-child {
.meeting-title-table .meeting-title-cell {
border-bottom:none;
    width: auto;
    line-height: 1.15 !important;
    background: none !important;
    text-align: center !important;
    white-space: nowrap;
    padding: 0 !important;
}
}


button.great-wall-entry {
.meeting-title-image-left img,
appearance:none;
.meeting-title-image-right img,
-webkit-appearance:none;
.meeting-title-image-left .mw-file-element,
cursor:pointer;
.meeting-title-image-right .mw-file-element {
    display: block;
    border: 0 !important;
    vertical-align: middle;
    filter:
        drop-shadow(0 1px 2px rgba(0,0,0,0.75))
        drop-shadow(0 0 3px rgba(255,255,255,0.08));
}
}


button.great-wall-entry::-moz-focus-inner {
.meeting-title-name {
border:0;
    display: block;
padding:0;
    line-height: 1.15;
    text-align: center;
}
}


.great-wall-entry:hover,
.meeting-title-meta {
button.great-wall-entry:focus-visible {
    display: block;
background:#111111 !important;
    margin-top: 1px;
color:#ffffff !important;
    color: #7F7F7F;
outline:none;
    font-size: 10px;
    font-weight: normal;
    line-height: 1.15;
    text-align: center;
}
}


.great-wall-entry.is-selected,
.meeting-seatmap {
.great-wall-entry.is-own.is-selected {
    position: relative;
background:#111111 !important;
    margin: 0 auto;
    padding: 5px 0 4px 0;
    background: transparent;
    border-radius: 0;
    overflow: visible;
}
}


.great-wall-avatar {
.meeting-seatmap::before {
grid-column:1;
    content: "";
grid-row:1;
    position: absolute;
display:block;
    left: 50%;
width:25px;
    top: 84px;
height:25px;
    bottom: 145px;
margin:0 0 0;
    width: 2px;
object-fit:cover;
    transform: translateX(-50%);
object-position:center;
    background:
background:#070707;
        linear-gradient(
border:1px solid #050505;
            to bottom,
box-sizing:border-box;
            transparent 0%,
box-shadow:
            rgba(65,65,65,0.72) 18%,
inset 0 1px 0 #555555,
            #414141 50%,
inset -1px 0 0 #555555,
            rgba(65,65,65,0.72) 82%,
inset 1px 0 0 #101010,
            transparent 100%
inset 0 -1px 0 #101010;
        );
    box-shadow: 0 0 6px rgba(65,65,65,0.16);
    pointer-events: none;
}
}


.great-wall-bubble {
.meeting-table-zone::before {
grid-column:2;
    content: "";
grid-row:1;
    position: absolute;
position:relative;
    left: 7%;
min-width:0;
    right: 7%;
max-width:100%;
    top: 50%;
padding:0;
    height: 2px;
box-sizing:border-box;
    transform: translateY(-50%);
background:transparent !important;
    background:
border:0;
        linear-gradient(
color:#c8c8c8;
            to right,
box-shadow:none !important;
            transparent 0%,
            rgba(65,65,65,0.72) 14%,
            #414141 50%,
            rgba(65,65,65,0.72) 86%,
            transparent 100%
        );
    box-shadow: 0 0 6px rgba(65,65,65,0.14);
    pointer-events: none;
}
}


.great-wall-entry.is-own .great-wall-bubble,
.meeting-axis-label {
.great-wall-entry:hover .great-wall-bubble,
    position: relative;
.great-wall-entry.is-selected .great-wall-bubble {
    z-index: 4;
background:transparent !important;
    display: inline-block;
border:0;
    min-width: 42px;
box-shadow:none !important;
    margin: 2px auto 4px auto;
    padding: 2px 9px;
    border-radius: 5px;
    background: #0c0c0c;
    color: #E4E4E4;
    font-weight: bold;
    line-height: 1.35;
    box-shadow:
        inset 0 -1px 0 #525252,
        0 0 0 3px #1A1A1A;
}
}


.great-wall-entry-head {
.meeting-chair-line {
display:flex;
    position: relative;
align-items:center;
    z-index: 3;
justify-content:space-between;
    display: flex;
gap:6px;
    justify-content: center;
min-width:0;
    margin: 0 0 6px 0;
height:auto;
    background: transparent;
margin:0 0 3px;
font-size:9px;
line-height:1.2;
}
}


.great-wall-user {
.meeting-table-zone {
display:block;
    position: relative;
min-width:0;
    z-index: 3;
max-width:92px;
    display: grid;
overflow:hidden;
    grid-template-columns: minmax(0, 1fr) 48px minmax(0, 1fr);
text-overflow:ellipsis;
    align-items: center;
white-space:nowrap;
    width: 100%;
color:#eeeeee;
    max-width: 980px;
font-size:9px;
    min-height: 210px;
font-weight:700;
    margin: 0 auto;
line-height:1.2;
    background: transparent;
text-shadow:1px 1px 0 #000;
}
}


.great-wall-time {
.meeting-side {
flex:0 0 auto;
    display: flex;
display:block;
    flex-wrap: nowrap;
min-width:0;
    justify-content: center;
height:auto;
    align-items: center;
padding:0;
    gap: 0;
box-sizing:border-box;
    min-width: 0;
background:transparent;
    background: transparent;
border:0;
color:#8a8a8a;
font-size:8px;
font-weight:700;
line-height:1.2;
white-space:nowrap;
text-shadow:1px 1px 0 #000;
box-shadow:none;
}
}


.great-wall-text {
.meeting-side-left {
display:block;
    padding-right: 4px;
min-width:0;
max-width:100%;
max-height:none;
overflow:visible;
color:#c8c8c8;
font-size:10px;
font-weight:400;
line-height:1.45;
white-space:normal;
word-break:normal;
overflow-wrap:anywhere;
text-shadow:1px 1px 0 #000;
}
}


.great-wall-entry:hover .great-wall-text,
.meeting-side-right {
.great-wall-entry.is-selected .great-wall-text {
    padding-left: 4px;
color:#e2e2e2;
}
}


.great-wall-empty {
.meeting-center-spine {
display:flex;
    position: relative;
align-items:center;
    display: flex;
justify-content:center;
    align-items: center;
min-height:42px;
    justify-content: center;
padding:4px 6px;
    align-self: stretch;
box-sizing:border-box;
    min-height: 210px;
background:#101010;
    z-index: 4;
border:1px solid #202020;
    background: transparent;
color:#8a8a8a;
font-size:9px;
font-weight:700;
line-height:1;
text-shadow:1px 1px 0 #000;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.022),
inset 0 -1px 0 rgba(0,0,0,0.58);
}
}


/* The Great Wall composer is a separate lower sector, matching the title-sector logic.
.meeting-center-spine .meeting-axis-label {
  It is not a nested well inside the message list. */
    position: absolute;
.great-wall-compose-sector {
    top: 50%;
flex:0 0 auto;
    left: 50%;
margin:3px 0 0;
    transform: translate(-50%, -50%);
padding:3px;
    writing-mode: vertical-rl;
box-sizing:border-box;
    text-orientation: mixed;
background:#080808;
    min-width: 0;
border:0;
    min-height: 42px;
box-shadow:
    margin: 0;
inset 0 1px 0 #101010,
    padding: 8px 3px;
inset -1px 0 0 #101010,
inset 1px 0 0 #555555,
inset 0 -1px 0 #555555;
}
}


.great-wall-editor {
.meeting-advisory-zone {
display:grid;
    position: relative;
grid-template-columns:minmax(0,1fr) 42px 34px;
    z-index: 3;
grid-template-areas:"input submit delete";
    margin-top: 6px;
gap:3px;
    background: transparent;
margin:0;
padding:0;
box-sizing:border-box;
background:transparent;
border:0;
box-shadow:none;
}
}


.great-wall-sidebar:not(.has-own-entry) .great-wall-editor,
.meeting-advisory-zone > .meeting-axis-label {
.great-wall-sidebar.is-guest .great-wall-editor {
    margin-bottom: 6px;
grid-template-columns:minmax(0,1fr) 42px;
grid-template-areas:"input submit";
}
}


.great-wall-sidebar:not(.has-own-entry) .great-wall-delete,
.meeting-advisory-grid {
.great-wall-sidebar.is-guest .great-wall-delete {
    position: relative;
display:none;
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: center;
    gap: 0;
    width: 100%;
    max-width: 760px;
    margin: 0 auto;
    padding: 0;
    box-sizing: border-box;
    background: transparent;
}
}


/* The Great Wall composer input uses the top navigation search input surface. */
.meeting-advisory-grid::before {
.great-wall-input {
    content: "";
grid-area:input;
    position: absolute;
width:100%;
    left: 7%;
height:26px;
    right: 7%;
min-width:0;
    top: 94px;
margin:0;
    height: 2px;
background:#070707 !important;
    background:
border:1px solid #202020 !important;
        linear-gradient(
border-radius:0 !important;
            to right,
color:#e2e2e2;
            transparent 0%,
-webkit-text-fill-color:#e2e2e2;
            rgba(65,65,65,0.72) 14%,
padding:0 10px;
            #414141 50%,
border-radius:0 !important;
            rgba(65,65,65,0.72) 86%,
font-size:11px;
            transparent 100%
box-sizing:border-box;
        );
outline:0 !important;
    box-shadow: 0 0 6px rgba(65,65,65,0.14);
outline-offset:0 !important;
    pointer-events: none;
pointer-events:all;
transition: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) !important;
-webkit-appearance:none;
appearance:none;
-webkit-tap-highlight-color:transparent;
}
}


.great-wall-input::placeholder {
.meeting-person-card {
color:#626262;
    position: relative;
opacity:1;
    z-index: 3;
-webkit-text-fill-color:#626262;
    background: transparent;
    color: #fff;
    text-align: center;
    vertical-align: top;
    padding: 0;
    box-sizing: border-box;
}
}


.great-wall-input:hover,
.meeting-chair-card {
.great-wall-input:focus,
    width: 180px;
.great-wall-input:focus-visible,
.great-wall-input:active,
.great-wall-input[readonly],
.great-wall-input:disabled {
background:#070707 !important;
border:1px solid #202020 !important;
border-radius:0 !important;
color:#e2e2e2;
-webkit-text-fill-color:#e2e2e2;
outline:0 !important;
outline-offset:0 !important;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.025),
inset 0 -1px 0 rgba(0,0,0,0.55) !important;
-webkit-appearance:none;
appearance:none;
filter:none;
}
}


.great-wall-input::-moz-focus-inner {
.meeting-side .meeting-person-card {
border:0 !important;
    width: 50%;
padding:0 !important;
    min-width: 0;
}
}


.great-wall-input:disabled {
.meeting-advisory-card {
cursor:default;
    width: 33.333%;
opacity:1;
    min-width: 0;
}
}


.great-wall-input:disabled::placeholder,
.meeting-person-inner {
.great-wall-input[readonly]::placeholder {
    display: flex;
color:#626262;
    justify-content: center;
opacity:1;
    padding: 0;
-webkit-text-fill-color:#626262;
    background: transparent;
}
}


.great-wall-input:-webkit-autofill,
.meeting-person-stack {
.great-wall-input:-webkit-autofill:hover,
    width: 90%;
.great-wall-input:-webkit-autofill:focus,
    margin-top: 3px;
.great-wall-input:-webkit-autofill:active {
    background: transparent;
-webkit-text-fill-color:#e2e2e2 !important;
    display: flex;
caret-color:#e2e2e2;
    flex-direction: column;
box-shadow:
    align-items: center;
inset 0 1px 0 rgba(255,255,255,0.025),
inset 0 -1px 0 rgba(0,0,0,0.55),
0 0 0 1000px #070707 inset !important;
border:1px solid #202020 !important;
transition:background-color 9999s ease-in-out 0s;
}
}


.great-wall-submit,
.meeting-side .meeting-person-stack {
.great-wall-delete {
    width: 94%;
display:flex;
align-items:center;
justify-content:center;
height:26px;
min-width:0;
margin:0;
padding:0 5px;
box-sizing:border-box;
background:#141414;
border:1px solid;
border-color:#333333 #202020 #050505 #202020;
border-radius:0;
color:#c8c8c8;
font:inherit;
font-size:9px;
font-weight:700;
line-height:1;
text-align:center;
text-shadow:1px 1px 0 #000;
cursor:pointer;
box-shadow:inset 0 1px 0 rgba(255,255,255,0.035);
}
}


.great-wall-submit {
.meeting-advisory-card .meeting-person-stack {
grid-area:submit;
    width: 92%;
}
}


.great-wall-delete {
.meeting-person-stack .compact-crt-media {
grid-area:delete;
    margin-left: auto;
    margin-right: auto;
    flex: 0 0 auto;
}
}


.great-wall-submit:hover:not(:disabled),
.meeting-person-stack .office-card-name-cell {
.great-wall-submit:focus-visible:not(:disabled),
    width: 170px;
.great-wall-delete:hover:not(:disabled),
    max-width: 100%;
.great-wall-delete:focus-visible:not(:disabled) {
    margin-top: 6px;
background:#1d1d1d;
    margin-left: auto;
border-color:#333333 #202020 #050505 #202020;
    margin-right: auto;
color:#ffffff;
    flex: 0 0 auto;
outline:0 !important;
outline-offset:0 !important;
}
}


.great-wall-submit:active:not(:disabled),
.meeting-chair-card .office-card-name-cell {
.great-wall-delete:active:not(:disabled) {
    width: 170px;
background:#0c0c0c;
border-color:#050505 #202020 #333333 #202020;
box-shadow:inset 1px 1px 3px rgba(0,0,0,0.82);
}
}


.great-wall-submit:disabled,
.meeting-advisory-card .office-card-name-cell {
.great-wall-delete:disabled {
    width: 170px;
background:#101010;
color:#555555;
cursor:default;
box-shadow:inset 0 1px 0 rgba(255,255,255,0.018);
}
}


.great-wall-delete:not(:disabled) {
.meeting-office {
color:#a8847e;
    display: block;
    margin-top: 2px;
    color: #7F7F7F;
    font-size: 10px;
    line-height: 1.3;
    font-weight: normal;
}
}


.great-wall-delete:hover:not(:disabled),
/* =====================================================================
.great-wall-delete:focus-visible:not(:disabled) {
  ScreenHeader + Screen Bezel Module
color:#e0a199;
 
}
  Template.css에서 교체할 범위:
    [/* ScreenHeader */] 주석부터
    [/* Document View System — doc-* */] 주석 바로 위까지
  전체를 지우고 이 파일 내용으로 교체하세요.
  ===================================================================== */


.great-wall-status {
/* =========================================
height:12px;
  ScreenHeader — 컨테이너 & 레이아웃 제어
margin:3px 0 0;
  ========================================= */
padding:2px 1px 0;
box-sizing:border-box;
display:flex;
align-items:flex-start;
justify-content:flex-start;
background:transparent;
border-top:1px solid #202020;
color:#626262;
font-size:8px;
font-weight:700;
line-height:1;
letter-spacing:.25px;
text-shadow:1px 1px 0 #000;
box-shadow:none;
overflow:hidden;
white-space:nowrap;
text-overflow:ellipsis;
}


.great-wall-sidebar.is-saving .great-wall-status,
.liberty-content:has(.screen-header) .liberty-content-header .title {
.great-wall-sidebar.is-loading .great-wall-status {
    display: none !important;
color:#8a8a8a;
}
}


/* -----------------------------------------
/* screen-header 문서 — 컨테이너를 베젤로 */
9.45 우측 사이트 정보
.Liberty .content-wrapper .liberty-content:has(.screen-header) .liberty-content-main {
----------------------------------------- */
    position: relative !important;
 
    box-sizing: border-box !important;
.site-info-sidebar {
    border: 2px solid #854369 !important;
position:relative;
    border-radius: 5px !important;
background:#1d1d1d;
    background: linear-gradient(
        160deg,
        #2e2e2e 0%,
        #1e1e1e 30%,
        #121212 65%,
        #1a1a1a 100%
    ) !important;
    box-shadow:
        inset 0 3px 0 rgba(255,255,255,0.10),
        inset 0 -4px 0 rgba(0,0,0,0.85),
        inset 4px 0 0 rgba(255,255,255,0.04),
        inset -4px 0 0 rgba(0,0,0,0.70) !important;
    overflow: hidden !important;
}
}


.site-info-title {
/* 상단 빛반사 */
justify-content:space-between;
.Liberty .content-wrapper .liberty-content:has(.screen-header) .liberty-content-main::after {
background:transparent;
    content: "";
border:0;
    position: absolute;
box-shadow:none;
    top: 0;
    left: 0;
    right: 0;
    height: 40%;
    border-radius: 5px 5px 0 0;
    background: linear-gradient(to bottom, rgba(255,255,255,0.06) 0%, transparent 100%);
    pointer-events: none;
    z-index: 0;
}
}


.site-info-title > span:first-child {
.liberty-content:has(.screen-header) .screen-title-plate,
min-width:0;
.liberty-content:has(.screen-header) .screen-header-frame,
overflow:hidden;
.liberty-content:has(.screen-header) .screen-header-inner,
text-overflow:ellipsis;
.liberty-content:has(.screen-header) .screen-header-media,
white-space:nowrap;
.liberty-content:has(.screen-header) .screen-header-vignette,
.liberty-content:has(.screen-header) .screen-header-scanline,
.liberty-content:has(.screen-header) .screen-header-mask,
.liberty-content:has(.screen-header) .screen-header-glass,
.liberty-content:has(.screen-header) .screen-header-subtitle {
    display: none !important;
}
}


.site-info-title-meta {
/* =========================================
flex:0 0 auto;
  screen-header
color:#8a8a8a;
  베젤 좌우 padding(24px)을 정확히 상쇄
font-size:9px;
  width: calc(100% + 48px), margin: 0 -24px
font-weight:700;
  ========================================= */
letter-spacing:.55px;
line-height:1;
white-space:nowrap;
}


.site-info-content {
.screen-header {
position:relative;
    position: relative !important;
padding:3px !important;
    width: 100% !important;
box-sizing:border-box;
    height: var(--screen-header-height, 360px) !important;
overflow:hidden;
    margin: 0 !important;
background:#080808;
    padding: 8px 8px 4px 8px !important;
line-height:1.4;
    box-sizing: border-box !important;
    overflow: hidden !important;
    background: #050505 !important;
    border: 0 !important;
    border-bottom: 0 !important;
    isolation: isolate !important;
}
}


.site-info-sidebar .policy-list {
.screen-header-recess {
display:flex;
    position: relative !important;
flex-direction:column;
    width: 100% !important;
gap:0;
    height: 100% !important;
margin:0;
    margin: 0 !important;
padding:0;
    padding: 4px !important;
border:0;
    box-sizing: border-box !important;
    overflow: hidden !important;
    background: #050505 !important;
    border: 1px solid rgba(255,255,255,0.035) !important;
    border-radius: 6px !important;
    box-shadow:
        inset 0 18px 30px rgba(0,0,0,0.82),
        inset 0 -9px 16px rgba(255,255,255,0.026),
        inset 18px 0 30px rgba(0,0,0,0.66),
        inset -18px 0 30px rgba(0,0,0,0.66),
        0 1px 0 rgba(255,255,255,0.030),
        0 -1px 0 rgba(0,0,0,0.70) !important;
}
}


.site-info-sidebar .policy-row {
.screen-header-recess::before {
display:block;
    content: "";
margin:0 0 2px;
    position: absolute;
padding:0;
    inset: 0;
border:0;
    z-index: 1;
font-size:10px;
    pointer-events: none;
line-height:1.2;
    opacity: 0.10;
    background: repeating-linear-gradient(
        135deg,
        rgba(255,255,255,0.030) 0px,
        rgba(255,255,255,0.030) 1px,
        transparent 1px,
        transparent 5px
    );
    mix-blend-mode: screen;
}
}


.site-info-sidebar .policy-row:last-child {
.screen-header-recess::after {
margin-bottom:0;
    content: "";
    position: absolute;
    inset: 14px;
    z-index: 12;
    pointer-events: none;
    border-radius: 0;
    box-shadow:
        0 -20px 32px rgba(0,0,0,0.86),
        0 12px 18px rgba(255,255,255,0.024),
        -20px 0 32px rgba(0,0,0,0.78),
        20px 0 32px rgba(0,0,0,0.78),
        inset 0 0 0 1px rgba(255,255,255,0.018) !important;
}
}


.site-info-sidebar .site-info-policy-button {
.screen-header .screen-header-crt {
position:relative;
    position: relative !important;
display:grid !important;
    z-index: 2 !important;
grid-template-columns:minmax(0,1fr) 14px;
    width: 100% !important;
align-items:center;
    height: 100% !important;
gap:6px;
    aspect-ratio: auto !important;
min-height:26px;
    margin: 0 !important;
margin:0;
    padding: 0 !important;
padding:0 6px;
    box-sizing: border-box !important;
box-sizing:border-box;
    overflow: hidden !important;
background:#1d1d1d;
    background: transparent !important;
border:1px solid #050505;
    border: 0 !important;
color:#c8c8c8 !important;
    border-radius: 0 !important;
overflow:hidden;
    box-shadow: none !important;
text-decoration:none !important;
cursor:pointer;
box-shadow:
inset 0 1px 0 #555555,
inset -1px 0 0 #555555,
inset 1px 0 0 #101010,
inset 0 -1px 0 #101010;
}
}


.site-info-sidebar .site-info-policy-button:hover {
.screen-header .screen-header-crt::before,
background:#1d1d1d;
.screen-header .screen-header-crt::after {
color:#ffffff !important;
    content: none !important;
text-decoration:none !important;
}
}


.site-info-sidebar .site-info-policy-button:active {
.screen-header .crt-page-monitor-inner {
background:#101010;
    position: relative !important;
box-shadow:
    width: 100% !important;
inset 0 1px 0 #101010,
    height: 100% !important;
inset -1px 0 0 #101010,
    padding: 5px !important;
inset 1px 0 0 #555555,
    margin: 0 !important;
inset 0 -1px 0 #555555;
    box-sizing: border-box !important;
    border-radius: 0 !important;
    background: linear-gradient(
        145deg,
        #050505 0%,
        #0d0d0d 46%,
        #050505 100%
    ) !important;
    border: 1px solid #050505 !important;
    box-shadow:
        inset 0 10px 20px rgba(0,0,0,0.97),
        inset 0 -2px 3px rgba(255,255,255,0.030),
        inset 8px 0 18px rgba(0,0,0,0.90),
        inset -8px 0 18px rgba(0,0,0,0.90) !important;
}
}


.site-info-policy-title {
.screen-header .crt-page-monitor-screen {
display:block;
    position: relative !important;
min-width:0;
    width: 100% !important;
overflow:hidden;
    height: 100% !important;
text-overflow:ellipsis;
    overflow: hidden !important;
white-space:nowrap;
    border-radius: 0 !important;
color:#e2e2e2 !important;
    background: #050505 !important;
font-size:12px;
    border: 1px solid #050505 !important;
font-weight:700;
    box-shadow:
line-height:1.18;
        inset 0 0 0 1px #111,
text-decoration:none !important;
        inset 0 0 24px rgba(0,0,0,0.94),
text-shadow:1px 1px 0 #000;
        inset 0 0 64px rgba(0,0,0,0.80),
        inset 0 0 118px rgba(0,0,0,0.50),
        0 0 0 1px rgba(255,255,255,0.030) !important;
}
}


.site-info-sidebar .site-info-policy-button:hover .site-info-policy-title {
.screen-header .crt-page-monitor-image,
color:#ffffff !important;
.screen-header .crt-page-monitor-image-base,
.screen-header .crt-page-monitor-image-bloom,
.screen-header .crt-page-monitor-slice {
    position: absolute !important;
    inset: 0 !important;
    border-radius: 0 !important;
}
}


.site-info-sidebar .social-strip {
.screen-header .crt-page-monitor-image-base a,
display:grid;
.screen-header .crt-page-monitor-image-base span,
grid-template-columns:repeat(4,1fr);
.screen-header .crt-page-monitor-image-base .mw-file-description,
gap:2px;
.screen-header .crt-page-monitor-image-base .mw-default-size,
margin-top:2px;
.screen-header .crt-page-monitor-image-base .mw-image-border,
.screen-header .crt-page-monitor-image-bloom a,
.screen-header .crt-page-monitor-image-bloom span,
.screen-header .crt-page-monitor-image-bloom .mw-file-description,
.screen-header .crt-page-monitor-image-bloom .mw-default-size,
.screen-header .crt-page-monitor-image-bloom .mw-image-border,
.screen-header .crt-page-monitor-slice a,
.screen-header .crt-page-monitor-slice span,
.screen-header .crt-page-monitor-slice .mw-file-description,
.screen-header .crt-page-monitor-slice .mw-default-size,
.screen-header .crt-page-monitor-slice .mw-image-border {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
}
}


.site-info-sidebar .social-icon {
.screen-header .crt-page-monitor-image-base img,
display:block;
.screen-header .crt-page-monitor-image-base .mw-file-element,
aspect-ratio:1 / 1;
.screen-header .crt-page-monitor-image-bloom img,
min-width:0;
.screen-header .crt-page-monitor-image-bloom .mw-file-element,
.screen-header .crt-page-monitor-slice img,
.screen-header .crt-page-monitor-slice .mw-file-element,
.screen-header .crt-page-monitor-slice-img {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: var(--screen-image-position, center center) !important;
    border: 0 !important;
    border-radius: 0 !important;
}
}


.site-info-sidebar .social-icon a {
.screen-header .crt-page-monitor-screen::before {
position:relative;
    content: "" !important;
display:flex !important;
    position: absolute !important;
align-items:center !important;
    inset: -4px !important;
justify-content:center !important;
    z-index: 20 !important;
width:100% !important;
    pointer-events: none !important;
height:100% !important;
    border-radius: 0 !important;
box-sizing:border-box !important;
    background:
background:#1d1d1d !important;
        radial-gradient(
border:1px solid #050505 !important;
            ellipse at 50% 50%,
color:#e2e2e2 !important;
            transparent 0%,
font-size:10px !important;
            transparent 62%,
font-weight:700 !important;
            rgba(0,0,0,0.18) 78%,
line-height:1 !important;
            rgba(0,0,0,0.48) 100%
text-decoration:none !important;
        ),
text-shadow:1px 1px 0 #000 !important;
        linear-gradient(
overflow:hidden;
            to bottom,
box-shadow:
            rgba(0,0,0,0.20) 0%,
inset 0 1px 0 #555555,
            transparent 14%,
inset -1px 0 0 #555555,
            transparent 82%,
inset 1px 0 0 #101010,
            rgba(0,0,0,0.28) 100%
inset 0 -1px 0 #101010 !important;
        ),
        linear-gradient(
            to right,
            rgba(0,0,0,0.20) 0%,
            transparent 8%,
            transparent 92%,
            rgba(0,0,0,0.20) 100%
        ),
        linear-gradient(
            105deg,
            transparent 0%,
            rgba(255,255,255,0.030) 18%,
            transparent 38%,
            transparent 100%
        ) !important;
    box-shadow:
        inset 0 0 0 1px rgba(255,255,255,0.018),
        inset 0 0 24px rgba(255,255,255,0.015),
        inset 0 0 74px rgba(0,0,0,0.64),
        inset 0 22px 38px rgba(0,0,0,0.60),
        inset 0 -20px 36px rgba(0,0,0,0.44),
        inset 18px 0 36px rgba(0,0,0,0.56),
        inset -18px 0 36px rgba(0,0,0,0.56) !important;
}
}


.site-info-sidebar .social-icon a:hover {
.screen-header .crt-page-monitor-screen::after {
background:#1d1d1d !important;
    content: "" !important;
color:#ffffff !important;
    position: absolute !important;
border-color:#050505 !important;
    inset: -80px -4px !important;
text-decoration:none !important;
    z-index: 21 !important;
box-shadow:
    pointer-events: none !important;
inset 0 1px 0 #555555,
    opacity: 0.22 !important;
inset -1px 0 0 #555555,
    border-radius: 0 !important;
inset 1px 0 0 #101010,
    background: repeating-linear-gradient(
inset 0 -1px 0 #101010 !important;
        to bottom,
        rgba(255,255,255,0.08) 0px,
        rgba(255,255,255,0.08) 1px,
        transparent 2px,
        transparent 5px
    ) !important;
    mix-blend-mode: screen !important;
    animation: crt-scanlines-up 7s linear infinite !important;
}
}


.site-info-sidebar .social-icon a:active {
.screen-header .crt-page-monitor-glitch,
background:#101010 !important;
.screen-header .crt-page-monitor-tear {
color:#c8c8c8 !important;
    inset: -4px !important;
border-color:#050505 !important;
    border-radius: 0 !important;
box-shadow:
inset 0 1px 0 #101010,
inset -1px 0 0 #101010,
inset 1px 0 0 #555555,
inset 0 -1px 0 #555555 !important;
}
}


.screen-header .crt-page-monitor-glitch { z-index: 22 !important; }
.screen-header .crt-page-monitor-tear  { z-index: 23 !important; }


/* -----------------------------------------
.screen-header-title {
9.5 왼쪽 언어 박스
    position: absolute !important;
----------------------------------------- */
    left: 5px !important;
 
    bottom: 5px !important;
.clbi-left-lang-box {
    z-index: 40 !important;
position:relative;
    margin: 0 !important;
min-height:0;
    padding: 0 !important;
z-index:1002;
    max-width: calc(100% - 10px) !important;
overflow:hidden;
    box-sizing: border-box !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}
}


/* 언어 박스 내부 라벨 패널 표준
.screen-header-title-main {
  - 외곽 검은 선은 만들지 않는다.
    margin: 0 !important;
  - 광원과 그림자는 사이드 프레임과 같은 한 세트(#555555 / #101010)를 사용한다.
    padding: 0 0 8px 10px !important;
  - 텍스트가 내부선에 붙지 않도록 상하 3px 패딩을 기본값으로 둔다. */
    border: 0 !important;
.clbi-left-lang-box > .clbi-left-title {
    background: transparent !important;
min-height:0;
    box-shadow: none !important;
height:auto;
    color: #ffffff !important;
margin:4px 0 3px;
    font-family: 'BoldRound', sans-serif !important;
padding:3px 7px;
    font-size: 40px !important;
box-sizing:border-box;
    font-weight: 700 !important;
background:#080808;
    line-height: 0.95 !important;
border:0;
    letter-spacing: 0.06em !important;
display:flex;
    text-shadow:
align-items:center;
        3px 3px 0 rgba(0,0,0,0.98),
gap:6px;
        0 0 6px rgba(0,0,0,0.98),
box-shadow:
        0 0 14px rgba(0,0,0,0.95),
inset 0 1px 0 #101010,
        0 0 26px rgba(0,0,0,0.92),
inset -1px 0 0 #101010,
        -1px 0 0 rgba(80,160,255,0.24),
inset 1px 0 0 #555555,
        1px 0 0 rgba(255,55,90,0.22) !important;
inset 0 -1px 0 #555555;
    white-space: nowrap !important;
}
}


#clbi-title-left-language {
.screen-header-subtitle {
display:inline-flex;
    display: none !important;
align-items:center;
height:100%;
color:#e2e2e2;
font-size:12px;
font-weight:700;
line-height:1;
letter-spacing:0;
}
}


.clbi-left-language-icon {
/* =========================================
display:inline-flex;
  screen-body
align-items:center;
  베젤 좌우 padding(24px)을 정확히 상쇄
justify-content:center;
  하단 -28px은 베젤 하단 padding을 상쇄해서 베젤 닫음
width:16px;
  ========================================= */
height:16px;
font-size:13px;
line-height:1;
color:#e2e2e2 !important;
flex:0 0 16px;
}


.clbi-left-language-icon .profile-svg {
.screen-header + .screen-body {
display:block;
    margin-top: 0 !important;
width:16px;
    border-top: 0 !important;
height:16px;
stroke:currentColor;
}
}


.clbi-left-lang-box .clbi-left-content {
.screen-body {
padding:2px;
    position: relative;
box-sizing:border-box;
    width: 100%;
    margin: 0;
    padding: 4px 8px 4px 8px;
    box-sizing: border-box;
    background: #171717;
    overflow: hidden;
}
}


.sidebar-lang-box {
/* =========================================
position:relative;
  Document View System — doc-*
padding:3px !important;
  ========================================= */
box-sizing:border-box;
overflow:hidden;
}


.sidebar-lang-selector,
.doc-body {
.sidebar-lang-dial {
    position: relative;
position:relative;
    z-index: 3;
width:100%;
    box-sizing: border-box;
padding:0;
    width: 100%;
box-sizing:border-box;
    padding: 0;
user-select:none;
    background: transparent;
touch-action:pan-y;
outline:none;
}
}


.sidebar-lang-dial-stage {
/* =========================================
--lang-fan-half:99px;
  doc-header
position:relative;
  ========================================= */
width:100%;
height:146px;
margin:0;
box-sizing:border-box;
overflow:hidden;
background:#1d1d1d;
border:1px solid #050505;
border-radius:0;
box-shadow:
inset 0 1px 0 #555555,
inset -1px 0 0 #555555,
inset 1px 0 0 #101010,
inset 0 -1px 0 #101010;
}


.sidebar-lang-fan {
.doc-header {
position:absolute;
    position: relative;
left:50%;
    display: grid;
top:2px;
    grid-template-columns: 24px 1fr auto 24px;
z-index:2;
    align-items: center;
width:198px;
    height: 28px;
height:147px;
    margin-bottom: 7px;
transform:translateX(-50%);
    padding: 0 8px;
overflow:visible;
    box-sizing: border-box;
touch-action:pan-y;
    background:
cursor:grab;
        linear-gradient(
pointer-events:auto;
            to bottom,
            #282828 0%,
            #1a1a1a 40%,
            #161616 100%
        );
    border-top: 1px solid #3a3a3a;
    border-bottom: 1px solid #0a0a0a;
    border-left: 1px solid #222;
    border-right: 1px solid #222;
    border-radius: 2px;
}
}


.sidebar-lang-fan:active,
.doc-header::before {
.sidebar-lang-selector.is-dragging .sidebar-lang-fan,
    content: "";
.sidebar-lang-selector.is-spinning .sidebar-lang-fan {
    position: absolute;
cursor:grabbing;
    inset: 0;
    pointer-events: none;
    opacity: 0.06;
    background: repeating-linear-gradient(
        135deg,
        rgba(255,255,255,0.08) 0px,
        rgba(255,255,255,0.08) 1px,
        transparent 1px,
        transparent 4px
    );
    border-radius: inherit;
}
}


.sidebar-lang-fan-svg {
.doc-header-id {
display:block;
    font-size: 10px;
width:198px;
    font-weight: 700;
height:147px;
    letter-spacing: 0.18em;
overflow:visible;
    color: #c0c0c0;
shape-rendering:geometricPrecision;
    text-shadow: 0 1px 0 rgba(0,0,0,0.80);
    position: relative;
    z-index: 1;
}
}


.sidebar-lang-wheel-rotor {
.doc-screw {
transform-origin:101px 119px;
    position: relative;
transform-box:view-box;
    z-index: 1;
will-change:transform;
    width: 10px;
transition:none;
    height: 10px;
    border-radius: 50%;
    background:
        radial-gradient(circle at 36% 32%, rgba(255,255,255,0.35) 0%, transparent 28%),
        linear-gradient(145deg, #505050 0%, #282828 55%, #0e0e0e 100%);
    border: 1px solid #090909;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.15),
        inset 0 -1px 0 rgba(0,0,0,0.60),
        0 0 0 1px #333;
    justify-self: center;
}
}


.sidebar-lang-selector.is-snapping .sidebar-lang-wheel-rotor {
.doc-screw::after {
transition:transform 210ms cubic-bezier(.17,.84,.22,1);
    content: "";
    position: absolute;
    top: 50%;
    left: 15%;
    right: 15%;
    height: 1px;
    transform: translateY(-50%);
    background: rgba(0,0,0,0.55);
    border-radius: 1px;
}
}


.sidebar-lang-shell {
.doc-status {
fill:#080808;
    display: flex;
stroke:#202020;
    align-items: center;
stroke-width:1;
    gap: 5px;
    position: relative;
    z-index: 1;
}
}


.sidebar-lang-inner-shadow-soft,
.doc-status-lamp {
.sidebar-lang-inner-shadow-hard {
    display: inline-block;
fill:none;
    width: 8px;
stroke:#000000;
    height: 8px;
pointer-events:none;
    border-radius: 50%;
clip-path:url(#clbi-sidebar-language-fan-clip);
    background: #111;
    border: 1px solid #060606;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.06),
        0 0 0 1px #252525;
}
}


.sidebar-lang-inner-shadow-soft {
.doc-status-lamp.on {
stroke-width:16;
    background: radial-gradient(circle at 38% 32%, #d9ff9d 0%, #7ec43e 45%, #253d18 100%);
opacity:.34;
    box-shadow:
filter:url(#clbi-sidebar-language-shadow-blur);
        inset 0 1px 0 rgba(255,255,255,0.28),
        0 0 0 1px #1a3010,
        0 0 5px rgba(100,200,50,0.45);
}
}


.sidebar-lang-inner-shadow-hard {
.doc-status-lamp.warn {
stroke-width:6;
    background: radial-gradient(circle at 38% 32%, #ffe8b0 0%, #d89a42 45%, #4d2a0d 100%);
opacity:.22;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.28),
        0 0 0 1px #3a1f06,
        0 0 5px rgba(220,140,40,0.45);
}
}


.sidebar-lang-sector-group {
/* =========================================
pointer-events:auto;
  doc-layout
cursor:pointer;
  ========================================= */
}


.sidebar-lang-sector {
.doc-layout {
fill:#101010;
    display: grid;
stroke:#181818;
    grid-template-columns: 200px minmax(0, 1fr) 320px;
stroke-width:1;
    gap: 7px;
vector-effect:non-scaling-stroke;
    align-items: stretch;
cursor:pointer;
    min-height: 620px;
transition:none;
}
}


.sidebar-lang-sector-group:hover .sidebar-lang-sector,
.doc-layout-left,
.sidebar-lang-sector:hover,
.doc-layout-center,
.sidebar-lang-sector.is-center,
.doc-layout-right {
.sidebar-lang-sector.is-far {
    min-width: 0;
fill:#101010;
stroke:#181818;
}
}


.sidebar-lang-sector-label {
.doc-layout-center,
pointer-events:none;
.doc-layout-right {
text-anchor:middle;
    display: flex;
dominant-baseline:middle;
    flex-direction: column;
paint-order:stroke;
    gap: 7px;
stroke:#050505;
stroke-width:2px;
stroke-linejoin:round;
font-size:9px !important;
font-weight:700 !important;
letter-spacing:.15px;
fill:#c8c8c8;
transition:none !important;
}
}


.sidebar-lang-sector-name {
.doc-layout-lower {
display:none;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 7px;
    flex: 1;
}
}


.sidebar-lang-sector-group.is-center .sidebar-lang-sector-label,
/* =========================================
.sidebar-lang-sector-group.is-center .sidebar-lang-sector-name,
  doc-panel
.sidebar-lang-sector-group.is-neighbor .sidebar-lang-sector-label,
  ========================================= */
.sidebar-lang-sector-group.is-neighbor .sidebar-lang-sector-name {
fill:inherit;
}


.sidebar-lang-fixed-depth,
.doc-panel {
.sidebar-lang-fixed-focus,
    position: relative;
.sidebar-lang-rim {
    box-sizing: border-box;
pointer-events:none;
    width: 100%;
clip-path:url(#clbi-sidebar-language-fan-clip);
    min-width: 0;
    background: #1a1a1a;
    border-top: 1px solid #303030;
    border-bottom: 1px solid #080808;
    border-left: 1px solid #222;
    border-right: 1px solid #111;
    border-radius: 2px;
    overflow: hidden;
}
}


.sidebar-lang-fixed-depth {
.doc-panel::before {
fill:url(#clbi-sidebar-language-fixed-depth);
    content: "";
opacity:1;
    position: absolute;
    top: 4px;
    left: 4px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background:
        radial-gradient(circle at 35% 30%, rgba(255,255,255,0.25) 0%, transparent 40%),
        linear-gradient(145deg, #444 0%, #1e1e1e 100%);
    border: 1px solid #080808;
    box-shadow: 0 0 0 1px #2a2a2a;
    pointer-events: none;
    z-index: 10;
}
}


.sidebar-lang-fixed-focus {
.doc-panel::after {
fill:rgba(255,255,255,0.020);
    content: "";
stroke:rgba(255,255,255,0.020);
    position: absolute;
stroke-width:1;
    top: 4px;
    right: 4px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background:
        radial-gradient(circle at 35% 30%, rgba(255,255,255,0.25) 0%, transparent 40%),
        linear-gradient(145deg, #444 0%, #1e1e1e 100%);
    border: 1px solid #080808;
    box-shadow: 0 0 0 1px #2a2a2a;
    pointer-events: none;
    z-index: 10;
}
}


.sidebar-lang-rim {
.doc-panel-title {
fill:none;
    position: relative;
stroke:#202020;
    z-index: 3;
stroke-width:1;
    box-sizing: border-box;
    padding: 6px 10px 5px 10px;
    font-family: 'Galmuri11', sans-serif !important;
    font-size: 10px;
    font-weight: 700;
    text-align: center;
    line-height: 1.2;
    letter-spacing: 0.10em;
    color: #888;
    background: linear-gradient(to bottom, #161616 0%, #121212 100%);
    border-bottom: 1px solid #0d0d0d;
    text-shadow: 0 1px 0 rgba(0,0,0,0.80);
    text-transform: uppercase;
}
}


.sidebar-lang-fixed-pointer {
.doc-panel-heading {
pointer-events:none;
    padding: 10px 18px;
clip-path:url(#clbi-sidebar-language-fan-clip);
    font-size: 11px;
    font-weight: 700;
    color: #7a7a7a;
    letter-spacing: 0.06em;
    text-shadow: 0 1px 0 rgba(0,0,0,0.80);
    position: relative;
    z-index: 3;
}
}


.sidebar-lang-pointer-line {
.doc-panel table {
stroke:#b94a3c;
    width: 100%;
stroke-width:2;
    border-collapse: collapse;
stroke-linecap:square;
    margin: 0;
opacity:.94;
vector-effect:non-scaling-stroke;
}
}


.sidebar-lang-pointer-triangle {
.doc-panel table th,
fill:#b94a3c;
.doc-panel table td {
stroke:#050505;
    background: transparent !important;
stroke-width:1;
    border: none !important;
stroke-linejoin:miter;
    padding: 0 !important;
vector-effect:non-scaling-stroke;
    vertical-align: middle !important;
}
}


.sidebar-lang-apply {
.doc-panel table th[style],
position:absolute;
.doc-panel table td[style] {
left:50%;
    background: revert !important;
top:93px;
    border: revert !important;
z-index:5;
    padding: revert !important;
width:52px;
height:53px;
margin:0;
padding:0;
transform:translateX(-50%);
display:flex;
align-items:center;
justify-content:center;
box-sizing:border-box;
border-radius:26px 26px 0 0;
border:1px solid #050505;
background:#1d1d1d;
color:#e2e2e2;
cursor:pointer;
text-align:center;
line-height:1;
text-shadow:1px 1px 0 #000;
box-shadow:
0 0 0 2px #080808,
0 0 0 4px #1d1d1d,
inset 0 1px 0 #555555,
inset -1px 0 0 #555555,
inset 1px 0 0 #101010,
inset 0 -1px 0 #101010;
overflow:visible;
transition:none !important;
}
}


.sidebar-lang-apply::before,
/* =========================================
.sidebar-lang-apply::after {
  doc-display
content:none;
  ========================================= */
}


.sidebar-lang-apply:hover {
.doc-display {
border-color:#050505;
    position: relative;
background:#1d1d1d;
    z-index: 3;
color:#ffffff;
    box-sizing: border-box;
box-shadow:
    padding: 4px 14px;
0 0 0 2px #080808,
    margin-bottom: 0;
0 0 0 4px #1d1d1d,
    min-height: 90px;
inset 0 1px 0 #555555,
    line-height: 1.8;
inset -1px 0 0 #555555,
    color: #d8d8d8;
inset 1px 0 0 #101010,
    background: #111111;
inset 0 -1px 0 #101010;
    border-top: 1px solid #0a0a0a;
    box-shadow:
        inset 0 2px 6px rgba(0,0,0,0.55),
        inset 0 0 1px rgba(0,0,0,0.80);
}
}


.sidebar-lang-apply:active {
/* =========================================
transform:translateX(-50%) translateY(1px);
  doc-info
background:#101010;
  ========================================= */
box-shadow:
0 0 0 2px #080808,
0 0 0 4px #1d1d1d,
inset 0 1px 0 #101010,
inset -1px 0 0 #101010,
inset 1px 0 0 #555555,
inset 0 -1px 0 #555555;
}


.sidebar-lang-apply.is-disabled,
.doc-info-row {
.sidebar-lang-apply.is-disabled:hover,
    position: relative;
.sidebar-lang-apply.is-disabled:active {
    z-index: 3;
transform:translateX(-50%);
    display: grid;
border-color:#050505;
    grid-template-columns: 68px minmax(0, 1fr);
background:#1d1d1d;
    gap: 8px;
color:#626262;
    align-items: center;
cursor:default;
    margin: 7px 10px 0 10px;
opacity:1;
box-shadow:
0 0 0 2px #080808,
0 0 0 4px #1d1d1d,
inset 0 1px 0 #555555,
inset -1px 0 0 #555555,
inset 1px 0 0 #101010,
inset 0 -1px 0 #101010;
}
}


.sidebar-lang-apply-mark {
.doc-info-key {
position:relative;
    font-size: 10px;
z-index:1;
    font-weight: 700;
display:block;
    color: #7a7a7a;
font-size:20px;
    letter-spacing: 0.06em;
font-weight:700;
    text-shadow: 0 1px 0 rgba(0,0,0,0.70);
line-height:1;
transform:translateY(3px);
}
}


.sidebar-lang-status-panel {
.doc-info-value {
position:absolute;
    position: relative;
bottom:5px;
    overflow: hidden;
width:69px;
    text-align: right;
height:25px;
    border-radius: 2px;
z-index:4;
    background: #0e0e0e;
display:flex;
    color: #d8d8d8;
align-items:center;
    padding: 4px 9px;
justify-content:center;
    font-size: 11px;
padding:3px 5px;
    font-weight: 700;
box-sizing:border-box;
    box-sizing: border-box;
overflow:hidden;
    border-top: 1px solid #0a0a0a;
background:#080808;
    border-bottom: 1px solid #252525;
border:0;
    border-left: 1px solid #111;
color:#c8c8c8;
    border-right: 1px solid #111;
text-align:center;
    box-shadow:
line-height:1;
        inset 0 2px 4px rgba(0,0,0,0.60),
text-shadow:1px 1px 0 #000;
        inset 1px 0 0 rgba(255,255,255,0.015);
box-shadow:
inset 0 1px 0 #101010,
inset -1px 0 0 #101010,
inset 1px 0 0 #555555,
inset 0 -1px 0 #555555;
pointer-events:none;
}
}


.sidebar-lang-status-left {
.doc-info-value::after {
left:calc(50% - var(--lang-fan-half));
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    opacity: 0.15;
    background: repeating-linear-gradient(
        to bottom,
        rgba(255,255,255,0.055) 0px,
        rgba(255,255,255,0.055) 1px,
        transparent 2px,
        transparent 4px
    );
    mix-blend-mode: screen;
}
}


.sidebar-lang-status-right {
.doc-info-block {
right:calc(50% - var(--lang-fan-half));
    padding: 0 8px 6px 8px;
    background: #1a1a1a;
}
}


.sidebar-lang-status-value {
.doc-info-block-label {
display:block;
    display: block;
width:100%;
    padding: 6px 2px 4px 2px;
min-width:0;
    font-size: 10px;
color:#f0f0f0;
    font-weight: 700;
font-family:inherit !important;
    letter-spacing: 0.08em;
font-size:9px;
    text-transform: uppercase;
font-weight:700;
    color: #9a9a9a;
line-height:1;
    text-shadow: 0 1px 0 rgba(0,0,0,0.80);
overflow:hidden;
white-space:nowrap;
text-overflow:ellipsis;
}
}


.sidebar-lang-status-right .sidebar-lang-status-value {
/* =========================================
font-size:8px;
  doc-nav
letter-spacing:.12px;
  ========================================= */
}


.sidebar-lang-status-right.is-ready .sidebar-lang-status-value {
.doc-nav {
color:#f0f0f0;
    height: 100%;
    display: flex;
    flex-direction: column;
}
}


.sidebar-lang-status-right.is-current .sidebar-lang-status-value {
.doc-nav-item {
color:#c8c8c8;
    position: relative;
    z-index: 3;
    box-sizing: border-box;
    width: calc(100% - 16px);
    margin: 5px 8px 0 8px;
    padding: 7px 24px 7px 10px;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.35;
    color: #666;
    background: linear-gradient(to bottom, #232323 0%, #1a1a1a 50%, #161616 100%);
    border-top: 1px solid #2e2e2e;
    border-bottom: 1px solid #0a0a0a;
    border-left: 1px solid #222;
    border-right: 1px solid #111;
    border-radius: 2px;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.025),
        0 1px 0 rgba(255,255,255,0.012);
    cursor: pointer;
    display: block;
    text-decoration: none;
    text-shadow: 0 1px 0 rgba(0,0,0,0.70);
}
}


.sidebar-lang-status-right.is-locked .sidebar-lang-status-value {
.doc-nav-item::after {
color:#8a8a8a;
    content: "›";
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    color: #333;
    font-size: 13px;
}
}


 
.doc-nav-item.active {
/* -----------------------------------------
    color: #e8e8e8;
10. 왼쪽 뉴스 박스
    background: linear-gradient(to bottom, #5a2040 0%, #3d1a2f 52%, #2e1222 100%);
----------------------------------------- */
    border-top-color: #7a3055;
 
    border-bottom-color: #1a0810;
.clbi-left-news-box {
    border-left-color: #6a2848;
position:relative;
    box-shadow:
min-height:0;
        inset 0 1px 0 rgba(255,255,255,0.06),
overflow:hidden;
        0 0 6px rgba(212,90,162,0.10);
}
}


/* 뉴스 박스 타이틀은 언어 박스에서 확정한 내부 라벨 패널 표준을 따른다.
.doc-nav-item.active::after {
  - 컨테이너 상단 기준: 위 4px, 아래 3px
    color: #d45aa2;
  - 외곽 검은 선 없음
  - 광원/그림자는 #555555 / #101010 한 세트만 사용 */
.clbi-left-news-box > .clbi-left-title {
min-height:0;
height:auto;
margin:4px 0 3px;
padding:3px 7px;
box-sizing:border-box;
background:#080808;
border:0;
display:flex;
align-items:center;
gap:6px;
box-shadow:
inset 0 1px 0 #101010,
inset -1px 0 0 #101010,
inset 1px 0 0 #555555,
inset 0 -1px 0 #555555;
}
}


#clbi-title-left-news {
/* =========================================
display:inline-flex;
  doc-status-row
align-items:center;
  ========================================= */
height:100%;
color:#e2e2e2;
font-size:12px;
font-weight:700;
line-height:1;
letter-spacing:0;
}


.news-title-icon,
.doc-status-row {
.news-title-icon.sidebar-title-svg {
    position: relative;
display:inline-flex;
    z-index: 3;
align-items:center;
    display: flex;
justify-content:center;
    align-items: center;
width:16px;
    gap: 7px;
height:16px;
    margin: 5px 8px 0 8px;
font-size:13px;
    padding: 5px 9px;
line-height:1;
    box-sizing: border-box;
color:#e2e2e2 !important;
    font-size: 10px;
flex:0 0 16px;
    font-weight: 700;
vertical-align:middle;
    color: #555;
    background: #111;
    border-top: 1px solid #0a0a0a;
    border-bottom: 1px solid #222;
    border-left: 1px solid #111;
    border-right: 1px solid #111;
    border-radius: 2px;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.50);
    letter-spacing: 0.06em;
    text-shadow: 0 1px 0 rgba(0,0,0,0.80);
}
}


.news-title-icon .profile-svg,
/* =========================================
.news-title-icon.sidebar-title-svg .profile-svg {
  doc-link
width:16px;
  ========================================= */
height:16px;
display:block;
stroke:currentColor;
}


/* 뉴스 컨텐츠 슬롯은 언어 박스와 같은 3px 내부 기준을 따른다. */
.doc-link {
.clbi-news-box {
    position: relative;
position:relative;
    z-index: 3;
padding:3px !important;
    box-sizing: border-box;
box-sizing:border-box;
    margin: 5px 10px 0 10px;
overflow:hidden;
    padding: 6px 10px 6px 14px;
background:#080808;
    font-size: 11px;
    font-weight: 700;
    color: #888;
    background: linear-gradient(to bottom, #1a1a1a 0%, #151515 100%);
    border-top: 1px solid #242424;
    border-bottom: 1px solid #080808;
    border-left: 1px solid #1e1e1e;
    border-right: 1px solid #111;
    border-radius: 2px;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.018);
    display: block;
    text-decoration: none;
    cursor: pointer;
    text-shadow: 0 1px 0 rgba(0,0,0,0.70);
}
}


/* 섹션 타이틀: 컨텐츠 슬롯 내부의 라벨 패널 */
.doc-link::before {
.news-feed-title {
    content: "";
position:relative;
    position: absolute;
display:flex;
    left: 5px;
align-items:center;
    top: 20%;
height:auto;
    bottom: 20%;
min-height:22px;
    width: 2px;
margin:0 0 2px 0;
    background: #2e2e2e;
padding:3px 7px 3px 16px;
    border-radius: 1px;
box-sizing:border-box;
background:#1d1d1d;
border:1px solid #050505;
color:#c8c8c8;
font-size:9px;
font-weight:700;
line-height:1;
letter-spacing:0.55px;
text-shadow:1px 1px 0 #000;
box-shadow:
inset 0 1px 0 #555555,
inset -1px 0 0 #555555,
inset 1px 0 0 #101010,
inset 0 -1px 0 #101010;
}
}


.news-feed-title::before {
.doc-link:hover {
content:"";
    color: #c0c0c0;
position:absolute;
    background: linear-gradient(to bottom, #222 0%, #1a1a1a 100%);
left:7px;
    border-top-color: #333;
top:50%;
width:4px;
height:8px;
transform:translateY(-50%);
background:#c8c8c8;
box-shadow:1px 1px 0 #050505;
opacity:0.85;
}
}


#clbi-left-news-changelog-title {
.doc-link:hover::before {
margin-top:0;
    background: #854369;
}
}


#clbi-left-news-recent-title {
/* =========================================
margin-top:2px;
  doc-tab-bar
}
   ========================================= */
 
/* 섹션 본체는 별도 프레임을 만들지 않는 배치 래퍼다. */
.news-left-changelog-feed,
.news-left-recent-feed {
background:transparent;
border:0;
box-shadow:none;
box-sizing:border-box;
}
 
.news-left-changelog-feed {
padding:0;
}
 
.news-left-recent-feed {
padding:0;
color:#9a9a9a;
font-size:11px;
line-height:1.55;
}
 
/* 뉴스 박스 하단 여백은 항목 수 계산 대신 이미지 링크 슬롯이 흡수한다.
   기본 파일명은 Side-news-fill-001.png 이며, 다른 파일을 쓰려면 Common.js의 src만 교체한다. */
.news-fill-image-slot {
position:relative;
display:block;
min-height:0;
margin:2px 0 0;
box-sizing:border-box;
background:#080808;
border:1px solid #050505;
color:#c8c8c8 !important;
text-decoration:none !important;
overflow:hidden;
cursor:pointer;
box-shadow:
inset 0 1px 0 #555555,
inset -1px 0 0 #555555,
inset 1px 0 0 #101010,
inset 0 -1px 0 #101010;
}
 
.news-fill-image-slot:hover {
color:#ffffff !important;
}
 
.news-fill-image-slot:active {
background:#060606;
}
 
.news-fill-image-frame {
position:relative;
width:100%;
height:100%;
min-height:0;
box-sizing:border-box;
background:#060606;
overflow:hidden;
}
 
.news-fill-image {
display:block;
width:100%;
height:100%;
background:#e2e2e2;
-webkit-mask-image:var(--news-fill-image-url);
mask-image:var(--news-fill-image-url);
-webkit-mask-repeat:no-repeat;
mask-repeat:no-repeat;
-webkit-mask-position:center center;
mask-position:center center;
-webkit-mask-size:cover;
mask-size:cover;
transition:background-color 0.12s ease;
}
 
.news-fill-image-slot:hover .news-fill-image {
background:#ffffff;
}
 
.news-fill-image-slot:active .news-fill-image {
background:#c8c8c8;
}
 
.news-fill-image-probe {
position:absolute;
width:1px;
height:1px;
opacity:0;
pointer-events:none;
}
 
.news-fill-image-slot.is-empty .news-fill-image {
display:none;
}
 
.news-fill-image-slot.is-empty .news-fill-image-frame::before {
content:"";
position:absolute;
inset:0;
background:
repeating-linear-gradient(
45deg,
rgba(255,255,255,0.025) 0 1px,
transparent 1px 6px
),
#060606;
opacity:0.65;
pointer-events:none;
}
 
.news-fill-image-slot.is-empty:hover .news-fill-image-frame::before {
opacity:0.82;
}
 
.news-divider {
display:none;
}
 
/* 버튼형 항목: 단색 표면 + 최외곽 검은 선 + 동일 광원 세트 */
.news-post-item,
.news-recent-item {
position:relative;
display:grid !important;
align-items:center;
gap:6px;
margin:0 0 2px;
box-sizing:border-box;
background:#1d1d1d;
border:1px solid #050505;
color:#c8c8c8 !important;
overflow:hidden;
text-decoration:none !important;
cursor:pointer;
box-shadow:
inset 0 1px 0 #555555,
inset -1px 0 0 #555555,
inset 1px 0 0 #101010,
inset 0 -1px 0 #101010;
}
 
.news-post-item {
grid-template-columns:minmax(0,1fr) 14px;
min-height:26px;
padding:0 6px;
}
 
.news-recent-item {
grid-template-columns:28px minmax(0,1fr) auto;
min-height:36px;
margin:0 0 2px;
padding:4px 6px 4px 5px;
}


.news-post-item:last-child,
.doc-tab-bar {
.news-recent-item:last-child {
    position: relative;
margin-bottom:0;
    z-index: 3;
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 5px 6px;
    background: linear-gradient(to bottom, #141414 0%, #111 100%);
    border-top: 1px solid #0a0a0a;
    box-shadow: inset 0 1px 0 rgba(0,0,0,0.60);
}
}


.news-post-item:hover,
.doc-tab-key {
.news-recent-item:hover {
    display: flex;
background:#1d1d1d;
    align-items: center;
color:#ffffff !important;
    justify-content: center;
    flex: 0 0 auto;
    gap: 3px;
    padding: 0 4px;
    user-select: none;
    white-space: nowrap;
}
}


.news-post-item:active,
.doc-tab-key kbd {
.news-recent-item:active {
    display: inline-flex;
background:#101010;
    align-items: center;
box-shadow:
    justify-content: center;
inset 0 1px 0 #101010,
    width: 30px;
inset -1px 0 0 #101010,
    height: 30px;
inset 1px 0 0 #555555,
    font-size: 10px;
inset 0 -1px 0 #555555;
    font-weight: 700;
    font-family: inherit;
    color: #e2e2e2;
    background: linear-gradient(to bottom, #2a2a2a 0%, #1e1e1e 100%);
    border-top: 1px solid #3a3a3a;
    border-bottom: 1px solid #080808;
    border-left: 1px solid #2e2e2e;
    border-right: 1px solid #111;
    border-radius: 2px;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.06),
        0 1px 0 rgba(255,255,255,0.02);
    text-shadow: 0 1px 0 rgba(0,0,0,0.80);
}
}


.news-recent-avatar {
.doc-tab-key .doc-tab-arrow {
display:block;
    font-size: 10px;
width:25px;
    color: #333;
height:25px;
    line-height: 1;
object-fit:cover;
object-position:center;
background:#070707;
border:1px solid #050505;
box-shadow:
inset 0 1px 0 #555555,
inset -1px 0 0 #555555,
inset 1px 0 0 #101010,
inset 0 -1px 0 #101010;
box-sizing:border-box;
}
}


.news-recent-item:hover .news-recent-avatar {
.doc-tab {
border-color:#050505;
    flex: 1;
    box-sizing: border-box;
    padding: 6px 4px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: #e2e2e2;
    background: linear-gradient(to bottom, #1e1e1e 0%, #181818 100%);
    border-top: 1px solid #2a2a2a;
    border-bottom: 1px solid #080808;
    border-left: 1px solid #222;
    border-right: 1px solid #111;
    border-radius: 2px;
    cursor: pointer;
    text-align: center;
    text-shadow: 0 1px 0 rgba(0,0,0,0.80);
    text-transform: uppercase;
    user-select: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
}


.news-recent-main {
.doc-tab:hover {
min-width:0;
    color: #ffffff;
display:flex;
    background: linear-gradient(to bottom, #242424 0%, #1a1a1a 100%);
flex-direction:column;
    border-top-color: #333;
justify-content:center;
gap:1px;
}
}


.news-post-title-wrap,
.doc-tab.active {
.news-recent-title-wrap {
    color: #ffffff;
min-width:0;
    background: linear-gradient(to bottom, #2e1222 0%, #3d1a2f 52%, #5a2040 100%);
overflow:hidden;
    border-top-color: #7a3055;
white-space:nowrap;
    border-bottom-color: #1a0810;
mask-image:linear-gradient(to right, black 88%, transparent 100%);
    border-left-color: #6a2848;
-webkit-mask-image:linear-gradient(to right, black 88%, transparent 100%);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.06);
}
 
.news-post-title-wrap {
display:flex;
align-items:center;
}
 
.news-post-title,
.news-recent-title {
display:inline-block;
max-width:none;
overflow:visible;
color:#e2e2e2 !important;
font-size:12px;
font-weight:700;
line-height:1.18;
white-space:nowrap;
text-decoration:none !important;
text-shadow:1px 1px 0 #000;
}
 
.news-post-item:hover .news-post-title,
.news-recent-item:hover .news-recent-title {
color:#ffffff !important;
}
 
.news-post-arrow {
display:inline-flex;
align-items:center;
justify-content:center;
width:12px;
height:12px;
margin-left:5px;
color:#8a8a8a;
font-size:11px;
line-height:1;
vertical-align:-1px;
flex:0 0 auto;
}
 
.news-post-item:hover .news-post-arrow {
color:#ffffff;
}
 
.news-recent-meta {
display:flex;
align-items:center;
min-width:0;
height:10px;
line-height:1;
}
 
.news-recent-user {
display:block !important;
min-width:0;
max-width:100%;
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
color:#7a7a7a !important;
font-size:8.5px;
font-weight:700;
line-height:1;
text-decoration:none !important;
text-shadow:1px 1px 0 #000;
}
 
.news-recent-item:hover .news-recent-user {
color:#b0b0b0 !important;
}
 
/* 항목 내부의 작은 시간/상태 버튼: 외곽선 없이 우물 방향 내부선만 사용 */
.news-post-tag,
.news-recent-time {
display:inline-flex;
align-items:center;
justify-content:center;
height:16px;
min-width:34px;
padding:0 4px;
box-sizing:border-box;
background:#080808;
border:0;
color:#c8c8c8 !important;
font-size:9px;
font-weight:700;
line-height:1;
white-space:nowrap;
text-shadow:1px 1px 0 #000;
box-shadow:
inset 0 1px 0 #101010,
inset -1px 0 0 #101010,
inset 1px 0 0 #555555,
inset 0 -1px 0 #555555;
}
 
.news-post-jump,
.site-info-policy-arrow {
position:relative;
top:-2px;
display:inline-flex;
align-items:center;
justify-content:center;
justify-self:end;
width:14px;
min-width:14px;
height:100%;
padding:0;
box-sizing:border-box;
background:transparent;
border:0;
color:#8a8a8a !important;
font-size:14px;
font-weight:700;
line-height:1;
white-space:nowrap;
text-shadow:1px 1px 0 #000;
box-shadow:none;
}
 
.news-post-item:hover .news-post-tag,
.news-recent-item:hover .news-recent-time {
background:#101010;
color:#e2e2e2 !important;
}
 
.news-post-item:hover .news-post-jump,
.site-info-policy-button:hover .site-info-policy-arrow {
background:transparent;
color:#ffffff !important;
box-shadow:none;
}
 
.news-recent-item:active .news-recent-time {
background:#080808;
color:#c8c8c8 !important;
box-shadow:
inset 0 1px 0 #101010,
inset -1px 0 0 #101010,
inset 1px 0 0 #555555,
inset 0 -1px 0 #555555;
}
 
.news-post-item:active .news-post-jump,
.site-info-policy-button:active .site-info-policy-arrow {
background:transparent;
color:#c8c8c8 !important;
box-shadow:none;
}
 
.news-post-item *,
.news-recent-item *,
.site-info-policy-button * {
pointer-events:none;
}
 
/* -----------------------------------------
12. 왼쪽 목차
----------------------------------------- */
 
#side-toc-box .toc-sidebar-content {
padding:6px 8px 8px;
}
 
.generated-toc {
margin:0 !important;
padding:0 !important;
list-style:none !important;
}
 
.generated-toc li {
margin:0 !important;
padding:0 !important;
}
 
.generated-toc a {
display:block !important;
height:23px;
line-height:23px;
padding:0 2px;
border-bottom:1px solid #202020;
color:#c8c8c8 !important;
font-size:11px;
font-weight:700;
text-decoration:none !important;
text-shadow:1px 1px 0 #000;
box-sizing:border-box;
overflow:hidden;
}
 
.generated-toc li:first-child a {
border-top:1px solid #202020;
}
 
.generated-toc a:hover {
background:#101010;
color:#ffffff !important;
}
 
.generated-toc .toc-level-3 a {
padding-left:12px;
font-weight:600;
color:#9f9f9f !important;
}
 
.toc-scroll-wrap {
display:block;
position:relative;
overflow:hidden;
white-space:nowrap;
}
 
.toc-scroll-text {
display:inline-block;
white-space:nowrap;
}
 
.toc-scroll-wrap.is-scrolling::after {
content:"";
position:absolute;
top:0;
right:0;
bottom:0;
width:18px;
pointer-events:none;
background:linear-gradient(to right, transparent, #080808);
}
 
/* -----------------------------------------
14. 하단 푸터
----------------------------------------- */
 
footer,
.liberty-footer {
display:none !important;
}
}


/* =========================================
/* =========================================
15. 상단 네비게이션 바
  doc-footer
========================================= */
  ========================================= */
 
/*
상단 네비바 공식
-----------------------------------------
- 전체는 하나의 각진 조작 패널이다.
- 탭 하나하나는 독립 버튼 외장보다 패널 내부 구획에 가깝다.
- radius는 사용하지 않는다.
- 보라색 테마를 쓰지 않는다.
- 검색창도 같은 금속 인풋으로 정리한다.
*/
 
#clbi-top-nav-wrap {
width:var(--layout-shell-w) !important;
max-width:var(--layout-shell-w) !important;
min-width:var(--layout-shell-w) !important;
margin:0 auto !important;
padding:var(--layout-gap) 0 0 !important;
box-sizing:border-box !important;
}
 
#clbi-top-nav,
#clbi-bottom-nav {
position:relative;
width:100%;
background:#171717;
border:1px solid;
border-color:
#555555
#2b2b2b
#050505
#2b2b2b;
border-radius:0;
overflow:hidden;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.040),
inset 0 -1px 0 rgba(0,0,0,0.70),
0 6px 18px rgba(0,0,0,0.34);
margin-bottom:0;
}
 
#clbi-top-nav-main,
#clbi-bottom-nav-main {
position:relative;
display:flex;
align-items:stretch;
width:100%;
min-height:38px;
}
 
#clbi-top-nav-logo,
#clbi-bottom-nav-logo {
display:flex;
align-items:center;
padding:0 8px;
flex-shrink:0;
}
 
#clbi-top-nav-logo img,
#clbi-bottom-nav-logo img {
height:36px;
width:auto;
display:block;
}
 
/* -----------------------------------------
16. 상단 네비 탭
----------------------------------------- */
 
#clbi-top-nav-tabs,
#clbi-bottom-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:38px;
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:38px;
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;
filter:grayscale(0.18) contrast(1.05);
}
 
.clbi-top-nav-item:hover .clbi-tnav-icon,
.clbi-top-nav-item.clbi-tnav-active .clbi-tnav-icon {
opacity:1;
filter:grayscale(0) contrast(1.08);
}
 
/* -----------------------------------------
17. 언어 버튼
----------------------------------------- */
 
.clbi-tnav-lang {
flex-direction:column;
justify-content:center;
align-items:center;
width:54px;
min-height:38px;
gap:1px;
padding:4px 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;
}
 
/* -----------------------------------------
18. 상단 검색
----------------------------------------- */
 
#clbi-top-nav-search,
#clbi-bottom-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,
#clbi-bottom-search-input {
width:240px;
height:26px;
background:#070707;
border:1px solid #202020;
color:#e2e2e2;
padding:0 10px;
border-radius:0;
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,
#clbi-bottom-search-input:focus {
border-color:#555555;
background:#0c0c0c;
width:320px;
}
 
#clbi-top-nav-right,
#clbi-bottom-nav-right {
margin-left:auto;
display:flex;
align-items:stretch;
border-left:1px solid #202020;
}
 
 
 
/* -----------------------------------------
18-1. 대문 전용 상·하단 네비 최소화
----------------------------------------- */
 
/*
대문에서는 본문 내부에 카테고리 네비와 대문 전용 조작 구조가 이미 있으므로,
상단·하단 네비바는 검색 슬롯만 남긴다.
다른 문서에서는 기존 버튼 구성을 그대로 유지한다.
*/
 
body.clbi-main-page #clbi-top-nav-tabs,
body.clbi-main-page #clbi-bottom-nav-tabs,
body.clbi-main-page #clbi-top-nav-right,
body.clbi-main-page #clbi-bottom-nav-right,
body.clbi-main-page #clbi-sub-worldbuilding,
body.clbi-main-page #clbi-bottom-sub-worldbuilding {
display:none !important;
}


body.clbi-main-page #clbi-top-search-input,
.doc-footer {
body.clbi-main-page #clbi-bottom-search-input {
    position: relative;
width:288px;
    display: grid;
    grid-template-columns: 1fr 110px 44px 110px 200px;
    gap: 12px;
    align-items: center;
    height: 44px;
    margin-top: 7px;
    padding: 0 10px;
    box-sizing: border-box;
    background: linear-gradient(to bottom, #282828 0%, #1a1a1a 40%, #161616 100%);
    box-shadow:
        inset 1px 0 0 #494949,
        inset 0 -1px 0 #555,
        inset 0 2px 6px rgba(0,0,0,0.55);
    border-top: 1px solid #3a3a3a;
    border-bottom: 1px solid #0a0a0a;
    border-left: 1px solid #222;
    border-right: 1px solid #222;
    border-radius: 2px;
}
}


body.clbi-main-page #clbi-top-search-input:focus,
.doc-footer::before {
body.clbi-main-page #clbi-bottom-search-input:focus {
    content: "";
width:384px;
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0.05;
    background: repeating-linear-gradient(
        135deg,
        rgba(255,255,255,0.08) 0px,
        rgba(255,255,255,0.08) 1px,
        transparent 1px,
        transparent 4px
    );
}
}


/* -----------------------------------------
.doc-footer-sliders {
19. 세계관 펼침 영역
    display: flex;
----------------------------------------- */
    align-items: center;
 
    gap: 10px;
#clbi-sub-worldbuilding,
#clbi-bottom-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,
.doc-slider {
#clbi-bottom-sub-worldbuilding.worldbuilding-open {
    position: relative;
height:38px;
    width: 80px;
border-top-width:1px;
    height: 6px;
transition:
    background: #0a0a0a;
height 180ms ease,
    border-top: 1px solid #080808;
border-top-width 0ms linear 0ms;
    border-bottom: 1px solid #222;
    border-radius: 99px;
    box-shadow: inset 0 1px 3px rgba(0,0,0,0.70);
}
}


#clbi-sub-worldbuilding-inner,
.doc-slider.short {
#clbi-bottom-sub-worldbuilding-inner {
    width: 54px;
height:38px;
overflow:hidden;
}
}


.clbi-tnav-sub-list {
.doc-slider::after {
display:flex;
    content: "";
align-items:stretch;
    position: absolute;
flex-wrap:nowrap;
    top: -6px;
height:38px;
    left: 48%;
padding:0;
    width: 10px;
margin:0;
    height: 18px;
    border-radius: 2px;
    background: linear-gradient(to bottom, #c8c0b2 0%, #8a8278 100%);
    border-top: 1px solid #d8d0c2;
    border-bottom: 1px solid #2a2622;
    border-left: 1px solid #aaa49c;
    border-right: 1px solid #5a544e;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.30),
        0 1px 3px rgba(0,0,0,0.40);
}
}


.clbi-tnav-sub-item {
.doc-date {
position:relative;
    box-sizing: border-box;
display:flex;
    height: 26px;
align-items:center;
    display: flex;
justify-content:center;
    align-items: center;
height:38px;
    justify-content: center;
padding:0 15px 1px 15px;
    font-size: 10px;
background:transparent;
    font-weight: 700;
color:#c8c8c8 !important;
    letter-spacing: 0.12em;
font-size:11px;
    color: #d45aa2;
font-weight:700;
    background: #0a0a0a;
line-height:1;
    border-top: 1px solid #080808;
white-space:nowrap;
    border-bottom: 1px solid #2a1a22;
text-decoration:none !important;
    border-left: 1px solid #0e0e0e;
box-sizing:border-box;
    border-right: 1px solid #0e0e0e;
transition:
    border-radius: 2px;
background 0.12s,
    box-shadow: inset 0 2px 5px rgba(0,0,0,0.70);
color 0.12s,
    text-shadow: 0 0 8px rgba(212,90,162,0.40);
box-shadow 0.12s;
text-shadow:1px 1px 0 #000;
}
}


.clbi-tnav-sub-item::after {
.doc-knob {
content:"";
    justify-self: center;
position:absolute;
    width: 32px;
top:6px;
    height: 32px;
right:0;
    border-radius: 50%;
bottom:6px;
    background:
width:1px;
        radial-gradient(circle at 36% 28%, rgba(255,255,255,0.30) 0%, transparent 24%),
background:#202020;
        linear-gradient(145deg, #c8bfb0 0%, #8a8278 48%, #464039 100%);
pointer-events:none;
    border: 1px solid #2a2520;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.30),
        inset 0 -2px 0 rgba(0,0,0,0.22),
        0 2px 5px rgba(0,0,0,0.50);
}
}


.clbi-tnav-sub-item:last-child::after {
.doc-keys {
display:none;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 5px;
}
}


.clbi-tnav-sub-item:hover {
.doc-keys span {
background:#151515;
    height: 22px;
color:#ffffff !important;
    border-radius: 2px;
box-shadow:
    background: linear-gradient(to bottom, #d8d4ca 0%, #a09890 55%, #6e6660 100%);
inset 0 1px 0 rgba(255,255,255,0.030),
    border-top: 1px solid #e0dcd2;
inset 0 -1px 0 rgba(0,0,0,0.60);
    border-bottom: 1px solid #1e1c18;
    border-left: 1px solid #b8b0a8;
    border-right: 1px solid #4a4440;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.40),
        0 1px 2px rgba(0,0,0,0.30);
}
}


/* 상단 네비: hover/active 인접 경계선 중복 방지 */
.doc-keys span.red {
.clbi-top-nav-item:hover + .clbi-top-nav-item.clbi-tnav-active {
    background: linear-gradient(to bottom, #cc6058 0%, #922e28 55%, #521410 100%);
border-left-color:transparent;
    border-top-color: #d87070;
    border-bottom-color: #1e0808;
}
}


.clbi-top-nav-item.clbi-tnav-active + .clbi-top-nav-item:hover {
.doc-keys span.amber {
border-left-color:transparent;
    background: linear-gradient(to bottom, #e4bc6c 0%, #b87c28 55%, #6c3e08 100%);
    border-top-color: #ecd080;
    border-bottom-color: #201008;
}
}


/* =========================================
/* =========================================
Progress System UI
  Responsive
MediaWiki:Layout.css controlled frontend
  ========================================= */
========================================= */
/* =========================================
Progress System
========================================= */
 
.profile-progress-block {
--xp-base-a:#5f9f68;
--xp-base-b:#9acb7a;
--xp-gain-a:#238c84;
--xp-gain-b:#54c7bb;
--xp-glow:rgba(35,140,132,0.20);
position:relative;
margin:7px 7px 0;
padding:6px;
box-sizing:border-box;
background:#080808;
border:1px solid;
border-color:
#333333
#202020
#050505
#202020;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.020),
inset 0 -1px 0 rgba(0,0,0,0.58);
}
 
.profile-progress-block.is-max-level {
--xp-base-a:#b58a3a;
--xp-base-b:#f0ce75;
--xp-gain-a:#d9aa42;
--xp-gain-b:#fff0a8;
--xp-glow:rgba(224,190,104,0.30);
}
 
.profile-progress-block.is-max-level .progress-level-label {
color:#f0ce75;
text-shadow:
1px 1px 0 #000,
0 0 7px rgba(224,190,104,0.28);
}
 
.profile-progress-block.is-max-level .progress-total-xp {
color:#e0be68;
}
 
.profile-progress-block.is-max-level .progress-xp-bar {
border-color:#4a3b18;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.040),
inset 0 -1px 0 rgba(0,0,0,0.62),
0 0 6px rgba(224,190,104,0.18);
}


.profile-progress-block.is-max-level .progress-xp-next {
@media screen and (max-width: 1280px) {
color:#e0be68;
    .doc-layout {
}
        grid-template-columns: 210px minmax(0, 1fr);
    }


.progress-panel-fallback-body {
    .doc-layout-right {
padding:0 !important;
        grid-column: 1 / -1;
}
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        gap: 7px;
    }


.progress-title-row {
    .doc-footer {
min-height:16px;
        grid-template-columns: 1fr 110px 44px 110px;
margin:0 0 6px;
    }
padding:0 6px;
display:flex;
align-items:center;
justify-content:center;
box-sizing:border-box;
background:#141414;
border:1px solid;
border-color:
#333333
#202020
#181818
#202020;
color:#c8c8c8;
font-size:9px;
font-weight:700;
line-height:1;
text-shadow:1px 1px 0 #000;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.040);
}


.progress-title-row[hidden] {
    .doc-keys {
display:none !important;
        display: none;
    }
}
}


.progress-level-row,
@media screen and (max-width: 980px) {
.progress-sub-row {
    .doc-layout,
display:flex;
    .doc-layout-lower,
align-items:center;
    .doc-layout-right {
justify-content:space-between;
        grid-template-columns: 1fr;
gap:6px;
    }
min-width:0;
}


.progress-level-row {
    .doc-footer {
margin-bottom:5px;
        grid-template-columns: 1fr;
}
        height: auto;
        padding: 8px 10px;
    }


.progress-level-label {
    .doc-footer-sliders {
color:#e2e2e2;
        justify-content: center;
font-size:14px;
    }
font-weight:700;
line-height:1;
letter-spacing:0.2px;
text-shadow:
1px 1px 0 #000,
0 0 5px rgba(154,203,122,0.14);
}


.progress-total-xp {
    .doc-date,
color:#b8c9b4;
    .doc-knob {
font-size:10px;
        justify-self: center;
font-weight:700;
    }
line-height:1;
white-space:nowrap;
text-shadow:1px 1px 0 #000;
}
}
/* =====================================================================
  Nations & Factions — original-structure panel remake
  ---------------------------------------------------------------------
  This block intentionally keeps the original MediaWiki table parsing.
  It only adds the visual hierarchy:
  1) one large document panel,
  2) flat labels on the panel surface,
  3) recessed wells only where real content sits.
  ===================================================================== */


.progress-xp-bar {
body.page-국가_및_조합 .liberty-content-main .mw-parser-output > .clbi-nf-board,
position:relative;
body.page-Nations_\&_Factions .liberty-content-main .mw-parser-output > .clbi-nf-board {
width:100%;
    margin: 0 !important;
height:10px;
    padding: 4px !important;
margin:0 0 5px;
    box-sizing: border-box !important;
box-sizing:border-box;
    background: #1d1d1d !important;
background:#070707;
    border: 1px solid #050505 !important;
border:1px solid #202020;
    border-top-color: #555555 !important;
box-shadow:
    border-left-color: #2b2b2b !important;
inset 0 1px 0 rgba(255,255,255,0.025),
    border-right-color: #2b2b2b !important;
inset 0 -1px 0 rgba(0,0,0,0.60);
    border-bottom-color: #050505 !important;
overflow:hidden;
    border-radius: 0 !important;
isolation:isolate;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.040),
        inset 0 -1px 0 rgba(0,0,0,0.72),
        inset 1px 0 0 rgba(255,255,255,0.012),
        inset -1px 0 0 rgba(0,0,0,0.38) !important;
    color: #e2e2e2 !important;
}
}


.progress-xp-bar::before {
body.page-국가_및_조합 .clbi-nf-board *,
content:"";
body.page-Nations_\&_Factions .clbi-nf-board * {
position:absolute;
    box-sizing: border-box;
inset:0;
z-index:4;
pointer-events:none;
background:
linear-gradient(to bottom, rgba(255,255,255,0.08), transparent 45%, rgba(0,0,0,0.18));
}
}


.progress-xp-fill,
body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table,
.progress-xp-gain {
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table {
position:absolute;
    width: 100% !important;
left:0;
    max-width: none !important;
top:0;
    margin: 0 auto !important;
bottom:0;
    background: #1d1d1d !important;
width:0;
    color: #e2e2e2 !important;
    border: 0 !important;
    border-collapse: separate !important;
    border-spacing: 2px !important;
    font-size: 8.5pt !important;
    line-height: 1.45 !important;
}
}


.progress-xp-gain {
/* Top-level cells stay as panel surface by default. Do not convert table layout. */
z-index:1;
body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table > tbody > tr > th,
opacity:0;
body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table > tbody > tr > td,
background:linear-gradient(to bottom, var(--xp-gain-b) 0%, var(--xp-gain-a) 58%, #155c58 100%);
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table > tbody > tr > th,
box-shadow:
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table > tbody > tr > td {
inset 0 1px 0 rgba(255,255,255,0.18),
    background: #1d1d1d !important;
inset 0 -1px 0 rgba(0,0,0,0.46),
    border: 0 !important;
0 0 5px var(--xp-glow);
    padding: 0 !important;
    color: #e2e2e2 !important;
    vertical-align: middle !important;
}
}


.progress-xp-fill {
/* Section labels: 판도 / 당대 주요 세력 / 당대 존재 국가. Flat text on surface, not a well. */
z-index:2;
body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table > tbody > tr > th[colspan="5"] > div[style*="line-height:1.5"],
background:linear-gradient(to bottom, var(--xp-base-b) 0%, var(--xp-base-a) 58%, #3f7346 100%);
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table > tbody > tr > th[colspan="5"] > div[style*="line-height:1.5"] {
box-shadow:
    min-height: 22px !important;
inset 0 1px 0 rgba(255,255,255,0.24),
    padding: 3px 7px !important;
inset 0 -1px 0 rgba(0,0,0,0.42);
    display: flex !important;
transition:width 260ms ease;
    align-items: center !important;
    justify-content: center !important;
    background: transparent !important;
    border: 0 !important;
    color: #e2e2e2 !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    letter-spacing: .25px !important;
    text-align: center !important;
    text-shadow: 1px 1px 0 #000 !important;
    box-shadow: none !important;
}
}


.progress-sub-row {
/* Year switch bar: a flat control strip, still using the original collapsible toggles. */
margin-bottom:6px;
body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table > tbody > tr:first-child > th[colspan="5"] > div[id^="mw-customcollapsible-y"] > div[style*="justify-content:space-between"],
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table > tbody > tr:first-child > th[colspan="5"] > div[id^="mw-customcollapsible-y"] > div[style*="justify-content:space-between"] {
    min-height: 24px !important;
    padding: 0 7px !important;
    top: 0 !important;
    background: #1d1d1d !important;
    border: 0 !important;
    border-radius: 0 !important;
    color: #e2e2e2 !important;
    box-shadow: none !important;
    text-shadow: 1px 1px 0 #000 !important;
}
}


.progress-xp-next,
body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table > tbody > tr:first-child > th[colspan="5"] > div[id^="mw-customcollapsible-y"] > div[style*="justify-content:space-between"] span:first-child,
.progress-daily-xp,
body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table > tbody > tr:first-child > th[colspan="5"] > div[id^="mw-customcollapsible-y"] > div[style*="justify-content:space-between"] span:last-child,
.progress-discovery-row {
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table > tbody > tr:first-child > th[colspan="5"] > div[id^="mw-customcollapsible-y"] > div[style*="justify-content:space-between"] span:first-child,
color:#8a8a8a;
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table > tbody > tr:first-child > th[colspan="5"] > div[id^="mw-customcollapsible-y"] > div[style*="justify-content:space-between"] span:last-child {
font-size:9px;
    color: #8a8a8a !important;
font-weight:700;
line-height:1;
text-shadow:1px 1px 0 #000;
}
}


.progress-daily-xp {
/* Content wells: map side controls and map body. */
white-space:nowrap;
body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table > tbody > tr > th[width="5%"],
body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table > tbody > tr > th[colspan="3"][width="90%"],
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table > tbody > tr > th[width="5%"],
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table > tbody > tr > th[colspan="3"][width="90%"] {
    padding: 3px !important;
    background: #080808 !important;
    border: 0 !important;
    box-shadow:
        inset 0 1px 0 #101010,
        inset -1px 0 0 #101010,
        inset 1px 0 0 #555555,
        inset 0 -1px 0 #555555 !important;
}
}


.progress-discovery-row {
body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table > tbody > tr > th[colspan="3"][width="90%"] img,
height:18px;
body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table > tbody > tr > th[colspan="3"][width="90%"] .mw-file-element,
display:flex;
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table > tbody > tr > th[colspan="3"][width="90%"] img,
align-items:center;
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table > tbody > tr > th[colspan="3"][width="90%"] .mw-file-element {
justify-content:center;
    max-width: 100% !important;
background:#141414;
    height: auto !important;
border:1px solid;
border-color:
#333333
#202020
#181818
#202020;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.040);
}
}


#progress-toast-root {
/* Major faction cards sit in wells, but their own faction color remains data/content. */
position:fixed;
body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table > tbody > tr > th[width="30%"],
right:18px;
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table > tbody > tr > th[width="30%"] {
bottom:18px;
    padding: 3px !important;
z-index:100000;
    background: #080808 !important;
display:flex;
    border: 0 !important;
flex-direction:column;
    box-shadow:
gap:6px;
        inset 0 1px 0 #101010,
pointer-events:none;
        inset -1px 0 0 #101010,
        inset 1px 0 0 #555555,
        inset 0 -1px 0 #555555 !important;
}
}


.progress-toast {
body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table > tbody > tr > th[width="30%"] div[style*="height:140px"],
min-width:220px;
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table > tbody > tr > th[width="30%"] div[style*="height:140px"] {
max-width:320px;
    border-radius: 0 !important;
padding:8px 10px;
    border: 1px solid #050505 !important;
box-sizing:border-box;
    box-shadow:
background:#171717;
        inset 0 1px 0 rgba(255,255,255,.055),
border:1px solid;
        inset 0 -1px 0 rgba(0,0,0,.72) !important;
border-color:#555555 #2b2b2b #050505 #2b2b2b;
color:#e2e2e2;
font-size:11px;
font-weight:700;
line-height:1.35;
text-shadow:1px 1px 0 #000;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.040),
inset 0 -1px 0 rgba(0,0,0,0.72),
0 6px 18px rgba(0,0,0,0.42);
opacity:0;
transform:translateY(8px);
transition:opacity 160ms ease, transform 160ms ease;
}
}


.progress-toast.is-visible {
/* Whole nation-list sector is a well. Inside it, region labels are flat and entries are recessed. */
opacity:1;
body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table > tbody > tr > td[colspan="10"],
transform:translateY(0);
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table > tbody > tr > td[colspan="10"] {
    padding: 3px !important;
    background: #080808 !important;
    border: 0 !important;
    box-shadow:
        inset 0 1px 0 #101010,
        inset -1px 0 0 #101010,
        inset 1px 0 0 #555555,
        inset 0 -1px 0 #555555 !important;
}
}


/* -----------------------------------------
body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table > tbody > tr > td[colspan="10"] > div > table.wikitable,
Analog hover normalization
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table > tbody > tr > td[colspan="10"] > div > table.wikitable {
----------------------------------------- */
    width: 100% !important;
#clbi-top-nav .clbi-top-nav-item,
    margin: 0 !important;
#clbi-top-nav .clbi-top-nav-item *,
    background: #080808 !important;
#clbi-bottom-nav .clbi-top-nav-item,
    border: 0 !important;
#clbi-bottom-nav .clbi-top-nav-item *,
    border-collapse: separate !important;
#clbi-sub-worldbuilding .clbi-tnav-sub-item,
    border-spacing: 2px !important;
#clbi-bottom-sub-worldbuilding .clbi-tnav-sub-item,
    color: #e2e2e2 !important;
#clbi-search-btn,
.clbi-user-btn,
.profile-action-box .clbi-user-btn,
.profile-action-box .clbi-user-btn *,
.profile-quick-btn,
.profile-quick-btn *,
.news-post-item,
.news-post-item *,
.news-recent-item,
.news-recent-item *,
.clbi-left-news-main,
.clbi-left-news-main *,
.clbi-link-btn,
.clbi-link-box ul li a,
#clbi-playlist-toggle,
#clbi-notification-toggle {
transition:none !important;
}
}


/* -----------------------------------------
body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table > tbody > tr > td[colspan="10"] > div > table.wikitable th,
2-Z. 세로 임계점 이후 전체 셸 축소 모드
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table > tbody > tr > td[colspan="10"] > div > table.wikitable th {
----------------------------------------- */
    padding: 3px 7px !important;
 
    background: #1d1d1d !important;
:root {
    border: 0 !important;
--clbi-vertical-scale-threshold-h:1080px;
    color: #e2e2e2 !important;
--clbi-stage-design-w:1880px;
    font-size: 10px !important;
--clbi-stage-design-h:1064px;
    font-weight: 700 !important;
--clbi-stage-content-h:972px;
    line-height: 1.25 !important;
--clbi-shell-scale:1;
    vertical-align: middle !important;
    text-align: center !important;
    text-shadow: 1px 1px 0 #000 !important;
    box-shadow: none !important;
}
}


body.clbi-shell-vertical-scale {
body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table > tbody > tr > td[colspan="10"] > div > table.wikitable th > div,
min-width:0 !important;
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table > tbody > tr > td[colspan="10"] > div > table.wikitable th > div {
width:100vw !important;
    position: static !important;
height:100vh !important;
    top: auto !important;
min-height:100vh !important;
    padding: 0 !important;
overflow:hidden !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    color: inherit !important;
}
}


@supports (height:100dvh) {
body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table > tbody > tr > td[colspan="10"] > div > table.wikitable td,
body.clbi-shell-vertical-scale {
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table > tbody > tr > td[colspan="10"] > div > table.wikitable td {
height:100dvh !important;
    padding: 0 !important;
min-height:100dvh !important;
    background: #080808 !important;
}
    border: 0 !important;
    color: #e2e2e2 !important;
    vertical-align: middle !important;
}
}


body.clbi-shell-vertical-scale .clbi-shell-host {
body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table > tbody > tr > td[colspan="10"] > div > table.wikitable td > div,
position:fixed !important;
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table > tbody > tr > td[colspan="10"] > div > table.wikitable td > div {
left:50% !important;
    min-height: 24px !important;
top:var(--layout-gap) !important;
    padding: 3px 7px !important;
z-index:1 !important;
    top: auto !important;
width:var(--layout-shell-w) !important;
    background: #101010 !important;
max-width:var(--layout-shell-w) !important;
    border: 1px solid #050505 !important;
min-width:var(--layout-shell-w) !important;
    border-radius: 0 !important;
height:var(--clbi-stage-design-h) !important;
    color: #e2e2e2 !important;
max-height:var(--clbi-stage-design-h) !important;
    font-size: 11px !important;
min-height:var(--clbi-stage-design-h) !important;
    line-height: 1.55 !important;
margin:0 !important;
    text-align: center !important;
padding:0 !important;
    box-shadow:
display:flex !important;
        inset 0 1px 0 rgba(255,255,255,.035),
flex-direction:column !important;
        inset 0 -1px 0 rgba(0,0,0,.72) !important;
align-items:stretch !important;
justify-content:flex-start !important;
gap:0 !important;
transform:translateX(-50%) scale(var(--clbi-shell-scale)) !important;
transform-origin:top center !important;
will-change:transform;
backface-visibility:hidden;
}
}


body.clbi-shell-vertical-scale #clbi-top-nav-wrap,
body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table > tbody > tr > td[colspan="10"] > div > table.wikitable td > div:hover,
body.clbi-shell-vertical-scale #clbi-bottom-nav-wrap,
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table > tbody > tr > td[colspan="10"] > div > table.wikitable td > div:hover {
body.clbi-shell-vertical-scale .content-wrapper {
    background: #141414 !important;
width:var(--layout-shell-w) !important;
max-width:var(--layout-shell-w) !important;
min-width:var(--layout-shell-w) !important;
box-sizing:border-box !important;
transform:none !important;
}
 
body.clbi-shell-vertical-scale #clbi-top-nav-wrap {
flex:0 0 auto !important;
margin:0 !important;
padding:0 !important;
}
 
body.clbi-shell-vertical-scale .content-wrapper {
flex:0 0 var(--clbi-stage-content-h) !important;
height:var(--clbi-stage-content-h) !important;
min-height:0 !important;
max-height:var(--clbi-stage-content-h) !important;
margin:var(--layout-gap) 0 0 !important;
padding:0 !important;
overflow:visible !important;
}
 
body.clbi-shell-vertical-scale #clbi-bottom-nav-wrap {
flex:0 0 auto !important;
margin:var(--layout-gap) 0 0 !important;
padding:0 !important;
}
 
body.clbi-shell-vertical-scale .container-fluid.liberty-content {
height:calc(100% + var(--clbi-content-extra, 0px)) !important;
max-height:calc(100% + var(--clbi-content-extra, 0px)) !important;
min-height:0 !important;
}
 
body.clbi-shell-vertical-scale #clbi-left-sidebar,
body.clbi-shell-vertical-scale #clbi-right-sidebar {
height:100% !important;
max-height:100% !important;
min-height:0 !important;
overflow:hidden !important;
}
 
body.clbi-shell-vertical-scale .clbi-left-news-box,
body.clbi-shell-vertical-scale .clbi-left-news-box.is-adaptive-constrained {
height:auto !important;
max-height:none !important;
min-height:0 !important;
}
 
body.clbi-shell-vertical-scale .clbi-left-news-box .news-left-recent-feed,
body.clbi-shell-vertical-scale .clbi-left-news-box.is-adaptive-constrained .news-left-recent-feed {
height:auto !important;
max-height:none !important;
min-height:0 !important;
flex:0 0 auto !important;
}
 
body.clbi-shell-vertical-scale .clbi-left-news-box .news-recent-viewport,
body.clbi-shell-vertical-scale .clbi-left-news-box .news-recent-stack,
body.clbi-shell-vertical-scale .clbi-left-news-box.is-adaptive-constrained .news-recent-viewport,
body.clbi-shell-vertical-scale .clbi-left-news-box.is-adaptive-constrained .news-recent-stack {
-webkit-mask-image:none !important;
mask-image:none !important;
height:auto !important;
max-height:none !important;
overflow:visible !important;
}
 
body.clbi-shell-vertical-scale .clbi-left-news-box .news-recent-viewport::before,
body.clbi-shell-vertical-scale .clbi-left-news-box .news-recent-viewport::after,
body.clbi-shell-vertical-scale .clbi-left-news-box .news-left-recent-feed::before,
body.clbi-shell-vertical-scale .clbi-left-news-box .news-left-recent-feed::after {
content:none !important;
display:none !important;
}
 
body.clbi-shell-vertical-scale .news-recent-item.is-adaptive-hidden {
display:grid !important;
}
 
body.clbi-shell-vertical-scale .news-bottom-finish {
display:none !important;
}
 
body.clbi-shell-vertical-scale .left-billboard-box.is-left-ad-title-only,
body.clbi-shell-vertical-scale .left-billboard-box.is-left-ad-extended {
height:auto !important;
max-height:none !important;
}
 
body.clbi-shell-vertical-scale .left-billboard-box .left-ad-bottom-finish {
display:none !important;
}
 
 
 
/* -----------------------------------------
9.48 좌측 사이드 하단 정렬 / 뉴스 확장형
----------------------------------------- */
 
/*
좌측 사이드는 우측의 SITE INFORMATION 하단 정렬과 대응되도록
전체 높이를 본문 행에 맞춘다. 언어와 Ad는 고정 높이로 두고,
남는 세로 공간은 뉴스 박스가 흡수한다. Ad 이미지는 늘리지 않는다.
*/
#clbi-left-sidebar {
height:100% !important;
max-height:100% !important;
min-height:0 !important;
align-self:stretch !important;
display:flex !important;
flex-direction:column !important;
gap:8px !important;
overflow:hidden !important;
}
 
#clbi-left-sidebar > .clbi-left-lang-box,
#clbi-left-sidebar > .left-ad-box,
#clbi-left-sidebar > .left-billboard-box {
flex:0 0 auto !important;
}
 
#clbi-left-sidebar > .clbi-left-news-box {
flex:1 1 auto !important;
min-height:0 !important;
max-height:none !important;
display:flex !important;
flex-direction:column !important;
overflow:hidden !important;
}
 
#clbi-left-sidebar > .clbi-left-news-box > .clbi-left-title {
flex:0 0 auto !important;
}
 
#clbi-left-sidebar > .clbi-left-news-box > .clbi-news-box {
flex:1 1 auto !important;
min-height:0 !important;
height:auto !important;
display:grid !important;
grid-template-rows:auto auto auto auto minmax(0, 1fr) !important;
grid-template-columns:minmax(0, 1fr) !important;
overflow:hidden !important;
}
 
#clbi-left-sidebar > .clbi-left-news-box #clbi-left-news-changelog-title {
grid-row:1 !important;
}
 
#clbi-left-sidebar > .clbi-left-news-box .news-left-changelog-feed {
grid-row:2 !important;
min-height:0 !important;
overflow:hidden !important;
}
 
#clbi-left-sidebar > .clbi-left-news-box #clbi-left-news-recent-title {
grid-row:3 !important;
}
 
#clbi-left-sidebar > .clbi-left-news-box .news-left-recent-feed {
grid-row:4 !important;
min-height:0 !important;
height:auto !important;
display:flex !important;
flex:0 0 auto !important;
flex-direction:column !important;
overflow:hidden !important;
}
 
#clbi-left-sidebar > .clbi-left-news-box .news-fill-image-slot {
grid-row:5 !important;
min-height:0 !important;
height:auto !important;
display:block !important;
}
 
#clbi-left-sidebar > .clbi-left-news-box .news-recent-viewport {
flex:1 1 auto !important;
min-height:0 !important;
height:auto !important;
max-height:none !important;
overflow:hidden !important;
-webkit-mask-image:none !important;
mask-image:none !important;
}
 
#clbi-left-sidebar > .clbi-left-news-box .news-recent-stack {
min-height:0 !important;
height:auto !important;
max-height:none !important;
-webkit-mask-image:none !important;
mask-image:none !important;
}
 
#clbi-left-sidebar > .clbi-left-news-box .news-recent-viewport::before,
#clbi-left-sidebar > .clbi-left-news-box .news-recent-viewport::after,
#clbi-left-sidebar > .clbi-left-news-box .news-left-recent-feed::before,
#clbi-left-sidebar > .clbi-left-news-box .news-left-recent-feed::after {
content:none !important;
display:none !important;
}
 
#clbi-left-sidebar > .clbi-left-news-box .news-bottom-finish {
display:none !important;
height:0 !important;
min-height:0 !important;
}
 
#clbi-left-sidebar > .clbi-left-news-box.is-adaptive-constrained {
height:auto !important;
max-height:none !important;
}
 
#clbi-left-sidebar > .clbi-left-news-box.is-adaptive-constrained .news-left-recent-feed,
#clbi-left-sidebar > .clbi-left-news-box.is-adaptive-constrained .news-recent-viewport,
#clbi-left-sidebar > .clbi-left-news-box.is-adaptive-constrained .news-recent-stack {
height:auto !important;
max-height:none !important;
-webkit-mask-image:none !important;
mask-image:none !important;
}
 
#clbi-left-sidebar > .left-ad-box.is-left-ad-title-only .left-ad-content-shell {
display:block !important;
}
 
#clbi-left-sidebar > .left-ad-box.is-left-ad-extended,
#clbi-left-sidebar > .left-ad-box.is-left-ad-title-only {
height:auto !important;
max-height:none !important;
}
 
/* -----------------------------------------
9.99 사이드 타이틀 평면화
----------------------------------------- */
 
/*
SITE INFORMATION처럼 사이드 모듈 제목은 별도 우물 패널을 만들지 않고
상위 박스 표면 위에 바로 놓는다. 콘텐츠 영역과 항목 버튼만 우물/버튼 문법을 사용한다.
*/
#clbi-left-sidebar .clbi-left-lang-box > .clbi-left-title,
#clbi-left-sidebar .clbi-left-news-box > .clbi-left-title,
#clbi-left-sidebar .left-ad-title,
#clbi-right-sidebar .great-wall-sidebar > .clbi-right-title,
#clbi-right-sidebar .site-info-title {
min-height:34px !important;
height:auto !important;
margin:0 !important;
padding:0 2px !important;
box-sizing:border-box !important;
background:transparent !important;
border:0 !important;
box-shadow:none !important;
display:flex !important;
align-items:center !important;
gap:6px !important;
line-height:1 !important;
color:#e2e2e2 !important;
text-shadow:1px 1px 0 #000 !important;
}
 
#clbi-left-sidebar .left-ad-title.left-ad-title-iconless {
gap:0 !important;
}
 
#clbi-right-sidebar .site-info-title {
justify-content:flex-start !important;
}
 
#clbi-right-sidebar .site-info-title-meta {
display:none !important;
}
 
#clbi-left-sidebar .left-ad-title-label,
#clbi-title-left-ad,
#clbi-title-left-language,
#clbi-title-left-news {
height:auto !important;
line-height:1 !important;
}
 
 
 
/* -----------------------------------------
9.100 사이드 타이틀 아이콘 제거
----------------------------------------- */
 
/* 사이드 모듈 제목은 텍스트만 남긴다. 기존 렌더가 남아 있어도 아이콘은 숨긴다. */
#clbi-left-sidebar > .clbi-left-box > .clbi-left-title .sidebar-title-svg,
#clbi-right-sidebar > .clbi-right-box > .clbi-right-title .sidebar-title-svg,
#side-toc-box > .clbi-left-title .sidebar-title-svg,
#clbi-tools-box > .clbi-left-title .clbi-icon {
display:none !important;
}
 
#clbi-left-sidebar .clbi-left-lang-box > .clbi-left-title,
#clbi-left-sidebar .clbi-left-news-box > .clbi-left-title,
#clbi-left-sidebar .left-ad-title,
#clbi-right-sidebar .great-wall-sidebar > .clbi-right-title,
#clbi-right-sidebar .site-info-title,
#side-toc-box > .clbi-left-title,
#clbi-tools-box > .clbi-left-title {
gap:0 !important;
}
 
/* -----------------------------------------
9.101 사이드 타이틀 중앙 정렬 / Ad 문구 보정
----------------------------------------- */
 
/* 아이콘 제거 후의 사이드 모듈 제목은 중앙 정렬로 시험한다. */
#clbi-left-sidebar .clbi-left-lang-box > .clbi-left-title,
#clbi-left-sidebar .clbi-left-news-box > .clbi-left-title,
#clbi-left-sidebar .left-ad-title,
#clbi-right-sidebar .great-wall-sidebar > .clbi-right-title,
#clbi-right-sidebar .site-info-title,
#side-toc-box > .clbi-left-title,
#clbi-tools-box > .clbi-left-title {
justify-content:center !important;
text-align:center !important;
padding-left:2px !important;
padding-right:2px !important;
}
 
#clbi-left-sidebar .clbi-left-lang-box > .clbi-left-title > span,
#clbi-left-sidebar .clbi-left-news-box > .clbi-left-title > span,
#clbi-left-sidebar .left-ad-title > span,
#clbi-right-sidebar .great-wall-sidebar > .clbi-right-title > span,
#clbi-right-sidebar .site-info-title > span,
#side-toc-box > .clbi-left-title > span,
#clbi-tools-box > .clbi-left-title > span {
min-width:0 !important;
max-width:100% !important;
text-align:center !important;
}
 
#clbi-left-sidebar .left-ad-title-label,
#clbi-title-left-ad {
white-space:nowrap !important;
overflow:hidden !important;
text-overflow:ellipsis !important;
}
 
 
/* -----------------------------------------
9.102 하단 네비 검색 제거 / 프로필 컨테이너 최신화
----------------------------------------- */
 
/* 하단 네비는 검색 슬롯을 사용하지 않는다. 이전 렌더가 남아 있어도 숨긴다. */
#clbi-bottom-nav-search,
#clbi-bottom-search-input {
display:none !important;
}
 
/* 프로필 박스도 다른 사이드 모듈처럼 평면 제목 + 내부 슬롯 구조로 맞춘다. */
#clbi-right-sidebar .profile-card-box {
position:relative !important;
background:#1d1d1d !important;
}
 
#clbi-right-sidebar .profile-card-box > .profile-card-title {
min-height:34px !important;
height:auto !important;
margin:0 !important;
padding:0 2px !important;
box-sizing:border-box !important;
background:transparent !important;
border:0 !important;
box-shadow:none !important;
display:flex !important;
align-items:center !important;
justify-content:center !important;
gap:0 !important;
line-height:1 !important;
color:#e2e2e2 !important;
text-align:center !important;
text-shadow:1px 1px 0 #000 !important;
}
 
#clbi-right-sidebar .profile-card-box > .profile-card-title > span {
min-width:0 !important;
max-width:100% !important;
height:auto !important;
line-height:1 !important;
color:#e2e2e2 !important;
font-size:12px !important;
font-weight:700 !important;
white-space:nowrap !important;
overflow:hidden !important;
text-overflow:ellipsis !important;
text-align:center !important;
}
 
#clbi-right-sidebar #clbi-user-avatar-wrap,
#clbi-right-sidebar #clbi-user-avatar-wrap.profile-identity-panel {
position:relative !important;
display:flex !important;
flex-direction:column !important;
align-items:center !important;
justify-content:center !important;
gap:6px !important;
min-height:154px !important;
height:auto !important;
margin:0 !important;
padding:7px 3px 3px !important;
box-sizing:border-box !important;
background:#080808 !important;
border:0 !important;
box-shadow:
inset 0 1px 0 #101010,
inset -1px 0 0 #101010,
inset 1px 0 0 #555555,
inset 0 -1px 0 #555555 !important;
overflow:hidden !important;
}
 
#clbi-right-sidebar .profile-avatar-stage {
position:relative !important;
left:auto !important;
top:auto !important;
transform:none !important;
width:104px !important;
height:104px !important;
flex:0 0 104px !important;
display:flex !important;
align-items:center !important;
justify-content:center !important;
box-sizing:border-box !important;
background:#1d1d1d !important;
border:1px solid #050505 !important;
box-shadow:
inset 0 1px 0 #555555,
inset -1px 0 0 #555555,
inset 1px 0 0 #101010,
inset 0 -1px 0 #101010 !important;
}
 
#clbi-right-sidebar .profile-avatar-stage::before,
#clbi-right-sidebar .profile-avatar-stage::after {
content:none !important;
display:none !important;
}
 
#clbi-right-sidebar #clbi-user-avatar {
position:relative !important;
z-index:1 !important;
display:block !important;
width:90px !important;
height:90px !important;
object-fit:cover !important;
object-position:center !important;
background:#070707 !important;
border:1px solid #050505 !important;
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.018),
inset 0 -1px 0 rgba(0,0,0,0.60) !important;
}
 
#clbi-right-sidebar #clbi-user-name-row,
#clbi-right-sidebar #clbi-user-name-row.profile-name-row,
#clbi-right-sidebar #clbi-user-name-row.profile-name-row-guest {
position:relative !important;
left:auto !important;
right:auto !important;
top:auto !important;
bottom:auto !important;
display:flex !important;
align-items:center !important;
justify-content:center !important;
width:100% !important;
height:26px !important;
min-height:26px !important;
margin:0 !important;
padding:0 6px !important;
box-sizing:border-box !important;
background:#1d1d1d !important;
border:1px solid #050505 !important;
box-shadow:
inset 0 1px 0 #555555,
inset -1px 0 0 #555555,
inset 1px 0 0 #101010,
inset 0 -1px 0 #101010 !important;
overflow:hidden !important;
}
 
#clbi-right-sidebar #clbi-user-name {
max-width:100% !important;
margin:0 !important;
color:#e2e2e2 !important;
font-size:12px !important;
font-weight:700 !important;
line-height:1 !important;
text-align:center !important;
white-space:nowrap !important;
overflow:hidden !important;
text-overflow:ellipsis !important;
text-decoration:none !important;
text-shadow:1px 1px 0 #000 !important;
}
 
#clbi-right-sidebar #clbi-user-name-row:hover #clbi-user-name {
color:#ffffff !important;
}
 
#clbi-right-sidebar .profile-action-box {
position:relative !important;
margin:2px 0 0 !important;
padding:3px !important;
box-sizing:border-box !important;
background:#080808 !important;
border:0 !important;
box-shadow:
inset 0 1px 0 #101010,
inset -1px 0 0 #101010,
inset 1px 0 0 #555555,
inset 0 -1px 0 #555555 !important;
overflow:visible !important;
}
 
#clbi-right-sidebar .profile-quick-actions {
position:relative !important;
display:grid !important;
grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
gap:2px !important;
margin:0 0 2px !important;
overflow:visible !important;
z-index:2 !important;
}
 
#clbi-right-sidebar .profile-quick-btn {
position:relative !important;
display:flex !important;
align-items:center !important;
justify-content:center !important;
width:100% !important;
aspect-ratio:1 / 1 !important;
min-width:0 !important;
min-height:0 !important;
padding:0 !important;
box-sizing:border-box !important;
background:#1d1d1d !important;
border:1px solid #050505 !important;
color:#e2e2e2 !important;
cursor:pointer !important;
box-shadow:
inset 0 1px 0 #555555,
inset -1px 0 0 #555555,
inset 1px 0 0 #101010,
inset 0 -1px 0 #101010 !important;
text-shadow:1px 1px 0 #000 !important;
overflow:hidden !important;
}
 
#clbi-right-sidebar .profile-quick-btn:hover {
background:#1d1d1d !important;
border-color:#050505 !important;
color:#ffffff !important;
box-shadow:
inset 0 1px 0 #555555,
inset -1px 0 0 #555555,
inset 1px 0 0 #101010,
inset 0 -1px 0 #101010 !important;
}
 
#clbi-right-sidebar .profile-quick-btn:active {
background:#101010 !important;
color:#c8c8c8 !important;
box-shadow:
inset 0 1px 0 #101010,
inset -1px 0 0 #101010,
inset 1px 0 0 #555555,
inset 0 -1px 0 #555555 !important;
}
 
#clbi-right-sidebar .profile-quick-icon,
#clbi-right-sidebar .profile-quick-icon .profile-svg {
width:20px !important;
height:20px !important;
color:currentColor !important;
}
 
#clbi-right-sidebar .profile-action-box .clbi-user-btn {
position:relative !important;
display:grid !important;
grid-template-columns:15px minmax(0,1fr) 12px !important;
column-gap:7px !important;
align-items:center !important;
justify-content:stretch !important;
width:100% !important;
min-height:26px !important;
height:26px !important;
margin:0 0 2px !important;
padding:0 7px !important;
box-sizing:border-box !important;
background:#1d1d1d !important;
border:1px solid #050505 !important;
color:#c8c8c8 !important;
font-size:11px !important;
font-weight:700 !important;
line-height:1 !important;
text-align:left !important;
text-decoration:none !important;
text-shadow:1px 1px 0 #000 !important;
box-shadow:
inset 0 1px 0 #555555,
inset -1px 0 0 #555555,
inset 1px 0 0 #101010,
inset 0 -1px 0 #101010 !important;
overflow:hidden !important;
}
 
#clbi-right-sidebar .profile-action-box .clbi-user-btn:last-child {
margin-bottom:0 !important;
}
 
#clbi-right-sidebar .profile-action-box .clbi-user-btn:hover,
#clbi-right-sidebar .profile-action-box .clbi-user-btn.clbi-user-btn-active {
background:#1d1d1d !important;
border-color:#050505 !important;
color:#ffffff !important;
box-shadow:
inset 0 1px 0 #555555,
inset -1px 0 0 #555555,
inset 1px 0 0 #101010,
inset 0 -1px 0 #101010 !important;
}
 
#clbi-right-sidebar .profile-action-box .clbi-user-btn:active {
background:#101010 !important;
color:#c8c8c8 !important;
box-shadow:
inset 0 1px 0 #101010,
inset -1px 0 0 #101010,
inset 1px 0 0 #555555,
inset 0 -1px 0 #555555 !important;
}
 
#clbi-right-sidebar .profile-action-box .clbi-user-btn-logout {
color:#c88a80 !important;
}
 
#clbi-right-sidebar .profile-action-box .clbi-user-btn-logout:hover {
background:#1d1d1d !important;
color:#e0a199 !important;
}
 
#clbi-right-sidebar .profile-action-icon {
color:#8a8a8a !important;
}
 
#clbi-right-sidebar .profile-action-box .clbi-user-btn:hover .profile-action-icon,
#clbi-right-sidebar .profile-action-box .clbi-user-btn.clbi-user-btn-active .profile-action-icon,
#clbi-right-sidebar .profile-action-box .clbi-user-btn:hover .profile-action-arrow,
#clbi-right-sidebar .profile-action-box .clbi-user-btn.clbi-user-btn-active .profile-action-arrow {
color:#ffffff !important;
}
 
#clbi-right-sidebar .profile-action-box .clbi-user-btn-logout .profile-action-icon,
#clbi-right-sidebar .profile-action-box .clbi-user-btn-logout .profile-action-arrow {
color:#8b5f59 !important;
}
 
#clbi-right-sidebar .profile-action-box .clbi-user-btn-logout:hover .profile-action-icon,
#clbi-right-sidebar .profile-action-box .clbi-user-btn-logout:hover .profile-action-arrow {
color:#e0a199 !important;
}
 
/* -----------------------------------------
149 보정: 프로필 박스 과장된 내부 플레이트 정리
----------------------------------------- */
 
/* 프로필 상단은 사이드 모듈 안의 단순 화면으로 둔다. */
#clbi-right-sidebar #clbi-user-avatar-wrap,
#clbi-right-sidebar #clbi-user-avatar-wrap.profile-identity-panel {
min-height:154px !important;
gap:5px !important;
padding:7px 3px 4px !important;
background:#080808 !important;
border:0 !important;
box-shadow:
inset 0 1px 0 #101010,
inset -1px 0 0 #101010,
inset 1px 0 0 #555555,
inset 0 -1px 0 #555555 !important;
}
 
/* 아바타 주변에 한 번 더 생기던 플레이트는 제거한다. */
#clbi-right-sidebar .profile-avatar-stage {
width:104px !important;
height:104px !important;
flex:0 0 104px !important;
background:transparent !important;
border:0 !important;
box-shadow:none !important;
}
 
#clbi-right-sidebar #clbi-user-avatar {
width:96px !important;
height:96px !important;
background:#070707 !important;
border:1px solid #050505 !important;
box-shadow:
0 0 0 1px #2b2b2b,
inset 0 1px 0 rgba(255,255,255,0.020),
inset 0 -1px 0 rgba(0,0,0,0.64) !important;
}
 
/* 이름은 별도 판/플레이트가 아니라 화면 안의 라벨처럼 둔다. */
#clbi-right-sidebar #clbi-user-name-row,
#clbi-right-sidebar #clbi-user-name-row.profile-name-row,
#clbi-right-sidebar #clbi-user-name-row.profile-name-row-guest {
height:18px !important;
min-height:18px !important;
padding:0 4px !important;
background:transparent !important;
border:0 !important;
box-shadow:none !important;
}
 
#clbi-right-sidebar #clbi-user-name {
font-size:12px !important;
line-height:1 !important;
color:#e2e2e2 !important;
}
 
/* 레벨 패널은 우물 배경으로 유지하되, 너무 붙어 보이지 않도록 여백을 정리한다. */
.profile-progress-block {
margin:8px 8px 0 !important;
padding:8px !important;
background:#080808 !important;
border:0 !important;
box-shadow:
inset 0 1px 0 #101010,
inset -1px 0 0 #101010,
inset 1px 0 0 #555555,
inset 0 -1px 0 #555555 !important;
}
 
.progress-level-row {
margin-bottom:6px !important;
}
 
.progress-xp-bar {
height:10px !important;
margin:0 0 6px !important;
}
 
.progress-sub-row {
margin-bottom:0 !important;
}
 
/* DISCOVERED 행도 별도 플레이트가 아니라 약한 메타 라인으로 둔다. */
.progress-discovery-row {
height:auto !important;
min-height:0 !important;
margin:5px 0 0 !important;
padding:0 !important;
background:transparent !important;
border:0 !important;
box-shadow:none !important;
color:#626262 !important;
justify-content:center !important;
}
 
/* 레벨 패널과 버튼 영역 사이의 장식 구분선 제거. */
#profile-progress-divider {
display:none !important;
}
 
/* 버튼 기본 radius/appearance를 완전히 제거한다. */
#clbi-right-sidebar .profile-quick-btn,
#clbi-right-sidebar .profile-action-box .clbi-user-btn,
#clbi-right-sidebar .profile-action-box {
border-radius:0 !important;
}
 
#clbi-right-sidebar .profile-quick-btn {
appearance:none !important;
-webkit-appearance:none !important;
}
 
/* 구분선을 뺐으므로 버튼 영역 자체가 레벨 패널에 과하게 붙지 않도록 간격만 둔다. */
#clbi-right-sidebar .profile-action-box {
margin:8px 0 0 !important;
}
 
 
/* -----------------------------------------
151 보정: 프로필 제목 제거 / 상단 플레이트 제거 / 레벨 폭 복원
----------------------------------------- */
 
/* 프로필 박스에는 별도 제목줄을 두지 않는다. 이전 렌더가 남아도 보이지 않게 막는다. */
#clbi-right-sidebar .profile-card-box > .profile-card-title {
display:none !important;
}
 
/* 프로필 사진과 이름은 내부 우물/플레이트 없이, 사이드 박스의 회색 표면 위에 바로 놓는다. */
#clbi-right-sidebar #clbi-user-avatar-wrap,
#clbi-right-sidebar #clbi-user-avatar-wrap.profile-identity-panel {
position:relative !important;
display:flex !important;
flex-direction:column !important;
align-items:center !important;
justify-content:center !important;
gap:5px !important;
min-height:142px !important;
height:auto !important;
margin:0 !important;
padding:10px 3px 6px !important;
box-sizing:border-box !important;
background:transparent !important;
border:0 !important;
box-shadow:none !important;
overflow:hidden !important;
}
 
#clbi-right-sidebar .profile-avatar-stage {
position:relative !important;
left:auto !important;
top:auto !important;
transform:none !important;
width:104px !important;
height:104px !important;
flex:0 0 104px !important;
display:flex !important;
align-items:center !important;
justify-content:center !important;
box-sizing:border-box !important;
background:transparent !important;
border:0 !important;
box-shadow:none !important;
}
 
#clbi-right-sidebar #clbi-user-name-row,
#clbi-right-sidebar #clbi-user-name-row.profile-name-row,
#clbi-right-sidebar #clbi-user-name-row.profile-name-row-guest {
position:relative !important;
left:auto !important;
right:auto !important;
top:auto !important;
bottom:auto !important;
display:flex !important;
align-items:center !important;
justify-content:center !important;
width:100% !important;
height:18px !important;
min-height:18px !important;
margin:0 !important;
padding:0 4px !important;
box-sizing:border-box !important;
background:transparent !important;
border:0 !important;
box-shadow:none !important;
overflow:hidden !important;
}
 
/* 레벨 섹션은 버튼 영역처럼 부모 내부 폭을 그대로 사용한다. */
#clbi-right-sidebar .profile-progress-block,
#clbi-right-sidebar #progress-panel.profile-progress-block {
width:auto !important;
max-width:none !important;
margin:8px 0 0 !important;
box-sizing:border-box !important;
}
 
/* -----------------------------------------
152 보정: 프로필 상단 1:1 배경 복원
----------------------------------------- */
 
/* 프로필 박스에는 제목 없이, 상단 프로필 영역 자체가 1:1 회색 배경이 된다. */
#clbi-right-sidebar .profile-card-box {
position:relative !important;
background:#1d1d1d !important;
padding:0 8px 8px !important;
}
 
#clbi-right-sidebar .profile-card-box > .profile-card-title {
display:none !important;
}
 
/* 프로필 배경은 우물이 아니라 박스 표면과 같은 회색 면으로 둔다. */
#clbi-right-sidebar #clbi-user-avatar-wrap,
#clbi-right-sidebar #clbi-user-avatar-wrap.profile-identity-panel {
position:relative !important;
display:block !important;
width:100% !important;
aspect-ratio:1 / 1 !important;
height:auto !important;
min-height:0 !important;
margin:0 !important;
padding:0 8px !important;
box-sizing:border-box !important;
background:#1d1d1d !important;
border:0 !important;
border-bottom:1px solid #202020 !important;
box-shadow:none !important;
overflow:hidden !important;
}
 
/* 아바타 이미지는 1:1 배경의 정중앙에 둔다. 주변 플레이트는 만들지 않는다. */
#clbi-right-sidebar .profile-avatar-stage {
position:absolute !important;
left:50% !important;
top:50% !important;
transform:translate(-50%, -50%) !important;
width:104px !important;
height:104px !important;
flex:none !important;
display:flex !important;
align-items:center !important;
justify-content:center !important;
box-sizing:border-box !important;
background:transparent !important;
border:0 !important;
box-shadow:none !important;
}
 
#clbi-right-sidebar .profile-avatar-stage::before,
#clbi-right-sidebar .profile-avatar-stage::after {
content:none !important;
display:none !important;
}
 
#clbi-right-sidebar #clbi-user-avatar {
position:relative !important;
z-index:1 !important;
display:block !important;
width:96px !important;
height:96px !important;
object-fit:cover !important;
object-position:center !important;
background:#070707 !important;
border:1px solid #050505 !important;
box-shadow:0 0 0 1px #2b2b2b !important;
}
 
/* 이름은 이미지 아래, 같은 회색 배경 위에 텍스트만 얹는다. */
#clbi-right-sidebar #clbi-user-name-row,
#clbi-right-sidebar #clbi-user-name-row.profile-name-row,
#clbi-right-sidebar #clbi-user-name-row.profile-name-row-guest {
position:absolute !important;
left:8px !important;
right:8px !important;
top:calc(50% + 52px) !important;
bottom:0 !important;
width:auto !important;
height:auto !important;
min-height:0 !important;
margin:0 !important;
padding:0 !important;
box-sizing:border-box !important;
display:flex !important;
align-items:center !important;
justify-content:center !important;
background:transparent !important;
border:0 !important;
box-shadow:none !important;
overflow:hidden !important;
}
 
#clbi-right-sidebar #clbi-user-name {
max-width:100% !important;
margin:0 !important;
color:#e2e2e2 !important;
font-size:12px !important;
font-weight:700 !important;
line-height:1.2 !important;
text-align:center !important;
white-space:nowrap !important;
overflow:hidden !important;
text-overflow:ellipsis !important;
text-decoration:none !important;
text-shadow:1px 1px 0 #000 !important;
}
 
#clbi-right-sidebar #clbi-user-name-row:hover #clbi-user-name {
color:#ffffff !important;
}
 
/* 레벨 섹션은 아래 버튼 영역과 같은 폭 규칙을 유지한다. */
#clbi-right-sidebar .profile-progress-block,
#clbi-right-sidebar #progress-panel.profile-progress-block {
width:auto !important;
max-width:none !important;
margin:8px 0 0 !important;
box-sizing:border-box !important;
}
 
/* -----------------------------------------
153 보정: 프로필 상단 제목 잔여 공간 제거 / 원래 1:1 배경 배치 복원
----------------------------------------- */
 
/* 프로필 박스에는 어떤 제목줄/잔여 상단 슬롯도 남기지 않는다. */
#clbi-right-sidebar .profile-card-box > .profile-card-title,
#clbi-right-sidebar .profile-card-box > .clbi-right-title,
#clbi-right-sidebar .profile-card-box .profile-card-titlebar {
display:none !important;
height:0 !important;
min-height:0 !important;
margin:0 !important;
padding:0 !important;
border:0 !important;
box-shadow:none !important;
overflow:hidden !important;
}
 
/* 외곽 컨테이너는 다른 사이드 박스와 같은 회색 표면만 유지한다. */
#clbi-right-sidebar .profile-card-box {
position:relative !important;
background:#1d1d1d !important;
padding:0 8px 8px !important;
overflow:hidden !important;
}
 
/* 상단 프로필 영역은 1:1 회색 배경을 유지하되, 이미지+이름 묶음을 중앙에 둔다. */
#clbi-right-sidebar #clbi-user-avatar-wrap,
#clbi-right-sidebar #clbi-user-avatar-wrap.profile-identity-panel {
position:relative !important;
display:flex !important;
flex-direction:column !important;
align-items:center !important;
justify-content:center !important;
gap:8px !important;
width:100% !important;
aspect-ratio:1 / 1 !important;
height:auto !important;
min-height:0 !important;
margin:0 !important;
padding:0 8px !important;
box-sizing:border-box !important;
background:#1d1d1d !important;
border:0 !important;
border-bottom:1px solid #202020 !important;
box-shadow:none !important;
overflow:hidden !important;
}
 
/* 아바타는 주변 플레이트 없이 회색 배경 위에 직접 놓는다. */
#clbi-right-sidebar .profile-avatar-stage {
position:relative !important;
left:auto !important;
top:auto !important;
transform:none !important;
width:104px !important;
height:104px !important;
flex:0 0 104px !important;
display:flex !important;
align-items:center !important;
justify-content:center !important;
box-sizing:border-box !important;
background:transparent !important;
border:0 !important;
box-shadow:none !important;
}
 
#clbi-right-sidebar .profile-avatar-stage::before,
#clbi-right-sidebar .profile-avatar-stage::after {
content:none !important;
display:none !important;
}
 
#clbi-right-sidebar #clbi-user-avatar {
position:relative !important;
z-index:1 !important;
display:block !important;
width:96px !important;
height:96px !important;
object-fit:cover !important;
object-position:center !important;
background:#070707 !important;
border:1px solid #050505 !important;
box-shadow:0 0 0 1px #2b2b2b !important;
}
 
/* 이름도 별도 판 없이, 이미지 아래에 텍스트만 둔다. */
#clbi-right-sidebar #clbi-user-name-row,
#clbi-right-sidebar #clbi-user-name-row.profile-name-row,
#clbi-right-sidebar #clbi-user-name-row.profile-name-row-guest {
position:relative !important;
left:auto !important;
right:auto !important;
top:auto !important;
bottom:auto !important;
display:flex !important;
align-items:center !important;
justify-content:center !important;
width:100% !important;
height:18px !important;
min-height:18px !important;
margin:0 !important;
padding:0 4px !important;
box-sizing:border-box !important;
background:transparent !important;
border:0 !important;
box-shadow:none !important;
overflow:hidden !important;
}
 
#clbi-right-sidebar #clbi-user-name {
max-width:100% !important;
margin:0 !important;
color:#e2e2e2 !important;
font-size:14px !important;
font-weight:700 !important;
line-height:1.15 !important;
text-align:center !important;
white-space:nowrap !important;
overflow:hidden !important;
text-overflow:ellipsis !important;
text-decoration:none !important;
text-shadow:1px 1px 0 #000 !important;
}
 
#clbi-right-sidebar #clbi-user-name-row:hover #clbi-user-name {
color:#ffffff !important;
}
 
/* 레벨 섹션은 아래 버튼 영역과 같은 폭을 계속 사용한다. */
#clbi-right-sidebar .profile-progress-block,
#clbi-right-sidebar #progress-panel.profile-progress-block {
width:auto !important;
max-width:none !important;
margin:8px 0 0 !important;
box-sizing:border-box !important;
}
 
/* -----------------------------------------
154 보정: 프로필 상단 비율 원상 복구
----------------------------------------- */
 
/* 프로필 박스는 제목/상단 잔여 슬롯 없이 바로 프로필 영역으로 시작한다. */
#clbi-right-sidebar .profile-card-box {
position:relative !important;
background:#1d1d1d !important;
padding:0 8px 8px !important;
overflow:hidden !important;
}
 
#clbi-right-sidebar .profile-card-box::before,
#clbi-right-sidebar .profile-card-box::after {
content:none !important;
display:none !important;
}
 
#clbi-right-sidebar .profile-card-box > .profile-card-title,
#clbi-right-sidebar .profile-card-box > .clbi-right-title,
#clbi-right-sidebar .profile-card-box .profile-card-titlebar {
display:none !important;
height:0 !important;
min-height:0 !important;
margin:0 !important;
padding:0 !important;
border:0 !important;
box-shadow:none !important;
overflow:hidden !important;
}
 
/* 상단 프로필 영역은 원래처럼 과하게 커지지 않는 고정 비율 슬롯으로 되돌린다. */
#clbi-right-sidebar #clbi-user-avatar-wrap,
#clbi-right-sidebar #clbi-user-avatar-wrap.profile-identity-panel {
position:relative !important;
display:block !important;
width:100% !important;
height:180px !important;
min-height:180px !important;
aspect-ratio:auto !important;
margin:0 !important;
padding:0 8px !important;
box-sizing:border-box !important;
background:#1d1d1d !important;
border:0 !important;
border-top:0 !important;
border-bottom:1px solid #202020 !important;
box-shadow:none !important;
overflow:hidden !important;
}
 
/* 이미지 주변에는 별도 플레이트를 만들지 않고, 기존 위치 체계만 복원한다. */
#clbi-right-sidebar .profile-avatar-stage {
position:absolute !important;
left:50% !important;
top:50% !important;
transform:translate(-50%, -50%) !important;
width:104px !important;
height:104px !important;
flex:none !important;
display:flex !important;
align-items:center !important;
justify-content:center !important;
box-sizing:border-box !important;
background:transparent !important;
border:0 !important;
box-shadow:none !important;
}
 
#clbi-right-sidebar .profile-avatar-stage::before,
#clbi-right-sidebar .profile-avatar-stage::after {
content:none !important;
display:none !important;
}
 
#clbi-right-sidebar #clbi-user-avatar {
position:relative !important;
z-index:1 !important;
display:block !important;
width:96px !important;
height:96px !important;
object-fit:cover !important;
object-position:center !important;
background:#070707 !important;
border:1px solid #050505 !important;
box-shadow:0 0 0 1px #2b2b2b !important;
}
 
/* 이름은 원래처럼 이미지 아래쪽에 크게 놓고, 판/우물 없이 텍스트만 둔다. */
#clbi-right-sidebar #clbi-user-name-row,
#clbi-right-sidebar #clbi-user-name-row.profile-name-row,
#clbi-right-sidebar #clbi-user-name-row.profile-name-row-guest {
position:absolute !important;
left:8px !important;
right:8px !important;
top:calc(50% + 52px) !important;
bottom:0 !important;
width:auto !important;
height:auto !important;
min-height:0 !important;
margin:0 !important;
padding:0 !important;
box-sizing:border-box !important;
display:flex !important;
align-items:center !important;
justify-content:center !important;
background:transparent !important;
border:0 !important;
box-shadow:none !important;
overflow:hidden !important;
}
 
#clbi-right-sidebar #clbi-user-name {
max-width:100% !important;
margin:0 !important;
color:#e2e2e2 !important;
font-size:14px !important;
font-weight:700 !important;
line-height:1.15 !important;
text-align:center !important;
white-space:nowrap !important;
overflow:hidden !important;
text-overflow:ellipsis !important;
text-decoration:none !important;
text-shadow:1px 1px 0 #000 !important;
}
 
#clbi-right-sidebar #clbi-user-name-row:hover #clbi-user-name {
color:#ffffff !important;
}
 
/* 레벨 섹션은 아래 버튼 영역과 같은 폭을 유지한다. */
#clbi-right-sidebar .profile-progress-block,
#clbi-right-sidebar #progress-panel.profile-progress-block {
width:auto !important;
max-width:none !important;
margin:8px 0 0 !important;
box-sizing:border-box !important;
}
 
/* -----------------------------------------
155 보정: 프로필 상단은 리메이크 이전 치수/비율만 복원
----------------------------------------- */
 
/* 프로필 컨테이너의 최신 색상/테마는 유지하되, 제목·잔여 슬롯은 만들지 않는다. */
#clbi-right-sidebar .profile-card-box {
position:relative !important;
background:#1d1d1d !important;
padding:0 8px 8px !important;
overflow:hidden !important;
}
 
#clbi-right-sidebar .profile-card-box::before,
#clbi-right-sidebar .profile-card-box::after {
content:none !important;
display:none !important;
}
 
#clbi-right-sidebar .profile-card-box > .profile-card-title,
#clbi-right-sidebar .profile-card-box > .clbi-right-title,
#clbi-right-sidebar .profile-card-box .profile-card-titlebar {
display:none !important;
height:0 !important;
min-height:0 !important;
margin:0 !important;
padding:0 !important;
border:0 !important;
box-shadow:none !important;
overflow:hidden !important;
}
 
/* 상단 프로필 영역의 치수와 위치 체계는 리메이크 이전값을 그대로 사용한다. */
#clbi-right-sidebar #clbi-user-avatar-wrap,
#clbi-right-sidebar #clbi-user-avatar-wrap.profile-identity-panel {
position:relative !important;
display:block !important;
width:100% !important;
height:180px !important;
min-height:180px !important;
aspect-ratio:auto !important;
margin:0 !important;
padding:0 8px !important;
box-sizing:border-box !important;
background:#1d1d1d !important;
border:0 !important;
border-bottom:1px solid #202020 !important;
box-shadow:none !important;
overflow:hidden !important;
}
 
/* 이미지 배치 비율은 이전처럼 중앙 104px 스테이지 기준. 표면/플레이트는 최신 flat 규칙 유지. */
#clbi-right-sidebar .profile-avatar-stage {
position:absolute !important;
left:50% !important;
top:50% !important;
transform:translate(-50%, -50%) !important;
width:104px !important;
height:104px !important;
flex:none !important;
display:flex !important;
align-items:center !important;
justify-content:center !important;
box-sizing:border-box !important;
background:transparent !important;
border:0 !important;
box-shadow:none !important;
}
 
#clbi-right-sidebar .profile-avatar-stage::before,
#clbi-right-sidebar .profile-avatar-stage::after {
content:none !important;
display:none !important;
}
 
/* 실제 프로필 이미지 크기는 리메이크 이전 90px 기준으로 복원한다. */
#clbi-right-sidebar #clbi-user-avatar {
position:relative !important;
z-index:1 !important;
display:block !important;
width:90px !important;
height:90px !important;
object-fit:cover !important;
object-position:center !important;
background:#070707 !important;
border:1px solid #050505 !important;
box-shadow:0 0 0 1px #2b2b2b !important;
}
 
/* 이름 줄도 리메이크 이전 위치값을 사용하되, 별도 우물/플레이트는 만들지 않는다. */
#clbi-right-sidebar #clbi-user-name-row,
#clbi-right-sidebar #clbi-user-name-row.profile-name-row,
#clbi-right-sidebar #clbi-user-name-row.profile-name-row-guest {
position:absolute !important;
left:8px !important;
right:8px !important;
top:calc(50% + 52px) !important;
bottom:0 !important;
width:auto !important;
height:auto !important;
min-height:0 !important;
margin:0 !important;
padding:0 !important;
box-sizing:border-box !important;
display:flex !important;
align-items:center !important;
justify-content:center !important;
background:transparent !important;
border:0 !important;
box-shadow:none !important;
overflow:hidden !important;
}
 
#clbi-right-sidebar #clbi-user-name {
max-width:100% !important;
margin:0 !important;
color:#e2e2e2 !important;
font-size:14px !important;
font-weight:700 !important;
line-height:1.2 !important;
text-align:center !important;
white-space:nowrap !important;
overflow:hidden !important;
text-overflow:ellipsis !important;
text-decoration:none !important;
text-shadow:1px 1px 0 #000 !important;
}
 
#clbi-right-sidebar #clbi-user-name-row:hover #clbi-user-name {
color:#ffffff !important;
}
 
/* 레벨 섹션은 최신화 요청대로 아래 버튼 영역과 같은 폭을 유지한다. */
#clbi-right-sidebar .profile-progress-block,
#clbi-right-sidebar #progress-panel.profile-progress-block {
width:auto !important;
max-width:none !important;
margin:8px 0 0 !important;
box-sizing:border-box !important;
}
 
/* -----------------------------------------
156 보정: 프로필 상단 하이라이트 복원 / 이름-레벨 구분선 제거
----------------------------------------- */
 
/*
프로필 상단 영역이 컨테이너 맨 위를 덮어 1px north-light 하이라이트가
사라져 보이던 문제를 막는다. 컨테이너 상단 1px은 #555555로 직접 확보하고,
실제 프로필 영역은 그 아래에서 시작하게 한다.
*/
#clbi-right-sidebar .profile-card-box {
background:
linear-gradient(
to bottom,
#555555 0,
#555555 1px,
#1d1d1d 1px,
#1d1d1d 100%
) !important;
padding:1px 8px 8px !important;
}
}


/* 이름과 레벨 섹션 사이에 남아 있던 #202020 구분선은 제거한다. */
body.page-국가_및_조합 .clbi-nf-board img,
#clbi-right-sidebar #clbi-user-avatar-wrap,
body.page-국가_및_조합 .clbi-nf-board .mw-file-element,
#clbi-right-sidebar #clbi-user-avatar-wrap.profile-identity-panel {
body.page-Nations_\&_Factions .clbi-nf-board img,
border-bottom:0 !important;
body.page-Nations_\&_Factions .clbi-nf-board .mw-file-element {
    vertical-align: middle !important;
}
}

2026년 6월 29일 (월) 03:09 판

@import url('/index.php?title=MediaWiki:Template.Infobox.css&action=raw&ctype=text/css');

/* =========================================
   Proitem Animation
   ========================================= */

.wip-stripe-layer {
    position: absolute;
    top: 0;
    left: -280px;
    width: calc(100% + 560px);
    height: 100%;
    opacity: 0.08;
    background: repeating-linear-gradient(
        45deg,
        #969696,
        #969696 10px,
        transparent 10px,
        transparent 20px
    );
    z-index: 0;
}

.wip-active .wip-stripe-layer {
    animation: wip-stripe-move 8s linear infinite;
}

.wip-standby .wip-stripe-layer {
    animation: none;
}

@keyframes wip-stripe-move {
    from { transform: translateX(0); }
    to { transform: translateX(280px); }
}

/* =========================================
   Collapsible
   ========================================= */

[id^="collapsible"] {
    overflow: hidden;
    transition: max-height .25s ease;
    max-height: 0;
}

/* =========================================
   Color
   ========================================= */

.color-text {
    color: var(--text-color);
}

.color-text a,
.color-text a:visited,
.color-text a:hover,
.color-text a:active {
    color: var(--text-color) !important;
    text-decoration-color: var(--text-color) !important;
}

/* =========================================
   CRT Glitch Panel
   ========================================= */

.crt-glitch-panel {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    border-radius: 5px;
    box-shadow:
        inset 0 0 18px rgba(255,255,255,0.04),
        inset 0 0 42px rgba(133,67,105,0.10),
        0 0 18px rgba(133,67,105,0.20);
}

.crt-glitch-panel .vanishing-grid-bg {
    position: relative;
    overflow: hidden;
    border-radius: 5px;
    background:
        radial-gradient(circle at 50% 45%, rgba(212,90,162,0.18) 0%, transparent 32%),
        linear-gradient(to bottom, #111 0%, #090909 58%, #030303 100%) !important;
}

.crt-glitch-panel > * {
    position: relative;
    z-index: 2;
}

.crt-glow-content {
    position: relative;
    z-index: 2;
    text-shadow:
        -1px 0 0 rgba(80,160,255,0.75),
        1px 0 0 rgba(255,55,90,0.65),
        2px 0 0 rgba(255,210,70,0.45),
        0 0 2px rgba(255,255,255,0.35),
        0 0 6px rgba(212,90,162,0.22),
        0 0 12px rgba(133,67,105,0.18);
    filter: drop-shadow(0 0 5px rgba(212,90,162,0.18));
}

.crt-glow-content::before {
    content: "";
    position: absolute;
    inset: -24px;
    z-index: -1;
    pointer-events: none;
    background:
        radial-gradient(
            circle at 50% 35%,
            rgba(255,255,255,0.08) 0%,
            rgba(212,90,162,0.10) 18%,
            rgba(133,67,105,0.08) 34%,
            transparent 68%
        );
    filter: blur(18px);
    opacity: 0.75;
}

.crt-glitch-panel .fake-h1,
.crt-glitch-panel h1,
.crt-glitch-panel h2,
.crt-glitch-panel strong {
    text-shadow:
        -1px 0 0 rgba(80,160,255,0.95),
        1px 0 0 rgba(255,55,90,0.85),
        2px 0 0 rgba(255,210,70,0.55),
        0 0 3px rgba(255,255,255,0.65),
        0 0 10px rgba(255,255,255,0.28),
        0 0 18px rgba(212,90,162,0.35),
        0 0 32px rgba(133,67,105,0.24);
}

.crt-glitch-panel img {
    filter:
        drop-shadow(-1px 0 0 rgba(80,160,255,0.65))
        drop-shadow(1px 0 0 rgba(255,55,90,0.55))
        drop-shadow(2px 0 0 rgba(255,210,70,0.35))
        drop-shadow(0 0 6px rgba(212,90,162,0.18));
}

.crt-glitch-panel::before {
    content: "";
    position: absolute;
    inset: -80px 0;
    z-index: 3;
    pointer-events: none;
    opacity: 0.22;
    background:
        repeating-linear-gradient(
            to bottom,
            rgba(255,255,255,0.08) 0px,
            rgba(255,255,255,0.08) 1px,
            transparent 2px,
            transparent 5px
        );
    mix-blend-mode: screen;
    animation: crt-scanlines-up 7s linear infinite;
}

.crt-glitch-panel::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 4;
    pointer-events: none;
    opacity: 0;
    background:
        linear-gradient(
            to bottom,
            transparent 0%,
            rgba(255,255,255,0.18) 48%,
            rgba(212,90,162,0.28) 50%,
            rgba(90,120,255,0.16) 52%,
            transparent 56%
        );
    mix-blend-mode: screen;
    animation: crt-glitch-band-up 6.5s steps(1, end) infinite;
}

/* =========================================
   Horizontal CRT Warp
   ========================================= */

.crt-horizontal-warp {
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

.crt-horizontal-warp .crt-glow-content {
    animation: crt-base-drift 9s steps(1, end) infinite;
    background-image:
        repeating-linear-gradient(
            to bottom,
            rgba(120,180,255,0.00) 0px,
            rgba(120,180,255,0.00) 3px,
            rgba(120,180,255,0.05) 4px,
            rgba(255,80,170,0.035) 5px,
            rgba(120,180,255,0.00) 7px
        );
    background-blend-mode: screen;
}

.crt-horizontal-warp .crt-glow-content::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 6;
    pointer-events: none;
    opacity: 0;
    background:
        linear-gradient(
            to right,
            transparent 0%,
            rgba(120,180,255,0.18) 10%,
            rgba(255,255,255,0.18) 48%,
            rgba(212,90,162,0.20) 78%,
            transparent 100%
        );
    mix-blend-mode: screen;
    animation: crt-wide-horizontal-tear 3.8s steps(1, end) infinite;
}

/* =========================================
   CRT Animations
   ========================================= */

@keyframes crt-scanlines-up {
    from {
        transform: translateY(0);
    }

    to {
        transform: translateY(-80px);
    }
}

@keyframes crt-glitch-band-up {
    0%, 12%, 27%, 43%, 58%, 76%, 100% {
        opacity: 0;
        transform: translateY(100%);
    }

    13% {
        opacity: 0.75;
        transform: translateY(70%);
    }

    14% {
        opacity: 0.15;
        transform: translateY(62%) skewX(-2deg);
    }

    28% {
        opacity: 0.55;
        transform: translateY(35%);
    }

    29% {
        opacity: 0.18;
        transform: translateY(28%) skewX(2deg);
    }

    44% {
        opacity: 0.65;
        transform: translateY(10%);
    }

    45% {
        opacity: 0.12;
        transform: translateY(4%) skewX(-1deg);
    }

    59% {
        opacity: 0.5;
        transform: translateY(-20%);
    }

    60% {
        opacity: 0.16;
        transform: translateY(-26%) skewX(2deg);
    }

    77% {
        opacity: 0.55;
        transform: translateY(-55%);
    }

    78% {
        opacity: 0;
        transform: translateY(-70%);
    }
}

@keyframes crt-base-drift {
    0%, 88%, 100% {
        transform: translateX(0);
        filter: drop-shadow(0 0 5px rgba(212,90,162,0.18));
    }

    89% {
        transform: translateX(-2px) skewX(-0.4deg);
        filter:
            contrast(1.08)
            brightness(1.05)
            drop-shadow(0 0 7px rgba(212,90,162,0.24));
    }

    90% {
        transform: translateX(3px) skewX(0.5deg);
    }

    91% {
        transform: translateX(-1px);
    }

    92% {
        transform: translateX(0);
        filter: drop-shadow(0 0 5px rgba(212,90,162,0.18));
    }
}

@keyframes crt-wide-horizontal-tear {
    0%, 8%, 17%, 29%, 43%, 61%, 78%, 100% {
        opacity: 0;
        transform: translateX(0);
        clip-path: inset(0 0 0 0);
    }

    9% {
        opacity: 0.45;
        transform: translateX(-18px) skewX(-3deg);
        clip-path: inset(18% 0 70% 0);
    }

    10% {
        opacity: 0.28;
        transform: translateX(24px) skewX(4deg);
        clip-path: inset(21% 0 64% 0);
    }

    18% {
        opacity: 0.38;
        transform: translateX(32px) skewX(5deg);
        clip-path: inset(42% 0 47% 0);
    }

    19% {
        opacity: 0.16;
        transform: translateX(-28px) skewX(-4deg);
        clip-path: inset(46% 0 43% 0);
    }

    30% {
        opacity: 0.48;
        transform: translateX(-36px) skewX(-6deg);
        clip-path: inset(58% 0 30% 0);
    }

    31% {
        opacity: 0.18;
        transform: translateX(20px) skewX(3deg);
        clip-path: inset(61% 0 27% 0);
    }

    44% {
        opacity: 0.36;
        transform: translateX(18px) skewX(3deg);
        clip-path: inset(8% 0 84% 0);
    }

    45% {
        opacity: 0.12;
        transform: translateX(-14px) skewX(-2deg);
        clip-path: inset(11% 0 80% 0);
    }

    62% {
        opacity: 0.44;
        transform: translateX(-42px) skewX(-7deg);
        clip-path: inset(73% 0 16% 0);
    }

    63% {
        opacity: 0.18;
        transform: translateX(30px) skewX(4deg);
        clip-path: inset(76% 0 12% 0);
    }

    79% {
        opacity: 0.42;
        transform: translateX(26px) skewX(4deg);
        clip-path: inset(31% 0 58% 0);
    }

    80% {
        opacity: 0.14;
        transform: translateX(-20px) skewX(-3deg);
        clip-path: inset(34% 0 54% 0);
    }
}

/* =========================================
   Retro Horizon Grid Background
   ========================================= */

.retro-grid-bg {
    position: relative;
    overflow: hidden;
    border-radius: 5px;
    background:
        linear-gradient(
            to bottom,
            rgba(13, 6, 19, 0.98) 0%,
            rgba(25, 9, 33, 0.82) 44%,
            rgba(53, 19, 56, 0.50) 60%,
            rgba(4, 4, 7, 0.96) 61%,
            rgba(2, 2, 4, 1) 100%
        ) !important;
}

.retro-grid-bg .crt-glow-content {
    position: relative;
    z-index: 5;
}

.retro-grid-bg::before {
    content: "";
    position: absolute;
    left: -10%;
    right: -10%;
    top: 56%;
    height: 16%;
    z-index: 1;
    pointer-events: none;
    background:
        radial-gradient(
            ellipse at 50% 50%,
            rgba(230,210,225,0.28) 0%,
            rgba(204,94,168,0.30) 20%,
            rgba(184,56,142,0.20) 44%,
            transparent 76%
        );
    filter: blur(9px);
    opacity: 0.68;
}

.retro-grid-bg::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 61%;
    width: 150%;
    height: 115%;
    z-index: 2;
    pointer-events: none;
    background-image:
        linear-gradient(
            to right,
            rgba(204,64,156,0.72) 1px,
            transparent 1px
        ),
        linear-gradient(
            to bottom,
            rgba(204,64,156,0.70) 1px,
            transparent 1px
        );
    background-size:
        48px 100%,
        100% 26px;
    transform-origin: 50% 0%;
    transform:
        translateX(-50%)
        perspective(430px)
        rotateX(66deg);
    opacity: 0.78;
    filter:
        drop-shadow(0 0 3px rgba(204,64,156,0.58))
        drop-shadow(0 0 10px rgba(204,64,156,0.30));
    animation: retro-grid-flow 1.8s linear infinite;
    mask-image:
        linear-gradient(
            to bottom,
            transparent 0%,
            black 4%,
            black 82%,
            transparent 100%
        );
    -webkit-mask-image:
        linear-gradient(
            to bottom,
            transparent 0%,
            black 4%,
            black 82%,
            transparent 100%
        );
}

.retro-grid-bg .crt-glow-content::before {
    content: "";
    position: absolute;
    inset: -42px;
    z-index: -1;
    pointer-events: none;
    background:
        radial-gradient(
            ellipse at 50% 56%,
            rgba(220,220,225,0.05) 0%,
            rgba(204,64,156,0.07) 22%,
            rgba(96,152,204,0.05) 42%,
            transparent 70%
        );
    filter: blur(20px);
    opacity: 0.52;
}

@keyframes retro-grid-flow {
    from {
        background-position:
            0 0,
            0 0;
    }

    to {
        background-position:
            0 0,
            0 -26px;
    }
}

/* =========================================
   CRT Monitor Frame
   ========================================= */

.crt-monitor-frame {
    position: relative;
    box-sizing: border-box;
    padding: 34px 46px 38px 46px;
    border-radius: 22px;
    background:
        linear-gradient(145deg, #303030 0%, #181818 22%, #080808 58%, #202020 100%);
    border: 2px solid #2f2f2f;
    box-shadow:
        inset 0 2px 0 rgba(255,255,255,0.18),
        inset 0 -3px 0 rgba(0,0,0,0.85),
        inset 3px 0 0 rgba(255,255,255,0.06),
        inset -3px 0 0 rgba(0,0,0,0.75),
        0 0 0 3px #050505,
        0 0 0 5px #242424,
        0 12px 20px rgba(0,0,0,0.62),
        0 24px 42px rgba(0,0,0,0.52),
        0 42px 70px rgba(0,0,0,0.34);
}

.crt-monitor-frame::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 22px;
    pointer-events: none;
    opacity: 0.16;
    background:
        repeating-linear-gradient(
            135deg,
            rgba(255,255,255,0.035) 0px,
            rgba(255,255,255,0.035) 1px,
            transparent 1px,
            transparent 5px
        ),
        radial-gradient(
            ellipse at 28% 12%,
            rgba(255,255,255,0.12) 0%,
            transparent 45%
        );
    mix-blend-mode: screen;
}

.crt-monitor-frame::after {
    content: none;
}

.crt-monitor-inner {
    position: relative;
    box-sizing: border-box;
    padding: 18px;
    border-radius: 16px;
    background:
        linear-gradient(145deg, #050505 0%, #111 44%, #070707 100%);
    border: 1px solid #050505;
    box-shadow:
        inset 0 5px 14px rgba(0,0,0,0.95),
        inset 0 -2px 4px rgba(255,255,255,0.06),
        inset 4px 0 10px rgba(0,0,0,0.85),
        inset -4px 0 10px rgba(0,0,0,0.85),
        0 1px 0 rgba(255,255,255,0.12);
}

.crt-monitor-screen {
    position: relative;
    overflow: hidden;
    border-radius: 9px / 18px;
    background: #050505;
    border: 2px solid #050505;
    box-shadow:
        inset 0 0 0 2px #151515,
        inset 0 0 22px rgba(0,0,0,0.95),
        inset 0 0 48px rgba(0,0,0,0.75),
        0 0 0 1px rgba(255,255,255,0.08),
        0 0 18px rgba(133,67,105,0.18);
}

.crt-monitor-screen::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 20;
    pointer-events: none;
    border-radius: 9px / 18px;
    background:
        radial-gradient(
            ellipse at 50% 50%,
            transparent 0%,
            transparent 58%,
            rgba(0,0,0,0.22) 82%,
            rgba(0,0,0,0.58) 100%
        ),
        linear-gradient(
            105deg,
            transparent 0%,
            rgba(255,255,255,0.05) 18%,
            transparent 38%,
            transparent 100%
        );
    box-shadow:
        inset 0 0 28px rgba(255,255,255,0.04),
        inset 0 0 60px rgba(0,0,0,0.65);
}

.crt-monitor-screen .crt-glitch-panel,
.crt-monitor-screen .retro-grid-bg {
    border-radius: 8px / 16px;
}

.crt-monitor-screen .crt-glitch-panel {
    box-shadow: none;
}

#clbi-main-crt-hero-wrap {
    width: 100%;
    margin: 0 auto 14px auto;
}

#clbi-main-crt-hero {
    width: 100%;
}

/* =========================================
   Compact CRT Media Frame
   ========================================= */

.compact-crt-media {
    position: relative;
    box-sizing: border-box;
    width: fit-content;
    max-width: 100%;
    margin: 6px auto;
    padding: 10px 14px;
    border-radius: 10px;
    background:
        linear-gradient(
            145deg,
            #242424 0%,
            #141414 34%,
            #070707 70%,
            #171717 100%
        );
    border: 1px solid #2b2b2b;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.12),
        inset 0 -2px 0 rgba(0,0,0,0.82),
        inset 2px 0 0 rgba(255,255,255,0.035),
        inset -2px 0 0 rgba(0,0,0,0.62),
        0 0 0 2px #050505,
        0 0 0 3px #242424,
        0 4px 12px rgba(0,0,0,0.68);
    overflow: hidden;
}

.compact-crt-media .mw-default-size,
.compact-crt-media .mw-file-element,
.compact-crt-media img {
    position: relative;
    z-index: 1;
}

.compact-crt-media img {
    max-width: 100%;
    height: auto;
    filter:
        drop-shadow(0 1px 3px rgba(0,0,0,0.72))
        drop-shadow(0 0 4px rgba(255,255,255,0.06));
    animation: compact-crt-image-jitter 1.25s steps(1, end) infinite;
}

.compact-crt-media::before {
    content: "";
    position: absolute;
    inset: 6px;
    z-index: 3;
    border-radius: 7px;
    pointer-events: none;
    background:
        radial-gradient(
            ellipse at 50% 50%,
            transparent 0%,
            transparent 54%,
            rgba(0,0,0,0.20) 78%,
            rgba(0,0,0,0.58) 100%
        ),
        linear-gradient(
            105deg,
            transparent 0%,
            rgba(255,255,255,0.040) 18%,
            transparent 38%,
            transparent 100%
        ),
        linear-gradient(
            to bottom,
            rgba(255,255,255,0.030) 0%,
            transparent 34%,
            rgba(0,0,0,0.26) 100%
        );
    box-shadow:
        inset 0 0 18px rgba(255,255,255,0.028),
        inset 0 0 38px rgba(0,0,0,0.66);
}

.compact-crt-media::after {
    content: "";
    position: absolute;
    inset: 6px;
    z-index: 4;
    border-radius: 7px;
    pointer-events: none;
    opacity: 0.34;
    background:
        repeating-linear-gradient(
            to bottom,
            rgba(255,255,255,0.070) 0px,
            rgba(255,255,255,0.070) 1px,
            transparent 2px,
            transparent 4px
        );
    mix-blend-mode: screen;
}

.compact-crt-static {
    position: absolute;
    inset: 6px;
    z-index: 5;
    border-radius: 7px;
    pointer-events: none;
    opacity: 0.30;
    background:
        repeating-linear-gradient(
            to bottom,
            transparent 0px,
            transparent 4px,
            rgba(255,255,255,0.10) 5px,
            transparent 6px,
            transparent 10px
        ),
        linear-gradient(
            to bottom,
            transparent 0%,
            transparent 43%,
            rgba(255,255,255,0.11) 49%,
            rgba(180,180,180,0.08) 50%,
            rgba(90,90,90,0.08) 51%,
            transparent 56%,
            transparent 100%
        );
    mix-blend-mode: screen;
    animation:
        compact-crt-static-roll 3.8s linear infinite,
        compact-crt-static-flicker 1.7s steps(1, end) infinite;
}

.compact-crt-media:hover::after {
    opacity: 0.40;
}

.compact-crt-media:hover .compact-crt-static {
    opacity: 0.36;
}

.compact-crt-media:hover img {
    filter:
        drop-shadow(0 1px 3px rgba(0,0,0,0.78))
        drop-shadow(0 0 5px rgba(255,255,255,0.08));
}

@keyframes compact-crt-static-roll {
    from {
        background-position:
            0 0,
            0 110%;
    }

    to {
        background-position:
            0 -32px,
            0 -30%;
    }
}

@keyframes compact-crt-static-flicker {
    0%, 100% {
        transform: translateX(0);
        opacity: 0.26;
    }

    11% {
        transform: translateX(-1px);
        opacity: 0.36;
    }

    12% {
        transform: translateX(1px);
        opacity: 0.22;
    }

    36% {
        transform: translateX(0);
        opacity: 0.30;
    }

    37% {
        transform: translateX(1px);
        opacity: 0.38;
    }

    38% {
        transform: translateX(-1px);
        opacity: 0.24;
    }

    64% {
        transform: translateX(0);
        opacity: 0.32;
    }

    65% {
        transform: translateX(-1px);
        opacity: 0.40;
    }

    66% {
        transform: translateX(0);
        opacity: 0.26;
    }
}

@keyframes compact-crt-image-jitter {
    0%, 82%, 100% {
        transform: translateX(0);
    }

    83% {
        transform: translateX(-1px);
    }

    84% {
        transform: translateX(1px);
    }

    85% {
        transform: translateX(0);
    }

    92% {
        transform: translateX(1px);
    }

    93% {
        transform: translateX(-1px);
    }

    94% {
        transform: translateX(0);
    }
}

.compact-crt-media.compact-crt-portrait {
    padding: 4px 5px;
    border-radius: 8px;
}

.compact-crt-media.compact-crt-portrait::before {
    inset: 3px;
    border-radius: 5px;
}

.compact-crt-media.compact-crt-portrait::after {
    inset: 3px;
    border-radius: 5px;
}

.compact-crt-media.compact-crt-portrait .compact-crt-static {
    inset: 3px;
    border-radius: 5px;
}

.compact-crt-media.compact-crt-portrait img,
.compact-crt-media.compact-crt-portrait .mw-file-element {
    display: block;
}

/* =========================================
   Related Template Title
   ========================================= */

.related-template-title {
    position: relative;
    overflow: hidden;
    width: 100%;
    border-radius: 5px;
    background: #111111;
    color: #fff;
    box-shadow:
        inset 1px 0 0 #494949,
        inset 0 -1px 0 #555;
}

.related-template-title::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    border-radius: inherit;
    background:
        linear-gradient(
            to bottom,
            rgba(255,255,255,0.070) 0%,
            rgba(255,255,255,0.026) 18%,
            transparent 45%,
            rgba(0,0,0,0.18) 100%
        ),
        linear-gradient(
            105deg,
            transparent 0%,
            rgba(255,255,255,0.045) 18%,
            transparent 36%,
            transparent 100%
        );
    box-shadow:
        inset 0 0 0 1px rgba(255,255,255,0.026),
        inset 0 0 14px rgba(0,0,0,0.30);
}

.related-template-title::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    border-radius: inherit;
    opacity: 0.20;
    background:
        repeating-linear-gradient(
            to bottom,
            rgba(255,255,255,0.055) 0px,
            rgba(255,255,255,0.055) 1px,
            transparent 2px,
            transparent 4px
        );
    mix-blend-mode: screen;
}

.related-template-title > * {
    position: relative;
    z-index: 3;
}

/* =========================================
   Page Top CRT Banner
   Template use:
   {{Banner|[[파일:example.png{{!}}1000px{{!}}link=]]|80px|20px}}
   2번 인자: 양수면 좌측 이동
   3번 인자: 양수면 아래 이동
   ========================================= */

.crt-page-monitor-frame {
    position: relative;
    box-sizing: border-box;
    width: 100%;
    aspect-ratio: 2560 / 580;
    margin: 0 auto 16px auto;
    padding: 14px 20px 16px 20px;
    border-radius: 18px;
    background:
        linear-gradient(
            145deg,
            #151515 0%,
            #0b0b0b 28%,
            #050505 58%,
            #181818 100%
        );
    border: 2px solid #242424;
    box-shadow:
        inset 0 3px 8px rgba(0,0,0,0.78),
        inset 0 -2px 0 rgba(255,255,255,0.030),
        inset 4px 0 10px rgba(0,0,0,0.72),
        inset -3px 0 0 rgba(0,0,0,0.78),
        0 0 0 3px #050505,
        0 0 0 5px #242424;
    overflow: hidden;
}

.crt-page-monitor-frame::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 18px;
    pointer-events: none;
    opacity: 0.08;
    background:
        linear-gradient(
            to bottom,
            rgba(0,0,0,0.38) 0%,
            transparent 20%,
            transparent 100%
        ),
        linear-gradient(
            to right,
            rgba(0,0,0,0.34) 0%,
            transparent 18%,
            transparent 100%
        );
    mix-blend-mode: normal;
}

.crt-page-monitor-frame::after {
    content: none;
}

.crt-page-monitor-inner {
    position: relative;
    box-sizing: border-box;
    width: 100%;
    height: 100%;
    padding: 6px;
    border-radius: 13px;
    background:
        linear-gradient(
            145deg,
            #020202 0%,
            #080808 45%,
            #030303 100%
        );
    border: 1px solid #020202;
    box-shadow:
        inset 0 11px 24px rgba(0,0,0,0.98),
        inset 0 -2px 3px rgba(255,255,255,0.028),
        inset 8px 0 20px rgba(0,0,0,0.94),
        inset -8px 0 20px rgba(0,0,0,0.94),
        0 0 0 1px rgba(255,255,255,0.030);
}

.crt-page-monitor-screen {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
    border-radius: 8px / 15px;
    background: #050505;
    border: 1px solid #060606;
    box-shadow:
        inset 0 0 18px rgba(0,0,0,0.88),
        inset 0 0 42px rgba(0,0,0,0.70),
        0 0 0 1px rgba(255,255,255,0.026);
}

.crt-page-monitor-image,
.crt-page-monitor-image-base,
.crt-page-monitor-image-bloom,
.crt-page-monitor-slice {
    position: absolute;
    inset: 0;
    line-height: 0;
    overflow: hidden;
}

.crt-page-monitor-image {
    z-index: 1;
}

.crt-page-monitor-image-base {
    z-index: 3;
}

.crt-page-monitor-image-bloom {
    z-index: 4;
    pointer-events: none;
    opacity: 0.38;
    mix-blend-mode: normal;
    filter:
        blur(9px)
        brightness(0.92)
        contrast(1.02)
        saturate(1.04);
}

.crt-page-monitor-image-base a,
.crt-page-monitor-image-base span,
.crt-page-monitor-image-base .mw-file-description,
.crt-page-monitor-image-base .mw-default-size,
.crt-page-monitor-image-base .mw-image-border,
.crt-page-monitor-image-bloom a,
.crt-page-monitor-image-bloom span,
.crt-page-monitor-image-bloom .mw-file-description,
.crt-page-monitor-image-bloom .mw-default-size,
.crt-page-monitor-image-bloom .mw-image-border,
.crt-page-monitor-slice a,
.crt-page-monitor-slice span,
.crt-page-monitor-slice .mw-file-description,
.crt-page-monitor-slice .mw-default-size,
.crt-page-monitor-slice .mw-image-border {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
}

.crt-page-monitor-image-base img,
.crt-page-monitor-image-base .mw-file-element,
.crt-page-monitor-image-bloom img,
.crt-page-monitor-image-bloom .mw-file-element,
.crt-page-monitor-slice img,
.crt-page-monitor-slice .mw-file-element,
.crt-page-monitor-slice-img {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: center center;
    border: 0 !important;
    transform:
        translate(
            calc(0px - var(--crt-img-left, 0px)),
            var(--crt-img-down, 0px)
        )
        scale(var(--crt-img-scale, 1.04));
    transform-origin: center center;
}

.crt-page-monitor-image-base img,
.crt-page-monitor-image-base .mw-file-element {
    filter:
        brightness(0.84)
        contrast(1.08)
        saturate(0.90);
}

.crt-page-monitor-image-bloom img,
.crt-page-monitor-image-bloom .mw-file-element {
    transform:
        translate(
            calc(0px - var(--crt-img-left, 0px)),
            var(--crt-img-down, 0px)
        )
        scale(calc(var(--crt-img-scale, 1.04) + 0.02));
}

.crt-page-monitor-slice img,
.crt-page-monitor-slice .mw-file-element,
.crt-page-monitor-slice-img {
    filter:
        brightness(0.96)
        contrast(1.18)
        saturate(0.82);
}

.crt-page-monitor-image::after {
    content: "";
    position: absolute;
    inset: -3%;
    z-index: 6;
    pointer-events: none;
    opacity: 0.16;
    background:
        radial-gradient(
            ellipse at 50% 45%,
            rgba(220,235,230,0.12) 0%,
            rgba(170,190,185,0.05) 34%,
            rgba(70,85,82,0.03) 62%,
            transparent 100%
        ),
        linear-gradient(
            to bottom,
            rgba(255,255,255,0.04) 0%,
            rgba(255,255,255,0.014) 28%,
            transparent 70%,
            rgba(0,0,0,0.08) 100%
        );
    mix-blend-mode: normal;
}

.crt-page-monitor-slice {
    z-index: 5;
    opacity: 0;
    pointer-events: none;
    mix-blend-mode: screen;
    will-change: transform, opacity, clip-path, filter;
}

.crt-page-monitor-slice-a {
    animation: crt-slice-tear-a 4.7s steps(1, end) infinite;
}

.crt-page-monitor-slice-b {
    animation: crt-slice-tear-b 6.1s steps(1, end) infinite;
}

.crt-page-monitor-slice-c {
    animation: crt-slice-tear-c 7.4s steps(1, end) infinite;
}

.crt-page-monitor-screen::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 20;
    pointer-events: none;
    border-radius: 8px / 15px;
    background:
        radial-gradient(
            ellipse at 50% 50%,
            transparent 0%,
            transparent 62%,
            rgba(0,0,0,0.16) 78%,
            rgba(0,0,0,0.42) 100%
        ),
        linear-gradient(
            to bottom,
            rgba(0,0,0,0.18) 0%,
            transparent 14%,
            transparent 82%,
            rgba(0,0,0,0.24) 100%
        ),
        linear-gradient(
            to right,
            rgba(0,0,0,0.18) 0%,
            transparent 8%,
            transparent 92%,
            rgba(0,0,0,0.18) 100%
        ),
        linear-gradient(
            105deg,
            transparent 0%,
            rgba(255,255,255,0.030) 18%,
            transparent 38%,
            transparent 100%
        );
    box-shadow:
        inset 0 0 20px rgba(255,255,255,0.018),
        inset 0 0 54px rgba(0,0,0,0.54);
}

.crt-page-monitor-screen::after {
    content: "";
    position: absolute;
    inset: -80px 0;
    z-index: 21;
    pointer-events: none;
    opacity: 0.20;
    background:
        repeating-linear-gradient(
            to bottom,
            rgba(255,255,255,0.08) 0px,
            rgba(255,255,255,0.08) 1px,
            transparent 2px,
            transparent 5px
        );
    mix-blend-mode: screen;
    animation: crt-scanlines-up 7s linear infinite;
}

.crt-page-monitor-glitch {
    position: absolute;
    inset: 0;
    z-index: 22;
    pointer-events: none;
    opacity: 0;
    background:
        linear-gradient(
            to bottom,
            transparent 0%,
            rgba(255,255,255,0.12) 48%,
            rgba(212,90,162,0.14) 50%,
            rgba(90,120,255,0.08) 52%,
            transparent 56%
        );
    mix-blend-mode: screen;
    animation: crt-soft-glitch-band 8.2s steps(1, end) infinite;
}

.crt-page-monitor-tear {
    position: absolute;
    inset: 0;
    z-index: 23;
    pointer-events: none;
    opacity: 0;
    background:
        linear-gradient(
            to right,
            transparent 0%,
            rgba(120,180,255,0.07) 10%,
            rgba(255,255,255,0.11) 48%,
            rgba(212,90,162,0.08) 78%,
            transparent 100%
        );
    mix-blend-mode: screen;
    animation: crt-soft-horizontal-tear 5.6s steps(1, end) infinite;
}

@keyframes crt-slice-tear-a {
    0%, 11%, 100% {
        opacity: 0;
        transform: translateX(0);
        clip-path: inset(0 0 100% 0);
    }

    12% {
        opacity: 0.38;
        transform: translateX(-18px);
        clip-path: inset(17% 0 78% 0);
    }

    13% {
        opacity: 0.22;
        transform: translateX(11px);
        clip-path: inset(18% 0 77% 0);
        filter: hue-rotate(-8deg);
    }

    14% {
        opacity: 0;
        transform: translateX(0);
        clip-path: inset(0 0 100% 0);
    }

    63% {
        opacity: 0.30;
        transform: translateX(9px);
        clip-path: inset(24% 0 70% 0);
    }

    64% {
        opacity: 0;
        transform: translateX(0);
        clip-path: inset(0 0 100% 0);
    }
}

@keyframes crt-slice-tear-b {
    0%, 37%, 100% {
        opacity: 0;
        transform: translateX(0);
        clip-path: inset(0 0 100% 0);
    }

    38% {
        opacity: 0.42;
        transform: translateX(24px);
        clip-path: inset(43% 0 50% 0);
    }

    39% {
        opacity: 0.26;
        transform: translateX(-14px);
        clip-path: inset(45% 0 48% 0);
        filter: hue-rotate(10deg) brightness(1.08);
    }

    40% {
        opacity: 0;
        transform: translateX(0);
        clip-path: inset(0 0 100% 0);
    }

    78% {
        opacity: 0.34;
        transform: translateX(-20px);
        clip-path: inset(51% 0 43% 0);
    }

    79% {
        opacity: 0;
        transform: translateX(0);
        clip-path: inset(0 0 100% 0);
    }
}

@keyframes crt-slice-tear-c {
    0%, 21%, 100% {
        opacity: 0;
        transform: translateX(0);
        clip-path: inset(0 0 100% 0);
    }

    22% {
        opacity: 0.28;
        transform: translateX(-30px);
        clip-path: inset(67% 0 25% 0);
    }

    23% {
        opacity: 0.18;
        transform: translateX(16px);
        clip-path: inset(68% 0 23% 0);
        filter: contrast(1.25) brightness(1.06);
    }

    24% {
        opacity: 0;
        transform: translateX(0);
        clip-path: inset(0 0 100% 0);
    }

    91% {
        opacity: 0.36;
        transform: translateX(18px);
        clip-path: inset(73% 0 18% 0);
    }

    92% {
        opacity: 0;
        transform: translateX(0);
        clip-path: inset(0 0 100% 0);
    }
}

@keyframes crt-soft-glitch-band {
    0%, 52%, 100% {
        opacity: 0;
        transform: translateY(80%);
    }

    53% {
        opacity: 0.42;
        transform: translateY(36%);
    }

    54% {
        opacity: 0.16;
        transform: translateY(20%) skewX(-1deg);
    }

    55% {
        opacity: 0;
        transform: translateY(-20%);
    }
}

@keyframes crt-soft-horizontal-tear {
    0%, 68%, 100% {
        opacity: 0;
        transform: translateX(0);
        clip-path: inset(0 0 0 0);
    }

    69% {
        opacity: 0.32;
        transform: translateX(-16px);
        clip-path: inset(34% 0 58% 0);
    }

    70% {
        opacity: 0.18;
        transform: translateX(12px);
        clip-path: inset(37% 0 55% 0);
    }

    71% {
        opacity: 0;
        transform: translateX(0);
        clip-path: inset(0 0 0 0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .crt-page-monitor-slice-a,
    .crt-page-monitor-slice-b,
    .crt-page-monitor-slice-c,
    .crt-page-monitor-screen::after,
    .crt-page-monitor-glitch,
    .crt-page-monitor-tear {
        animation: none !important;
    }

    .crt-page-monitor-slice,
    .crt-page-monitor-glitch,
    .crt-page-monitor-tear {
        opacity: 0 !important;
    }
}

/* =========================================
   Historical Events Timeline
   ========================================= */

.timeline-event {
    position: relative;
    display: block;
    width: 100%;
    box-sizing: border-box;
    line-height: inherit;
    text-align: center;
}

.timeline-title {
    position: relative;
    z-index: 2;
    display: inline-block;
    text-align: center;
}

.timeline-event.he-linked::before {
    content: "";
    position: absolute;
    top: -2px;
    left: 2px;
    right: 2px;
    height: 3px;
    border-radius: 999px;
    pointer-events: none;
    background:
        linear-gradient(
            to right,
            transparent 0%,
            color-mix(in srgb, var(--he-color) 18%, transparent) 8%,
            color-mix(in srgb, var(--he-color) 92%, transparent) 14%,
            color-mix(in srgb, var(--he-color) 92%, transparent) 86%,
            color-mix(in srgb, var(--he-color) 18%, transparent) 92%,
            transparent 100%
        );
    box-shadow:
        0 0 7px color-mix(in srgb, var(--he-color) 28%, transparent);
}

.timeline-event.he-root {
    overflow: visible;
}

.timeline-event.he-root::before {
    content: "";
    position: absolute;
    left: 6%;
    right: 6%;
    top: 50%;
    height: 16px;
    transform: translateY(-50%);
    border-radius: 999px;
    pointer-events: none;
    background:
        linear-gradient(
            to bottom,
            rgba(255,255,255,0.05) 0%,
            rgba(0,0,0,0.24) 100%
        ),
        linear-gradient(
            to right,
            transparent 0%,
            color-mix(in srgb, var(--he-color) 10%, transparent) 8%,
            color-mix(in srgb, var(--he-color) 24%, transparent) 18%,
            color-mix(in srgb, var(--he-color) 36%, transparent) 50%,
            color-mix(in srgb, var(--he-color) 24%, transparent) 82%,
            color-mix(in srgb, var(--he-color) 10%, transparent) 92%,
            transparent 100%
        );
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.05),
        inset 0 -1px 0 rgba(0,0,0,0.42),
        0 0 8px color-mix(in srgb, var(--he-color) 16%, transparent);
    -webkit-mask-image:
        linear-gradient(
            to right,
            transparent 0%,
            black 10%,
            black 90%,
            transparent 100%
        );
    mask-image:
        linear-gradient(
            to right,
            transparent 0%,
            black 10%,
            black 90%,
            transparent 100%
        );
}

.timeline-event.he-root::after {
    content: "";
    position: absolute;
    left: 10%;
    right: 10%;
    top: 50%;
    height: 22px;
    transform: translateY(-50%);
    pointer-events: none;
    background:
        linear-gradient(
            to right,
            transparent 0%,
            color-mix(in srgb, var(--he-color) 48%, transparent) 16%,
            color-mix(in srgb, var(--he-color) 48%, transparent) 84%,
            transparent 100%
        ) top center / 100% 1px no-repeat,
        linear-gradient(
            to right,
            transparent 0%,
            color-mix(in srgb, var(--he-color) 24%, transparent) 16%,
            color-mix(in srgb, var(--he-color) 24%, transparent) 84%,
            transparent 100%
        ) bottom center / 100% 1px no-repeat;
}

.timeline-event.he-root .timeline-title {
    text-shadow:
        0 0 4px color-mix(in srgb, var(--he-color) 34%, transparent),
        0 0 9px color-mix(in srgb, var(--he-color) 16%, transparent);
}

/* =========================================
   Tree List
   ========================================= */

.tree-container {
    margin: 0;
    padding: 0;
}

.tree-node {
    position: relative;
    padding-left: 20px;
    margin: 0;
    text-indent: 0;
    line-height: 1.55;
}

.tree-node::before {
    content: "";
    position: absolute;
    top: 0;
    left: 7px;
    width: 1.2px;
    height: 100%;
    background: #7F7F7F;
}

.tree-node::after {
    content: "";
    position: absolute;
    top: 12px;
    left: 7px;
    width: 8px;
    height: 0;
    border-top: 1.2px solid #7F7F7F;
}

.tree-node:last-of-type::before {
    height: 12px;
}

/* =========================================
   Meeting Composition Panel
   ========================================= */

.meeting-panel {
    position: relative;
    isolation: isolate;
    z-index: 0;
    width: calc(100% + 4px);
    left: -2px;
    margin: 0 auto 15px auto;
    border: 2px solid #1a1a1a;
    border-radius: 5px;
    background:
        radial-gradient(
            ellipse at 50% 35%,
            rgba(255,255,255,0.025) 0%,
            transparent 46%
        ),
        linear-gradient(
            to bottom,
            #1A1A1A 0%,
            #181818 52%,
            #151515 100%
        );
    color: #FFF;
    box-shadow:
        0 4px 12px #000;
    text-align: center;
    font-size: 11px;
    box-sizing: border-box;
    overflow: visible;
}

.meeting-panel::before {
    content: "";
    position: absolute;
    inset: -5px;
    z-index: -2;
    border-radius: 8px;
    background: #854369;
    pointer-events: none;
}

.meeting-panel::after {
    content: "";
    position: absolute;
    inset: -3px;
    z-index: -1;
    border-radius: 7px;
    background: #1A1A1A;
    pointer-events: none;
}

.meeting-panel-body {
    width: 100%;
    color: #E4E4E4;
    padding: 4.5px 9px 9px 9px;
    box-sizing: border-box;
    border-radius: 3px;
    background: transparent;
    overflow: hidden;
}

.meeting-title-wrap {
    width: 100%;
    max-width: 760px;
    margin: 5px auto 8px auto;
}

.meeting-title-wrap .infobox-glass-title {
    top: 0;
    margin-top: 0;
    padding: 5px;
    line-height: 1.2;
}

.meeting-title-table {
    width: auto;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    border: 2px solid transparent;
    border-collapse: collapse;
    table-layout: auto;
}

.meeting-title-table td,
.meeting-title-table th {
    background: none !important;
    border: none !important;
    vertical-align: middle !important;
}

.meeting-title-table .meeting-title-image-left {
    width: auto;
    text-align: right !important;
    padding: 0 6px 0 0 !important;
    line-height: 0;
    white-space: nowrap;
}

.meeting-title-table .meeting-title-image-right {
    width: auto;
    text-align: left !important;
    padding: 0 0 0 6px !important;
    line-height: 0;
    white-space: nowrap;
}

.meeting-title-table .meeting-title-cell {
    width: auto;
    line-height: 1.15 !important;
    background: none !important;
    text-align: center !important;
    white-space: nowrap;
    padding: 0 !important;
}

.meeting-title-image-left img,
.meeting-title-image-right img,
.meeting-title-image-left .mw-file-element,
.meeting-title-image-right .mw-file-element {
    display: block;
    border: 0 !important;
    vertical-align: middle;
    filter:
        drop-shadow(0 1px 2px rgba(0,0,0,0.75))
        drop-shadow(0 0 3px rgba(255,255,255,0.08));
}

.meeting-title-name {
    display: block;
    line-height: 1.15;
    text-align: center;
}

.meeting-title-meta {
    display: block;
    margin-top: 1px;
    color: #7F7F7F;
    font-size: 10px;
    font-weight: normal;
    line-height: 1.15;
    text-align: center;
}

.meeting-seatmap {
    position: relative;
    margin: 0 auto;
    padding: 5px 0 4px 0;
    background: transparent;
    border-radius: 0;
    overflow: visible;
}

.meeting-seatmap::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 84px;
    bottom: 145px;
    width: 2px;
    transform: translateX(-50%);
    background:
        linear-gradient(
            to bottom,
            transparent 0%,
            rgba(65,65,65,0.72) 18%,
            #414141 50%,
            rgba(65,65,65,0.72) 82%,
            transparent 100%
        );
    box-shadow: 0 0 6px rgba(65,65,65,0.16);
    pointer-events: none;
}

.meeting-table-zone::before {
    content: "";
    position: absolute;
    left: 7%;
    right: 7%;
    top: 50%;
    height: 2px;
    transform: translateY(-50%);
    background:
        linear-gradient(
            to right,
            transparent 0%,
            rgba(65,65,65,0.72) 14%,
            #414141 50%,
            rgba(65,65,65,0.72) 86%,
            transparent 100%
        );
    box-shadow: 0 0 6px rgba(65,65,65,0.14);
    pointer-events: none;
}

.meeting-axis-label {
    position: relative;
    z-index: 4;
    display: inline-block;
    min-width: 42px;
    margin: 2px auto 4px auto;
    padding: 2px 9px;
    border-radius: 5px;
    background: #0c0c0c;
    color: #E4E4E4;
    font-weight: bold;
    line-height: 1.35;
    box-shadow:
        inset 0 -1px 0 #525252,
        0 0 0 3px #1A1A1A;
}

.meeting-chair-line {
    position: relative;
    z-index: 3;
    display: flex;
    justify-content: center;
    margin: 0 0 6px 0;
    background: transparent;
}

.meeting-table-zone {
    position: relative;
    z-index: 3;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 48px minmax(0, 1fr);
    align-items: center;
    width: 100%;
    max-width: 980px;
    min-height: 210px;
    margin: 0 auto;
    background: transparent;
}

.meeting-side {
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: center;
    gap: 0;
    min-width: 0;
    background: transparent;
}

.meeting-side-left {
    padding-right: 4px;
}

.meeting-side-right {
    padding-left: 4px;
}

.meeting-center-spine {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    align-self: stretch;
    min-height: 210px;
    z-index: 4;
    background: transparent;
}

.meeting-center-spine .meeting-axis-label {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    writing-mode: vertical-rl;
    text-orientation: mixed;
    min-width: 0;
    min-height: 42px;
    margin: 0;
    padding: 8px 3px;
}

.meeting-advisory-zone {
    position: relative;
    z-index: 3;
    margin-top: 6px;
    background: transparent;
}

.meeting-advisory-zone > .meeting-axis-label {
    margin-bottom: 6px;
}

.meeting-advisory-grid {
    position: relative;
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: center;
    gap: 0;
    width: 100%;
    max-width: 760px;
    margin: 0 auto;
    padding: 0;
    box-sizing: border-box;
    background: transparent;
}

.meeting-advisory-grid::before {
    content: "";
    position: absolute;
    left: 7%;
    right: 7%;
    top: 94px;
    height: 2px;
    background:
        linear-gradient(
            to right,
            transparent 0%,
            rgba(65,65,65,0.72) 14%,
            #414141 50%,
            rgba(65,65,65,0.72) 86%,
            transparent 100%
        );
    box-shadow: 0 0 6px rgba(65,65,65,0.14);
    pointer-events: none;
}

.meeting-person-card {
    position: relative;
    z-index: 3;
    background: transparent;
    color: #fff;
    text-align: center;
    vertical-align: top;
    padding: 0;
    box-sizing: border-box;
}

.meeting-chair-card {
    width: 180px;
}

.meeting-side .meeting-person-card {
    width: 50%;
    min-width: 0;
}

.meeting-advisory-card {
    width: 33.333%;
    min-width: 0;
}

.meeting-person-inner {
    display: flex;
    justify-content: center;
    padding: 0;
    background: transparent;
}

.meeting-person-stack {
    width: 90%;
    margin-top: 3px;
    background: transparent;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.meeting-side .meeting-person-stack {
    width: 94%;
}

.meeting-advisory-card .meeting-person-stack {
    width: 92%;
}

.meeting-person-stack .compact-crt-media {
    margin-left: auto;
    margin-right: auto;
    flex: 0 0 auto;
}

.meeting-person-stack .office-card-name-cell {
    width: 170px;
    max-width: 100%;
    margin-top: 6px;
    margin-left: auto;
    margin-right: auto;
    flex: 0 0 auto;
}

.meeting-chair-card .office-card-name-cell {
    width: 170px;
}

.meeting-advisory-card .office-card-name-cell {
    width: 170px;
}

.meeting-office {
    display: block;
    margin-top: 2px;
    color: #7F7F7F;
    font-size: 10px;
    line-height: 1.3;
    font-weight: normal;
}

/* =====================================================================
   ScreenHeader + Screen Bezel Module
   
   Template.css에서 교체할 범위:
     [/* ScreenHeader */] 주석부터
     [/* Document View System — doc-* */] 주석 바로 위까지
   전체를 지우고  파일 내용으로 교체하세요.
   ===================================================================== */

/* =========================================
   ScreenHeader — 컨테이너 & 레이아웃 제어
   ========================================= */

.liberty-content:has(.screen-header) .liberty-content-header .title {
    display: none !important;
}

/* screen-header 문서 — 컨테이너를 베젤로 */
.Liberty .content-wrapper .liberty-content:has(.screen-header) .liberty-content-main {
    position: relative !important;
    box-sizing: border-box !important;
    border: 2px solid #854369 !important;
    border-radius: 5px !important;
    background: linear-gradient(
        160deg,
        #2e2e2e 0%,
        #1e1e1e 30%,
        #121212 65%,
        #1a1a1a 100%
    ) !important;
    box-shadow:
        inset 0 3px 0 rgba(255,255,255,0.10),
        inset 0 -4px 0 rgba(0,0,0,0.85),
        inset 4px 0 0 rgba(255,255,255,0.04),
        inset -4px 0 0 rgba(0,0,0,0.70) !important;
    overflow: hidden !important;
}

/* 상단 빛반사 */
.Liberty .content-wrapper .liberty-content:has(.screen-header) .liberty-content-main::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 40%;
    border-radius: 5px 5px 0 0;
    background: linear-gradient(to bottom, rgba(255,255,255,0.06) 0%, transparent 100%);
    pointer-events: none;
    z-index: 0;
}

.liberty-content:has(.screen-header) .screen-title-plate,
.liberty-content:has(.screen-header) .screen-header-frame,
.liberty-content:has(.screen-header) .screen-header-inner,
.liberty-content:has(.screen-header) .screen-header-media,
.liberty-content:has(.screen-header) .screen-header-vignette,
.liberty-content:has(.screen-header) .screen-header-scanline,
.liberty-content:has(.screen-header) .screen-header-mask,
.liberty-content:has(.screen-header) .screen-header-glass,
.liberty-content:has(.screen-header) .screen-header-subtitle {
    display: none !important;
}

/* =========================================
   screen-header
   베젤 좌우 padding(24px)을 정확히 상쇄
   width: calc(100% + 48px), margin: 0 -24px
   ========================================= */

.screen-header {
    position: relative !important;
    width: 100% !important;
    height: var(--screen-header-height, 360px) !important;
    margin: 0 !important;
    padding: 8px 8px 4px 8px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    background: #050505 !important;
    border: 0 !important;
    border-bottom: 0 !important;
    isolation: isolate !important;
}

.screen-header-recess {
    position: relative !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 4px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    background: #050505 !important;
    border: 1px solid rgba(255,255,255,0.035) !important;
    border-radius: 6px !important;
    box-shadow:
        inset 0 18px 30px rgba(0,0,0,0.82),
        inset 0 -9px 16px rgba(255,255,255,0.026),
        inset 18px 0 30px rgba(0,0,0,0.66),
        inset -18px 0 30px rgba(0,0,0,0.66),
        0 1px 0 rgba(255,255,255,0.030),
        0 -1px 0 rgba(0,0,0,0.70) !important;
}

.screen-header-recess::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    opacity: 0.10;
    background: repeating-linear-gradient(
        135deg,
        rgba(255,255,255,0.030) 0px,
        rgba(255,255,255,0.030) 1px,
        transparent 1px,
        transparent 5px
    );
    mix-blend-mode: screen;
}

.screen-header-recess::after {
    content: "";
    position: absolute;
    inset: 14px;
    z-index: 12;
    pointer-events: none;
    border-radius: 0;
    box-shadow:
        0 -20px 32px rgba(0,0,0,0.86),
        0 12px 18px rgba(255,255,255,0.024),
        -20px 0 32px rgba(0,0,0,0.78),
        20px 0 32px rgba(0,0,0,0.78),
        inset 0 0 0 1px rgba(255,255,255,0.018) !important;
}

.screen-header .screen-header-crt {
    position: relative !important;
    z-index: 2 !important;
    width: 100% !important;
    height: 100% !important;
    aspect-ratio: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.screen-header .screen-header-crt::before,
.screen-header .screen-header-crt::after {
    content: none !important;
}

.screen-header .crt-page-monitor-inner {
    position: relative !important;
    width: 100% !important;
    height: 100% !important;
    padding: 5px !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    border-radius: 0 !important;
    background: linear-gradient(
        145deg,
        #050505 0%,
        #0d0d0d 46%,
        #050505 100%
    ) !important;
    border: 1px solid #050505 !important;
    box-shadow:
        inset 0 10px 20px rgba(0,0,0,0.97),
        inset 0 -2px 3px rgba(255,255,255,0.030),
        inset 8px 0 18px rgba(0,0,0,0.90),
        inset -8px 0 18px rgba(0,0,0,0.90) !important;
}

.screen-header .crt-page-monitor-screen {
    position: relative !important;
    width: 100% !important;
    height: 100% !important;
    overflow: hidden !important;
    border-radius: 0 !important;
    background: #050505 !important;
    border: 1px solid #050505 !important;
    box-shadow:
        inset 0 0 0 1px #111,
        inset 0 0 24px rgba(0,0,0,0.94),
        inset 0 0 64px rgba(0,0,0,0.80),
        inset 0 0 118px rgba(0,0,0,0.50),
        0 0 0 1px rgba(255,255,255,0.030) !important;
}

.screen-header .crt-page-monitor-image,
.screen-header .crt-page-monitor-image-base,
.screen-header .crt-page-monitor-image-bloom,
.screen-header .crt-page-monitor-slice {
    position: absolute !important;
    inset: 0 !important;
    border-radius: 0 !important;
}

.screen-header .crt-page-monitor-image-base a,
.screen-header .crt-page-monitor-image-base span,
.screen-header .crt-page-monitor-image-base .mw-file-description,
.screen-header .crt-page-monitor-image-base .mw-default-size,
.screen-header .crt-page-monitor-image-base .mw-image-border,
.screen-header .crt-page-monitor-image-bloom a,
.screen-header .crt-page-monitor-image-bloom span,
.screen-header .crt-page-monitor-image-bloom .mw-file-description,
.screen-header .crt-page-monitor-image-bloom .mw-default-size,
.screen-header .crt-page-monitor-image-bloom .mw-image-border,
.screen-header .crt-page-monitor-slice a,
.screen-header .crt-page-monitor-slice span,
.screen-header .crt-page-monitor-slice .mw-file-description,
.screen-header .crt-page-monitor-slice .mw-default-size,
.screen-header .crt-page-monitor-slice .mw-image-border {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
}

.screen-header .crt-page-monitor-image-base img,
.screen-header .crt-page-monitor-image-base .mw-file-element,
.screen-header .crt-page-monitor-image-bloom img,
.screen-header .crt-page-monitor-image-bloom .mw-file-element,
.screen-header .crt-page-monitor-slice img,
.screen-header .crt-page-monitor-slice .mw-file-element,
.screen-header .crt-page-monitor-slice-img {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: var(--screen-image-position, center center) !important;
    border: 0 !important;
    border-radius: 0 !important;
}

.screen-header .crt-page-monitor-screen::before {
    content: "" !important;
    position: absolute !important;
    inset: -4px !important;
    z-index: 20 !important;
    pointer-events: none !important;
    border-radius: 0 !important;
    background:
        radial-gradient(
            ellipse at 50% 50%,
            transparent 0%,
            transparent 62%,
            rgba(0,0,0,0.18) 78%,
            rgba(0,0,0,0.48) 100%
        ),
        linear-gradient(
            to bottom,
            rgba(0,0,0,0.20) 0%,
            transparent 14%,
            transparent 82%,
            rgba(0,0,0,0.28) 100%
        ),
        linear-gradient(
            to right,
            rgba(0,0,0,0.20) 0%,
            transparent 8%,
            transparent 92%,
            rgba(0,0,0,0.20) 100%
        ),
        linear-gradient(
            105deg,
            transparent 0%,
            rgba(255,255,255,0.030) 18%,
            transparent 38%,
            transparent 100%
        ) !important;
    box-shadow:
        inset 0 0 0 1px rgba(255,255,255,0.018),
        inset 0 0 24px rgba(255,255,255,0.015),
        inset 0 0 74px rgba(0,0,0,0.64),
        inset 0 22px 38px rgba(0,0,0,0.60),
        inset 0 -20px 36px rgba(0,0,0,0.44),
        inset 18px 0 36px rgba(0,0,0,0.56),
        inset -18px 0 36px rgba(0,0,0,0.56) !important;
}

.screen-header .crt-page-monitor-screen::after {
    content: "" !important;
    position: absolute !important;
    inset: -80px -4px !important;
    z-index: 21 !important;
    pointer-events: none !important;
    opacity: 0.22 !important;
    border-radius: 0 !important;
    background: repeating-linear-gradient(
        to bottom,
        rgba(255,255,255,0.08) 0px,
        rgba(255,255,255,0.08) 1px,
        transparent 2px,
        transparent 5px
    ) !important;
    mix-blend-mode: screen !important;
    animation: crt-scanlines-up 7s linear infinite !important;
}

.screen-header .crt-page-monitor-glitch,
.screen-header .crt-page-monitor-tear {
    inset: -4px !important;
    border-radius: 0 !important;
}

.screen-header .crt-page-monitor-glitch { z-index: 22 !important; }
.screen-header .crt-page-monitor-tear   { z-index: 23 !important; }

.screen-header-title {
    position: absolute !important;
    left: 5px !important;
    bottom: 5px !important;
    z-index: 40 !important;
    margin: 0 !important;
    padding: 0 !important;
    max-width: calc(100% - 10px) !important;
    box-sizing: border-box !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

.screen-header-title-main {
    margin: 0 !important;
    padding: 0 0 8px 10px !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: #ffffff !important;
    font-family: 'BoldRound', sans-serif !important;
    font-size: 40px !important;
    font-weight: 700 !important;
    line-height: 0.95 !important;
    letter-spacing: 0.06em !important;
    text-shadow:
        3px 3px 0 rgba(0,0,0,0.98),
        0 0 6px rgba(0,0,0,0.98),
        0 0 14px rgba(0,0,0,0.95),
        0 0 26px rgba(0,0,0,0.92),
        -1px 0 0 rgba(80,160,255,0.24),
        1px 0 0 rgba(255,55,90,0.22) !important;
    white-space: nowrap !important;
}

.screen-header-subtitle {
    display: none !important;
}

/* =========================================
   screen-body
   베젤 좌우 padding(24px)을 정확히 상쇄
   하단 -28px은 베젤 하단 padding을 상쇄해서 베젤 닫음
   ========================================= */

.screen-header + .screen-body {
    margin-top: 0 !important;
    border-top: 0 !important;
}

.screen-body {
    position: relative;
    width: 100%;
    margin: 0;
    padding: 4px 8px 4px 8px;
    box-sizing: border-box;
    background: #171717;
    overflow: hidden;
}

/* =========================================
   Document View System — doc-*
   ========================================= */

.doc-body {
    position: relative;
    z-index: 3;
    box-sizing: border-box;
    width: 100%;
    padding: 0;
    background: transparent;
}

/* =========================================
   doc-header
   ========================================= */

.doc-header {
    position: relative;
    display: grid;
    grid-template-columns: 24px 1fr auto 24px;
    align-items: center;
    height: 28px;
    margin-bottom: 7px;
    padding: 0 8px;
    box-sizing: border-box;
    background:
        linear-gradient(
            to bottom,
            #282828 0%,
            #1a1a1a 40%,
            #161616 100%
        );
    border-top: 1px solid #3a3a3a;
    border-bottom: 1px solid #0a0a0a;
    border-left: 1px solid #222;
    border-right: 1px solid #222;
    border-radius: 2px;
}

.doc-header::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0.06;
    background: repeating-linear-gradient(
        135deg,
        rgba(255,255,255,0.08) 0px,
        rgba(255,255,255,0.08) 1px,
        transparent 1px,
        transparent 4px
    );
    border-radius: inherit;
}

.doc-header-id {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.18em;
    color: #c0c0c0;
    text-shadow: 0 1px 0 rgba(0,0,0,0.80);
    position: relative;
    z-index: 1;
}

.doc-screw {
    position: relative;
    z-index: 1;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background:
        radial-gradient(circle at 36% 32%, rgba(255,255,255,0.35) 0%, transparent 28%),
        linear-gradient(145deg, #505050 0%, #282828 55%, #0e0e0e 100%);
    border: 1px solid #090909;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.15),
        inset 0 -1px 0 rgba(0,0,0,0.60),
        0 0 0 1px #333;
    justify-self: center;
}

.doc-screw::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 15%;
    right: 15%;
    height: 1px;
    transform: translateY(-50%);
    background: rgba(0,0,0,0.55);
    border-radius: 1px;
}

.doc-status {
    display: flex;
    align-items: center;
    gap: 5px;
    position: relative;
    z-index: 1;
}

.doc-status-lamp {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #111;
    border: 1px solid #060606;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.06),
        0 0 0 1px #252525;
}

.doc-status-lamp.on {
    background: radial-gradient(circle at 38% 32%, #d9ff9d 0%, #7ec43e 45%, #253d18 100%);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.28),
        0 0 0 1px #1a3010,
        0 0 5px rgba(100,200,50,0.45);
}

.doc-status-lamp.warn {
    background: radial-gradient(circle at 38% 32%, #ffe8b0 0%, #d89a42 45%, #4d2a0d 100%);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.28),
        0 0 0 1px #3a1f06,
        0 0 5px rgba(220,140,40,0.45);
}

/* =========================================
   doc-layout
   ========================================= */

.doc-layout {
    display: grid;
    grid-template-columns: 200px minmax(0, 1fr) 320px;
    gap: 7px;
    align-items: stretch;
    min-height: 620px;
}

.doc-layout-left,
.doc-layout-center,
.doc-layout-right {
    min-width: 0;
}

.doc-layout-center,
.doc-layout-right {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.doc-layout-lower {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 7px;
    flex: 1;
}

/* =========================================
   doc-panel
   ========================================= */

.doc-panel {
    position: relative;
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    background: #1a1a1a;
    border-top: 1px solid #303030;
    border-bottom: 1px solid #080808;
    border-left: 1px solid #222;
    border-right: 1px solid #111;
    border-radius: 2px;
    overflow: hidden;
}

.doc-panel::before {
    content: "";
    position: absolute;
    top: 4px;
    left: 4px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background:
        radial-gradient(circle at 35% 30%, rgba(255,255,255,0.25) 0%, transparent 40%),
        linear-gradient(145deg, #444 0%, #1e1e1e 100%);
    border: 1px solid #080808;
    box-shadow: 0 0 0 1px #2a2a2a;
    pointer-events: none;
    z-index: 10;
}

.doc-panel::after {
    content: "";
    position: absolute;
    top: 4px;
    right: 4px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background:
        radial-gradient(circle at 35% 30%, rgba(255,255,255,0.25) 0%, transparent 40%),
        linear-gradient(145deg, #444 0%, #1e1e1e 100%);
    border: 1px solid #080808;
    box-shadow: 0 0 0 1px #2a2a2a;
    pointer-events: none;
    z-index: 10;
}

.doc-panel-title {
    position: relative;
    z-index: 3;
    box-sizing: border-box;
    padding: 6px 10px 5px 10px;
    font-family: 'Galmuri11', sans-serif !important;
    font-size: 10px;
    font-weight: 700;
    text-align: center;
    line-height: 1.2;
    letter-spacing: 0.10em;
    color: #888;
    background: linear-gradient(to bottom, #161616 0%, #121212 100%);
    border-bottom: 1px solid #0d0d0d;
    text-shadow: 0 1px 0 rgba(0,0,0,0.80);
    text-transform: uppercase;
}

.doc-panel-heading {
    padding: 10px 18px;
    font-size: 11px;
    font-weight: 700;
    color: #7a7a7a;
    letter-spacing: 0.06em;
    text-shadow: 0 1px 0 rgba(0,0,0,0.80);
    position: relative;
    z-index: 3;
}

.doc-panel table {
    width: 100%;
    border-collapse: collapse;
    margin: 0;
}

.doc-panel table th,
.doc-panel table td {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    vertical-align: middle !important;
}

.doc-panel table th[style],
.doc-panel table td[style] {
    background: revert !important;
    border: revert !important;
    padding: revert !important;
}

/* =========================================
   doc-display
   ========================================= */

.doc-display {
    position: relative;
    z-index: 3;
    box-sizing: border-box;
    padding: 4px 14px;
    margin-bottom: 0;
    min-height: 90px;
    line-height: 1.8;
    color: #d8d8d8;
    background: #111111;
    border-top: 1px solid #0a0a0a;
    box-shadow:
        inset 0 2px 6px rgba(0,0,0,0.55),
        inset 0 0 1px rgba(0,0,0,0.80);
}

/* =========================================
   doc-info
   ========================================= */

.doc-info-row {
    position: relative;
    z-index: 3;
    display: grid;
    grid-template-columns: 68px minmax(0, 1fr);
    gap: 8px;
    align-items: center;
    margin: 7px 10px 0 10px;
}

.doc-info-key {
    font-size: 10px;
    font-weight: 700;
    color: #7a7a7a;
    letter-spacing: 0.06em;
    text-shadow: 0 1px 0 rgba(0,0,0,0.70);
}

.doc-info-value {
    position: relative;
    overflow: hidden;
    text-align: right;
    border-radius: 2px;
    background: #0e0e0e;
    color: #d8d8d8;
    padding: 4px 9px;
    font-size: 11px;
    font-weight: 700;
    box-sizing: border-box;
    border-top: 1px solid #0a0a0a;
    border-bottom: 1px solid #252525;
    border-left: 1px solid #111;
    border-right: 1px solid #111;
    box-shadow:
        inset 0 2px 4px rgba(0,0,0,0.60),
        inset 1px 0 0 rgba(255,255,255,0.015);
}

.doc-info-value::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    opacity: 0.15;
    background: repeating-linear-gradient(
        to bottom,
        rgba(255,255,255,0.055) 0px,
        rgba(255,255,255,0.055) 1px,
        transparent 2px,
        transparent 4px
    );
    mix-blend-mode: screen;
}

.doc-info-block {
    padding: 0 8px 6px 8px;
    background: #1a1a1a;
}

.doc-info-block-label {
    display: block;
    padding: 6px 2px 4px 2px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #9a9a9a;
    text-shadow: 0 1px 0 rgba(0,0,0,0.80);
}

/* =========================================
   doc-nav
   ========================================= */

.doc-nav {
    height: 100%;
    display: flex;
    flex-direction: column;
}

.doc-nav-item {
    position: relative;
    z-index: 3;
    box-sizing: border-box;
    width: calc(100% - 16px);
    margin: 5px 8px 0 8px;
    padding: 7px 24px 7px 10px;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.35;
    color: #666;
    background: linear-gradient(to bottom, #232323 0%, #1a1a1a 50%, #161616 100%);
    border-top: 1px solid #2e2e2e;
    border-bottom: 1px solid #0a0a0a;
    border-left: 1px solid #222;
    border-right: 1px solid #111;
    border-radius: 2px;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.025),
        0 1px 0 rgba(255,255,255,0.012);
    cursor: pointer;
    display: block;
    text-decoration: none;
    text-shadow: 0 1px 0 rgba(0,0,0,0.70);
}

.doc-nav-item::after {
    content: "›";
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    color: #333;
    font-size: 13px;
}

.doc-nav-item.active {
    color: #e8e8e8;
    background: linear-gradient(to bottom, #5a2040 0%, #3d1a2f 52%, #2e1222 100%);
    border-top-color: #7a3055;
    border-bottom-color: #1a0810;
    border-left-color: #6a2848;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.06),
        0 0 6px rgba(212,90,162,0.10);
}

.doc-nav-item.active::after {
    color: #d45aa2;
}

/* =========================================
   doc-status-row
   ========================================= */

.doc-status-row {
    position: relative;
    z-index: 3;
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 5px 8px 0 8px;
    padding: 5px 9px;
    box-sizing: border-box;
    font-size: 10px;
    font-weight: 700;
    color: #555;
    background: #111;
    border-top: 1px solid #0a0a0a;
    border-bottom: 1px solid #222;
    border-left: 1px solid #111;
    border-right: 1px solid #111;
    border-radius: 2px;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.50);
    letter-spacing: 0.06em;
    text-shadow: 0 1px 0 rgba(0,0,0,0.80);
}

/* =========================================
   doc-link
   ========================================= */

.doc-link {
    position: relative;
    z-index: 3;
    box-sizing: border-box;
    margin: 5px 10px 0 10px;
    padding: 6px 10px 6px 14px;
    font-size: 11px;
    font-weight: 700;
    color: #888;
    background: linear-gradient(to bottom, #1a1a1a 0%, #151515 100%);
    border-top: 1px solid #242424;
    border-bottom: 1px solid #080808;
    border-left: 1px solid #1e1e1e;
    border-right: 1px solid #111;
    border-radius: 2px;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.018);
    display: block;
    text-decoration: none;
    cursor: pointer;
    text-shadow: 0 1px 0 rgba(0,0,0,0.70);
}

.doc-link::before {
    content: "";
    position: absolute;
    left: 5px;
    top: 20%;
    bottom: 20%;
    width: 2px;
    background: #2e2e2e;
    border-radius: 1px;
}

.doc-link:hover {
    color: #c0c0c0;
    background: linear-gradient(to bottom, #222 0%, #1a1a1a 100%);
    border-top-color: #333;
}

.doc-link:hover::before {
    background: #854369;
}

/* =========================================
   doc-tab-bar
   ========================================= */

.doc-tab-bar {
    position: relative;
    z-index: 3;
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 5px 6px;
    background: linear-gradient(to bottom, #141414 0%, #111 100%);
    border-top: 1px solid #0a0a0a;
    box-shadow: inset 0 1px 0 rgba(0,0,0,0.60);
}

.doc-tab-key {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    gap: 3px;
    padding: 0 4px;
    user-select: none;
    white-space: nowrap;
}

.doc-tab-key kbd {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    font-size: 10px;
    font-weight: 700;
    font-family: inherit;
    color: #e2e2e2;
    background: linear-gradient(to bottom, #2a2a2a 0%, #1e1e1e 100%);
    border-top: 1px solid #3a3a3a;
    border-bottom: 1px solid #080808;
    border-left: 1px solid #2e2e2e;
    border-right: 1px solid #111;
    border-radius: 2px;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.06),
        0 1px 0 rgba(255,255,255,0.02);
    text-shadow: 0 1px 0 rgba(0,0,0,0.80);
}

.doc-tab-key .doc-tab-arrow {
    font-size: 10px;
    color: #333;
    line-height: 1;
}

.doc-tab {
    flex: 1;
    box-sizing: border-box;
    padding: 6px 4px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: #e2e2e2;
    background: linear-gradient(to bottom, #1e1e1e 0%, #181818 100%);
    border-top: 1px solid #2a2a2a;
    border-bottom: 1px solid #080808;
    border-left: 1px solid #222;
    border-right: 1px solid #111;
    border-radius: 2px;
    cursor: pointer;
    text-align: center;
    text-shadow: 0 1px 0 rgba(0,0,0,0.80);
    text-transform: uppercase;
    user-select: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.doc-tab:hover {
    color: #ffffff;
    background: linear-gradient(to bottom, #242424 0%, #1a1a1a 100%);
    border-top-color: #333;
}

.doc-tab.active {
    color: #ffffff;
    background: linear-gradient(to bottom, #2e1222 0%, #3d1a2f 52%, #5a2040 100%);
    border-top-color: #7a3055;
    border-bottom-color: #1a0810;
    border-left-color: #6a2848;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.06);
}

/* =========================================
   doc-footer
   ========================================= */

.doc-footer {
    position: relative;
    display: grid;
    grid-template-columns: 1fr 110px 44px 110px 200px;
    gap: 12px;
    align-items: center;
    height: 44px;
    margin-top: 7px;
    padding: 0 10px;
    box-sizing: border-box;
    background: linear-gradient(to bottom, #282828 0%, #1a1a1a 40%, #161616 100%);
    box-shadow:
        inset 1px 0 0 #494949,
        inset 0 -1px 0 #555,
        inset 0 2px 6px rgba(0,0,0,0.55);
    border-top: 1px solid #3a3a3a;
    border-bottom: 1px solid #0a0a0a;
    border-left: 1px solid #222;
    border-right: 1px solid #222;
    border-radius: 2px;
}

.doc-footer::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0.05;
    background: repeating-linear-gradient(
        135deg,
        rgba(255,255,255,0.08) 0px,
        rgba(255,255,255,0.08) 1px,
        transparent 1px,
        transparent 4px
    );
}

.doc-footer-sliders {
    display: flex;
    align-items: center;
    gap: 10px;
}

.doc-slider {
    position: relative;
    width: 80px;
    height: 6px;
    background: #0a0a0a;
    border-top: 1px solid #080808;
    border-bottom: 1px solid #222;
    border-radius: 99px;
    box-shadow: inset 0 1px 3px rgba(0,0,0,0.70);
}

.doc-slider.short {
    width: 54px;
}

.doc-slider::after {
    content: "";
    position: absolute;
    top: -6px;
    left: 48%;
    width: 10px;
    height: 18px;
    border-radius: 2px;
    background: linear-gradient(to bottom, #c8c0b2 0%, #8a8278 100%);
    border-top: 1px solid #d8d0c2;
    border-bottom: 1px solid #2a2622;
    border-left: 1px solid #aaa49c;
    border-right: 1px solid #5a544e;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.30),
        0 1px 3px rgba(0,0,0,0.40);
}

.doc-date {
    box-sizing: border-box;
    height: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: #d45aa2;
    background: #0a0a0a;
    border-top: 1px solid #080808;
    border-bottom: 1px solid #2a1a22;
    border-left: 1px solid #0e0e0e;
    border-right: 1px solid #0e0e0e;
    border-radius: 2px;
    box-shadow: inset 0 2px 5px rgba(0,0,0,0.70);
    text-shadow: 0 0 8px rgba(212,90,162,0.40);
}

.doc-knob {
    justify-self: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background:
        radial-gradient(circle at 36% 28%, rgba(255,255,255,0.30) 0%, transparent 24%),
        linear-gradient(145deg, #c8bfb0 0%, #8a8278 48%, #464039 100%);
    border: 1px solid #2a2520;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.30),
        inset 0 -2px 0 rgba(0,0,0,0.22),
        0 2px 5px rgba(0,0,0,0.50);
}

.doc-keys {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 5px;
}

.doc-keys span {
    height: 22px;
    border-radius: 2px;
    background: linear-gradient(to bottom, #d8d4ca 0%, #a09890 55%, #6e6660 100%);
    border-top: 1px solid #e0dcd2;
    border-bottom: 1px solid #1e1c18;
    border-left: 1px solid #b8b0a8;
    border-right: 1px solid #4a4440;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.40),
        0 1px 2px rgba(0,0,0,0.30);
}

.doc-keys span.red {
    background: linear-gradient(to bottom, #cc6058 0%, #922e28 55%, #521410 100%);
    border-top-color: #d87070;
    border-bottom-color: #1e0808;
}

.doc-keys span.amber {
    background: linear-gradient(to bottom, #e4bc6c 0%, #b87c28 55%, #6c3e08 100%);
    border-top-color: #ecd080;
    border-bottom-color: #201008;
}

/* =========================================
   Responsive
   ========================================= */

@media screen and (max-width: 1280px) {
    .doc-layout {
        grid-template-columns: 210px minmax(0, 1fr);
    }

    .doc-layout-right {
        grid-column: 1 / -1;
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        gap: 7px;
    }

    .doc-footer {
        grid-template-columns: 1fr 110px 44px 110px;
    }

    .doc-keys {
        display: none;
    }
}

@media screen and (max-width: 980px) {
    .doc-layout,
    .doc-layout-lower,
    .doc-layout-right {
        grid-template-columns: 1fr;
    }

    .doc-footer {
        grid-template-columns: 1fr;
        height: auto;
        padding: 8px 10px;
    }

    .doc-footer-sliders {
        justify-content: center;
    }

    .doc-date,
    .doc-knob {
        justify-self: center;
    }
}
/* =====================================================================
   Nations & Factions — original-structure panel remake
   ---------------------------------------------------------------------
   This block intentionally keeps the original MediaWiki table parsing.
   It only adds the visual hierarchy:
   1) one large document panel,
   2) flat labels on the panel surface,
   3) recessed wells only where real content sits.
   ===================================================================== */

body.page-국가_및_조합 .liberty-content-main .mw-parser-output > .clbi-nf-board,
body.page-Nations_\&_Factions .liberty-content-main .mw-parser-output > .clbi-nf-board {
    margin: 0 !important;
    padding: 4px !important;
    box-sizing: border-box !important;
    background: #1d1d1d !important;
    border: 1px solid #050505 !important;
    border-top-color: #555555 !important;
    border-left-color: #2b2b2b !important;
    border-right-color: #2b2b2b !important;
    border-bottom-color: #050505 !important;
    border-radius: 0 !important;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.040),
        inset 0 -1px 0 rgba(0,0,0,0.72),
        inset 1px 0 0 rgba(255,255,255,0.012),
        inset -1px 0 0 rgba(0,0,0,0.38) !important;
    color: #e2e2e2 !important;
}

body.page-국가_및_조합 .clbi-nf-board *,
body.page-Nations_\&_Factions .clbi-nf-board * {
    box-sizing: border-box;
}

body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table,
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table {
    width: 100% !important;
    max-width: none !important;
    margin: 0 auto !important;
    background: #1d1d1d !important;
    color: #e2e2e2 !important;
    border: 0 !important;
    border-collapse: separate !important;
    border-spacing: 2px !important;
    font-size: 8.5pt !important;
    line-height: 1.45 !important;
}

/* Top-level cells stay as panel surface by default. Do not convert table layout. */
body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table > tbody > tr > th,
body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table > tbody > tr > td,
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table > tbody > tr > th,
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table > tbody > tr > td {
    background: #1d1d1d !important;
    border: 0 !important;
    padding: 0 !important;
    color: #e2e2e2 !important;
    vertical-align: middle !important;
}

/* Section labels: 판도 / 당대 주요 세력 / 당대 존재 국가. Flat text on surface, not a well. */
body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table > tbody > tr > th[colspan="5"] > div[style*="line-height:1.5"],
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table > tbody > tr > th[colspan="5"] > div[style*="line-height:1.5"] {
    min-height: 22px !important;
    padding: 3px 7px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: transparent !important;
    border: 0 !important;
    color: #e2e2e2 !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    letter-spacing: .25px !important;
    text-align: center !important;
    text-shadow: 1px 1px 0 #000 !important;
    box-shadow: none !important;
}

/* Year switch bar: a flat control strip, still using the original collapsible toggles. */
body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table > tbody > tr:first-child > th[colspan="5"] > div[id^="mw-customcollapsible-y"] > div[style*="justify-content:space-between"],
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table > tbody > tr:first-child > th[colspan="5"] > div[id^="mw-customcollapsible-y"] > div[style*="justify-content:space-between"] {
    min-height: 24px !important;
    padding: 0 7px !important;
    top: 0 !important;
    background: #1d1d1d !important;
    border: 0 !important;
    border-radius: 0 !important;
    color: #e2e2e2 !important;
    box-shadow: none !important;
    text-shadow: 1px 1px 0 #000 !important;
}

body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table > tbody > tr:first-child > th[colspan="5"] > div[id^="mw-customcollapsible-y"] > div[style*="justify-content:space-between"] span:first-child,
body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table > tbody > tr:first-child > th[colspan="5"] > div[id^="mw-customcollapsible-y"] > div[style*="justify-content:space-between"] span:last-child,
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table > tbody > tr:first-child > th[colspan="5"] > div[id^="mw-customcollapsible-y"] > div[style*="justify-content:space-between"] span:first-child,
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table > tbody > tr:first-child > th[colspan="5"] > div[id^="mw-customcollapsible-y"] > div[style*="justify-content:space-between"] span:last-child {
    color: #8a8a8a !important;
}

/* Content wells: map side controls and map body. */
body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table > tbody > tr > th[width="5%"],
body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table > tbody > tr > th[colspan="3"][width="90%"],
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table > tbody > tr > th[width="5%"],
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table > tbody > tr > th[colspan="3"][width="90%"] {
    padding: 3px !important;
    background: #080808 !important;
    border: 0 !important;
    box-shadow:
        inset 0 1px 0 #101010,
        inset -1px 0 0 #101010,
        inset 1px 0 0 #555555,
        inset 0 -1px 0 #555555 !important;
}

body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table > tbody > tr > th[colspan="3"][width="90%"] img,
body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table > tbody > tr > th[colspan="3"][width="90%"] .mw-file-element,
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table > tbody > tr > th[colspan="3"][width="90%"] img,
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table > tbody > tr > th[colspan="3"][width="90%"] .mw-file-element {
    max-width: 100% !important;
    height: auto !important;
}

/* Major faction cards sit in wells, but their own faction color remains data/content. */
body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table > tbody > tr > th[width="30%"],
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table > tbody > tr > th[width="30%"] {
    padding: 3px !important;
    background: #080808 !important;
    border: 0 !important;
    box-shadow:
        inset 0 1px 0 #101010,
        inset -1px 0 0 #101010,
        inset 1px 0 0 #555555,
        inset 0 -1px 0 #555555 !important;
}

body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table > tbody > tr > th[width="30%"] div[style*="height:140px"],
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table > tbody > tr > th[width="30%"] div[style*="height:140px"] {
    border-radius: 0 !important;
    border: 1px solid #050505 !important;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.055),
        inset 0 -1px 0 rgba(0,0,0,.72) !important;
}

/* Whole nation-list sector is a well. Inside it, region labels are flat and entries are recessed. */
body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table > tbody > tr > td[colspan="10"],
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table > tbody > tr > td[colspan="10"] {
    padding: 3px !important;
    background: #080808 !important;
    border: 0 !important;
    box-shadow:
        inset 0 1px 0 #101010,
        inset -1px 0 0 #101010,
        inset 1px 0 0 #555555,
        inset 0 -1px 0 #555555 !important;
}

body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table > tbody > tr > td[colspan="10"] > div > table.wikitable,
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table > tbody > tr > td[colspan="10"] > div > table.wikitable {
    width: 100% !important;
    margin: 0 !important;
    background: #080808 !important;
    border: 0 !important;
    border-collapse: separate !important;
    border-spacing: 2px !important;
    color: #e2e2e2 !important;
}

body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table > tbody > tr > td[colspan="10"] > div > table.wikitable th,
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table > tbody > tr > td[colspan="10"] > div > table.wikitable th {
    padding: 3px 7px !important;
    background: #1d1d1d !important;
    border: 0 !important;
    color: #e2e2e2 !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    vertical-align: middle !important;
    text-align: center !important;
    text-shadow: 1px 1px 0 #000 !important;
    box-shadow: none !important;
}

body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table > tbody > tr > td[colspan="10"] > div > table.wikitable th > div,
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table > tbody > tr > td[colspan="10"] > div > table.wikitable th > div {
    position: static !important;
    top: auto !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    color: inherit !important;
}

body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table > tbody > tr > td[colspan="10"] > div > table.wikitable td,
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table > tbody > tr > td[colspan="10"] > div > table.wikitable td {
    padding: 0 !important;
    background: #080808 !important;
    border: 0 !important;
    color: #e2e2e2 !important;
    vertical-align: middle !important;
}

body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table > tbody > tr > td[colspan="10"] > div > table.wikitable td > div,
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table > tbody > tr > td[colspan="10"] > div > table.wikitable td > div {
    min-height: 24px !important;
    padding: 3px 7px !important;
    top: auto !important;
    background: #101010 !important;
    border: 1px solid #050505 !important;
    border-radius: 0 !important;
    color: #e2e2e2 !important;
    font-size: 11px !important;
    line-height: 1.55 !important;
    text-align: center !important;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.035),
        inset 0 -1px 0 rgba(0,0,0,.72) !important;
}

body.page-국가_및_조합 .clbi-nf-board > table.clbi-nf-table > tbody > tr > td[colspan="10"] > div > table.wikitable td > div:hover,
body.page-Nations_\&_Factions .clbi-nf-board > table.clbi-nf-table > tbody > tr > td[colspan="10"] > div > table.wikitable td > div:hover {
    background: #141414 !important;
}

body.page-국가_및_조합 .clbi-nf-board img,
body.page-국가_및_조합 .clbi-nf-board .mw-file-element,
body.page-Nations_\&_Factions .clbi-nf-board img,
body.page-Nations_\&_Factions .clbi-nf-board .mw-file-element {
    vertical-align: middle !important;
}