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

:root {
  --primary: #2563EB;
  --primary-dark: #1D4ED8;
  --primary-light: #3B82F6;
  --accent: #06B6D4;
  --accent2: #10B981;
  --gold: #F59E0B;
  --dark: #0F172A;
  --text: #334155;
  --text-light: #64748B;
  --bg: #F8FAFC;
  --border: #E2E8F0;
  --grad1: linear-gradient(135deg, #2563EB 0%, #06B6D4 100%);
  --shadow-sm: 0 2px 8px rgba(37,99,235,0.08);
  --shadow-md: 0 8px 32px rgba(37,99,235,0.13);
  --shadow-lg: 0 20px 60px rgba(37,99,235,0.18);
  --radius: 20px;
  --radius-sm: 12px;
}

html { scroll-behavior: smooth; }
body { font-family: 'Noto Sans KR', sans-serif; background: var(--bg); color: var(--text); overflow-x: hidden; line-height: 1.7; }
img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: var(--radius); }
a { text-decoration: none; color: inherit; }

/* ── LOADING SCREEN ── */
#loading-screen {
  position: fixed; inset: 0; z-index: 9999;
  display: flex; align-items: center; justify-content: center;
  background: var(--dark); overflow: hidden;
  transition: opacity 0.8s ease, visibility 0.8s ease;
}
#loading-screen.fade-out { opacity: 0; visibility: hidden; pointer-events: none; }

.loading-bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 50%, rgba(37,99,235,0.28) 0%, transparent 60%),
              radial-gradient(ellipse at 70% 25%, rgba(6,182,212,0.2) 0%, transparent 55%),
              radial-gradient(ellipse at 60% 80%, rgba(16,185,129,0.12) 0%, transparent 50%);
}
.loading-bg::after {
  content: ''; position: absolute; inset: 0;
  background-image: linear-gradient(rgba(37,99,235,0.05) 1px, transparent 1px),
                    linear-gradient(90deg, rgba(37,99,235,0.05) 1px, transparent 1px);
  background-size: 40px 40px;
}

.loading-content {
  position: relative; z-index: 2;
  display: flex; flex-direction: column; align-items: center; gap: 36px;
  width: 100%; max-width: 460px; padding: 0 24px;
}

.brand-logo { display: flex; align-items: center; gap: 12px; animation: fadeInDown 0.6s ease both; }
.logo-icon {
  width: 52px; height: 52px; border-radius: 16px; background: var(--grad1);
  display: flex; align-items: center; justify-content: center; color: white; font-size: 24px;
  box-shadow: 0 4px 24px rgba(37,99,235,0.5);
}
.logo-text { font-size: 30px; font-weight: 900; color: white; letter-spacing: -1px; }

/* 카드+단말기 씬 */
.card-machine-wrap {
  position: relative; width: 290px; height: 320px;
  animation: fadeInUp 0.7s ease 0.2s both;
}

.terminal {
  position: absolute; bottom: 0; left: 50%; transform: translateX(-50%);
  width: 186px;
  background: linear-gradient(160deg, #2A3550 0%, #1A2235 100%);
  border-radius: 20px; padding: 16px 14px 18px;
  box-shadow: 0 24px 70px rgba(0,0,0,0.65), 0 0 0 1px rgba(255,255,255,0.07);
}

.terminal-screen {
  background: linear-gradient(135deg, #0B1A40 0%, #0A2A6E 100%);
  border-radius: 12px; padding: 14px 12px; margin-bottom: 12px;
  min-height: 94px; position: relative; overflow: hidden;
  border: 1px solid rgba(37,99,235,0.35);
}
.terminal-screen::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(6,182,212,0.7), transparent);
}
.terminal-screen::after {
  content: ''; position: absolute; top: -40%; left: 0; right: 0; height: 40%;
  background: linear-gradient(to bottom, transparent, rgba(6,182,212,0.07), transparent);
  animation: screenScan 3s linear infinite;
}
@keyframes screenScan { 0% { top: -40%; } 100% { top: 140%; } }

.screen-status { font-size: 10px; color: var(--accent); font-weight: 700; letter-spacing: 0.5px; margin-bottom: 6px; transition: all 0.4s; }
.screen-amount { font-size: 20px; font-weight: 900; color: white; font-family: monospace; transition: all 0.4s; }
.screen-dots { display: flex; gap: 5px; margin-top: 10px; }
.screen-dots span {
  width: 6px; height: 6px; border-radius: 50%; background: rgba(37,99,235,0.5);
  animation: dotPulse 1.4s ease infinite;
}
.screen-dots span:nth-child(2) { animation-delay: 0.2s; }
.screen-dots span:nth-child(3) { animation-delay: 0.4s; }
@keyframes dotPulse {
  0%,80%,100% { opacity: 0.3; transform: scale(0.8); }
  40% { opacity: 1; transform: scale(1.2); background: var(--accent); }
}

.terminal-slot { border: 2px dashed rgba(6,182,212,0.45); border-radius: 7px; padding: 8px; margin-bottom: 10px; }
.slot-label { font-size: 9px; color: rgba(6,182,212,0.8); font-weight: 700; letter-spacing: 2px; text-align: center; }
.slot-line {
  height: 2px; background: linear-gradient(90deg, transparent, rgba(6,182,212,0.7), transparent);
  margin-top: 4px; animation: scanLine 2s ease infinite;
}
@keyframes scanLine { 0%,100% { opacity: 0.3; transform: scaleX(0.3); } 50% { opacity: 1; transform: scaleX(1); } }

