@charset "UTF-8";

:root {
    --gz-primary: #4f46e5;
    --gz-primary-dark: #312e81;
    --gz-primary-soft: #eef2ff;
    --gz-accent: #f59e0b;
    --gz-ink: #0f172a;
    --gz-muted: #64748b;
    --gz-line: #e2e8f0;
    --gz-surface: #ffffff;
    --gz-canvas: #f8fafc;
    --gz-radius-sm: 0.875rem;
    --gz-radius-md: 1.35rem;
    --gz-radius-lg: 2rem;
    --gz-radius-hero: clamp(1.75rem, 3.3vw, 3rem);
    --gz-shadow-card: 0 12px 34px rgba(15, 23, 42, 0.07);
    --gz-shadow-hero: 0 28px 70px rgba(30, 41, 59, 0.22);
}

html { scroll-behavior: smooth; }

body.gz-theme {
    color: var(--gz-ink);
    font-family: "Noto Sans KR", "Pretendard", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
    letter-spacing: -0.022em;
    background-color: var(--gz-canvas) !important;
    background-image:
        radial-gradient(circle at 8% 0%, rgba(99, 102, 241, 0.09), transparent 29rem),
        radial-gradient(circle at 96% 14%, rgba(245, 158, 11, 0.055), transparent 25rem) !important;
    background-attachment: fixed;
}

body.gz-theme *, body.gz-theme *::before, body.gz-theme *::after { box-sizing: border-box; }
body.gz-theme h1, body.gz-theme h2, body.gz-theme h3 { letter-spacing: -0.042em; text-wrap: balance; }
body.gz-theme p { word-break: keep-all; }
body.gz-theme img { image-rendering: auto; }
body.gz-theme ::selection { background: #c7d2fe; color: #1e1b4b; }

body.gz-theme .gz-site-header-shell {
    top: 0.75rem !important;
    z-index: 120 !important;
}

body.gz-theme header.gz-site-header-shell {
    width: min(100% - 1.5rem, 80rem) !important;
    margin: 0.75rem auto 1.5rem !important;
    border: 1px solid rgba(255,255,255,.88) !important;
    border-radius: 1.65rem !important;
    overflow: hidden;
    background: rgba(255,255,255,.91) !important;
    box-shadow: 0 14px 40px rgba(15,23,42,.10) !important;
    backdrop-filter: blur(18px);
}

body.gz-theme nav.gz-site-header-shell > div:first-child {
    border: 1px solid rgba(255,255,255,.9) !important;
    border-radius: 1.75rem !important;
    background: rgba(255,255,255,.91) !important;
    box-shadow: 0 14px 40px rgba(15,23,42,.09) !important;
    backdrop-filter: blur(18px);
}

body.gz-theme .gz-unified-hero {
    position: relative;
    isolation: isolate;
    margin-bottom: clamp(2rem, 5vw, 4.5rem) !important;
}

body.gz-theme .gz-unified-hero-card {
    position: relative !important;
    border-radius: var(--gz-radius-hero) !important;
    overflow: hidden !important;
    border: 1px solid rgba(255,255,255,.2) !important;
    box-shadow: var(--gz-shadow-hero) !important;
}

body.gz-theme .gz-unified-hero-card::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    border-radius: inherit;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.09);
    z-index: 1;
}

body.gz-theme .gz-unified-hero .gz-hero-title {
    max-width: 56rem;
    font-family: "Noto Sans KR", "Pretendard", sans-serif !important;
    font-size: clamp(2.15rem, 5.1vw, 4.75rem) !important;
    font-weight: 900 !important;
    line-height: 1.1 !important;
    letter-spacing: -0.058em !important;
    text-wrap: balance;
    word-break: keep-all;
}

body.gz-theme .gz-unified-hero .gz-hero-copy {
    max-width: 46rem;
    font-size: clamp(.95rem, 1.65vw, 1.18rem) !important;
    line-height: 1.8 !important;
    letter-spacing: -0.02em;
    word-break: keep-all;
}

body.gz-theme .gz-theme-card {
    border-color: rgba(226,232,240,.92) !important;
    box-shadow: var(--gz-shadow-card);
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

@media (hover:hover) {
    body.gz-theme .gz-theme-card:hover {
        transform: translateY(-3px);
        border-color: rgba(165,180,252,.8) !important;
        box-shadow: 0 20px 48px rgba(30,41,59,.12);
    }
}

body.gz-theme .gz-theme-button {
    min-height: 2.75rem;
    border-radius: var(--gz-radius-sm) !important;
    font-family: inherit !important;
    font-weight: 800 !important;
    letter-spacing: -0.025em;
    transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease !important;
}

@media (hover:hover) {
    body.gz-theme .gz-theme-button:hover { transform: translateY(-1px); }
}

body.gz-theme input:not([type="checkbox"]):not([type="radio"]),
body.gz-theme select,
body.gz-theme textarea {
    font-family: inherit !important;
    border-radius: var(--gz-radius-sm);
}

body.gz-theme input:focus, body.gz-theme select:focus, body.gz-theme textarea:focus {
    outline: none;
    border-color: #818cf8 !important;
    box-shadow: 0 0 0 3px rgba(99,102,241,.13);
}

body.gz-dashboard .gz-dashboard-panel,
body.gz-dashboard main > section,
body.gz-dashboard main > div[class*="bg-white"][class*="rounded"] {
    border-color: var(--gz-line) !important;
    box-shadow: var(--gz-shadow-card);
}

body.gz-theme .gz-static-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(2rem, 5vw, 4rem) !important;
    border-radius: var(--gz-radius-hero);
    color: #fff;
    text-align: left !important;
    background:
        radial-gradient(circle at 88% 15%, rgba(245,158,11,.2), transparent 18rem),
        linear-gradient(135deg, #312e81 0%, #4338ca 52%, #0f172a 100%);
    box-shadow: var(--gz-shadow-hero);
}

body.gz-theme .gz-static-hero h1,
body.gz-theme .gz-static-hero h2 { color: #fff !important; }
body.gz-theme .gz-static-hero p { color: rgba(255,255,255,.78) !important; }

@media (max-width: 768px) {
    body.gz-theme { background-attachment: scroll; }
    body.gz-theme .gz-site-header-shell { top: .45rem !important; }
    body.gz-theme header.gz-site-header-shell { width: calc(100% - 1rem) !important; margin: .5rem auto 1rem !important; border-radius: 1.25rem !important; }
    body.gz-theme nav.gz-site-header-shell { padding-left: .5rem !important; padding-right: .5rem !important; margin-bottom: 1rem !important; }
    body.gz-theme nav.gz-site-header-shell > div:first-child { border-radius: 1.35rem !important; }
    body.gz-theme .gz-unified-hero { margin-bottom: 2rem !important; }
    body.gz-theme .gz-unified-hero-card { border-radius: 1.6rem !important; }
    body.gz-theme .gz-unified-hero .gz-hero-title { font-size: clamp(2rem, 10.5vw, 3.2rem) !important; }
    body.gz-theme .gz-unified-hero [class*="min-h-[620px]"] { min-height: 0 !important; }
    body.gz-theme .gz-unified-hero-card[class*="h-[400px]"] { height: 22rem !important; }
    body.gz-theme .gz-static-hero { border-radius: 1.6rem; padding: 2rem 1.35rem !important; }
}

@media (max-width: 640px) {
    body.gz-theme { padding-bottom: 5.8rem !important; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    body.gz-theme *, body.gz-theme *::before, body.gz-theme *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}
