/*
Theme Name: ABS Overwatch
Theme URI: https://abs카지노.com
Author: ABS Security Protocol
Description: 400km LEO Orbital Security Theme
Version: 1.0.0
Text Domain: absovw
*/
@import url('https://fonts.googleapis.com/css2?family=Chakra+Petch:wght@300;400;600;700&family=Noto+Sans+KR:wght@300;400;700;900&display=swap');
:root {
--absovw-bg: #020914;
--absovw-lock: #FF4500;
--absovw-holo: #88CCFF;
--absovw-txt: #e0f2ff;
--absovw-dim: rgba(136, 204, 255, 0.15);
--absovw-font-main: 'Noto Sans KR', sans-serif;
--absovw-font-hud: 'Chakra Petch', sans-serif;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
background-color: var(--absovw-bg);
color: var(--absovw-txt);
font-family: var(--absovw-font-main);
overflow-x: hidden;
line-height: 1.6;
-webkit-font-smoothing: antialiased;
word-break: keep-all;
overflow-wrap: break-word;
}
body::after {
content: "";
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
background: repeating-linear-gradient(0deg, rgba(0,0,0,0.15), rgba(0,0,0,0.15) 1px, transparent 1px, transparent 2px);
pointer-events: none;
z-index: 9998;
}
.absovw_hud_overlay {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
pointer-events: none;
z-index: 9900;
border: 1px solid var(--absovw-dim);
}
.absovw_corner {
position: absolute;
width: 8vmin;
height: 8vmin;
border: 2px solid var(--absovw-holo);
transition: all 0.3s ease;
}
.absovw_corner_tl { top: 20px; left: 20px; border-right: none; border-bottom: none; }
.absovw_corner_tr { top: 20px; right: 20px; border-left: none; border-bottom: none; }
.absovw_corner_bl { bottom: 80px; left: 20px; border-right: none; border-top: none; }
.absovw_corner_br { bottom: 80px; right: 20px; border-left: none; border-top: none; }
.absovw_corner::before {
content: attr(data-coord);
position: absolute;
font-family: var(--absovw-font-hud);
color: var(--absovw-holo);
font-size: 10px;
letter-spacing: 2px;
opacity: 0.7;
}
.absovw_corner_tl::before { top: -15px; left: 0; }
.absovw_corner_tr::before { top: -15px; right: 0; }
.absovw_corner_bl::before { bottom: -15px; left: 0; }
.absovw_corner_br::before { bottom: -15px; right: 0; }
.absovw_globe_stage {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
perspective: 1200px;
z-index: 0;
background: radial-gradient(circle at 50% 50%, #031229 0%, #020914 80%);
}
.absovw_globe_core {
position: relative;
width: 70vmin;
height: 70vmin;
transform-style: preserve-3d;
animation: absovw_earth_spin 40s linear infinite;
}
@keyframes absovw_earth_spin {
0% { transform: rotateX(20deg) rotateY(0deg); }
100% { transform: rotateX(20deg) rotateY(360deg); }
}
.absovw_ring_v {
position: absolute;
top: 0; left: 0; width: 100%; height: 100%;
border: 1px solid rgba(136,204,255,0.2);
border-radius: 50%;
box-shadow: 0 0 15px rgba(136,204,255,0.05) inset;
}
.absovw_ring_v:nth-child(1) { transform: rotateY(0deg); }
.absovw_ring_v:nth-child(2) { transform: rotateY(30deg); }
.absovw_ring_v:nth-child(3) { transform: rotateY(60deg); }
.absovw_ring_v:nth-child(4) { transform: rotateY(90deg); }
.absovw_ring_v:nth-child(5) { transform: rotateY(120deg); }
.absovw_ring_v:nth-child(6) { transform: rotateY(150deg); }
.absovw_ring_h {
position: absolute;
top: 50%; left: 50%; width: 100%; height: 100%;
border: 1px dashed rgba(136,204,255,0.3);
border-radius: 50%;
transform: translate(-50%, -50%) rotateX(90deg);
}
.absovw_ring_h_top { transform: translate(-50%, -50%) rotateX(90deg) translateZ(20vmin) scale(0.8); }
.absovw_ring_h_bot { transform: translate(-50%, -50%) rotateX(90deg) translateZ(-20vmin) scale(0.8); }
.absovw_target_lock {
position: fixed;
top: 50%;
left: 50%;
width: 15vmin;
height: 15vmin;
transform: translate(-50%, -50%);
z-index: 10;
pointer-events: none;
mix-blend-mode: screen;
animation: absovw_lock_pulse 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}
.absovw_target_lock::before, .absovw_target_lock::after {
content: "";
position: absolute;
background: var(--absovw-lock);
box-shadow: 0 0 10px var(--absovw-lock);
}
.absovw_target_lock::before { top: 50%; left: -20%; width: 140%; height: 2px; transform: translateY(-50%); }
.absovw_target_lock::after { top: -20%; left: 50%; width: 2px; height: 140%; transform: translateX(-50%); }
.absovw_target_circle {
position: absolute;
top: 0; left: 0; width: 100%; height: 100%;
border: 2px solid var(--absovw-lock);
border-radius: 50%;
clip-path: polygon(0 0, 100% 0, 100% 10%, 90% 10%, 90% 90%, 100% 90%, 100% 100%, 0 100%, 0 90%, 10% 90%, 10% 10%, 0 10%);
animation: absovw_circle_spin 10s linear infinite;
}
@keyframes absovw_lock_pulse {
0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: 0.8; }
50% { transform: translate(-50%, -50%) scale(1.05); opacity: 1; }
}
@keyframes absovw_circle_spin {
100% { transform: rotate(360deg); }
}
.absovw_viewport {
position: relative;
width: 100%;
max-width: 1000px;
margin: 0 auto;
padding: 120px 20px 150px;
z-index: 100;
min-height: 100vh;
display: flex;
flex-direction: column;
gap: 60px;
}
.absovw_header_wrapper {
position: relative;
z-index: 9910;
display: flex;
justify-content: space-between;
align-items: center;
padding: 30px 40px;
border-bottom: 1px solid rgba(136,204,255,0.1);
background: rgba(2,9,20,0.8);
backdrop-filter: blur(5px);
}
.absovw_desktop_nav {
display: flex;
gap: 30px;
}
.absovw_desktop_nav a {
color: #e0f2ff;
text-decoration: none;
font-family: 'Chakra Petch';
font-size: 14px;
letter-spacing: 1px;
transition: color 0.3s;
}
.absovw_desktop_nav a:hover {
color: var(--absovw-lock);
}
.absovw_mobile_btn {
display: none;
background: none;
border: none;
cursor: pointer;
outline: none;
}
.absovw_mobile_drawer {
position: fixed;
top: 0;
right: -100%;
width: 300px;
max-width: 80vw;
height: 100vh;
background: rgba(2,9,20,0.98);
backdrop-filter: blur(15px);
border-left: 2px solid var(--absovw-lock);
z-index: 9999;
transition: right 0.4s cubic-bezier(0.4, 0, 0.2, 1);
display: flex;
flex-direction: column;
padding: 100px 30px;
}
.absovw_mobile_drawer.active { right: 0; }
.absovw_mobile_overlay {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
background: rgba(0,0,0,0.8);
z-index: 9998;
opacity: 0;
visibility: hidden;
transition: 0.3s;
}
.absovw_mobile_overlay.active {
opacity: 1;
visibility: visible;
}
.absovw_drawer_close {
position: absolute;
top: 30px;
right: 30px;
background: none;
border: none;
color: var(--absovw-lock);
font-size: 2.5rem;
cursor: pointer;
line-height: 1;
}
.absovw_mobile_link {
color: #e0f2ff;
text-decoration: none;
font-family: 'Chakra Petch';
font-size: 1.2rem;
margin-bottom: 25px;
border-bottom: 1px solid rgba(136,204,255,0.1);
padding-bottom: 10px;
display: block;
transition: 0.3s;
text-transform: uppercase;
}
.absovw_mobile_link:hover {
color: var(--absovw-lock);
border-bottom-color: var(--absovw-lock);
padding-left: 10px;
}
.absovw_sys_alert {
position: fixed;
bottom: 90px;
left: 20px;
background: rgba(2, 9, 20, 0.85);
border-left: 3px solid var(--absovw-lock);
color: var(--absovw-txt);
padding: 12px 20px;
font-family: var(--absovw-font-hud);
font-size: 13px;
letter-spacing: 1px;
z-index: 9940;
backdrop-filter: blur(4px);
opacity: 0;
animation: absovw_alert_routine 8s infinite;
box-shadow: 0 4px 15px rgba(0,0,0,0.5);
pointer-events: none;
}
.absovw_sys_alert::after {
content: "SYSTEM: VIP USER_8X 접속 확인. 오비탈 쉴드 가동 중.";
display: block;
}
@keyframes absovw_alert_routine {
0%, 5% { opacity: 0; transform: translateX(-30px); }
10%, 80% { opacity: 1; transform: translateX(0); }
85%, 100% { opacity: 0; transform: translateX(30px); }
}
.absovw_nav_dock {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
height: 70px;
background: rgba(2, 9, 20, 0.7);
backdrop-filter: blur(10px);
border-top: 1px solid var(--absovw-dim);
z-index: 9950;
display: flex;
justify-content: center;
align-items: center;
gap: 10px;
padding: 0 20px;
}
.absovw_nav_item {
flex: 1;
max-width: 150px;
height: 45px;
display: flex;
justify-content: center;
align-items: center;
text-decoration: none;
color: var(--absovw-holo);
font-family: var(--absovw-font-hud);
font-size: 12px;
font-weight: 600;
letter-spacing: 1px;
border: 1px solid transparent;
transition: all 0.3s;
position: relative;
overflow: hidden;
}
.absovw_nav_item::before {
content: "";
position: absolute;
top: 0; left: -100%; width: 100%; height: 100%;
background: linear-gradient(90deg, transparent, rgba(136,204,255,0.2), transparent);
transition: 0.4s;
}
.absovw_nav_item:hover {
border-color: var(--absovw-holo);
background: rgba(136,204,255,0.05);
box-shadow: 0 0 10px rgba(136,204,255,0.2) inset;
}
.absovw_nav_item:hover::before { left: 100%; }
.absovw_hero_title {
font-size: clamp(2.2rem, 6vw, 5rem);
font-weight: 900;
line-height: 1.1;
text-transform: uppercase;
text-align: center;
margin-bottom: 20px;
color: #fff;
text-shadow: 0 0 20px rgba(136,204,255,0.5);
position: relative;
word-break: keep-all;
}
.absovw_hero_title::after {
content: attr(data-text);
position: absolute;
left: 0; top: 0; width: 100%; height: 100%;
color: var(--absovw-lock);
z-index: -1;
filter: blur(8px);
opacity: 0.6;
animation: absovw_glitch_anim 3s infinite alternate;
}
@keyframes absovw_glitch_anim {
0% { transform: translate(2px, 2px); }
25% { transform: translate(-2px, -2px); }
50% { transform: translate(2px, -2px); }
75% { transform: translate(-2px, 2px); }
100% { transform: translate(0, 0); }
}
.absovw_c_btn {
display: block;
width: 100%;
max-width: 320px;
margin: 40px auto;
padding: 20px;
background: rgba(255, 69, 0, 0.1);
border: 1px solid var(--absovw-lock);
color: var(--absovw-lock);
text-align: center;
font-family: var(--absovw-font-hud);
font-size: 1.2rem;
font-weight: 700;
letter-spacing: 3px;
text-decoration: none;
text-transform: uppercase;
cursor: pointer;
position: relative;
transition: 0.3s;
box-shadow: 0 0 15px rgba(255,69,0,0.2) inset;
word-break: keep-all;
}
.absovw_c_btn:hover {
background: var(--absovw-lock);
color: #000;
box-shadow: 0 0 30px rgba(255,69,0,0.6);
}
.absovw_grid_mesh {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 30px;
margin: 40px 0;
}
.absovw_mesh_cell {
background: rgba(136, 204, 255, 0.03);
border: 1px solid var(--absovw-dim);
padding: 30px;
position: relative;
backdrop-filter: blur(5px);
}
.absovw_mesh_cell::before {
content: "";
position: absolute;
top: 0; left: 0; width: 15px; height: 15px;
border-top: 2px solid var(--absovw-holo);
border-left: 2px solid var(--absovw-holo);
}

