/* ============================================================
   홈 화면 — 유리 연구실 테마 2단계
   ============================================================
   theme-glass.css 의 변수(--glass, --text-*, --g1/--g2 …)를 씁니다.
   숫자 재생은 assets/js/home-glass.js 가 맡습니다.
   ============================================================ */

.gh-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.gh-stop1 { stop-color: var(--g1); }
.gh-stop2 { stop-color: var(--g2); }
.gh-track { stroke: var(--bg-tertiary); }

/* 유리 공통 */
.gh-big, .gh-small, .gh-ring, .gh-race, .gh-card, .gh-gpu, .gh-search, .gh-pill {
    border: 1px solid var(--glass-border);
    backdrop-filter: blur(var(--glass-blur));
    -webkit-backdrop-filter: blur(var(--glass-blur));
}

.gh-label { font-size: 14px; color: var(--text-muted); }
.gh-sub { font-size: 14px; color: var(--text-muted); }
.gh-num { font-weight: 200; line-height: 1; letter-spacing: -0.045em; font-variant-numeric: tabular-nums; color: var(--text-primary); }
.gh-bar { height: 5px; border-radius: 999px; background: var(--bg-tertiary); overflow: hidden; }
.gh-bar > i { display: block; height: 100%; width: 0; border-radius: 999px; background: var(--accent-gradient); box-shadow: var(--shadow-glow); }
.gh-btn {
    display: inline-flex; align-items: center; justify-content: center;
    height: 46px; padding: 0 22px; border: 0; border-radius: 16px;
    background: var(--accent-gradient); color: var(--on-grad);
    font: inherit; font-size: 15px; font-weight: 600; cursor: pointer;
    box-shadow: var(--shadow-glow); text-decoration: none;
}
.gh-btn:hover { background: var(--accent-gradient-hover); color: var(--on-grad); }

/* ---------- 첫 화면 ---------- */
.gh-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    gap: 56px;
    align-items: center;
    padding-top: 64px;
    padding-bottom: 56px;
}
.gh-hero-text { display: flex; flex-direction: column; gap: 26px; }
.gh-pill {
    align-self: flex-start; display: inline-flex; align-items: center; gap: 8px;
    padding: 8px 16px; border-radius: 999px; font-size: 13.5px;
    background: var(--glass); color: var(--text-secondary);
    box-shadow: inset 0 1px 0 var(--glass-hi);
}
.gh-pill i { color: var(--accent-primary); }
.gh-hero h1 {
    font-size: clamp(38px, 5vw, 68px);
    font-weight: 200;
    line-height: 1.16;
    letter-spacing: -0.035em;
    color: var(--text-primary);
}
.gh-hero h1 .gradient-text {
    font-weight: 600;
    background: var(--accent-gradient);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
.gh-hero p { font-size: 18px; line-height: 1.8; color: var(--text-secondary); max-width: 520px; }
.gh-search {
    height: 62px; max-width: 540px; display: flex; align-items: center; gap: 12px;
    padding: 0 8px 0 22px; border-radius: 22px;
    background: var(--glass); color: var(--text-muted);
    box-shadow: inset 0 1px 0 var(--glass-hi), var(--shadow-md);
}
.gh-search input { flex: 1; min-width: 0; border: 0; outline: none; background: transparent; font: inherit; font-size: 16.5px; color: var(--text-primary); }
.gh-search input::placeholder { color: var(--text-muted); }

.gh-stack { position: relative; height: 520px; }
.gh-big {
    position: absolute; left: 0; top: 10px; right: 70px;
    padding: 36px; border-radius: 40px;
    display: flex; flex-direction: column; gap: 10px;
    background: var(--glass-strong);
    box-shadow: inset 0 1px 0 var(--glass-hi), var(--shadow-lg);
}
.gh-big .gh-num { font-size: clamp(84px, 9vw, 128px); }
.gh-big .gh-sub { font-size: 16px; color: var(--text-secondary); }
.gh-big .gh-bar { margin-top: 18px; }
.gh-small {
    position: absolute; right: 0; bottom: 40px; width: 290px;
    padding: 26px; border-radius: 30px;
    display: flex; flex-direction: column; gap: 8px;
    background: var(--glass);
    box-shadow: inset 0 1px 0 var(--glass-hi), var(--shadow-md);
}
.gh-small .gh-num { font-size: 54px; }
.gh-ring {
    position: absolute; left: 40px; bottom: 0;
    padding: 16px 20px; border-radius: 24px;
    display: flex; align-items: center; gap: 14px;
    background: var(--glass);
    box-shadow: inset 0 1px 0 var(--glass-hi), var(--shadow-md);
}
.gh-ring strong { display: block; font-size: 20px; font-weight: 500; color: var(--text-primary); }
.gh-ring small { font-size: 12.5px; color: var(--text-muted); }

/* ---------- 구역 공통 ---------- */
.gh-head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; flex-wrap: wrap; margin-bottom: 22px; }
.gh-head h2 { font-size: clamp(26px, 2.6vw, 32px); font-weight: 300; letter-spacing: -0.02em; color: var(--text-primary); }
.gh-head h2 strong { font-weight: 600; }
.gh-more { font-size: 15px; padding: 10px 0; }
.gh-block { margin: 64px 0; }

