351 lines
7.6 KiB
CSS
351 lines
7.6 KiB
CSS
* { box-sizing: border-box; margin: 0; padding: 0; }
|
||
|
||
:root {
|
||
--primary: #D4AF37;
|
||
--primary-dark: #A8841F;
|
||
--primary-light: #F0D875;
|
||
--secondary: #1A1A1A;
|
||
--tertiary: #000000;
|
||
--neutral: #8E8E93;
|
||
--bg-body: #000000;
|
||
--bg-card: rgba(20, 20, 20, 0.65);
|
||
--bg-hover: rgba(34, 34, 34, 0.65);
|
||
--bg-elevated: rgba(42, 42, 42, 0.65);
|
||
--text: #FFFFFF;
|
||
--text-muted: #8E8E93;
|
||
--border: #333333;
|
||
--border-gold: #D4AF37;
|
||
--border-gold-soft: rgba(212, 175, 55, 0.28);
|
||
--border-w: 1px;
|
||
--border-w-thick: 1px;
|
||
--danger: #FF453A;
|
||
--radius: 12px;
|
||
--radius-sm: 8px;
|
||
--shadow: 0 4px 16px rgba(0, 0, 0, 0.45);
|
||
--shadow-gold: 0 2px 12px rgba(212, 175, 55, 0.12);
|
||
--glow-gold: 0 0 8px rgba(212, 175, 55, 0.2);
|
||
--gradient-gold: linear-gradient(
|
||
180deg,
|
||
#FFF4C8 0%,
|
||
#F0D875 18%,
|
||
#D4AF37 50%,
|
||
#B8942B 78%,
|
||
#8B6914 100%
|
||
);
|
||
--gradient-gold-border: linear-gradient(
|
||
180deg,
|
||
#FFF8DC 0%,
|
||
#E8C96A 35%,
|
||
#A8841F 70%,
|
||
#5C4A12 100%
|
||
);
|
||
--gradient-card: linear-gradient(160deg, #1E1A12 0%, #141414 40%, #0A0A0A 100%);
|
||
--player-header-h: 52px;
|
||
--player-bottom-nav-h: 54px;
|
||
--safe-top: env(safe-area-inset-top, 0px);
|
||
--safe-bottom: env(safe-area-inset-bottom, 0px);
|
||
}
|
||
|
||
/** 金色描边按钮(避免大面积实心填充) */
|
||
.btn-gold-outline {
|
||
background: #141414;
|
||
border: 1px solid var(--border-gold-soft);
|
||
color: var(--primary-light);
|
||
font-weight: 800;
|
||
}
|
||
.btn-gold-outline:active:not(:disabled) {
|
||
background: rgba(212, 175, 55, 0.1);
|
||
border-color: var(--border-gold);
|
||
}
|
||
|
||
/** 选中态:浅底 + 金边,非整块金色 */
|
||
.tab-gold-active {
|
||
background: rgba(212, 175, 55, 0.08) !important;
|
||
border-color: var(--border-gold) !important;
|
||
color: var(--primary-light) !important;
|
||
}
|
||
|
||
/* 登录等关键区域:轻量金边(非厚重 PS 描边) */
|
||
.ps-gold-frame {
|
||
position: relative;
|
||
border: 1px solid var(--border-gold-soft) !important;
|
||
border-radius: var(--radius);
|
||
background: rgba(14, 14, 14, 0.92) !important;
|
||
box-shadow: var(--shadow);
|
||
}
|
||
|
||
.ps-gold-frame::before,
|
||
.ps-gold-frame::after {
|
||
display: none;
|
||
}
|
||
|
||
.ps-gold-input {
|
||
background: #0d0d0d !important;
|
||
border: 1px solid var(--border) !important;
|
||
box-shadow: none;
|
||
color: var(--text);
|
||
}
|
||
|
||
.ps-gold-input::placeholder {
|
||
color: rgba(255, 255, 255, 0.35);
|
||
}
|
||
|
||
.ps-gold-input:focus {
|
||
border-color: var(--border-gold-soft) !important;
|
||
box-shadow: 0 0 0 2px rgba(212, 175, 55, 0.12) !important;
|
||
}
|
||
|
||
/* 主按钮:斜面浮雕 + 渐变描边 + 外发光 */
|
||
.btn-primary {
|
||
position: relative;
|
||
isolation: isolate;
|
||
padding: 17px 24px;
|
||
border: none;
|
||
border-radius: var(--radius-sm);
|
||
background: transparent;
|
||
color: #3D2800;
|
||
font-weight: 900;
|
||
font-size: 16px;
|
||
width: 100%;
|
||
letter-spacing: 0.1em;
|
||
text-transform: uppercase;
|
||
text-shadow:
|
||
0 1px 0 rgba(255, 252, 235, 0.95),
|
||
0 -1px 0 rgba(120, 85, 15, 0.35);
|
||
transition: transform 0.12s ease;
|
||
z-index: 0;
|
||
}
|
||
|
||
.btn-primary::before {
|
||
content: '';
|
||
position: absolute;
|
||
inset: -3px;
|
||
border-radius: calc(var(--radius-sm) + 3px);
|
||
background: linear-gradient(
|
||
180deg,
|
||
#FFFCE8 0%,
|
||
#F7E08A 12%,
|
||
#D4AF37 35%,
|
||
#8B6914 55%,
|
||
#5C4A12 72%,
|
||
#E8C040 90%,
|
||
#FFF8DC 100%
|
||
);
|
||
z-index: -2;
|
||
box-shadow:
|
||
0 0 14px rgba(255, 210, 70, 0.55),
|
||
0 0 28px rgba(212, 175, 55, 0.28),
|
||
0 6px 14px rgba(0, 0, 0, 0.55);
|
||
}
|
||
|
||
.btn-primary::after {
|
||
content: '';
|
||
position: absolute;
|
||
inset: 2px;
|
||
border-radius: calc(var(--radius-sm) - 1px);
|
||
background: linear-gradient(
|
||
180deg,
|
||
#FFFBE8 0%,
|
||
#FFE566 6%,
|
||
#F0D050 22%,
|
||
#D4AF37 48%,
|
||
#B8860B 72%,
|
||
#8B6914 100%
|
||
);
|
||
z-index: -1;
|
||
box-shadow:
|
||
inset 0 2px 0 rgba(255, 255, 255, 0.95),
|
||
inset 0 4px 10px rgba(255, 240, 180, 0.45),
|
||
inset 0 -2px 0 rgba(90, 65, 12, 0.85),
|
||
inset 0 -6px 14px rgba(45, 32, 6, 0.5);
|
||
}
|
||
|
||
.btn-primary:active:not(:disabled) {
|
||
transform: translateY(2px) scale(0.985);
|
||
}
|
||
|
||
.btn-primary:active:not(:disabled)::after {
|
||
background: linear-gradient(
|
||
180deg,
|
||
#E8C040 0%,
|
||
#C9962A 40%,
|
||
#8B6914 100%
|
||
);
|
||
box-shadow:
|
||
inset 0 4px 10px rgba(35, 24, 4, 0.65),
|
||
inset 0 1px 0 rgba(255, 255, 255, 0.35);
|
||
}
|
||
|
||
.btn-primary:active:not(:disabled)::before {
|
||
box-shadow:
|
||
0 0 10px rgba(255, 200, 50, 0.35),
|
||
0 2px 6px rgba(0, 0, 0, 0.5);
|
||
}
|
||
|
||
.btn-primary:disabled {
|
||
opacity: 0.5;
|
||
cursor: not-allowed;
|
||
filter: saturate(0.4);
|
||
}
|
||
|
||
html,
|
||
body,
|
||
#app {
|
||
height: 100%;
|
||
min-height: 100%;
|
||
touch-action: manipulation;
|
||
}
|
||
|
||
html {
|
||
-webkit-text-size-adjust: 100%;
|
||
text-size-adjust: 100%;
|
||
height: -webkit-fill-available;
|
||
}
|
||
|
||
body {
|
||
min-height: 100%;
|
||
min-height: -webkit-fill-available;
|
||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
||
/* 保留 bg 位图;用 scroll 替代 fixed,减轻移动端滚动重绘(后续可换 WebP/AVIF) */
|
||
background-color: var(--tertiary);
|
||
background-image:
|
||
radial-gradient(ellipse 120% 60% at 50% -10%, rgba(212, 175, 55, 0.14), transparent 55%),
|
||
linear-gradient(rgba(0, 0, 0, 0.88), rgba(0, 0, 0, 0.88)),
|
||
url('./assets/images/bg.webp');
|
||
background-repeat: no-repeat;
|
||
background-position: center center;
|
||
background-size: cover;
|
||
background-attachment: scroll;
|
||
color: var(--text);
|
||
overflow: hidden;
|
||
-webkit-font-smoothing: antialiased;
|
||
}
|
||
|
||
@media (min-width: 1024px) {
|
||
body {
|
||
background-image: url('./assets/images/pcbg.png');
|
||
background-attachment: fixed;
|
||
}
|
||
}
|
||
|
||
#app {
|
||
min-height: 100%;
|
||
min-height: -webkit-fill-available;
|
||
}
|
||
|
||
a { color: inherit; text-decoration: none; }
|
||
|
||
button {
|
||
cursor: pointer;
|
||
border: none;
|
||
font-family: inherit;
|
||
}
|
||
|
||
input {
|
||
font-family: inherit;
|
||
background: #0D0D0D;
|
||
border: 1px solid var(--border);
|
||
color: var(--text);
|
||
padding: 14px 16px;
|
||
border-radius: var(--radius-sm);
|
||
width: 100%;
|
||
font-size: 16px;
|
||
font-weight: 500;
|
||
transition: border-color 0.2s, box-shadow 0.2s;
|
||
}
|
||
|
||
input:focus {
|
||
outline: none;
|
||
border-color: var(--border-gold-soft);
|
||
}
|
||
|
||
input:-webkit-autofill,
|
||
input:-webkit-autofill:hover,
|
||
input:-webkit-autofill:focus,
|
||
input:-webkit-autofill:active {
|
||
-webkit-text-fill-color: var(--text);
|
||
caret-color: var(--text);
|
||
box-shadow: 0 0 0 1000px #0a0a0a inset;
|
||
border: 1px solid var(--border);
|
||
transition: background-color 99999s ease-out 0s;
|
||
}
|
||
|
||
.odds-btn {
|
||
background: #161616;
|
||
border: 1px solid var(--border);
|
||
color: var(--text);
|
||
padding: 12px 14px;
|
||
border-radius: var(--radius-sm);
|
||
text-align: center;
|
||
min-width: 78px;
|
||
transition: border-color 0.2s, box-shadow 0.2s, transform 0.15s;
|
||
}
|
||
|
||
.odds-btn:active { transform: scale(0.96); }
|
||
|
||
.odds-btn.selected {
|
||
border: 1px solid var(--border-gold-soft);
|
||
background: #2d281a;
|
||
box-shadow: none;
|
||
}
|
||
|
||
.odds-btn.selected::before,
|
||
.odds-btn.selected::after {
|
||
display: none;
|
||
}
|
||
|
||
.odds-btn.selected .label,
|
||
.odds-btn.selected .value {
|
||
position: relative;
|
||
z-index: 1;
|
||
}
|
||
|
||
.odds-btn .label {
|
||
font-size: 11px;
|
||
color: var(--text-muted);
|
||
font-weight: 600;
|
||
letter-spacing: 0.04em;
|
||
text-transform: uppercase;
|
||
}
|
||
|
||
.odds-btn .value {
|
||
font-size: 18px;
|
||
font-weight: 800;
|
||
color: #ffffff;
|
||
margin-top: 2px;
|
||
}
|
||
|
||
.card {
|
||
background: var(--bg-card);
|
||
border: 1px solid var(--border);
|
||
border-radius: var(--radius);
|
||
padding: 16px;
|
||
margin-bottom: 12px;
|
||
box-shadow: var(--shadow);
|
||
background: rgba(26, 26, 26, 0.92);
|
||
}
|
||
|
||
.section-title {
|
||
font-size: 18px;
|
||
font-weight: 800;
|
||
margin-bottom: 14px;
|
||
padding: 4px 0 4px 12px;
|
||
border-left: 3px solid var(--border-gold);
|
||
color: var(--primary-light);
|
||
letter-spacing: 0.06em;
|
||
text-transform: uppercase;
|
||
}
|
||
|
||
.state {
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
justify-content: center;
|
||
min-height: 60vh;
|
||
gap: 12px;
|
||
text-align: center;
|
||
color: var(--text-muted);
|
||
font-weight: 600;
|
||
font-size: 14px;
|
||
}
|