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

편집 요약 없음
편집 요약 없음
860번째 줄: 860번째 줄:


/* =========================================
/* =========================================
   CRT Start Button - Console Variant
   CRT Console Start Panel
   ========================================= */
   ========================================= */


.crt-start-button-frame {
.crt-console-panel {
     position: relative;
     position: relative;
     box-sizing: border-box;
     box-sizing: border-box;
     width: 100%;
     width: 100%;
     min-height: 104px;
     min-height: 116px;
     padding: 10px 14px 14px 14px;
     padding: 16px 122px 18px 122px;
     border-radius: 10px;
     border-radius: 14px;
     cursor: pointer;
     cursor: pointer;
     overflow: hidden;
     overflow: hidden;
     background:
     background:
         linear-gradient(180deg, #222 0%, #111 42%, #060606 100%);
         linear-gradient(180deg, #242424 0%, #111 42%, #070707 100%);
     border: 1px solid #2b2b2b;
     border: 2px solid #2b2b2b;
     box-shadow:
     box-shadow:
         inset 0 1px 0 rgba(255,255,255,0.16),
         inset 0 2px 0 rgba(255,255,255,0.14),
         inset 0 -2px 0 rgba(0,0,0,0.85),
         inset 0 -3px 0 rgba(0,0,0,0.90),
         inset 2px 0 0 rgba(255,255,255,0.04),
         inset 3px 0 0 rgba(255,255,255,0.04),
         inset -2px 0 0 rgba(0,0,0,0.60),
         inset -3px 0 0 rgba(0,0,0,0.72),
         0 0 0 2px #080808,
         0 0 0 3px #050505,
         0 0 0 4px #1d1d1d,
         0 0 0 5px #242424,
         0 6px 18px rgba(0,0,0,0.72);
         0 8px 24px rgba(0,0,0,0.72);
}
}


/* 플라스틱 표면 질감 */
.crt-console-panel::before {
.crt-start-button-frame::before {
     content: "";
     content: "";
     position: absolute;
     position: absolute;
     inset: 0;
     inset: 0;
    z-index: 0;
     pointer-events: none;
     pointer-events: none;
     opacity: 0.13;
    border-radius: 14px;
     opacity: 0.18;
     background:
     background:
         repeating-linear-gradient(
         repeating-linear-gradient(
900번째 줄: 898번째 줄:
             rgba(255,255,255,0.035) 1px,
             rgba(255,255,255,0.035) 1px,
             transparent 1px,
             transparent 1px,
             transparent 7px
             transparent 8px
         ),
         ),
         linear-gradient(
         linear-gradient(
             110deg,
             to bottom,
             rgba(255,255,255,0.10) 0%,
             rgba(255,255,255,0.08),
             transparent 22%,
             transparent 34%,
             transparent 100%
             rgba(0,0,0,0.35)
         );
         );
     mix-blend-mode: screen;
     mix-blend-mode: screen;
}
}


/* 좌측 작은 상태등 */
.crt-console-panel::after {
.crt-start-button-frame::after {
     content: "";
     content: "";
     position: absolute;
     position: absolute;
     left: 18px;
     left: 22px;
     top: 16px;
     right: 22px;
     width: 7px;
     bottom: 8px;
     height: 7px;
     height: 3px;
     z-index: 3;
     border-radius: 999px;
     border-radius: 50%;
     background:
    background: #cc409c;
        linear-gradient(
            to right,
            transparent 0%,
            rgba(133,67,105,0.45) 18%,
            rgba(210,90,160,0.60) 50%,
            rgba(133,67,105,0.45) 82%,
            transparent 100%
        );
     box-shadow:
     box-shadow:
         0 0 4px rgba(204,64,156,0.75),
         0 0 8px rgba(133,67,105,0.28);
        0 0 9px rgba(204,64,156,0.35);
     opacity: 0.65;
     opacity: 0.75;
}
}


.crt-start-button-inner {
/* 좌우 조작부 */
     position: relative;
.crt-console-side {
     z-index: 1;
     position: absolute;
     box-sizing: border-box;
     top: 18px;
     padding: 7px;
    bottom: 20px;
     width: 84px;
     z-index: 8;
     border-radius: 8px;
     border-radius: 8px;
     background:
     background:
         linear-gradient(180deg, #050505 0%, #101010 48%, #050505 100%);
         linear-gradient(180deg, #090909 0%, #141414 46%, #060606 100%);
     border: 1px solid #050505;
     border: 1px solid #050505;
     box-shadow:
     box-shadow:
         inset 0 3px 9px rgba(0,0,0,0.95),
         inset 0 2px 8px rgba(0,0,0,0.85),
         inset 0 -1px 2px rgba(255,255,255,0.05),
         inset 0 -1px 0 rgba(255,255,255,0.06),
         0 1px 0 rgba(255,255,255,0.08);
         0 1px 0 rgba(255,255,255,0.08);
}
}


/* 실제 버튼 화면 */
.crt-console-side-left {
.crt-start-button-screen {
     left: 20px;
     position: relative;
     display: flex;
     height: 72px;
    align-items: center;
     overflow: hidden;
     justify-content: center;
     border-radius: 4px;
     gap: 9px;
     background:
}
        linear-gradient(
 
            to bottom,
.crt-console-side-right {
            rgba(10, 5, 14, 0.98) 0%,
    right: 20px;
            rgba(24, 8, 32, 0.82) 42%,
     display: flex;
            rgba(46, 17, 48, 0.55) 58%,
    flex-direction: column;
            rgba(4, 4, 7, 0.96) 59%,
    align-items: center;
            rgba(2, 2, 4, 1) 100%
    justify-content: center;
        );
    gap: 8px;
     border: 1px solid #191919;
}
 
.crt-console-led {
    width: 9px;
    height: 9px;
     border-radius: 50%;
    background: #222;
     box-shadow:
     box-shadow:
         inset 0 0 0 1px #050505,
         inset 0 1px 2px rgba(255,255,255,0.15),
        inset 0 0 18px rgba(0,0,0,0.92),
         0 0 5px rgba(0,0,0,0.8);
         inset 0 0 38px rgba(0,0,0,0.68),
        0 0 0 1px rgba(255,255,255,0.05),
        0 0 14px rgba(133,67,105,0.12);
}
}


/* 안쪽 좌우 가이드 라인 */
.crt-console-led.led-red {
.crt-start-button-screen::before {
     background: rgba(150,40,50,0.85);
     content: "";
    position: absolute;
    inset: 7px 9px;
    z-index: 6;
    pointer-events: none;
    border-left: 2px solid rgba(204,64,156,0.42);
    border-right: 2px solid rgba(204,64,156,0.20);
     box-shadow:
     box-shadow:
         inset 0 1px 0 rgba(255,255,255,0.05),
         inset 0 1px 2px rgba(255,255,255,0.20),
         inset 0 -1px 0 rgba(255,255,255,0.03);
         0 0 6px rgba(150,40,50,0.45);
    opacity: 0.75;
}
}


/* 하단 그리드 */
.crt-console-led.led-amber {
.crt-start-button-grid {
     background: rgba(160,112,40,0.80);
     position: absolute;
     box-shadow:
     left: 50%;
        inset 0 1px 2px rgba(255,255,255,0.18),
    top: 56%;
        0 0 6px rgba(160,112,40,0.36);
    width: 150%;
}
    height: 120%;
    z-index: 2;
    pointer-events: none;


     background-image:
.crt-console-led.led-green {
        linear-gradient(
     background: rgba(52,130,76,0.78);
            to right,
    box-shadow:
            rgba(204,64,156,0.44) 1px,
         inset 0 1px 2px rgba(255,255,255,0.18),
            transparent 1px
         0 0 6px rgba(52,130,76,0.36);
         ),
}
         linear-gradient(
            to bottom,
            rgba(204,64,156,0.42) 1px,
            transparent 1px
        );


     background-size:
.crt-console-slot {
         34px 100%,
    width: 52px;
         100% 16px;
    height: 7px;
    border-radius: 999px;
     background: #030303;
    border: 1px solid #1b1b1b;
    box-shadow:
         inset 0 1px 4px rgba(0,0,0,0.95),
         0 1px 0 rgba(255,255,255,0.07);
}


     transform-origin: 50% 0%;
.crt-console-slot.small {
     transform:
     width: 36px;
        translateX(-50%)
     opacity: 0.72;
        perspective(320px)
}
        rotateX(66deg);


    filter:
/* 중앙 입력 표시창 */
        drop-shadow(0 0 2px rgba(204,64,156,0.36))
.crt-console-screen {
        drop-shadow(0 0 6px rgba(204,64,156,0.18));
    position: relative;
 
    height: 82px;
     opacity: 0.50;
     overflow: hidden;
     animation: crt-start-grid-flow 1.35s linear infinite;
     border-radius: 8px;
 
     background:
     mask-image:
         radial-gradient(
         linear-gradient(
             ellipse at 50% 50%,
             to bottom,
             rgba(54,18,48,0.38) 0%,
             transparent 0%,
             rgba(13,7,15,0.96) 56%,
             black 6%,
             rgba(3,3,4,1) 100%
            black 82%,
            transparent 100%
        );
    -webkit-mask-image:
        linear-gradient(
            to bottom,
            transparent 0%,
             black 6%,
            black 82%,
            transparent 100%
         );
         );
    border: 2px solid #050505;
    box-shadow:
        inset 0 0 0 2px #141414,
        inset 0 0 22px rgba(0,0,0,0.96),
        inset 0 0 46px rgba(0,0,0,0.72),
        0 0 0 1px rgba(255,255,255,0.08),
        0 0 18px rgba(133,67,105,0.16);
}
}


/* 유리와 스캔라인 */
/* 소개글과 다른 배경: 사선 스캔/콘솔 패턴 */
.crt-start-button-glass {
.crt-console-pattern {
     position: absolute;
     position: absolute;
     inset: 0;
     inset: 0;
     z-index: 10;
     z-index: 3;
     pointer-events: none;
     pointer-events: none;
     border-radius: 4px;
     opacity: 0.42;
     background:
     background:
        repeating-linear-gradient(
            -18deg,
            transparent 0px,
            transparent 12px,
            rgba(204,64,156,0.12) 13px,
            transparent 15px
        ),
         repeating-linear-gradient(
         repeating-linear-gradient(
             to bottom,
             to bottom,
             rgba(255,255,255,0.050) 0px,
             rgba(255,255,255,0.045) 0px,
             rgba(255,255,255,0.050) 1px,
             rgba(255,255,255,0.045) 1px,
             transparent 2px,
             transparent 2px,
             transparent 5px
             transparent 5px
         ),
         );
    animation: crt-console-scan 2.8s linear infinite;
}
 
.crt-console-glass {
    position: absolute;
    inset: 0;
    z-index: 12;
    pointer-events: none;
    border-radius: 8px;
    background:
         radial-gradient(
         radial-gradient(
             ellipse at 50% 50%,
             ellipse at 50% 50%,
             transparent 0%,
             transparent 0%,
             transparent 62%,
             transparent 58%,
             rgba(0,0,0,0.20) 84%,
             rgba(0,0,0,0.25) 82%,
             rgba(0,0,0,0.54) 100%
             rgba(0,0,0,0.60) 100%
         ),
         ),
         linear-gradient(
         linear-gradient(
             105deg,
             105deg,
             transparent 0%,
             transparent 0%,
             rgba(255,255,255,0.045) 16%,
             rgba(255,255,255,0.045) 18%,
             transparent 36%,
             transparent 38%,
             transparent 100%
             transparent 100%
         );
         );
     box-shadow:
     box-shadow:
         inset 0 0 22px rgba(255,255,255,0.025),
         inset 0 0 26px rgba(255,255,255,0.035),
         inset 0 0 48px rgba(0,0,0,0.62);
         inset 0 0 58px rgba(0,0,0,0.66);
     mix-blend-mode: screen;
     mix-blend-mode: screen;
}
}


/* 텍스트 */
/* 중앙 텍스트 */
.crt-start-button-text {
.crt-console-text {
     position: absolute;
     position: absolute;
     inset: 0;
     inset: 0;
     z-index: 8;
     z-index: 10;
     display: flex;
     display: flex;
     flex-direction: column;
     flex-direction: column;
     justify-content: center;
     justify-content: center;
     align-items: center;
     align-items: center;
     pointer-events: none;
     pointer-events: none;
     text-align: center;
     text-align: center;
     color: #f2f2f2;
     color: #f0f0f0;
 
     text-shadow:
     text-shadow:
         -1px 0 0 rgba(80,160,255,0.62),
         -1px 0 0 rgba(80,160,255,0.62),
         1px 0 0 rgba(255,55,90,0.54),
         1px 0 0 rgba(255,55,90,0.56),
         2px 0 0 rgba(255,210,70,0.26),
         2px 0 0 rgba(255,210,70,0.28),
         0 0 4px rgba(255,255,255,0.42),
         0 0 4px rgba(255,255,255,0.45),
         0 0 9px rgba(204,64,156,0.22),
         0 0 10px rgba(204,64,156,0.24),
         0 2px 6px #000;
         0 2px 6px #000;
}
}


.crt-start-button-title {
.crt-console-label {
    font-size: 7pt;
    letter-spacing: 0.22em;
    color: rgba(210,120,175,0.72);
    line-height: 1;
    margin-bottom: 5px;
}
 
.crt-console-title {
     font-family: 'BoldRound', sans-serif !important;
     font-family: 'BoldRound', sans-serif !important;
     font-size: 14pt;
     font-size: 15pt;
     font-weight: 700;
     font-weight: 700;
     line-height: 1.1;
     line-height: 1.05;
     letter-spacing: 0.08em;
     letter-spacing: 0.04em;
    padding: 2px 18px 3px 18px;
    border-top: 1px solid rgba(204,64,156,0.18);
    border-bottom: 1px solid rgba(204,64,156,0.18);
    background: rgba(0,0,0,0.18);
}
}


.crt-start-button-subtitle {
.crt-console-subtitle {
     margin-top: 7px;
     margin-top: 6px;
    max-width: 72%;
     font-size: 7pt;
     font-size: 7.5pt;
     letter-spacing: 0.10em;
     line-height: 1.35;
     color: rgba(220,220,220,0.32);
     color: rgba(230,230,230,0.30);
     white-space: nowrap;
     white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
}


/* hover */
/* hover */
.crt-start-button-frame:hover {
.crt-console-panel:hover {
     background:
     background:
         linear-gradient(180deg, #282828 0%, #151515 42%, #070707 100%);
         linear-gradient(180deg, #2c2c2c 0%, #151515 42%, #080808 100%);
     box-shadow:
     box-shadow:
         inset 0 1px 0 rgba(255,255,255,0.18),
         inset 0 2px 0 rgba(255,255,255,0.17),
         inset 0 -2px 0 rgba(0,0,0,0.88),
         inset 0 -3px 0 rgba(0,0,0,0.92),
         inset 2px 0 0 rgba(255,255,255,0.05),
         inset 3px 0 0 rgba(255,255,255,0.05),
         inset -2px 0 0 rgba(0,0,0,0.64),
         inset -3px 0 0 rgba(0,0,0,0.74),
         0 0 0 2px #080808,
         0 0 0 3px #050505,
         0 0 0 4px #292929,
         0 0 0 5px #303030,
         0 0 16px rgba(133,67,105,0.26),
         0 0 18px rgba(133,67,105,0.24),
         0 6px 20px rgba(0,0,0,0.78);
         0 8px 25px rgba(0,0,0,0.78);
}
}


.crt-start-button-frame:hover::after {
.crt-console-panel:hover .crt-console-screen {
    opacity: 1;
     box-shadow:
     box-shadow:
         0 0 5px rgba(204,64,156,0.9),
         inset 0 0 0 2px #171717,
         0 0 14px rgba(204,64,156,0.5);
        inset 0 0 22px rgba(0,0,0,0.94),
        inset 0 0 46px rgba(0,0,0,0.68),
        0 0 0 1px rgba(255,255,255,0.10),
         0 0 24px rgba(204,64,156,0.28);
}
}


.crt-start-button-frame:hover .crt-start-button-screen {
.crt-console-panel:hover .crt-console-title {
     box-shadow:
     color: #ffffff;
        inset 0 0 0 1px #050505,
        inset 0 0 18px rgba(0,0,0,0.90),
        inset 0 0 38px rgba(0,0,0,0.64),
        0 0 0 1px rgba(255,255,255,0.07),
        0 0 22px rgba(204,64,156,0.24);
}
 
.crt-start-button-frame:hover .crt-start-button-grid {
    opacity: 0.62;
}
}


.crt-start-button-frame:hover .crt-start-button-title {
.crt-console-panel:hover .crt-console-led {
     color: #ffffff;
     filter: brightness(1.18);
    background: rgba(204,64,156,0.08);
    border-top-color: rgba(204,64,156,0.35);
    border-bottom-color: rgba(204,64,156,0.35);
}
}


@keyframes crt-start-grid-flow {
@keyframes crt-console-scan {
     from {
     from {
         background-position:
         background-position:
1,171번째 줄: 1,172번째 줄:
     to {
     to {
         background-position:
         background-position:
             0 0,
             42px 0,
             0 -16px;
             0 24px;
     }
     }
}
}

2026년 4월 24일 (금) 22:26 판

/* Proitem 애니메이션 */
.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); }
}

/* 펼접 */

[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 .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:
        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:
        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 가로선 */
.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;
}

/* =========================================
   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 > * {
    position: relative;
    z-index: 2;
}

/* 빛 번짐 대상 */
.crt-glow-content {
    position: relative;
    z-index: 2;
    text-shadow:
        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:
        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 가로선 */
.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;
}

/* =========================================
   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 > * {
    position: relative;
    z-index: 2;
}

/* 빛 번짐 + RGB split 대상 */
.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;
}

/* 제목류 발광 + 더 강한 RGB split */
.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);
}

/* 이미지 외곽 RGB split + 약한 발광 */
.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 가로선 */
.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;
}

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

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

@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 10px 28px rgba(0,0,0,0.75);
}

/* 플라스틱 표면의 약한 질감 */
.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 유리 곡면 느낌 */
.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;
}


