* { font-family: 'Noto Sans KR', sans-serif; }
body { margin: 0; background: #f1f5f9; }
#loading-screen { display:flex; align-items:center; justify-content:center; height:100vh; color:#64748b; }

.gradient-hero {
  background: linear-gradient(135deg, #065f46 0%, #047857 40%, #10b981 100%);
}

/* 히어로 배경 동영상 */
.hero-video-wrap {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.hero-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}
.hero-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(135deg, rgba(4,47,36,0.82) 0%, rgba(6,95,70,0.72) 45%, rgba(16,185,129,0.55) 100%),
    radial-gradient(ellipse at bottom, rgba(0,0,0,0.45), transparent 70%);
}
.hero-content {
  position: relative;
  z-index: 2;
}
.gradient-text {
  background: linear-gradient(135deg, #10b981, #34d399);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.card-shadow { box-shadow: 0 10px 30px rgba(0,0,0,0.08); }
.sig-pad { touch-action: none; background:#fff; border:2px dashed #cbd5e1; border-radius:10px; width:100%; height:160px; cursor:crosshair; }
input:focus, select:focus, textarea:focus { outline:none; border-color:#10b981; box-shadow:0 0 0 3px rgba(16,185,129,0.15); }
.field-label { font-weight:600; color:#334155; font-size:0.9rem; }
.req::after { content:" *"; color:#ef4444; }

@keyframes fadeInUp { from { opacity:0; transform:translateY(20px); } to { opacity:1; transform:translateY(0); } }
.animate-up { animation: fadeInUp 0.6s ease both; }

/* ===== 고급스러운 3D "W" 로고 마크 ===== */
.logo-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  border-radius: 14px;
  /* 입체감 있는 파란 그라데이션 */
  background: linear-gradient(160deg, #38a4ff 0%, #0086ff 45%, #0062c4 100%);
  /* 은은한 외부 그림자 + 내부 하이라이트(emboss) */
  box-shadow:
    0 6px 16px rgba(0, 98, 196, 0.35),
    inset 0 1px 1px rgba(255, 255, 255, 0.55),
    inset 0 -2px 4px rgba(0, 60, 130, 0.45);
  overflow: hidden;
}
/* 상단 유리 반사광 */
.logo-mark::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 45%;
  background: linear-gradient(to bottom, rgba(255,255,255,0.35), rgba(255,255,255,0));
  pointer-events: none;
}
/* 3D 입체 W 글자 */
.logo-mark .logo-w {
  position: relative;
  z-index: 1;
  font-family: 'Noto Sans KR', sans-serif;
  font-weight: 900;
  color: #ffffff;
  line-height: 1;
  letter-spacing: -0.03em;
  /* 다층 그림자로 은은한 3D 돌출 효과 */
  text-shadow:
    0 1px 0 rgba(255,255,255,0.45),
    0 -1px 1px rgba(0,50,110,0.55),
    0 2px 3px rgba(0,40,90,0.45),
    0 3px 6px rgba(0,30,70,0.35);
}
/* 크기 변형 */
.logo-mark.lm-sm { width: 36px; height: 36px; }
.logo-mark.lm-sm .logo-w { font-size: 20px; }
.logo-mark.lm-md { width: 48px; height: 48px; border-radius: 16px; }
.logo-mark.lm-md .logo-w { font-size: 27px; }