.terminal-keypad { display: flex; gap: 8px; justify-content: center; }
.key { flex: 1; padding: 7px 4px; border-radius: 7px; font-size: 10px; font-weight: 700; text-align: center; }
.key.green { background: linear-gradient(135deg, #059669, #10B981); color: white; box-shadow: 0 2px 8px rgba(16,185,129,0.45); }
.key.red   { background: linear-gradient(135deg, #DC2626, #EF4444); color: white; box-shadow: 0 2px 8px rgba(239,68,68,0.45); }

/* 카드 */
.card-wrap {
  position: absolute; top: 0; left: 50%; transform: translateX(-50%);
  width: 224px; z-index: 10;
  animation: cardSwipe 3.6s cubic-bezier(0.4,0,0.2,1) infinite;
}
@keyframes cardSwipe {
  0%   { transform: translateX(-130%) translateY(10px) rotate(-14deg); opacity: 0; }
  12%  { transform: translateX(-50%) translateY(0px) rotate(-4deg); opacity: 1; }
  40%  { transform: translateX(-50%) translateY(62px) rotate(-1deg); opacity: 1; }
  57%  { transform: translateX(-50%) translateY(78px) rotate(0deg); opacity: 1; }
  72%  { transform: translateX(-50%) translateY(72px) rotate(1deg); opacity: 0.85; }
  87%  { transform: translateX(60%) translateY(28px) rotate(10deg); opacity: 0.3; }
  100% { transform: translateX(140%) translateY(10px) rotate(14deg); opacity: 0; }
}

.card {
  background: linear-gradient(135deg, #1E3A8A 0%, #2563EB 50%, #0891B2 100%);
  border-radius: 16px; padding: 18px 20px; height: 134px;
  position: relative; overflow: hidden;
  box-shadow: 0 18px 50px rgba(37,99,235,0.6), 0 0 0 1px rgba(255,255,255,0.12);
}
.card::before { content: ''; position: absolute; top:-30%; left:-10%; width:70%; height:160%; background: rgba(255,255,255,0.07); border-radius: 50%; }
.card::after  { content: ''; position: absolute; inset:0; background: linear-gradient(135deg, rgba(255,255,255,0.18) 0%, transparent 60%); }

.card-chip {
  width: 38px; height: 30px;
  background: linear-gradient(135deg, #D4AF37, #F5D668);
  border-radius: 6px; display: flex; align-items: center; justify-content: center;
  color: rgba(0,0,0,0.35); font-size: 13px; position: relative; z-index: 1;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
.card-wave-lines { position: absolute; right: 52px; top: 15px; display: flex; flex-direction: column; gap: 4px; z-index: 1; }
.card-wave-lines span { display: block; width: 24px; height: 2px; background: rgba(255,255,255,0.3); border-radius: 2px; }
.card-number { position: absolute; bottom: 38px; left: 20px; font-size: 13px; font-weight: 700; color: rgba(255,255,255,0.9); letter-spacing: 2px; z-index: 1; font-family: monospace; }
.card-info { position: absolute; bottom: 15px; left: 20px; display: flex; gap: 16px; z-index: 1; }
.card-name { font-size: 10px; color: rgba(255,255,255,0.8); font-weight: 700; letter-spacing: 1px; }
.card-exp  { font-size: 10px; color: rgba(255,255,255,0.7); font-family: monospace; }
.card-logo { position: absolute; bottom: 14px; right: 16px; font-size: 28px; color: rgba(255,255,255,0.9); z-index: 1; }

/* 파티클 */
.particles { position: absolute; inset: 0; pointer-events: none; }
.particle { position: absolute; border-radius: 50%; animation: particleFly 1.8s ease-out forwards; }
@keyframes particleFly { 0% { opacity: 1; transform: translate(0,0) scale(1); } 100% { opacity: 0; transform: translate(var(--tx), var(--ty)) scale(0); } }

/* 로딩 바 */
.loading-status { width: 100%; text-align: center; animation: fadeIn 0.8s ease 0.4s both; }
.loading-msg { font-size: 15px; color: rgba(255,255,255,0.7); margin-bottom: 14px; min-height: 22px; transition: all 0.4s; }
.loading-bar { width: 100%; height: 4px; background: rgba(255,255,255,0.1); border-radius: 10px; overflow: hidden; }
.loading-progress { height: 100%; background: var(--grad1); border-radius: 10px; width: 0%; transition: width 0.35s ease; box-shadow: 0 0 12px rgba(37,99,235,0.7); }
.skip-text { font-size: 12px; color: rgba(255,255,255,0.3); cursor: pointer; animation: fadeIn 1s ease 1.2s both; transition: color 0.3s; }
.skip-text:hover { color: rgba(255,255,255,0.65); }

/* ── MAIN PAGE ── */
#main-page { opacity: 0; transition: opacity 0.8s ease; }
#main-page.visible { opacity: 1; }
.hidden { display: none !important; }

.section-inner { max-width: 1200px; margin: 0 auto; padding: 0 24px; }
section { padding: 100px 0; }

.section-tag {
  display: inline-flex; align-items: center; gap: 8px;
  background: rgba(37,99,235,0.08); color: var(--primary);
  border: 1px solid rgba(37,99,235,0.15);
  padding: 8px 18px; border-radius: 100px; font-size: 13px; font-weight: 700; margin-bottom: 20px;
}
.section-title { font-size: clamp(28px,4vw,44px); font-weight: 900; color: var(--dark); line-height: 1.3; margin-bottom: 16px; }
.section-desc  { font-size: 17px; color: var(--text-light); line-height: 1.8; margin-bottom: 60px; }
.gradient-text { background: var(--grad1); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }

/* ── NAV ── */
.navbar { position: fixed; top: 0; left: 0; right: 0; z-index: 1000; background: transparent; transition: all 0.4s; border-bottom: 1px solid transparent; }
.navbar.scrolled { background: rgba(255,255,255,0.96); backdrop-filter: blur(20px); border-bottom-color: var(--border); box-shadow: var(--shadow-sm); }
.nav-inner { max-width: 1200px; margin: 0 auto; padding: 0 24px; height: 70px; display: flex; align-items: center; justify-content: space-between; }
.nav-logo { font-size: 20px; font-weight: 900; color: white; display: flex; align-items: center; gap: 8px; transition: color 0.3s; }
.navbar.scrolled .nav-logo { color: var(--primary); }
.nav-links { display: flex; align-items: center; gap: 4px; list-style: none; }
.nav-links a { padding: 8px 16px; border-radius: 100px; font-size: 14px; font-weight: 500; color: rgba(255,255,255,0.85); transition: all 0.3s; }
.navbar.scrolled .nav-links a { color: var(--text); }
.nav-links a:hover { background: rgba(37,99,235,0.08); color: var(--primary) !important; }
.nav-cta { background: var(--grad1) !important; color: white !important; font-weight: 700 !important; box-shadow: 0 4px 15px rgba(37,99,235,0.3); }
.nav-cta:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(37,99,235,0.4) !important; }
.hamburger { display: none; background: none; border: none; cursor: pointer; font-size: 22px; color: white; transition: color 0.3s; align-items: center; }
.navbar.scrolled .hamburger { color: var(--dark); }
.mobile-menu { display: none; flex-direction: column; background: white; padding: 16px 24px; border-top: 1px solid var(--border); gap: 4px; }
.mobile-menu a { padding: 12px 16px; border-radius: 10px; font-size: 15px; font-weight: 500; color: var(--text); transition: all 0.2s; }
.mobile-menu a:hover { background: rgba(37,99,235,0.06); color: var(--primary); }
.mobile-menu.open { display: flex; }

/* ── HERO ── */
.hero {
  min-height: 100vh;
  background: linear-gradient(145deg, #0F172A 0%, #1E3A8A 45%, #0891B2 100%);
  position: relative; overflow: hidden; display: flex; align-items: center; padding: 120px 0 80px;
}
.hero-bg-circles { position: absolute; inset: 0; pointer-events: none; }
.circle { position: absolute; border-radius: 50%; opacity: 0.12; }
.c1 { width:600px; height:600px; background: radial-gradient(circle, var(--primary-light), transparent); top:-150px; right:-100px; animation: floatC 8s ease-in-out infinite; }
.c2 { width:400px; height:400px; background: radial-gradient(circle, var(--accent), transparent); bottom:-100px; left:-80px; animation: floatC 10s ease-in-out infinite reverse; }
.c3 { width:300px; height:300px; background: radial-gradient(circle, var(--accent2), transparent); top:40%; left:40%; animation: floatC 12s ease-in-out infinite; }
@keyframes floatC { 0%,100% { transform: translate(0,0); } 50% { transform: translate(20px,-30px); } }

.hero-inner { max-width:1200px; margin:0 auto; padding:0 24px; display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; width:100%; }
.hero-badge { display:inline-flex; align-items:center; gap:8px; background:rgba(245,158,11,0.15); color:var(--gold); border:1px solid rgba(245,158,11,0.3); padding:8px 18px; border-radius:100px; font-size:13px; font-weight:700; margin-bottom:28px; animation:fadeInUp 0.7s ease both; }
.hero-title { font-size:clamp(32px,4.5vw,56px); font-weight:900; color:white; line-height:1.25; margin-bottom:24px; animation:fadeInUp 0.7s ease 0.1s both; }
.hero-desc  { font-size:18px; color:rgba(255,255,255,0.75); line-height:1.8; margin-bottom:28px; animation:fadeInUp 0.7s ease 0.2s both; }
.hero-desc strong { color:var(--gold); font-weight:700; }
.hero-badges { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:36px; animation:fadeInUp 0.7s ease 0.3s both; }
.hero-badges span { display:flex; align-items:center; gap:6px; background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.2); color:rgba(255,255,255,0.9); padding:8px 16px; border-radius:100px; font-size:13px; font-weight:600; }
.hero-badges span i { color:var(--accent2); }
.hero-btns { display:flex; flex-wrap:wrap; gap:14px; animation:fadeInUp 0.7s ease 0.4s both; }

.btn-primary { display:inline-flex; align-items:center; gap:8px; background:var(--grad1); color:white; padding:16px 32px; border-radius:100px; font-size:16px; font-weight:700; box-shadow:0 8px 30px rgba(37,99,235,0.45); transition:all 0.3s; }
.btn-primary:hover { transform:translateY(-3px); box-shadow:0 14px 40px rgba(37,99,235,0.55); }
.btn-outline { display:inline-flex; align-items:center; gap:8px; background:transparent; color:rgba(255,255,255,0.9); border:2px solid rgba(255,255,255,0.35); padding:14px 28px; border-radius:100px; font-size:16px; font-weight:600; transition:all 0.3s; }
.btn-outline:hover { background:rgba(255,255,255,0.1); border-color:rgba(255,255,255,0.6); }

.hero-visual { position:relative; animation:fadeInRight 0.8s ease 0.2s both; }
.hero-card-scene { position:relative; padding:20px; }
.hero-terminal-img { width:100%; border-radius:24px; overflow:hidden; aspect-ratio:4/3; box-shadow:0 30px 80px rgba(0,0,0,0.4); border:2px solid rgba(255,255,255,0.1); position:relative; }
.hero-terminal-img::after { content:''; position:absolute; inset:0; background:linear-gradient(to top, rgba(0,0,0,0.2) 0%, transparent 50%); border-radius:24px; }

.hero-float-badge { position:absolute; background:rgba(255,255,255,0.95); backdrop-filter:blur(20px); border-radius:16px; padding:12px 18px; display:flex; align-items:center; gap:12px; box-shadow:0 10px 30px rgba(0,0,0,0.2); animation:floatBadge 4s ease-in-out infinite; }
.hero-float-badge i { font-size:22px; color:var(--primary); }
.hero-float-badge div small { display:block; font-size:11px; color:var(--text-light); font-weight:500; }
.hero-float-badge div strong { display:block; font-size:14px; color:var(--dark); font-weight:700; }
.b1 { top:20px; right:-20px; animation-delay:0s; }
.b2 { bottom:30px; left:-20px; animation-delay:1s; }
@keyframes floatBadge { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-10px); } }

.hero-scroll-hint { position:absolute; bottom:32px; left:50%; transform:translateX(-50%); color:rgba(255,255,255,0.4); font-size:20px; animation:bounce 2s ease-in-out infinite; }
@keyframes bounce { 0%,100% { transform:translateX(-50%) translateY(0); } 50% { transform:translateX(-50%) translateY(10px); } }

/* ── STATS ── */
.stats-section { padding:0; background:var(--dark); }
.stats-inner { max-width:1200px; margin:0 auto; padding:0 24px; display:flex; align-items:center; justify-content:center; }
.stat-item { flex:1; text-align:center; padding:44px 20px; display:flex; flex-direction:column; align-items:center; gap:4px; }
.stat-num  { font-size:clamp(40px,6vw,64px); font-weight:900; color:white; line-height:1; }
.stat-unit { font-size:clamp(16px,2vw,22px); font-weight:700; color:var(--accent); margin-left:2px; }
.stat-item p { font-size:14px; color:rgba(255,255,255,0.5); margin-top:4px; font-weight:500; }
.stat-divider { width:1px; height:60px; background:rgba(255,255,255,0.1); flex-shrink:0; }

/* ── PROBLEM ── */
.problem-section { background:var(--bg); }
.problem-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-bottom:48px; }
.problem-card { background:white; border-radius:var(--radius); padding:36px 28px; border:1px solid var(--border); box-shadow:var(--shadow-sm); transition:all 0.3s; position:relative; overflow:hidden; }
.problem-card::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg,#EF4444,#F97316); }
.problem-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-md); }
.prob-icon { width:56px; height:56px; background:linear-gradient(135deg,#FEE2E2,#FECACA); border-radius:16px; display:flex; align-items:center; justify-content:center; font-size:22px; color:#EF4444; margin-bottom:20px; }
.problem-card h3 { font-size:18px; font-weight:700; color:var(--dark); margin-bottom:10px; }
.problem-card p  { font-size:14px; color:var(--text-light); line-height:1.7; }
.problem-solution { text-align:center; }
.solution-arrow { font-size:28px; color:var(--primary); margin-bottom:16px; animation:bounce2 1.5s ease-in-out infinite; }
@keyframes bounce2 { 0%,100% { transform:translateY(0); } 50% { transform:translateY(8px); } }
.solution-box { display:inline-flex; align-items:center; gap:16px; background:var(--grad1); color:white; padding:24px 40px; border-radius:20px; font-size:18px; font-weight:600; box-shadow:0 10px 40px rgba(37,99,235,0.3); }
.solution-box i { font-size:28px; color:var(--gold); }
.solution-box strong { font-weight:900; font-size:20px; }

/* ── PRODUCT ── */
.product-section { background:white; }
.product-layout { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.product-img-col { display:flex; flex-direction:column; gap:16px; }
.product-img-main { width:100%; aspect-ratio:4/3; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-lg); }
.product-img-sub  { width:70%; aspect-ratio:4/3; border-radius:var(--radius-sm); overflow:hidden; box-shadow:var(--shadow-md); align-self:flex-end; margin-top:-40px; border:4px solid white; }
.product-point { display:flex; align-items:flex-start; gap:20px; padding:28px; border-radius:var(--radius-sm); border:1px solid var(--border); margin-bottom:16px; transition:all 0.3s; background:var(--bg); }
.product-point:hover { border-color:var(--primary-light); box-shadow:var(--shadow-sm); transform:translateX(4px); }
.point-num { font-size:36px; font-weight:900; background:var(--grad1); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; line-height:1; flex-shrink:0; min-width:48px; }
.point-content h3 { font-size:18px; font-weight:700; color:var(--dark); margin-bottom:8px; }
.point-content p  { font-size:14px; color:var(--text-light); line-height:1.7; }
.point-content strong { color:var(--primary); font-weight:700; }

/* ── FEATURES ── */
.features-section { background:linear-gradient(135deg,#F0F7FF 0%,#E8F5FF 100%); }
.features-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-bottom:60px; }
.feature-card { background:white; border-radius:var(--radius); padding:36px 28px; box-shadow:var(--shadow-sm); border:1px solid rgba(37,99,235,0.06); transition:all 0.3s; position:relative; overflow:hidden; }
.feature-card::after { content:''; position:absolute; bottom:0; left:0; right:0; height:3px; background:var(--grad1); transform:scaleX(0); transition:transform 0.3s; transform-origin:left; }
.feature-card:hover::after { transform:scaleX(1); }
.feature-card:hover { transform:translateY(-8px); box-shadow:var(--shadow-md); }
.fc-icon { width:60px; height:60px; border-radius:16px; display:flex; align-items:center; justify-content:center; font-size:24px; margin-bottom:20px; }
.fc1 .fc-icon { color:#F59E0B; background:linear-gradient(135deg,rgba(245,158,11,0.1),rgba(251,191,36,0.08)); }
.fc2 .fc-icon { color:#10B981; background:linear-gradient(135deg,rgba(16,185,129,0.1),rgba(52,211,153,0.08)); }
.fc3 .fc-icon { color:#2563EB; background:linear-gradient(135deg,rgba(37,99,235,0.1),rgba(59,130,246,0.08)); }
.fc4 .fc-icon { color:#8B5CF6; background:linear-gradient(135deg,rgba(139,92,246,0.1),rgba(167,139,250,0.08)); }
.fc5 .fc-icon { color:#06B6D4; background:linear-gradient(135deg,rgba(6,182,212,0.1),rgba(34,211,238,0.08)); }
.fc6 .fc-icon { color:#F97316; background:linear-gradient(135deg,rgba(249,115,22,0.1),rgba(251,146,60,0.08)); }
.feature-card h3 { font-size:18px; font-weight:700; color:var(--dark); margin-bottom:10px; }
.feature-card p  { font-size:14px; color:var(--text-light); line-height:1.7; }

.scene-banner { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.scene-item { position:relative; aspect-ratio:4/3; border-radius:var(--radius-sm); overflow:hidden; cursor:pointer; }
.scene-item img { transition:transform 0.5s ease; border-radius:var(--radius-sm); }
.scene-item:hover img { transform:scale(1.07); }
.scene-label { position:absolute; bottom:0; left:0; right:0; background:linear-gradient(to top, rgba(0,0,0,0.75), transparent); color:white; padding:24px 16px 16px; font-size:13px; font-weight:700; display:flex; align-items:center; gap:6px; }

/* ── HOW ── */
.how-section { background:var(--dark); }
.how-section .section-tag   { color:var(--accent); border-color:rgba(6,182,212,0.2); background:rgba(6,182,212,0.08); }
.how-section .section-title { color:white; }
.steps { display:flex; align-items:center; justify-content:center; gap:0; flex-wrap:wrap; }
.step  { flex:1; min-width:180px; text-align:center; padding:40px 24px; }
.step-num { font-size:48px; font-weight:900; background:var(--grad1); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; line-height:1; margin-bottom:16px; }
.step-icon { width:72px; height:72px; background:rgba(37,99,235,0.15); border:2px solid rgba(37,99,235,0.3); border-radius:20px; display:flex; align-items:center; justify-content:center; font-size:28px; color:var(--primary-light); margin:0 auto 20px; transition:all 0.3s; }
.step:hover .step-icon { background:var(--grad1); border-color:transparent; color:white; transform:scale(1.1); box-shadow:0 10px 30px rgba(37,99,235,0.4); }
.step h3 { font-size:18px; font-weight:700; color:white; margin-bottom:8px; }
.step p  { font-size:14px; color:rgba(255,255,255,0.5); line-height:1.7; }
.step-arrow { font-size:22px; color:rgba(37,99,235,0.4); flex-shrink:0; padding:0 4px; margin-top:-24px; }

/* ── SCOPE ── */
.scope-section { background:white; }
.scope-layout { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.scope-item { display:flex; align-items:flex-start; gap:16px; margin-bottom:28px; }
.scope-item > i { font-size:22px; color:var(--accent2); flex-shrink:0; margin-top:2px; }
.scope-item h3 { font-size:16px; font-weight:700; color:var(--dark); margin-bottom:6px; }
.scope-item p  { font-size:14px; color:var(--text-light); line-height:1.7; }
.scope-store-btn { display:inline-flex; align-items:center; gap:10px; background:#03C75A; color:white; padding:14px 28px; border-radius:100px; font-size:15px; font-weight:700; transition:all 0.3s; box-shadow:0 6px 20px rgba(3,199,90,0.3); margin-top:8px; }
.scope-store-btn:hover { transform:translateY(-3px); box-shadow:0 10px 30px rgba(3,199,90,0.4); }
.scope-img { border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-lg); aspect-ratio:4/3; }

/* ── CTA ── */
.cta-section { background:linear-gradient(135deg,#0F172A 0%,#1E3A8A 60%,#0891B2 100%); position:relative; overflow:hidden; padding:120px 0; }
.cta-bg-circle { position:absolute; width:700px; height:700px; border-radius:50%; background:radial-gradient(circle,rgba(37,99,235,0.2),transparent 70%); top:-200px; right:-200px; pointer-events:none; }
.cta-section .section-inner { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
.cta-badge { display:inline-flex; align-items:center; gap:8px; background:rgba(245,158,11,0.15); color:var(--gold); border:1px solid rgba(245,158,11,0.3); padding:8px 18px; border-radius:100px; font-size:13px; font-weight:700; margin-bottom:24px; }
.cta-content h2 { font-size:clamp(28px,4vw,48px); font-weight:900; color:white; line-height:1.25; margin-bottom:16px; }
.gradient-text-light { background:linear-gradient(135deg,#60A5FA,#34D399); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.cta-content p { font-size:16px; color:rgba(255,255,255,0.65); line-height:1.8; margin-bottom:32px; }
.cta-features { display:flex; flex-wrap:wrap; gap:12px; margin-bottom:40px; }
.cta-feat { display:flex; align-items:center; gap:8px; color:rgba(255,255,255,0.85); font-size:14px; font-weight:600; background:rgba(255,255,255,0.07); border:1px solid rgba(255,255,255,0.12); padding:8px 16px; border-radius:100px; }
.cta-feat i { color:var(--accent2); }
.cta-btns { display:flex; flex-wrap:wrap; gap:14px; }
.btn-cta-main { display:inline-flex; align-items:center; gap:10px; background:#03C75A; color:white; padding:18px 36px; border-radius:100px; font-size:16px; font-weight:700; box-shadow:0 8px 30px rgba(3,199,90,0.4); transition:all 0.3s; }
.btn-cta-main:hover { transform:translateY(-3px); box-shadow:0 14px 40px rgba(3,199,90,0.5); }
.btn-cta-sub { display:inline-flex; align-items:center; gap:10px; background:transparent; color:rgba(255,255,255,0.85); border:2px solid rgba(255,255,255,0.25); padding:16px 30px; border-radius:100px; font-size:16px; font-weight:600; transition:all 0.3s; }
.btn-cta-sub:hover { background:rgba(255,255,255,0.08); border-color:rgba(255,255,255,0.5); }
.cta-visual { border-radius:var(--radius); overflow:hidden; box-shadow:0 40px 100px rgba(0,0,0,0.4); border:2px solid rgba(255,255,255,0.1); aspect-ratio:4/3; animation:floatBadge 5s ease-in-out infinite; }

/* ── FOOTER ── */
.footer { background:#070E1A; color:rgba(255,255,255,0.6); padding:60px 0 0; }
.footer-inner { max-width:1200px; margin:0 auto; padding:0 24px 40px; display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:32px; border-bottom:1px solid rgba(255,255,255,0.06); }
.footer-logo { font-size:20px; font-weight:900; color:white; display:flex; align-items:center; gap:8px; margin-bottom:12px; }
.footer-logo i { color:var(--primary-light); }
.footer-brand p { font-size:14px; line-height:1.7; max-width:300px; }
.footer-legal { margin-top:8px; font-size:12px; color:rgba(255,255,255,0.35); }
.footer-links a { display:flex; align-items:center; gap:8px; color:rgba(255,255,255,0.5); font-size:14px; font-weight:500; padding:10px 20px; border-radius:100px; border:1px solid rgba(255,255,255,0.1); transition:all 0.3s; }
.footer-links a:hover { background:rgba(255,255,255,0.05); color:white; }
.footer-copy { text-align:center; padding:20px 24px; font-size:12px; color:rgba(255,255,255,0.25); }

/* ============================================
   비교표 (Compare)
   ============================================ */
.compare-wrap { margin-top: 60px; }
.compare-title { text-align:center; font-size:20px; font-weight:700; color:var(--dark); margin-bottom:28px; }

.compare-table {
  display:grid; grid-template-columns:1fr auto 1fr;
  gap:0; align-items:stretch;
  border-radius:var(--radius); overflow:hidden;
  box-shadow:var(--shadow-lg);
}

.compare-col { padding:0; }

.compare-header {
  display:flex; align-items:center; gap:10px;
  padding:20px 28px; font-size:16px; font-weight:700;
}
.compare-header.bad  { background:#EF4444; color:white; }
.compare-header.good { background:var(--grad1); color:white; }
.compare-header i { font-size:18px; }

.compare-col ul { list-style:none; padding:20px 0; background:white; }
.compare-bad ul  { background:#FFF5F5; }
.compare-good ul { background:#F0F7FF; }

.compare-col ul li {
  display:flex; align-items:center; gap:10px;
  padding:13px 28px; font-size:14px; color:var(--text);
  border-bottom:1px solid rgba(0,0,0,0.04);
}
.compare-col ul li:last-child { border-bottom:none; }
.compare-bad  ul li i { color:#EF4444; font-size:14px; flex-shrink:0; }
.compare-good ul li i { color:var(--accent2); font-size:14px; flex-shrink:0; }
.compare-good ul li strong { color:var(--primary); }

.compare-vs {
  display:flex; align-items:center; justify-content:center;
  background:var(--dark); color:white;
  font-size:18px; font-weight:900; padding:0 20px;
  writing-mode:horizontal-tb; min-width:60px;
}

/* ============================================
   결제 수단 섹션
   ============================================ */
.payment-section { background:white; }

.payment-grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:20px; margin-bottom:60px;
}

.payment-card {
  background:var(--bg); border-radius:var(--radius-sm);
  padding:28px 24px; border:1px solid var(--border);
  transition:all 0.3s; text-align:center;
}
.payment-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-md); border-color:var(--primary-light); background:white; }

.pay-icon {
  width:64px; height:64px; border-radius:18px; margin:0 auto 16px;
  display:flex; align-items:center; justify-content:center;
  font-size:26px;
  background:linear-gradient(135deg,rgba(37,99,235,0.1),rgba(6,182,212,0.08));
  color:var(--primary);
}
.pay-kakao { background:linear-gradient(135deg,rgba(254,229,0,0.2),rgba(254,229,0,0.1)); color:#3A1D1D; }
.pay-naver { background:linear-gradient(135deg,rgba(3,199,90,0.15),rgba(3,199,90,0.08)); color:#03C75A; }
.pay-samsung { background:linear-gradient(135deg,rgba(37,99,235,0.12),rgba(37,99,235,0.06)); color:#1428A0; }
.pay-apple  { background:linear-gradient(135deg,rgba(0,0,0,0.08),rgba(0,0,0,0.04)); color:#1D1D1F; }
.pay-cash   { background:linear-gradient(135deg,rgba(245,158,11,0.15),rgba(245,158,11,0.08)); color:#B45309; }

.payment-card h3 { font-size:16px; font-weight:700; color:var(--dark); margin-bottom:8px; }
.payment-card p  { font-size:13px; color:var(--text-light); line-height:1.7; }

/* 단말기 기능 안내 */
.terminal-features {
  display:grid; grid-template-columns:1fr 1fr;
  gap:48px; align-items:center;
  background:linear-gradient(135deg,#F0F7FF,#E8F5FF);
  border-radius:var(--radius); padding:48px;
  border:1px solid rgba(37,99,235,0.1);
}

.tf-img { border-radius:var(--radius-sm); overflow:hidden; aspect-ratio:4/3; box-shadow:var(--shadow-md); }
.tf-img img { border-radius:var(--radius-sm); }

.tf-list h3 { font-size:22px; font-weight:800; color:var(--dark); margin-bottom:24px; }
.tf-item {
  display:flex; align-items:flex-start; gap:12px;
  margin-bottom:14px; padding-bottom:14px;
  border-bottom:1px solid rgba(37,99,235,0.08);
}
.tf-item:last-child { border-bottom:none; margin-bottom:0; padding-bottom:0; }
.tf-item > i { color:var(--accent2); font-size:16px; flex-shrink:0; margin-top:2px; }
.tf-item span { font-size:14px; color:var(--text); line-height:1.6; }
.tf-item strong { color:var(--primary); font-weight:700; }

/* ============================================
   타임라인
   ============================================ */
.timeline-wrap {
  margin-top:64px;
  background:rgba(37,99,235,0.04);
  border-radius:var(--radius); padding:48px;
  border:1px solid rgba(37,99,235,0.1);
}
.timeline-title { text-align:center; font-size:20px; font-weight:700; color:var(--dark); margin-bottom:40px; }

.timeline {
  display:flex; align-items:center; justify-content:center;
  gap:0; flex-wrap:wrap;
}

.tl-item {
  flex:1; min-width:180px; text-align:center;
  display:flex; flex-direction:column; align-items:center; gap:14px;
}

.tl-dot {
  width:64px; height:64px; border-radius:50%;
  background:rgba(37,99,235,0.1); border:2px solid rgba(37,99,235,0.2);
  display:flex; align-items:center; justify-content:center;
  font-size:22px; color:var(--primary-light);
  transition:all 0.3s;
}
.tl-dot.tl-active  { background:rgba(245,158,11,0.15); border-color:rgba(245,158,11,0.4); color:var(--gold); }
.tl-dot.tl-success { background:linear-gradient(135deg,rgba(16,185,129,0.2),rgba(16,185,129,0.1)); border-color:rgba(16,185,129,0.4); color:var(--accent2); }

.tl-content strong { display:block; font-size:15px; font-weight:700; color:var(--dark); }
.tl-content p { font-size:13px; color:var(--text-light); margin-top:4px; line-height:1.6; }
.tl-content strong + p strong { color:var(--accent2); }

.tl-line {
  flex:0 0 80px; height:2px;
  background:linear-gradient(90deg,var(--primary-light),var(--accent));
  margin-bottom:28px; position:relative;
}
.tl-line::after {
  content:''; position:absolute; right:-6px; top:-5px;
  width:0; height:0;
  border-top:6px solid transparent;
  border-bottom:6px solid transparent;
  border-left:8px solid var(--accent);
}

/* ============================================
   후기 섹션
   ============================================ */
.reviews-section { background:linear-gradient(135deg,#F0F7FF 0%,#E8F5FF 100%); }

.reviews-grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:24px;
}

.review-card {
  background:white; border-radius:var(--radius);
  padding:32px 28px; border:1px solid var(--border);
  box-shadow:var(--shadow-sm); transition:all 0.3s;
  position:relative;
}
.review-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-md); }

.review-card.review-featured {
  background:linear-gradient(135deg,#EFF6FF,#DBEAFE);
  border-color:rgba(37,99,235,0.2);
}

.review-badge {
  display:inline-flex; align-items:center; gap:6px;
  background:var(--grad1); color:white;
  padding:6px 14px; border-radius:100px;
  font-size:12px; font-weight:700; margin-bottom:12px;
}

.review-stars { display:flex; gap:3px; margin-bottom:16px; color:#F59E0B; font-size:14px; }

.review-text {
  font-size:14px; color:var(--text); line-height:1.8;
  margin-bottom:24px;
  font-style:italic;
}
.review-text::before { content:'"'; font-size:36px; color:var(--primary); line-height:0; vertical-align:-12px; margin-right:4px; font-style:normal; }

.review-author { display:flex; align-items:center; gap:12px; }
.review-avatar {
  width:44px; height:44px; border-radius:50%;
  background:linear-gradient(135deg,var(--primary),var(--accent));
  display:flex; align-items:center; justify-content:center;
  color:white; font-size:16px; flex-shrink:0;
}
.review-author strong { display:block; font-size:14px; font-weight:700; color:var(--dark); }
.review-author span   { display:block; font-size:12px; color:var(--text-light); margin-top:2px; }

/* ============================================
   FAQ 섹션
   ============================================ */
.faq-section { background:white; }

.faq-list { display:flex; flex-direction:column; gap:12px; max-width:800px; margin:0 auto; }

.faq-item {
  border:1px solid var(--border);
  border-radius:var(--radius-sm); overflow:hidden;
  transition:all 0.3s;
}
.faq-item.open { border-color:var(--primary-light); box-shadow:var(--shadow-sm); }

.faq-q {
  width:100%; display:flex; align-items:center; justify-content:space-between;
  gap:16px; padding:20px 24px;
  background:none; border:none; cursor:pointer;
  font-family:inherit; font-size:15px; font-weight:600;
  color:var(--dark); text-align:left; transition:all 0.3s;
}
.faq-q:hover { background:rgba(37,99,235,0.03); }
.faq-item.open .faq-q { background:rgba(37,99,235,0.04); color:var(--primary); }

.faq-q span { display:flex; align-items:center; gap:10px; }
.faq-q span i { color:var(--primary); font-size:16px; flex-shrink:0; }

.faq-arrow { font-size:13px; color:var(--text-light); transition:transform 0.3s; flex-shrink:0; }
.faq-item.open .faq-arrow { transform:rotate(180deg); color:var(--primary); }

.faq-a {
  max-height:0; overflow:hidden;
  transition:max-height 0.4s ease, padding 0.3s ease;
  padding:0 24px;
}
.faq-item.open .faq-a { max-height:300px; padding:0 24px 20px; }
.faq-a p { font-size:14px; color:var(--text-light); line-height:1.8; }
.faq-a strong { color:var(--primary); font-weight:700; }

/* Hero trust 라인 */
.hero-trust {
  display:flex; flex-wrap:wrap; gap:16px;
  margin-top:20px; animation:fadeInUp 0.7s ease 0.5s both;
}
.hero-trust span {
  display:flex; align-items:center; gap:6px;
  font-size:12px; color:rgba(255,255,255,0.55);
  font-weight:500;
}
.hero-trust span i { color:rgba(255,255,255,0.4); font-size:13px; }

/* CTA note */
.cta-note {
  margin-top:20px; font-size:12px;
  color:rgba(255,255,255,0.4);
  display:flex; align-items:center; gap:6px;
}
.cta-note i { color:rgba(255,255,255,0.35); }

/* ============================================
   신규 섹션 반응형
   ============================================ */
@media(max-width:1024px) {
  .terminal-features { grid-template-columns:1fr; gap:32px; }
  .compare-table { grid-template-columns:1fr; }
  .compare-vs { padding:12px 0; writing-mode:horizontal-tb; min-width:auto; min-height:40px; }
  .timeline { flex-direction:column; gap:8px; }
  .tl-line { width:2px; height:40px; flex:0 0 40px; margin-bottom:0; transform:none; }
  .tl-line::after { right:-5px; top:auto; bottom:-6px; border-left:6px solid transparent; border-right:6px solid transparent; border-top:8px solid var(--accent); border-bottom:none; }
}

@media(max-width:768px) {
  .payment-grid  { grid-template-columns:repeat(2,1fr); }
  .reviews-grid  { grid-template-columns:1fr; }
  .terminal-features { padding:28px 20px; }
  .timeline-wrap { padding:28px 20px; }
  .compare-table { grid-template-columns:1fr; }
}

@media(max-width:480px) {
  .payment-grid { grid-template-columns:1fr; }
  .compare-wrap { overflow-x:auto; }
}

/* ── SCROLL REVEAL ── */
.reveal { opacity:0; transform:translateY(40px); transition:opacity 0.7s ease, transform 0.7s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }
.reveal-delay-1 { transition-delay:0.1s; }
.reveal-delay-2 { transition-delay:0.2s; }
.reveal-delay-3 { transition-delay:0.3s; }
.reveal-delay-4 { transition-delay:0.4s; }
.reveal-delay-5 { transition-delay:0.5s; }

/* ── KEYFRAMES ── */
@keyframes fadeIn     { from { opacity:0; }                          to { opacity:1; } }
@keyframes fadeInUp   { from { opacity:0; transform:translateY(30px); }  to { opacity:1; transform:translateY(0); } }
@keyframes fadeInDown { from { opacity:0; transform:translateY(-20px); } to { opacity:1; transform:translateY(0); } }
@keyframes fadeInRight{ from { opacity:0; transform:translateX(40px); }  to { opacity:1; transform:translateX(0); } }

/* ── RESPONSIVE ── */
@media(max-width:1024px){
  .hero-inner { grid-template-columns:1fr; gap:40px; }
  .hero-visual { order:-1; max-width:500px; margin:0 auto; }
  .hero-text { text-align:center; }
  .hero-badges, .hero-btns { justify-content:center; }
  .b1 { top:10px; right:10px; } .b2 { bottom:10px; left:10px; }
  .product-layout { grid-template-columns:1fr; }
  .product-img-sub { width:55%; margin-top:-30px; }
  .scope-layout { grid-template-columns:1fr; }
  .cta-section .section-inner { grid-template-columns:1fr; }
  .cta-visual { max-width:500px; }
}
@media(max-width:768px){
  section { padding:72px 0; }
  .problem-cards { grid-template-columns:1fr; }
  .features-grid { grid-template-columns:repeat(2,1fr); }
  .scene-banner  { grid-template-columns:1fr; }
  .stats-inner   { flex-wrap:wrap; }
  .stat-item     { min-width:45%; }
  .stat-divider  { display:none; }
  .steps         { flex-direction:column; gap:8px; }
  .step-arrow    { transform:rotate(90deg); margin-top:0; }
  .nav-links     { display:none; }
  .hamburger     { display:flex; }
  .solution-box  { flex-direction:column; text-align:center; padding:24px; }
}
@media(max-width:480px){
  .features-grid { grid-template-columns:1fr; }
  .hero-btns, .cta-btns { flex-direction:column; align-items:center; }
  .btn-primary, .btn-outline, .btn-cta-main, .btn-cta-sub { width:100%; justify-content:center; }
  .card-machine-wrap { width:250px; height:290px; }
  .card-wrap { width:200px; }
  .terminal  { width:162px; }
}
