/* ===== Oxythus 랜딩 (Aurora + Glassmorphism) ===== */
#ox_landing {
	min-height: 100vh;
	position: relative;
	overflow: hidden;
	background: #070b18;
	background-image:
		radial-gradient(42% 50% at 18% 22%, rgba(14,165,233,.38), transparent 62%),
		radial-gradient(40% 46% at 82% 26%, rgba(139,92,246,.32), transparent 62%),
		radial-gradient(46% 52% at 68% 82%, rgba(34,211,238,.22), transparent 62%),
		radial-gradient(42% 48% at 24% 84%, rgba(99,102,241,.26), transparent 62%);
}
#ox_landing::before {
	content: "";
	position: absolute;
	inset: -25%;
	z-index: 0;
	pointer-events: none;
	will-change: transform;
	background:
		radial-gradient(28% 28% at 30% 32%, rgba(34,211,238,.22), transparent 60%),
		radial-gradient(32% 32% at 72% 42%, rgba(139,92,246,.20), transparent 60%),
		radial-gradient(28% 30% at 52% 74%, rgba(14,165,233,.18), transparent 60%);
	filter: blur(48px);
	animation: oxAurora 22s ease-in-out infinite alternate;
}
@keyframes oxAurora {
	0% { transform: translate3d(0, 0, 0) scale(1); }
	100% { transform: translate3d(2%, -4%, 0) scale(1.12); }
}
#ox_landing #ox_hub,
#ox_landing #ox_login { position: relative; z-index: 1; }

.ox-title {
	font-size: clamp(2rem, 5vw, 3.1rem);
	font-weight: 800;
	letter-spacing: -.02em;
	line-height: 1.12;
	background: linear-gradient(92deg, #ffffff 0%, #a5b4fc 55%, #67e8f9 100%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;
}
.ox-subtitle { color: rgba(255,255,255,.62); font-size: clamp(1rem, 2vw, 1.15rem); font-weight: 400; }

.ox-choice {
	display: flex;
	flex-direction: column;
	align-items: center;
	min-width: 220px;
	text-decoration: none;
	background: rgba(255,255,255,.06) !important;
	-webkit-backdrop-filter: blur(22px) saturate(150%);
	backdrop-filter: blur(22px) saturate(150%);
	border: 1px solid rgba(255,255,255,.12) !important;
	border-radius: 26px !important;
	box-shadow: 0 10px 40px rgba(0,0,0,.28) !important;
	transition: transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s, border-color .3s, background .3s;
}
.ox-choice:hover {
	transform: translateY(-10px);
	background: rgba(255,255,255,.11) !important;
	border-color: rgba(255,255,255,.3) !important;
	box-shadow: 0 26px 60px rgba(0,0,0,.45) !important;
}
.ox-choice .symbol-label { border-radius: 22px !important; }
.ox-choice .symbol-label.bg-light-primary { background: linear-gradient(135deg, #0ea5e9, #22d3ee) !important; box-shadow: 0 10px 26px rgba(14,165,233,.45); }
.ox-choice .symbol-label.bg-light-info { background: linear-gradient(135deg, #8b5cf6, #6366f1) !important; box-shadow: 0 10px 26px rgba(139,92,246,.45); }
.ox-choice .symbol-label i { color: #fff !important; }
.ox-choice .text-gray-900 { color: #fff !important; }
.ox-choice .text-gray-500 { color: rgba(255,255,255,.62) !important; }
.ox-choice .btn { border: 0 !important; border-radius: 14px !important; padding: .9rem 1rem !important; font-weight: 600; }
.ox-choice .btn-primary { background: linear-gradient(135deg, #0ea5e9, #22d3ee) !important; box-shadow: 0 8px 20px rgba(14,165,233,.35); }
.ox-choice .btn-info { background: linear-gradient(135deg, #8b5cf6, #6366f1) !important; box-shadow: 0 8px 20px rgba(139,92,246,.35); }
.ox-choice:hover .btn { filter: brightness(1.08); }

/* ===== Login card — 허브와 동일한 다크 글래스 ===== */
.ox-authcard {
	background: rgba(255,255,255,.06) !important;
	-webkit-backdrop-filter: blur(22px) saturate(150%);
	backdrop-filter: blur(22px) saturate(150%);
	border: 1px solid rgba(255,255,255,.14) !important;
	border-radius: 26px !important;
	box-shadow: 0 30px 80px rgba(0,0,0,.5) !important;
}
/* 제목 · 문구 */
.ox-authcard .text-gray-900 { color: #fff !important; }
.ox-authcard .text-gray-500 { color: rgba(255,255,255,.6) !important; }
/* 소셜 로그인 버튼 */
.ox-authcard .btn-outline {
	background: rgba(255,255,255,.05) !important;
	border: 1px solid rgba(255,255,255,.14) !important;
	color: rgba(255,255,255,.85) !important;
}
.ox-authcard .btn-outline:hover {
	background: rgba(255,255,255,.1) !important;
	border-color: rgba(255,255,255,.3) !important;
	color: #fff !important;
}
/* 구분선 */
.ox-authcard .separator { border-color: rgba(255,255,255,.14) !important; }
.ox-authcard .separator-content span,
.ox-authcard .separator span { color: rgba(255,255,255,.5) !important; }
/* 입력창 */
.ox-authcard .form-control {
	background: rgba(255,255,255,.05) !important;
	border: 1px solid rgba(255,255,255,.16) !important;
	color: #fff !important;
	border-radius: 14px !important;
}
.ox-authcard .form-control:focus {
	background: rgba(255,255,255,.08) !important;
	border-color: rgba(34,211,238,.6) !important;
	box-shadow: 0 0 0 3px rgba(34,211,238,.15) !important;
}
.ox-authcard .form-control::placeholder { color: rgba(255,255,255,.4) !important; }
/* keep-signed 체크박스 라벨 */
.ox-authcard .chk_label { color: rgba(255,255,255,.7) !important; }
/* 뒤로가기 버튼 */
.ox-authcard .btn-light-primary {
	background: rgba(255,255,255,.06) !important;
	border: 1px solid rgba(255,255,255,.12) !important;
	color: rgba(255,255,255,.82) !important;
}
.ox-authcard .btn-light-primary:hover {
	background: rgba(255,255,255,.12) !important;
	color: #fff !important;
}
/* 로그인(제출) 버튼 — Memories 카드와 동일한 보라 그라디언트 */
.ox-authcard .btn-primary {
	border: 0 !important;
	border-radius: 14px !important;
	font-weight: 600;
	padding: .9rem 1rem !important;
	background: linear-gradient(135deg, #8b5cf6, #6366f1) !important;
	box-shadow: 0 8px 20px rgba(139,92,246,.35) !important;
}
.ox-authcard .btn-primary:hover { filter: brightness(1.08); }
/* 하단 링크 */
.ox-authcard a.text-primary,
.ox-authcard .text-primary a,
.ox-authcard .text-primary { color: #a5b4fc !important; }

@media (prefers-reduced-motion: reduce) {
	#ox_landing::before { animation: none; }
}
