GNU/_PAGE/chart/upbit/candles/candles.php
<?php
// 심전도 메인 페이지
?>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>심전도 모니터링</title>
<!-- 폰트 및 아이콘 라이브러리 추가 -->
<link rel="stylesheet" as="style" crossorigin href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.8/dist/web/static/pretendard.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<style>
:root {
    --bg-primary: #0a0e27;
    --bg-secondary: #151932;
    --bg-tertiary: #1e2742;
    --bg-card: #1a1f3a;
    --bg-hover: #252b4a;
    --bg-border: #2a3458;
    --text-primary: #e2e8f0;
    --text-secondary: #94a3b8;
    --text-muted: #64748b;
    --accent-primary: #3b82f6;
    --accent-secondary: #8b5cf6;
    --success: #10b981;
    --danger: #ef4444;
    --warning: #f59e0b;
    --border-color: #2a3458;
    --neon-green: #00ff88;
    --neon-cyan: #00eaff;
    --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3);
    --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.4);
    --shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.5);
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    background: linear-gradient(135deg, var(--bg-primary) 0%, #0f172a 100%);
    color: var(--text-primary);
    /* 웹폰트 적용 */
    font-family: 'Pretendard', -apple-system, BlinkMacSystemFont, system-ui, Roboto, 'Helvetica Neue', 'Segoe UI', 'Apple SD Gothic Neo', 'Noto Sans KR', 'Malgun Gothic', sans-serif;
    padding: 24px 0;
    min-height: 100vh;
    line-height: 1.6;
}

/* 페이지 로딩 동적 애니메이션 정의 */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.container {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    padding: 0 48px;
    /* 초기 등장 애니메이션 */
    animation: fadeInUp 0.8s ease-out forwards;
}

h1 {
    font-size: 32px;
    font-weight: 700;
    margin-bottom: 8px;
    color: var(--text-primary);
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
    display: flex;
    align-items: center;
    gap: 12px;
}

h1 i {
    color: var(--neon-green);
}

.subtitle {
    font-size: 14px;
    color: var(--text-muted);
    margin-bottom: 32px;
}

.card-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    margin-top: 24px;
}

.card {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: 12px;
    padding: 24px;
    transition: all 0.3s ease;
    cursor: pointer;
    text-decoration: none;
    color: var(--text-primary);
    display: block;
    position: relative;
    overflow: hidden;
    box-shadow: var(--shadow-lg);
    /* 카드 각각의 등장을 위한 설정 */
    opacity: 0;
    animation: fadeInUp 0.6s ease-out forwards;
}

/* 카드 순차적 등장 효과 (Staggered Delay) */
.card:nth-child(1) { animation-delay: 0.1s; }
.card:nth-child(2) { animation-delay: 0.2s; }
.card:nth-child(3) { animation-delay: 0.3s; }
.card:nth-child(4) { animation-delay: 0.4s; }
.card:nth-child(5) { animation-delay: 0.5s; }
.card:nth-child(6) { animation-delay: 0.6s; }

.card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, transparent, var(--neon-green), transparent);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.card:hover {
    border-color: var(--neon-green);
    box-shadow: 0 12px 24px rgba(0, 255, 136, 0.15), 0 0 20px rgba(0, 255, 136, 0.1);
    transform: translateY(-2px);
}

.card:hover::before {
    opacity: 1;
}

.card-icon {
    font-size: 32px;
    margin-bottom: 12px;
    display: block;
    /* 웹 아이콘 색상 설정 */
    color: var(--neon-cyan);
}

.card-title {
    font-size: 20px;
    font-weight: 600;
    margin-bottom: 8px;
    color: var(--text-primary);
}

.card-description {
    font-size: 14px;
    color: var(--text-secondary);
    line-height: 1.5;
}

.card-badge {
    display: inline-block;
    margin-top: 12px;
    padding: 4px 12px;
    background: var(--bg-tertiary);
    border: 1px solid var(--border-color);
    border-radius: 12px;
    font-size: 12px;
    color: var(--text-muted);
}

/* 스크롤바 스타일링 */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: var(--bg-secondary);
    border-radius: 4px;
}

::-webkit-scrollbar-thumb {
    background: var(--bg-tertiary);
    border-radius: 4px;
    border: 2px solid var(--bg-secondary);
}

::-webkit-scrollbar-thumb:hover {
    background: var(--bg-hover);
}