/* =========================================
   CRT Console Start Panel
   ========================================= */

.crt-console-panel {
    position: relative;
    box-sizing: border-box;
    width: 100%;
    min-height: 116px;
    padding: 16px 122px 18px 122px;
    border-radius: 14px;
    cursor: pointer;
    overflow: hidden;
    background:
        linear-gradient(180deg, #242424 0%, #111 42%, #070707 100%);
    border: 2px solid #2b2b2b;
    box-shadow:
        inset 0 2px 0 rgba(255,255,255,0.14),
        inset 0 -3px 0 rgba(0,0,0,0.90),
        inset 3px 0 0 rgba(255,255,255,0.04),
        inset -3px 0 0 rgba(0,0,0,0.72),
        0 0 0 3px #050505,
        0 0 0 5px #242424,
        0 8px 24px rgba(0,0,0,0.72);
}

.crt-console-panel::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    border-radius: 14px;
    opacity: 0.18;
    background:
        repeating-linear-gradient(
            90deg,
            rgba(255,255,255,0.035) 0px,
            rgba(255,255,255,0.035) 1px,
            transparent 1px,
            transparent 8px
        ),
        linear-gradient(
            to bottom,
            rgba(255,255,255,0.08),
            transparent 34%,
            rgba(0,0,0,0.35)
        );
    mix-blend-mode: screen;
}