/* Data Table Wrapper (Important for mobile scroll) */
.absovw_table_wrap {
width: 100%;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
margin: 30px 0;
border: 1px solid var(--absovw-dim);
background: rgba(2,9,20,0.5); 
border-radius: 4px;
}
.absovw_data_table {
width: 100%;
min-width: 600px;
border-collapse: collapse;
font-size: 0.9rem;
}
.absovw_data_table th, .absovw_data_table td {
padding: 15px;
text-align: left;
border-bottom: 1px solid var(--absovw-dim);
white-space: nowrap;
}
.absovw_data_table th {
color: var(--absovw-holo);
font-family: var(--absovw-font-hud);
text-transform: uppercase;
letter-spacing: 1px;
background: rgba(136,204,255,0.05);
}

.absovw_timeline_wrap {
position: relative;
padding-left: 40px;
border-left: 2px solid var(--absovw-dim);
margin: 50px 0;
}
.absovw_tl_node {
position: relative;
margin-bottom: 40px;
}
.absovw_tl_node::before {
content: "";
position: absolute;
left: -46px;
top: 5px;
width: 10px;
height: 10px;
background: var(--absovw-bg);
border: 2px solid var(--absovw-holo);
border-radius: 50%;
}
.absovw_bar_chart_arena {
display: flex;
align-items: flex-end;
height: 250px;
gap: 15px;
padding: 20px 0;
border-bottom: 1px solid var(--absovw-dim);
margin: 40px 0;
}
.absovw_bar {
flex: 1;
background: linear-gradient(to top, rgba(136,204,255,0.1), var(--absovw-holo));
min-height: 10%;
position: relative;
transition: 1s height;
}
.absovw_bar:hover { filter: brightness(1.5); }
.absovw_bar::after {
content: attr(data-val);
position: absolute;
top: -25px; left: 50%;
transform: translateX(-50%);
font-family: var(--absovw-font-hud);
font-size: 10px;
color: var(--absovw-holo);
white-space: nowrap;
}
.absovw_terminal_ui {
background: #000;
border: 1px solid #333;
padding: 20px;
font-family: monospace;
color: #0f0;
border-radius: 4px;
height: 300px;
overflow-y: auto;
overflow-x: hidden;
box-shadow: inset 0 0 20px rgba(0,255,0,0.1);
word-wrap: break-word;
white-space: pre-wrap; 
}
.absovw_terminal_ui p { margin-bottom: 10px; }
.absovw_terminal_ui .absovw_err { color: #f00; }
.absovw_radar_svg {
width: 100%;
max-width: 400px;
height: auto;
margin: 0 auto;
display: block;
animation: absovw_radar_sweep 4s infinite linear;
transform-origin: center;
}
@keyframes absovw_radar_sweep {
100% { transform: rotate(360deg); }
}
.absovw_mock_form input, .absovw_mock_form textarea {
width: 100%;
background: rgba(0,0,0,0.5);
border: 1px solid var(--absovw-dim);
color: var(--absovw-txt);
padding: 15px;
margin-bottom: 20px;
font-family: var(--absovw-font-main);
outline: none;
transition: 0.3s;
}
.absovw_mock_form input:focus, .absovw_mock_form textarea:focus { border-color: var(--absovw-holo); }
.absovw_accordion_item {
border: 1px solid var(--absovw-dim);
margin-bottom: 10px;
}
.absovw_acc_head {
padding: 20px;
background: rgba(136,204,255,0.02);
cursor: pointer;
font-weight: bold;
color: var(--absovw-holo);
display: flex;
justify-content: space-between;
align-items: center;
word-break: keep-all;
}
.absovw_acc_body {
padding: 0 20px;
max-height: 0;
overflow: hidden;
transition: all 0.4s;
background: rgba(0,0,0,0.3);
}
.absovw_acc_head:hover { background: rgba(136,204,255,0.05); }
.absovw_footer_gateway {
margin-top: 100px;
padding: 80px 20px;
text-align: center;
background: radial-gradient(circle at top, rgba(255,69,0,0.05), transparent);
border-top: 1px solid var(--absovw-dim);
}
.absovw_footer_nav {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 15px 30px;
margin-bottom: 40px;
}
.absovw_footer_nav a {
color: #88CCFF;
text-decoration: none;
font-family: 'Chakra Petch';
font-size: 14px;
transition: 0.3s;
}
.absovw_footer_nav a:hover {
color: var(--absovw-lock);
text-shadow: 0 0 10px var(--absovw-lock);
}
.absovw_trust_grid {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 20px;
margin: 40px 0;
}
.absovw_trust_badge {
display: flex;
align-items: center;
gap: 15px;
border: 1px solid rgba(136,204,255,0.2);
padding: 12px 25px;
background: rgba(0,0,0,0.6);
border-radius: 4px;
}
.absovw_trust_badge svg {
width: 30px;
height: 30px;
}
.absovw_trust_text {
font-family: 'Chakra Petch';
color: #e0f2ff;
text-align: left;
line-height: 1.3;
}
.absovw_trust_text strong {
display: block;
color: var(--absovw-holo);
font-size: 14px;
}
.absovw_trust_text span {
font-size: 11px;
color: rgba(224,242,255,0.6);
}

/* =========================================
   [반응형 공용 유틸리티 클래스] 
   ========================================= */
.absovw_content_wrap {
position: relative;
z-index: 50;
max-width: 1200px;
margin: 0 auto;
padding: 40px 20px;
width: 100%;
}
.absovw_panel {
padding: 40px;
}
.absovw_panel_lg {
padding: 60px;
}

/* =========================================
   [모바일 완벽 제어 & 섬세한 텍스트 렌더링] 
   ========================================= */
@media (max-width: 850px) {
    /* 1. 오버플로우 원천 차단 */
    body, html {
        overflow-x: hidden;
    }
    body {
        /* 한글 줄바꿈 자연스럽게 허용 (화면 찢어짐 방지) */
        word-break: normal;
        overflow-wrap: break-word;
    }

    /* 2. 레이아웃 여백 다이어트 (부드러운 축소) */
    .absovw_content_wrap { padding: 20px 15px !important; }
    .absovw_panel { padding: 25px 15px !important; }
    .absovw_panel_lg { padding: 30px 15px !important; }
    
    /* 3. 모바일 전용 디자인 재배치 */
    .absovw_flex_col_mobile {
        flex-direction: column !important;
        gap: 20px !important;
    }
    .absovw_border_mobile_top {
        border-left: none !important;
        border-top: 4px solid var(--absovw-holo) !important;
    }

    /* 4. 타이포그래피 섬세한 정렬 (제목은 중앙, 본문은 가독성을 위해 좌측) */
    h1, h2, h3 { 
        text-align: center !important; 
        word-break: keep-all; 
        line-height: 1.3;
        margin-bottom: 20px !important;
    }
    p { 
        text-align: left !important; 
        line-height: 1.7;
    }
    .absovw_hero_title { font-size: 2.2rem !important; }
    
    /* 5. 터미널 UI 가독성 보존 */
    .absovw_terminal_ui {
        padding: 15px;
        font-size: 0.85rem;
        height: 250px;
    }
    .absovw_terminal_ui p {
        text-align: left !important;
    }

    /* 6. 네비게이션 & 기타 UI */
    .absovw_desktop_nav { display: none; }
    .absovw_mobile_btn { display: block; }
    .absovw_header_wrapper { padding: 20px; }
    .absovw_globe_core { width: 90vmin; height: 90vmin; }
    .absovw_nav_item span { display: none; }
    .absovw_nav_item::after { content: attr(data-icon); font-size: 1.2rem; }
    
    .absovw_grid_mesh { grid-template-columns: 1fr; gap: 20px; }
    .absovw_mesh_cell { padding: 20px; }
    
    .absovw_tl_node::before { left: -26px; }
    .absovw_timeline_wrap { padding-left: 20px; border-left-width: 1px; }
    .absovw_footer_gateway { padding: 50px 15px; }
    
    .absovw_trust_grid { flex-direction: column; align-items: stretch; }
    .absovw_trust_badge { justify-content: flex-start; }
    .absovw_bar_chart_arena { gap: 5px; height: 200px; }
    .absovw_bar::after { font-size: 9px; transform: translateX(-50%) rotate(-45deg); top: -35px; }
}