/* ---------- 두 그래픽카드 ---------- */
.gh-race {
    margin: 40px 0 64px;
    padding: 32px 36px;
    border-radius: 40px;
    background: var(--glass);
    box-shadow: inset 0 1px 0 var(--glass-hi), var(--shadow-md);
}
.gh-lanes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.gh-lane {
    padding: 24px; border-radius: 28px;
    background: var(--glass-strong); border: 1px solid var(--glass-border);
    box-shadow: inset 0 1px 0 var(--glass-hi);
    display: flex; flex-direction: column; gap: 14px;
}
.gh-lane-top { display: flex; justify-content: space-between; align-items: baseline; color: var(--text-primary); }
.gh-lane-top b { font-size: 15px; font-weight: 600; }
.gh-lane-top span { font-size: 32px; font-weight: 200; }
.gh-lane-top small { font-size: 13px; color: var(--text-muted); }
.gh-lane .gh-bar { height: 4px; }
.gh-lane-out { height: 132px; overflow: hidden; font-size: 15px; line-height: 1.8; color: var(--text-secondary); white-space: pre-wrap; }
.gh-caret { display: inline-block; width: 2px; height: 1em; margin-left: 1px; vertical-align: text-bottom; background: var(--accent-primary); }

/* ---------- 최근 테스트 ---------- */
.gh-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.gh-card {
    padding: 28px; border-radius: 32px;
    background: var(--glass); color: var(--text-primary);
    box-shadow: inset 0 1px 0 var(--glass-hi), var(--shadow-md);
    display: flex; flex-direction: column; gap: 22px;
    transition: var(--transition);
}
.gh-card:hover { background: var(--glass-strong); color: var(--text-primary); transform: translateY(-3px); box-shadow: inset 0 1px 0 var(--glass-hi), var(--shadow-lg); }
.gh-card-top { display: flex; justify-content: space-between; align-items: center; font-size: 12.5px; color: var(--text-muted); }
.gh-chip { padding: 6px 12px; border-radius: 999px; background: var(--tint); border: 1px solid var(--tint-border); color: var(--accent-primary); }
.gh-card-title { font-size: 18.5px; font-weight: 500; line-height: 1.55; min-height: 86px; }
.gh-card-stat { display: flex; align-items: center; gap: 18px; }
.gh-card-stat > span { display: flex; flex-direction: column; gap: 4px; }
.gh-card-num { font-size: 30px; font-weight: 200; line-height: 1; }
.gh-card-num small, .gh-card-stat small { font-size: 12.5px; color: var(--text-muted); }