.crt-console-panel::after {
    content: "";
    position: absolute;
    left: 22px;
    right: 22px;
    bottom: 8px;
    height: 3px;
    border-radius: 999px;
    background:
        linear-gradient(
            to right,
            transparent 0%,
            rgba(133,67,105,0.45) 18%,
            rgba(210,90,160,0.60) 50%,
            rgba(133,67,105,0.45) 82%,
            transparent 100%
        );
    box-shadow:
        0 0 8px rgba(133,67,105,0.28);
    opacity: 0.65;
}

/* 좌우 조작부 */
.crt-console-side {
    position: absolute;
    top: 18px;
    bottom: 20px;
    width: 84px;
    z-index: 8;
    border-radius: 8px;
    background:
        linear-gradient(180deg, #090909 0%, #141414 46%, #060606 100%);
    border: 1px solid #050505;
    box-shadow:
        inset 0 2px 8px rgba(0,0,0,0.85),
        inset 0 -1px 0 rgba(255,255,255,0.06),
        0 1px 0 rgba(255,255,255,0.08);
}

.crt-console-side-left {
    left: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
}

.crt-console-side-right {
    right: 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.crt-console-led {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #222;
    box-shadow:
        inset 0 1px 2px rgba(255,255,255,0.15),
        0 0 5px rgba(0,0,0,0.8);
}

.crt-console-led.led-red {
    background: rgba(150,40,50,0.85);
    box-shadow:
        inset 0 1px 2px rgba(255,255,255,0.20),
        0 0 6px rgba(150,40,50,0.45);
}

.crt-console-led.led-amber {
    background: rgba(160,112,40,0.80);
    box-shadow:
        inset 0 1px 2px rgba(255,255,255,0.18),
        0 0 6px rgba(160,112,40,0.36);
}

.crt-console-led.led-green {
    background: rgba(52,130,76,0.78);
    box-shadow:
        inset 0 1px 2px rgba(255,255,255,0.18),
        0 0 6px rgba(52,130,76,0.36);
}

.crt-console-slot {
    width: 52px;
    height: 7px;
    border-radius: 999px;
    background: #030303;
    border: 1px solid #1b1b1b;
    box-shadow:
        inset 0 1px 4px rgba(0,0,0,0.95),
        0 1px 0 rgba(255,255,255,0.07);
}

.crt-console-slot.small {
    width: 36px;
    opacity: 0.72;
}

/* 중앙 입력 표시창 */
.crt-console-screen {
    position: relative;
    height: 82px;
    overflow: hidden;
    border-radius: 8px;
    background:
        radial-gradient(
            ellipse at 50% 50%,
            rgba(54,18,48,0.38) 0%,
            rgba(13,7,15,0.96) 56%,
            rgba(3,3,4,1) 100%
        );
    border: 2px solid #050505;
    box-shadow:
        inset 0 0 0 2px #141414,
        inset 0 0 22px rgba(0,0,0,0.96),
        inset 0 0 46px rgba(0,0,0,0.72),
        0 0 0 1px rgba(255,255,255,0.08),
        0 0 18px rgba(133,67,105,0.16);
}

/* 소개글과 다른 배경: 사선 스캔/콘솔 패턴 */
.crt-console-pattern {
    position: absolute;
    inset: 0;
    z-index: 3;
    pointer-events: none;
    opacity: 0.42;
    background:
        repeating-linear-gradient(
            -18deg,
            transparent 0px,
            transparent 12px,
            rgba(204,64,156,0.12) 13px,
            transparent 15px
        ),
        repeating-linear-gradient(
            to bottom,
            rgba(255,255,255,0.045) 0px,
            rgba(255,255,255,0.045) 1px,
            transparent 2px,
            transparent 5px
        );
    animation: crt-console-scan 2.8s linear infinite;
}

.crt-console-glass {
    position: absolute;
    inset: 0;
    z-index: 12;
    pointer-events: none;
    border-radius: 8px;
    background:
        radial-gradient(
            ellipse at 50% 50%,
            transparent 0%,
            transparent 58%,
            rgba(0,0,0,0.25) 82%,
            rgba(0,0,0,0.60) 100%
        ),
        linear-gradient(
            105deg,
            transparent 0%,
            rgba(255,255,255,0.045) 18%,
            transparent 38%,
            transparent 100%
        );
    box-shadow:
        inset 0 0 26px rgba(255,255,255,0.035),
        inset 0 0 58px rgba(0,0,0,0.66);
    mix-blend-mode: screen;
}

/* 중앙 텍스트 */
.crt-console-text {
    position: absolute;
    inset: 0;
    z-index: 10;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    pointer-events: none;
    text-align: center;
    color: #f0f0f0;
    text-shadow:
        -1px 0 0 rgba(80,160,255,0.62),
        1px 0 0 rgba(255,55,90,0.56),
        2px 0 0 rgba(255,210,70,0.28),
        0 0 4px rgba(255,255,255,0.45),
        0 0 10px rgba(204,64,156,0.24),
        0 2px 6px #000;
}

.crt-console-label {
    font-size: 7pt;
    letter-spacing: 0.22em;
    color: rgba(210,120,175,0.72);
    line-height: 1;
    margin-bottom: 5px;
}

.crt-console-title {
    font-family: 'BoldRound', sans-serif !important;
    font-size: 15pt;
    font-weight: 700;
    line-height: 1.05;
    letter-spacing: 0.04em;
}

.crt-console-subtitle {
    margin-top: 6px;
    font-size: 7pt;
    letter-spacing: 0.10em;
    color: rgba(220,220,220,0.32);
    white-space: nowrap;
}

/* hover */
.crt-console-panel:hover {
    background:
        linear-gradient(180deg, #2c2c2c 0%, #151515 42%, #080808 100%);
    box-shadow:
        inset 0 2px 0 rgba(255,255,255,0.17),
        inset 0 -3px 0 rgba(0,0,0,0.92),
        inset 3px 0 0 rgba(255,255,255,0.05),
        inset -3px 0 0 rgba(0,0,0,0.74),
        0 0 0 3px #050505,
        0 0 0 5px #303030,
        0 0 18px rgba(133,67,105,0.24),
        0 8px 25px rgba(0,0,0,0.78);
}

.crt-console-panel:hover .crt-console-screen {
    box-shadow:
        inset 0 0 0 2px #171717,
        inset 0 0 22px rgba(0,0,0,0.94),
        inset 0 0 46px rgba(0,0,0,0.68),
        0 0 0 1px rgba(255,255,255,0.10),
        0 0 24px rgba(204,64,156,0.28);
}

.crt-console-panel:hover .crt-console-title {
    color: #ffffff;
}

.crt-console-panel:hover .crt-console-led {
    filter: brightness(1.18);
}

@keyframes crt-console-scan {
    from {
        background-position:
            0 0,
            0 0;
    }

    to {
        background-position:
            42px 0,
            0 24px;
    }
}