/* 반응형 디자인 */
@media (max-width: 768px) {
    body {
        padding: 16px 0;
    }
    
    .container {
        padding: 0 24px;
    }
    
    h1 {
        font-size: 24px;
    }
    
    .card-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }
}

@media (min-width: 769px) and (max-width: 1024px) {
    .container {
        padding: 0 32px;
    }
    
    .card-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
    }
}

@media (min-width: 1025px) and (max-width: 1400px) {
    .container {
        padding: 0 40px;
    }
    
    .card-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 20px;
    }
}

@media (min-width: 1401px) {
    .container {
        padding: 0 56px;
    }
    
    .card-grid {
        gap: 24px;
    }
}
</style>
</head>
<body>

<div class="container">
    <h1><i class="fa-solid fa-chart-candle"></i> 캔들봉 차트 모니터링</h1>
    <p class="subtitle">실시간 가격 및 거래량 캔들 봉 모니터링 시스템</p>
    
    <div class="card-grid">
        <a href="candles_volume_width_up_1.php" class="card">
            <span class="card-icon"><i class="fa-solid fa-chart-bar"></i></span>
            <div class="card-title">캔들봉 1분봉 (일반형) V.1-w - 거래량</div>
            <div class="card-description">
                실시간 거래량 변동을 캔들봉로 시각화합니다. 스파이크 감지, 변동성 분석, 무거래 상태 감지 등의 기능을 제공합니다.
            </div>
            <span class="card-badge">Price Heartbeat - Mini Basic</span>
        </a>
        <a href="candles_volume_height_up_1.php" class="card">
            <span class="card-icon" style="color: var(--neon-green);"><i class="fa-solid fa-chart-column"></i></span>
            <div class="card-title">캔들봉 1분봉 (상하형) V.1-h - 거래량</div>
            <div class="card-description">
                실시간 거래량 변동을 상하 표현으로 시각화합니다. 스파이크 감지, 변동성 분석, 무거래 상태 감지 등의 기능을 제공합니다.
            </div>
            <span class="card-badge">Volume Heartbeat - Mini Basic</span>
        </a>        
        <a href="candles_chart_01_1m.php" class="card">
            <span class="card-icon"><i class="fa-solid fa-chart-line"></i></span>
            <div class="card-title">캔들봉 1분 봉 Bm.1 - 가격</div>
            <div class="card-description">
                실시간 가격 변동을 1분 단위로 시각화합니다. 스파이크 감지, 변동성 분석, 무거래 상태 감지 등의 기능을 제공합니다.
            </div>
            <span class="card-badge">Price Heartbea - Full Basict</span>
        </a>        
        <a href="candles_chart_01_1s.php" class="card">
            <span class="card-icon" style="color: var(--neon-green);"><i class="fa-solid fa-bolt-lightning"></i></span>
            <div class="card-title">캔들봉 1초 봉 Bs.1 - 가격</div>
            <div class="card-description">
                실시간 가격 변동을 1초 단위로 시각화합니다. 거래 활동의 강도를 직관적으로 확인할 수 있습니다.
            </div>
            <span class="card-badge">Volume Heartbeat - Full Basic</span>
        </a>
        <a href="candles_volume_height.php" class="card">
            <span class="card-icon"><i class="fa-solid fa-arrows-up-down"></i></span>
            <div class="card-title">캔들봉 1분봉 : 가격 (상하형) - BASIC</div>
            <div class="card-description">
                실시간 가격 변동 캔들 봉을 상하로 표현합니다. 스파이크 감지, 변동성 분석, 무거래 상태 감지 등의 기능을 제공합니다.
            </div>
            <span class="card-badge">Price Heartbeat - Mini Basic</span>
        </a>
        <a href="candles_volume_width.php" class="card">
            <span class="card-icon" style="color: var(--neon-green);"><i class="fa-solid fa-arrows-left-right"></i></span>
            <div class="card-title">캔들봉 1분봉 : 가격 (일반형) - BASIC </div>
            <div class="card-description">
                실시간 가격 변동을 가격 변동을 표현합니다. 스파이크 감지, 변동성 분석, 무거래 상태 감지 등의 기능을 제공합니다.
            </div>
            <span class="card-badge">Volume Heartbeat - Mini Basic</span>
        </a>
    </div>
</div>

</body>
</html>