/* ---------- GPU 체험 안내 ---------- */
.gh-gpu {
    margin: 64px 0;
    padding: 36px;
    border-radius: 40px;
    background: var(--glass-strong);
    box-shadow: inset 0 1px 0 var(--glass-hi), var(--shadow-md);
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: 40px;
    align-items: center;
}
.gh-gpu-text { display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }
.gh-kicker { font-size: 13px; font-weight: 600; color: var(--accent-primary); }
.gh-gpu h2 { font-size: clamp(26px, 2.6vw, 32px); font-weight: 300; line-height: 1.3; color: var(--text-primary); }
.gh-gpu h2 strong { font-weight: 600; }
.gh-gpu p { font-size: 15px; line-height: 1.7; color: var(--text-secondary); }
.gh-btn-wide { margin-top: 8px; height: 50px; padding: 0 28px; border-radius: 18px; }
.gh-fits { display: flex; flex-direction: column; gap: 18px; }
.gh-fit { display: flex; flex-direction: column; gap: 8px; }
.gh-fit-top { display: flex; justify-content: space-between; font-size: 14.5px; color: var(--text-primary); }
.gh-fit-top em { font-style: normal; color: var(--text-muted); }
.gh-fit .gh-bar { height: 8px; }
.gh-fit .gh-bar > i { box-shadow: none; }
.gh-fit small { font-size: 13px; font-weight: 600; }
.gh-fit small span { font-weight: 400; color: var(--text-muted); }
.gh-fit-ok .gh-bar > i { background: var(--success); }
.gh-fit-ok small { color: var(--success); }
.gh-fit-tight .gh-bar > i { background: var(--warning); }
.gh-fit-tight small { color: var(--warning); }
.gh-fit-over .gh-bar > i { background: var(--danger); }
.gh-fit-over small { color: var(--danger); }

/* ---------- 반응형 ---------- */
@media (max-width: 1180px) {
    .gh-ring { display: none; }
    .gh-small { width: 250px; }
}
@media (max-width: 1023px) {
    .gh-hero { grid-template-columns: 1fr; gap: 32px; padding-top: 40px; }
    .gh-stack { height: 480px; max-width: 640px; }
    .gh-big { top: 0; right: 180px; }
    .gh-small { bottom: 20px; }
    .gh-ring { display: flex; left: 0; }
    .gh-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gh-card:last-child:nth-child(odd) { grid-column: span 2; }
    .gh-gpu { grid-template-columns: 1fr; gap: 28px; }
}
@media (max-width: 767px) {
    .gh-hero { padding-top: 24px; padding-bottom: 32px; gap: 24px; }
    .gh-hero-text { gap: 18px; }
    .gh-hero p { font-size: 16px; }
    .gh-search { height: 56px; padding-left: 16px; }
    .gh-search .gh-btn { display: none; }
    .gh-stack { height: auto; display: flex; flex-direction: column; gap: 12px; }
    .gh-big, .gh-small, .gh-ring { position: static; width: auto; }
    .gh-big { padding: 26px; border-radius: 30px; }
    .gh-small { flex-direction: row; align-items: baseline; justify-content: space-between; padding: 18px 22px; border-radius: 24px; }
    .gh-small .gh-num { font-size: 36px; order: 2; }
    .gh-small .gh-sub { display: none; }
    .gh-ring { display: none; }
    .gh-race { padding: 20px; border-radius: 30px; margin: 28px 0 44px; }
    .gh-lanes { grid-template-columns: 1fr; gap: 12px; }
    .gh-lane { padding: 18px; border-radius: 24px; }
    .gh-lane-out { height: 96px; font-size: 14px; }
    .gh-lane-top span { font-size: 26px; }
    .gh-block { margin: 44px 0; }
    .gh-cards { grid-template-columns: 1fr; gap: 12px; }
    .gh-card:last-child:nth-child(odd) { grid-column: auto; }
    .gh-card { padding: 22px; border-radius: 26px; gap: 14px; }
    .gh-card-title { min-height: 0; font-size: 17px; }
    .gh-gpu { padding: 24px 20px; border-radius: 30px; margin: 44px 0; }
}
