/* GoldenChart splash — 은은한 그라데이션 + 흐릿한 폰 목업 배경 */ .splash { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; background: #06080e; color: #e8eaed; overflow: hidden; font-family: var(--font, 'Noto Sans KR', 'Inter', sans-serif); } /* ── 배경 ─────────────────────────────────────────────────────────────────── */ .splash-backdrop { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; } .splash-backdrop__base { position: absolute; inset: 0; background: linear-gradient(160deg, #05070c 0%, #0a0e16 42%, #070a12 100%); } .splash-backdrop__aurora { position: absolute; inset: 0; } .splash-backdrop__aurora--teal, .splash-backdrop__aurora--gold { position: absolute; border-radius: 50%; filter: blur(80px); } .splash-backdrop__aurora--teal { width: min(58vw, 520px); height: min(58vw, 520px); left: 8%; top: 38%; background: radial-gradient(circle, rgba(34, 197, 94, 0.14) 0%, rgba(45, 212, 191, 0.05) 45%, transparent 70%); } .splash-backdrop__aurora--gold { width: min(50vw, 460px); height: min(50vw, 460px); right: 6%; top: 8%; background: radial-gradient(circle, rgba(249, 226, 156, 0.18) 0%, rgba(212, 175, 55, 0.08) 42%, transparent 72%); } .splash-backdrop__mesh { position: absolute; inset: -15%; opacity: 0.35; background: conic-gradient( from 42deg at 55% 40%, rgba(212, 175, 55, 0.1) 0deg, transparent 55deg, rgba(34, 197, 94, 0.06) 110deg, transparent 200deg, rgba(56, 189, 248, 0.04) 280deg, transparent 360deg ); filter: blur(48px); } /* 대각선 폰 목업 — 중앙→우상단 그라데이션 마스크 */ .splash-backdrop__phones { position: absolute; inset: 0; perspective: 1100px; mask-image: radial-gradient(ellipse 42% 38% at 50% 48%, transparent 0%, rgba(0, 0, 0, 0.15) 42%, #000 58%), linear-gradient( 125deg, rgba(0, 0, 0, 0.25) 0%, #000 18%, #000 42%, rgba(0, 0, 0, 0.45) 58%, transparent 78% ); -webkit-mask-image: radial-gradient(ellipse 42% 38% at 50% 48%, transparent 0%, rgba(0, 0, 0, 0.15) 42%, #000 58%), linear-gradient( 125deg, rgba(0, 0, 0, 0.25) 0%, #000 18%, #000 42%, rgba(0, 0, 0, 0.45) 58%, transparent 78% ); } .splash-backdrop__phones-blur { position: absolute; inset: -5%; filter: blur(10px) saturate(0.75) brightness(0.82); } .splash-phone { position: absolute; width: clamp(88px, 10vw, 148px); aspect-ratio: 9 / 19.5; transform-origin: center center; will-change: transform; } .splash-phone__frame { height: 100%; padding: 5px; border-radius: clamp(16px, 2.2vw, 24px); border: 1px solid rgba(255, 255, 255, 0.1); background: rgba(14, 18, 28, 0.42); box-shadow: 0 16px 48px rgba(0, 0, 0, 0.45), 0 0 0 1px rgba(255, 255, 255, 0.04) inset; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); } .splash-phone__notch { width: 36%; height: 5px; margin: 2px auto 4px; border-radius: 4px; background: rgba(0, 0, 0, 0.35); } .splash-phone__screen { height: calc(100% - 14px); border-radius: clamp(12px, 1.6vw, 18px); overflow: hidden; } .splash-phone__svg { display: block; width: 100%; height: 100%; } .splash-backdrop__flow-glow { position: absolute; left: 38%; top: 32%; width: min(88vw, 840px); height: min(68vh, 580px); transform: translate(-12%, -8%); background: linear-gradient( 128deg, rgba(34, 197, 94, 0.06) 0%, rgba(212, 175, 55, 0.09) 35%, rgba(249, 226, 156, 0.05) 55%, transparent 75% ); filter: blur(64px); pointer-events: none; } .splash-backdrop__grain { position: absolute; inset: 0; opacity: 0.04; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); background-size: 180px 180px; } .splash-backdrop__vignette { position: absolute; inset: 0; background: radial-gradient(ellipse 70% 62% at 50% 50%, transparent 0%, rgba(5, 7, 12, 0.5) 65%, rgba(2, 3, 6, 0.92) 100%), linear-gradient(128deg, transparent 0%, rgba(5, 7, 12, 0.2) 50%, rgba(5, 7, 12, 0.35) 100%); } .splash-backdrop__spotlight { position: absolute; inset: 0; background: radial-gradient( ellipse 40% 36% at 50% 46%, rgba(255, 255, 255, 0.05) 0%, transparent 100% ); } /* ── 로그인 카드 ───────────────────────────────────────────────────────────── */ .splash-center { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; gap: 16px; width: min(92vw, 400px); padding: 20px 16px; } .splash-card { width: 100%; padding: 38px 36px 30px; border-radius: 18px; border: 1px solid rgba(212, 175, 55, 0.55); background: rgba(11, 14, 22, 0.97); box-shadow: 0 0 0 1px rgba(212, 175, 55, 0.08) inset, 0 0 40px rgba(212, 175, 55, 0.1), 0 24px 64px rgba(0, 0, 0, 0.65); } .splash-brand { margin: 0 0 30px; text-align: center; font-size: 2.15rem; font-weight: 800; letter-spacing: -0.02em; line-height: 1.1; background: linear-gradient(180deg, #fce9a8 0%, #e8c547 40%, #c9a227 78%, #a67c00 100%); -webkit-background-clip: text; background-clip: text; color: transparent; filter: drop-shadow(0 2px 12px rgba(212, 175, 55, 0.35)); } .splash-form { display: flex; flex-direction: column; gap: 12px; } .splash-input { width: 100%; box-sizing: border-box; padding: 14px 16px; border-radius: 10px; border: 1px solid rgba(255, 255, 255, 0.08); background: rgba(22, 26, 36, 0.95); color: #f3f4f6; font-size: 0.95rem; transition: border-color 0.15s, box-shadow 0.15s; } .splash-input:focus { outline: none; border-color: rgba(212, 175, 55, 0.45); box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.12); } .splash-input:disabled { opacity: 0.6; } .splash-error { margin: 0; font-size: 0.78rem; color: #f87171; text-align: center; } .splash-login-btn { width: 100%; margin-top: 6px; padding: 14px 16px; border: none; border-radius: 10px; cursor: pointer; font-size: 1.05rem; font-weight: 800; color: #141008; background: linear-gradient(90deg, #f5e6a8 0%, #e8c84a 48%, #d4af37 100%); box-shadow: 0 1px 0 rgba(255, 255, 255, 0.3) inset, 0 6px 24px rgba(201, 162, 39, 0.4); transition: transform 0.12s, filter 0.12s, box-shadow 0.12s; } .splash-login-btn:hover:not(:disabled) { filter: brightness(1.05); } .splash-login-btn:active:not(:disabled) { transform: translateY(1px); } .splash-login-btn:disabled { opacity: 0.65; cursor: not-allowed; } .splash-version { margin: 24px 0 0; text-align: center; font-size: 0.7rem; color: rgba(255, 255, 255, 0.38); } .splash-guest-link { border: none; background: transparent; color: rgba(255, 255, 255, 0.38); font-size: 0.78rem; cursor: pointer; padding: 4px 8px; transition: color 0.15s; } .splash-guest-link:hover:not(:disabled) { color: rgba(249, 226, 156, 0.9); } .splash-guest-link:disabled { opacity: 0.5; cursor: not-allowed; } @media (max-width: 480px) { .splash-card { padding: 30px 24px 24px; } .splash-brand { font-size: 1.75rem; margin-bottom: 24px; } .splash-phone { width: clamp(72px, 18vw, 110px); } .splash-backdrop__phones-blur { filter: blur(12px) saturate(0.7) brightness(0.78); } .splash-backdrop__aurora--teal, .splash-backdrop__aurora--gold { filter: blur(64px); } } @media (prefers-reduced-motion: reduce) { .splash-phone { will-change: auto; } }