Spaces:
Paused
Paused
| :root { | |
| --bg-0: #070b16; | |
| --bg-1: #0b1324; | |
| --text-primary: #e7edf7; | |
| --text-secondary: #94a3b8; | |
| --text-muted: #64748b; | |
| --border-base: rgba(148, 163, 184, 0.24); | |
| --surface: rgba(15, 23, 42, 0.56); | |
| --surface-soft: rgba(15, 23, 42, 0.42); | |
| --input-bg: rgba(255, 255, 255, 0.06); | |
| --success: #22c55e; | |
| --warning: #f59e0b; | |
| --danger: #ef4444; | |
| --primary-start: #4f8ef7; | |
| --primary-end: #7b5ea7; | |
| } | |
| * { box-sizing: border-box; margin: 0; padding: 0; } | |
| body { | |
| font-family: 'Noto Sans SC', 'Sora', -apple-system, BlinkMacSystemFont, sans-serif; | |
| min-height: 100vh; | |
| color: var(--text-primary); | |
| background: radial-gradient(120% 120% at 0% 0%, #111a33 0%, var(--bg-0) 52%, #050814 100%); | |
| overflow-x: hidden; | |
| position: relative; | |
| } | |
| .bg-scene, | |
| .grid-overlay { | |
| position: fixed; | |
| inset: 0; | |
| pointer-events: none; | |
| } | |
| .bg-scene { z-index: 0; } | |
| .grid-overlay { | |
| z-index: 0; | |
| background-image: | |
| linear-gradient(rgba(79, 142, 247, 0.04) 1px, transparent 1px), | |
| linear-gradient(90deg, rgba(79, 142, 247, 0.04) 1px, transparent 1px); | |
| background-size: 52px 52px; | |
| mask-image: radial-gradient(circle at center, rgba(0, 0, 0, 0.75), transparent 88%); | |
| } | |
| .orb { | |
| position: absolute; | |
| border-radius: 999px; | |
| filter: blur(90px); | |
| opacity: 0.2; | |
| animation: drift 18s ease-in-out infinite alternate; | |
| } | |
| .orb-1 { | |
| width: 480px; | |
| height: 480px; | |
| background: radial-gradient(circle, rgba(79, 142, 247, 0.65), transparent 70%); | |
| left: -120px; | |
| top: -120px; | |
| } | |
| .orb-2 { | |
| width: 420px; | |
| height: 420px; | |
| background: radial-gradient(circle, rgba(123, 94, 167, 0.7), transparent 70%); | |
| right: -110px; | |
| top: 210px; | |
| animation-delay: -6s; | |
| } | |
| .orb-3 { | |
| width: 330px; | |
| height: 330px; | |
| background: radial-gradient(circle, rgba(56, 178, 172, 0.52), transparent 75%); | |
| left: 35%; | |
| bottom: -90px; | |
| animation-delay: -12s; | |
| } | |
| @keyframes drift { | |
| from { transform: translate(0, 0) scale(1); } | |
| to { transform: translate(24px, 18px) scale(1.08); } | |
| } | |
| .page-wrap { | |
| position: relative; | |
| z-index: 1; | |
| min-height: 100vh; | |
| padding: 44px 20px 72px; | |
| } | |
| .container.full-layout { | |
| width: 100%; | |
| max-width: 1080px; | |
| margin: 0 auto; | |
| } | |
| .hero-header { | |
| text-align: center; | |
| margin-bottom: 34px; | |
| } | |
| .logo-badge { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 8px; | |
| border-radius: 999px; | |
| border: 1px solid rgba(79, 142, 247, 0.35); | |
| background: rgba(79, 142, 247, 0.12); | |
| color: #8ab5ff; | |
| font-size: 12px; | |
| padding: 6px 15px; | |
| letter-spacing: 0.08em; | |
| } | |
| .hero-header h1 { | |
| font-family: 'Sora', sans-serif; | |
| margin-top: 16px; | |
| font-size: clamp(2rem, 4.4vw, 3rem); | |
| line-height: 1.15; | |
| letter-spacing: -0.02em; | |
| background: linear-gradient(135deg, #eff4ff 0%, #9ec5ff 50%, #c9a8ff 100%); | |
| -webkit-background-clip: text; | |
| background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| } | |
| .hero-subtitle { | |
| margin-top: 12px; | |
| color: var(--text-secondary); | |
| font-size: 14px; | |
| } | |
| .spots-badge { | |
| margin-top: 18px; | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 8px; | |
| border-radius: 999px; | |
| padding: 8px 18px; | |
| font-size: 13px; | |
| border: 1px solid rgba(74, 222, 128, 0.35); | |
| background: rgba(34, 197, 94, 0.12); | |
| color: #86efac; | |
| } | |
| .seats-count { font-family: 'Sora', sans-serif; font-weight: 700; } | |
| .welfare-spots-badge { | |
| margin-top: 10px; | |
| border-color: rgba(96, 165, 250, 0.35); | |
| background: rgba(59, 130, 246, 0.12); | |
| color: #93c5fd; | |
| } | |
| .main-shell { | |
| max-width: 640px; | |
| margin: 0 auto; | |
| } | |
| .top-nav-tabs { | |
| display: grid; | |
| grid-template-columns: repeat(2, minmax(0, 1fr)); | |
| gap: 8px; | |
| border-radius: 16px; | |
| border: 1px solid var(--border-base); | |
| background: rgba(15, 23, 42, 0.45); | |
| backdrop-filter: blur(12px); | |
| padding: 6px; | |
| } | |
| .top-tab { | |
| border: none; | |
| background: transparent; | |
| color: var(--text-secondary); | |
| border-radius: 12px; | |
| min-height: 44px; | |
| font-size: 14px; | |
| font-weight: 600; | |
| cursor: pointer; | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 8px; | |
| transition: all .22s ease; | |
| } | |
| .top-tab:hover { color: #dbeafe; } | |
| .top-tab.active { | |
| color: #f8fbff; | |
| background: linear-gradient(135deg, rgba(79, 142, 247, 0.28), rgba(123, 94, 167, 0.28)); | |
| box-shadow: inset 0 0 0 1px rgba(79, 142, 247, 0.32); | |
| } | |
| .top-nav-tabs { | |
| position: relative; | |
| overflow: hidden; | |
| } | |
| .tab-indicator { | |
| position: absolute; | |
| top: 6px; | |
| bottom: 6px; | |
| left: 6px; | |
| width: calc(50% - 10px); | |
| border-radius: 12px; | |
| background: linear-gradient(135deg, rgba(79, 142, 247, 0.28), rgba(123, 94, 167, 0.28)); | |
| box-shadow: inset 0 0 0 1px rgba(79, 142, 247, 0.32), 0 0 24px rgba(79, 142, 247, 0.15); | |
| transition: left .3s cubic-bezier(0.4, 0, 0.2, 1), width .3s cubic-bezier(0.4, 0, 0.2, 1); | |
| z-index: 0; | |
| } | |
| .top-tab { | |
| position: relative; | |
| z-index: 1; | |
| } | |
| .top-tab.active { | |
| background: transparent; | |
| box-shadow: none; | |
| } | |
| .info-box, | |
| .warning-box { | |
| margin-top: 18px; | |
| border-radius: 12px; | |
| padding: 13px 14px; | |
| display: flex; | |
| gap: 10px; | |
| align-items: flex-start; | |
| font-size: 13px; | |
| line-height: 1.6; | |
| } | |
| .info-box { | |
| border: 1px solid rgba(79, 142, 247, 0.28); | |
| background: rgba(79, 142, 247, 0.1); | |
| color: #c2dafe; | |
| } | |
| .info-box .info-icon { | |
| width: 16px; | |
| height: 16px; | |
| margin-top: 2px; | |
| color: #8ab5ff; | |
| flex-shrink: 0; | |
| } | |
| .warning-box { | |
| margin-top: 16px; | |
| border: 1px solid rgba(245, 158, 11, 0.3); | |
| background: rgba(245, 158, 11, 0.1); | |
| color: #facc74; | |
| } | |
| .warning-box i { | |
| width: 16px; | |
| height: 16px; | |
| margin-top: 2px; | |
| flex-shrink: 0; | |
| } | |
| .required-star { | |
| color: #fb7185; | |
| } | |
| .field-hint { | |
| margin-top: 7px; | |
| color: var(--text-muted); | |
| font-size: 12px; | |
| } | |
| .step { display: none; margin-top: 14px; } | |
| .step.active { display: block; } | |
| .tab-panel { | |
| display: none; | |
| border-radius: 20px; | |
| border: 1px solid var(--border-base); | |
| background: var(--surface); | |
| backdrop-filter: blur(18px); | |
| padding: 28px; | |
| } | |
| .tab-panel.active { display: block; } | |
| .panel-head h2 { | |
| font-size: 1.22rem; | |
| letter-spacing: -0.01em; | |
| } | |
| .panel-head p { | |
| margin-top: 8px; | |
| color: var(--text-secondary); | |
| font-size: 13px; | |
| line-height: 1.6; | |
| } | |
| .stack-form { | |
| margin-top: 22px; | |
| display: grid; | |
| gap: 16px; | |
| } | |
| .form-group label { | |
| display: block; | |
| margin-bottom: 7px; | |
| color: #a8b3c7; | |
| font-size: 12px; | |
| letter-spacing: 0.06em; | |
| } | |
| .field-wrap { position: relative; } | |
| .field-icon { | |
| position: absolute; | |
| left: 14px; | |
| top: 50%; | |
| transform: translateY(-50%); | |
| width: 18px; | |
| height: 18px; | |
| color: #76869e; | |
| } | |
| .form-input { | |
| width: 100%; | |
| min-height: 48px; | |
| border-radius: 12px; | |
| border: 1px solid transparent; | |
| background: var(--input-bg); | |
| box-shadow: inset 0 0 0 1px var(--border-base); | |
| color: var(--text-primary); | |
| padding: 0 14px 0 42px; | |
| font-size: 14px; | |
| outline: none; | |
| transition: all .22s ease; | |
| } | |
| .form-input::placeholder { color: #73849d; } | |
| .form-input:focus { | |
| background: rgba(255, 255, 255, 0.1); | |
| border-color: rgba(79, 142, 247, 0.45); | |
| box-shadow: 0 0 0 3px rgba(79, 142, 247, 0.18), inset 0 0 0 1px rgba(79, 142, 247, 0.2); | |
| } | |
| .btn { | |
| border: none; | |
| border-radius: 12px; | |
| min-height: 48px; | |
| padding: 0 16px; | |
| width: 100%; | |
| cursor: pointer; | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 8px; | |
| font-size: 14px; | |
| font-weight: 600; | |
| transition: transform .2s ease, filter .2s ease, box-shadow .2s ease; | |
| } | |
| .btn:disabled { | |
| opacity: .66; | |
| cursor: not-allowed; | |
| } | |
| .btn-primary { | |
| color: #fff; | |
| background: linear-gradient(135deg, var(--primary-start), var(--primary-end)); | |
| box-shadow: 0 8px 18px rgba(79, 142, 247, 0.24), inset 0 1px 0 rgba(255, 255, 255, 0.24); | |
| } | |
| .btn-primary:hover:not(:disabled) { | |
| filter: brightness(1.04); | |
| transform: translateY(-1px); | |
| } | |
| .btn-primary:active:not(:disabled) { transform: translateY(0); } | |
| .btn-secondary { | |
| color: #d2dced; | |
| background: rgba(255, 255, 255, 0.04); | |
| box-shadow: inset 0 0 0 1px var(--border-base); | |
| } | |
| .btn-secondary:hover:not(:disabled) { | |
| color: #f8fbff; | |
| background: rgba(255, 255, 255, 0.08); | |
| } | |
| .toast.show { display: block; } | |
| .toast.success { border-left: 4px solid var(--success); } | |
| .toast.error { border-left: 4px solid var(--danger); } | |
| .warranty-query-row { | |
| margin-top: 22px; | |
| display: flex; | |
| gap: 12px; | |
| align-items: center; | |
| } | |
| .warranty-query-row .field-wrap { flex: 1; } | |
| .warranty-query-row .btn { | |
| width: auto; | |
| min-width: 172px; | |
| } | |
| .warranty-result-container { | |
| margin-top: 16px; | |
| border-top: 1px solid var(--border-base); | |
| padding-top: 16px; | |
| } | |
| .result-shell { | |
| border-radius: 20px; | |
| border: 1px solid var(--border-base); | |
| background: var(--surface); | |
| backdrop-filter: blur(18px); | |
| padding: 28px; | |
| } | |
| .result-shell h2 { margin-bottom: 12px; } | |
| .teams-list { | |
| display: grid; | |
| gap: 12px; | |
| margin-top: 14px; | |
| } | |
| .team-card { | |
| border-radius: 14px; | |
| border: 1px solid var(--border-base); | |
| background: rgba(255, 255, 255, 0.03); | |
| padding: 14px; | |
| cursor: pointer; | |
| transition: border-color .2s ease, background .2s ease; | |
| } | |
| .team-card:hover, | |
| .team-card.selected { | |
| border-color: rgba(79, 142, 247, 0.45); | |
| background: rgba(79, 142, 247, 0.12); | |
| } | |
| .team-name { font-weight: 600; margin-bottom: 9px; } | |
| .team-info { display: grid; gap: 8px; color: var(--text-secondary); font-size: 13px; } | |
| .team-info-item { display: inline-flex; align-items: center; gap: 6px; } | |
| .team-badge { | |
| border-radius: 999px; | |
| padding: 2px 8px; | |
| font-size: 11px; | |
| border: 1px solid var(--border-base); | |
| } | |
| .badge-plus { color: #93c5fd; border-color: rgba(59, 130, 246, 0.4); } | |
| .badge-pro { color: #c4b5fd; border-color: rgba(139, 92, 246, 0.45); } | |
| .actions { | |
| margin-top: 16px; | |
| display: flex; | |
| gap: 10px; | |
| } | |
| .result-title { | |
| font-size: 1.3rem; | |
| font-weight: 700; | |
| margin: 12px 0; | |
| } | |
| .result-message { | |
| color: var(--text-secondary); | |
| line-height: 1.7; | |
| margin-bottom: 14px; | |
| } | |
| .result-icon { | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| } | |
| .result-details { | |
| border-radius: 14px; | |
| border: 1px solid var(--border-base); | |
| background: rgba(255, 255, 255, 0.03); | |
| padding: 12px 14px; | |
| margin-bottom: 16px; | |
| } | |
| .result-detail-item { | |
| display: flex; | |
| justify-content: space-between; | |
| gap: 12px; | |
| padding: 10px 0; | |
| border-bottom: 1px solid rgba(148, 163, 184, 0.18); | |
| } | |
| .result-detail-item:last-child { border-bottom: none; } | |
| .result-detail-label { color: var(--text-secondary); } | |
| .badge { | |
| display: inline-flex; | |
| align-items: center; | |
| border-radius: 999px; | |
| padding: 3px 9px; | |
| font-size: 12px; | |
| font-weight: 600; | |
| } | |
| .badge-success { color: #86efac; background: rgba(34, 197, 94, 0.16); } | |
| .badge-error { color: #fca5a5; background: rgba(239, 68, 68, 0.16); } | |
| .toast { | |
| position: fixed; | |
| right: 18px; | |
| top: 18px; | |
| z-index: 50; | |
| display: none; | |
| align-items: center; | |
| gap: 8px; | |
| border-radius: 10px; | |
| padding: 11px 14px; | |
| min-width: 220px; | |
| max-width: 380px; | |
| background: rgba(15, 23, 42, 0.9); | |
| border: 1px solid var(--border-base); | |
| color: #e2e8f0; | |
| backdrop-filter: blur(10px); | |
| } | |
| .toast.show { display: inline-flex; } | |
| .toast.success { border-left: 3px solid var(--success); } | |
| .toast.error { border-left: 3px solid var(--danger); } | |
| .toast.info { border-left: 3px solid #60a5fa; } | |
| .spinning { | |
| animation: spin .9s linear infinite; | |
| } | |
| @keyframes spin { | |
| to { transform: rotate(360deg); } | |
| } | |
| @media (max-width: 760px) { | |
| .page-wrap { padding: 28px 14px 48px; } | |
| .tab-panel, | |
| .result-shell { padding: 20px; } | |
| .warranty-query-row { | |
| flex-direction: column; | |
| align-items: stretch; | |
| } | |
| .warranty-query-row .btn { | |
| width: 100%; | |
| min-width: 0; | |
| } | |
| .actions { flex-direction: column; } | |
| .toast { | |
| left: 12px; | |
| right: 12px; | |
| min-width: 0; | |
| max-width: none; | |
| } | |
| } | |
| /* --- hard overrides to prevent global stylesheet conflicts --- */ | |
| html, body.redeem-page { | |
| background: radial-gradient(120% 120% at 0% 0%, #111a33 0%, #070b16 52%, #050814 100%) ; | |
| color: var(--text-primary) ; | |
| } | |
| body.redeem-page .main-shell .step { display: none ; } | |
| body.redeem-page .main-shell .step.active { display: block ; } | |
| body.redeem-page .main-shell .tab-panel { display: none ; } | |
| body.redeem-page .main-shell .tab-panel.active { display: block ; } | |
| body.redeem-page .main-shell, | |
| body.redeem-page .hero-header { | |
| color: var(--text-primary) ; | |
| } | |
| body.redeem-page .tab-panel, | |
| body.redeem-page .result-shell { | |
| background: rgba(15, 23, 42, 0.56) ; | |
| border: 1px solid rgba(148, 163, 184, 0.24) ; | |
| backdrop-filter: blur(18px) ; | |
| } | |
| body.redeem-page .form-input { | |
| background: rgba(255, 255, 255, 0.06) ; | |
| box-shadow: inset 0 0 0 1px rgba(148, 163, 184, 0.24) ; | |
| color: #e7edf7 ; | |
| } | |
| body.redeem-page .btn-primary { | |
| background: linear-gradient(135deg, #4f8ef7, #7b5ea7) ; | |
| color: #ffffff ; | |
| } | |
| .announcement-modal { | |
| position: fixed; | |
| inset: 0; | |
| z-index: 2000; | |
| display: none; | |
| } | |
| .announcement-modal.show { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| } | |
| .announcement-backdrop { | |
| position: absolute; | |
| inset: 0; | |
| background: rgba(4, 10, 26, 0.72); | |
| backdrop-filter: blur(6px); | |
| } | |
| .announcement-dialog { | |
| position: relative; | |
| width: min(680px, calc(100vw - 28px)); | |
| margin: 0 auto; | |
| border-radius: 16px; | |
| border: 1px solid rgba(148, 163, 184, 0.24); | |
| background: rgba(8, 17, 40, 0.95); | |
| box-shadow: 0 20px 50px rgba(0, 0, 0, 0.45); | |
| overflow: hidden; | |
| } | |
| .announcement-header { | |
| padding: 14px 16px; | |
| border-bottom: 1px solid var(--border-base); | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| } | |
| .announcement-header h3 { | |
| font-size: 16px; | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| } | |
| .announcement-close { | |
| border: none; | |
| background: transparent; | |
| color: var(--text-secondary); | |
| cursor: pointer; | |
| display: inline-flex; | |
| } | |
| .announcement-body { | |
| padding: 16px; | |
| color: #d8e3f5; | |
| line-height: 1.7; | |
| max-height: 58vh; | |
| overflow-y: auto; | |
| } | |
| .announcement-body h1, | |
| .announcement-body h2, | |
| .announcement-body h3 { | |
| margin: 0.65em 0 0.4em; | |
| color: #eff5ff; | |
| } | |
| .announcement-body p { margin: 0.55em 0; } | |
| .announcement-body ul { | |
| margin: 0.5em 0 0.7em 1.2em; | |
| } | |
| .announcement-body a { | |
| color: #8bb7ff; | |
| } | |
| .announcement-footer { | |
| padding: 14px 16px; | |
| border-top: 1px solid var(--border-base); | |
| } | |
| @media (max-width: 760px) { | |
| .announcement-dialog { | |
| width: min(680px, calc(100vw - 16px)); | |
| max-height: calc(100vh - 24px); | |
| } | |
| } | |