/* 个人注册页 - 金色科技风 */
body.rp-page {
	margin: 0;
	min-height: 100vh;
	background: #0b0a08;
	color: #f3e7c7;
	font-family: "Microsoft YaHei", "PingFang SC", Arial, sans-serif;
	overflow-x: hidden;
}
body.rp-page a { text-decoration: none; }
body.rp-page * { box-sizing: border-box; }

.rp-scene {
	position: relative;
	min-height: 100vh;
	padding: 24px 24px 20px;
	overflow: hidden;
	background:
		radial-gradient(ellipse 70% 45% at 12% 18%, rgba(212, 168, 75, 0.16), transparent 55%),
		radial-gradient(ellipse 50% 40% at 90% 80%, rgba(250, 216, 89, 0.08), transparent 50%),
		linear-gradient(160deg, #120f0b 0%, #0b0a08 45%, #16120c 100%);
}

.rp-grid {
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(212, 168, 75, 0.07) 1px, transparent 1px),
		linear-gradient(90deg, rgba(212, 168, 75, 0.07) 1px, transparent 1px);
	background-size: 48px 48px;
	transform: perspective(600px) rotateX(55deg) translateY(-18%) scale(1.4);
	transform-origin: center top;
	animation: rpGrid 18s linear infinite;
	pointer-events: none;
	opacity: 0.45;
}
@keyframes rpGrid {
	0% { background-position: 0 0; }
	100% { background-position: 0 48px; }
}

.rp-scan {
	position: absolute;
	left: 0;
	right: 0;
	height: 110px;
	background: linear-gradient(180deg, transparent, rgba(250, 216, 89, 0.1), transparent);
	animation: rpScan 6s ease-in-out infinite;
	pointer-events: none;
}
@keyframes rpScan {
	0%, 100% { top: -10%; opacity: 0; }
	25% { opacity: 1; }
	100% { top: 110%; opacity: 0; }
}

.rp-beam {
	position: absolute;
	width: 2px;
	height: 160px;
	background: linear-gradient(180deg, transparent, #fad859, transparent);
	opacity: 0.3;
	pointer-events: none;
	animation: rpBeam 4.5s ease-in-out infinite;
}
.rp-beam-1 { left: 10%; top: 14%; }
.rp-beam-2 { right: 14%; top: 30%; height: 200px; animation-direction: reverse; }
@keyframes rpBeam {
	0%, 100% { transform: translateY(0); opacity: 0.15; }
	50% { transform: translateY(36px); opacity: 0.5; }
}

.rp-particle {
	position: absolute;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: #fad859;
	box-shadow: 0 0 10px #d4a84b;
	animation: rpFloat 7s ease-in-out infinite;
	pointer-events: none;
}
.rp-particle-1 { left: 8%; top: 40%; }
.rp-particle-2 { left: 42%; top: 78%; animation-delay: 1.4s; }
.rp-particle-3 { right: 20%; top: 22%; animation-delay: 2.2s; }
@keyframes rpFloat {
	0%, 100% { transform: translateY(0); opacity: 0.35; }
	50% { transform: translateY(-20px); opacity: 1; }
}

.rp-header {
	position: relative;
	z-index: 2;
	max-width: 1180px;
	margin: 0 auto 22px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}
.rp-brand {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	color: #fad859 !important;
}
.rp-brand img { height: 40px; width: auto; display: block; }
.rp-brand span { font-size: 18px; font-weight: 700; letter-spacing: 1px; }
.rp-login-link {
	padding: 10px 18px;
	border: 1px solid rgba(212, 168, 75, 0.45);
	border-radius: 999px;
	color: #f3e7c7 !important;
	font-size: 13px;
	transition: all 0.25s ease;
}
.rp-login-link:hover {
	background: rgba(212, 168, 75, 0.15);
	color: #fad859 !important;
}

.rp-main {
	position: relative;
	z-index: 2;
	max-width: 1180px;
	margin: 0 auto;
}

/* 新步骤条 */
.rp-steps {
	position: relative;
	max-width: 720px;
	margin: 0 auto 36px;
	padding: 8px 0 4px;
}
.rp-steps-line {
	position: absolute;
	left: 12%;
	right: 12%;
	top: 22px;
	height: 2px;
	background: rgba(212, 168, 75, 0.18);
	overflow: hidden;
}
.rp-steps-line i {
	display: block;
	height: 100%;
	background: linear-gradient(90deg, #a67c2d, #fad859);
	box-shadow: 0 0 12px rgba(250, 216, 89, 0.45);
	transition: width 0.4s ease;
}
.rp-steps-list {
	position: relative;
	display: flex;
	justify-content: space-between;
	margin: 0;
	padding: 0;
	list-style: none;
}
.rp-steps-list li {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	text-align: center;
}
.rp-steps-list li a {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	color: inherit;
}
.rp-step-num {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(212, 168, 75, 0.35);
	background: rgba(12, 10, 8, 0.9);
	color: rgba(243, 231, 199, 0.45);
	font-size: 13px;
	font-family: Arial, Helvetica, sans-serif;
	font-weight: 700;
	letter-spacing: 0.5px;
	position: relative;
	z-index: 1;
	transition: all 0.3s ease;
}
.rp-step-txt {
	font-size: 13px;
	color: rgba(243, 231, 199, 0.45);
	letter-spacing: 1px;
}
.rp-steps-list li.is-done .rp-step-num {
	border-color: #d4a84b;
	background: linear-gradient(145deg, #d4a84b, #a67c2d);
	color: #1a140c;
	box-shadow: 0 0 16px rgba(212, 168, 75, 0.35);
}
.rp-steps-list li.is-done .rp-step-txt {
	color: #d4a84b;
}
.rp-steps-list li.is-active .rp-step-num {
	border-color: #fad859;
	color: #fad859;
	box-shadow: 0 0 0 4px rgba(250, 216, 89, 0.12), 0 0 20px rgba(212, 168, 75, 0.3);
	animation: rpStepPulse 2s ease-in-out infinite;
}
.rp-steps-list li.is-active .rp-step-txt {
	color: #fff8e8;
	font-weight: 600;
}
@keyframes rpStepPulse {
	0%, 100% { box-shadow: 0 0 0 4px rgba(250, 216, 89, 0.12), 0 0 16px rgba(212, 168, 75, 0.25); }
	50% { box-shadow: 0 0 0 8px rgba(250, 216, 89, 0.08), 0 0 24px rgba(250, 216, 89, 0.4); }
}

.rp-layout {
	display: grid;
	grid-template-columns: 0.9fr 1.1fr;
	gap: 36px;
	align-items: start;
}

.rp-aside {
	padding-top: 8px;
}
.rp-prism-wrap {
	position: relative;
	width: 180px;
	height: 180px;
	margin-bottom: 24px;
	perspective: 800px;
}
.rp-prism {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 70px;
	height: 70px;
	margin: -35px 0 0 -35px;
	transform-style: preserve-3d;
	animation: rpSpin 12s linear infinite;
}
@keyframes rpSpin {
	0% { transform: rotateX(-18deg) rotateY(0deg); }
	100% { transform: rotateX(-18deg) rotateY(360deg); }
}
.rp-prism-face {
	position: absolute;
	width: 70px;
	height: 70px;
	border: 1px solid rgba(250, 216, 89, 0.5);
	background: linear-gradient(145deg, rgba(212, 168, 75, 0.28), rgba(20, 16, 10, 0.55));
}
.rp-prism-front { transform: translateZ(35px); }
.rp-prism-back { transform: rotateY(180deg) translateZ(35px); }
.rp-prism-right { transform: rotateY(90deg) translateZ(35px); }
.rp-prism-left { transform: rotateY(-90deg) translateZ(35px); }
.rp-prism-top { transform: rotateX(90deg) translateZ(35px); }
.rp-prism-bottom { transform: rotateX(-90deg) translateZ(35px); }
.rp-ring {
	position: absolute;
	left: 50%;
	top: 50%;
	border: 1px solid rgba(212, 168, 75, 0.3);
	border-radius: 50%;
}
.rp-ring-a {
	width: 130px;
	height: 130px;
	margin: -65px 0 0 -65px;
	animation: rpRing 8s linear infinite;
}
.rp-ring-b {
	width: 170px;
	height: 170px;
	margin: -85px 0 0 -85px;
	border-style: dashed;
	animation: rpRing 12s linear infinite reverse;
}
@keyframes rpRing {
	0% { transform: rotateX(68deg) rotateZ(0deg); }
	100% { transform: rotateX(68deg) rotateZ(360deg); }
}

.rp-badge {
	display: inline-block;
	margin-bottom: 12px;
	padding: 4px 10px;
	border: 1px solid rgba(212, 168, 75, 0.45);
	color: #d4a84b;
	font-size: 11px;
	letter-spacing: 2px;
	font-family: Arial, Helvetica, sans-serif;
}
.rp-aside-title {
	margin: 0 0 12px;
	font-size: 36px;
	line-height: 1.25;
	font-weight: 700;
	color: #fff8e8;
}
.rp-aside-title em {
	font-style: normal;
	background: linear-gradient(90deg, #fad859, #d4a84b, #f7e3a1);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.rp-aside-desc {
	margin: 0 0 24px;
	font-size: 14px;
	line-height: 1.8;
	color: rgba(243, 231, 199, 0.68);
}
.rp-tips {
	margin: 0 0 24px;
	padding: 0;
	list-style: none;
}
.rp-tips li {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	margin-bottom: 14px;
	padding: 12px 14px;
	border: 1px solid rgba(212, 168, 75, 0.18);
	border-radius: 12px;
	background: rgba(0, 0, 0, 0.2);
}
.rp-tips li span {
	flex-shrink: 0;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: rgba(212, 168, 75, 0.15);
	color: #fad859;
	font-size: 11px;
	font-family: Arial, Helvetica, sans-serif;
	font-weight: 700;
}
.rp-tips li strong {
	display: block;
	margin-bottom: 4px;
	font-size: 14px;
	color: #fff8e8;
}
.rp-tips li p {
	margin: 0;
	font-size: 12px;
	color: rgba(243, 231, 199, 0.5);
	line-height: 1.5;
}
.rp-back {
	display: inline-block;
	color: #d4a84b !important;
	font-size: 13px;
}
.rp-back:hover { color: #fad859 !important; }

.rp-card {
	position: relative;
	animation: rpCardIn 0.8s ease-out both;
}
@keyframes rpCardIn {
	0% { opacity: 0; transform: translateY(24px); }
	100% { opacity: 1; transform: translateY(0); }
}
.rp-card-edge {
	position: absolute;
	inset: -1px;
	border-radius: 18px;
	background: linear-gradient(135deg, rgba(250, 216, 89, 0.85), rgba(212, 168, 75, 0.15), rgba(250, 216, 89, 0.7));
	animation: rpEdge 4s linear infinite;
}
@keyframes rpEdge {
	0%, 100% { filter: brightness(1); }
	50% { filter: brightness(1.12); }
}
.rp-card-body {
	position: relative;
	z-index: 1;
	margin: 1px;
	padding: 32px 30px 28px;
	border-radius: 17px;
	background: linear-gradient(165deg, rgba(28, 24, 18, 0.96), rgba(16, 13, 10, 0.98));
	box-shadow: 0 24px 50px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(250, 216, 89, 0.15);
}
.rp-card-head {
	margin-bottom: 24px;
}
.rp-card-head h2 {
	margin: 0 0 8px;
	font-size: 26px;
	color: #fff8e8;
}
.rp-card-head p {
	margin: 0;
	font-size: 13px;
	color: rgba(243, 231, 199, 0.5);
}

.rp-field { margin-bottom: 16px; }
.rp-field label {
	display: block;
	margin-bottom: 8px;
	font-size: 13px;
	color: rgba(243, 231, 199, 0.75);
}
.rp-field label span { color: #fad859; margin-right: 2px; }
.rp-input-wrap {
	display: flex;
	align-items: center;
	border: 1px solid rgba(212, 168, 75, 0.28);
	background: rgba(0, 0, 0, 0.28);
	border-radius: 10px;
	transition: border-color 0.25s ease, box-shadow 0.25s ease;
}
.rp-input-wrap:focus-within {
	border-color: #d4a84b;
	box-shadow: 0 0 0 3px rgba(212, 168, 75, 0.15);
}
.rp-input-wrap input[type="text"],
.rp-input-wrap input[type="password"] {
	flex: 1;
	width: 100%;
	height: 46px;
	padding: 0 14px;
	border: 0;
	outline: 0;
	background: transparent;
	color: #fff8e8;
	font-size: 14px;
}
.rp-input-wrap input::placeholder { color: rgba(243, 231, 199, 0.35); }
.rp-input-code,
.rp-input-sms { padding-right: 8px; }
.rp-authcode {
	height: 32px;
	width: auto;
	cursor: pointer;
	border-radius: 4px;
	vertical-align: middle;
}
.rp-sms-btn {
	height: 34px;
	padding: 0 12px;
	border: 1px solid rgba(212, 168, 75, 0.45);
	border-radius: 8px;
	background: rgba(212, 168, 75, 0.15);
	color: #fad859;
	font-size: 12px;
	cursor: pointer;
	white-space: nowrap;
}
.rp-sms-btn.disabled { opacity: 0.55; cursor: not-allowed; }
.rp-qfont {
	margin-top: 8px;
	font-size: 13px;
	color: #d4a84b;
}

.rp-pw-strength { margin-top: 10px; }
.rp-pw-bar {
	display: flex;
	gap: 6px;
}
.rp-pw-seg {
	flex: 1;
	height: 6px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.08);
	position: relative;
}
.rp-pw-seg em {
	position: absolute;
	top: 10px;
	left: 50%;
	transform: translateX(-50%);
	font-size: 11px;
	font-style: normal;
	color: rgba(243, 231, 199, 0.4);
}
.rp-pw-on.rp-pw-weak { background: #c45c3a; }
.rp-pw-on.rp-pw-mid { background: #d4a84b; }
.rp-pw-on.rp-pw-strong { background: #6fbf73; }

.rp-agree {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 12px;
	margin: 18px 0 20px;
	font-size: 13px;
	color: rgba(243, 231, 199, 0.7);
}
.rp-agree-label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
}
.rp-agree-label input { accent-color: #d4a84b; }
.rp-agree-links a {
	color: #fad859 !important;
	margin-right: 8px;
}
.rp-agree-links a:hover { text-decoration: underline !important; }

.rp-submit {
	position: relative;
	width: 100%;
	height: 50px;
	border: 0;
	border-radius: 10px;
	overflow: hidden;
	cursor: pointer;
	background: linear-gradient(90deg, #a67c2d, #d4a84b, #fad859, #d4a84b);
	background-size: 200% 100%;
	animation: rpBtn 4s linear infinite;
	color: #1a140c;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 1px;
}
@keyframes rpBtn {
	0% { background-position: 0% 50%; }
	100% { background-position: 200% 50%; }
}
.rp-submit span { position: relative; z-index: 1; }
.rp-submit em {
	position: absolute;
	top: 0;
	left: -40%;
	width: 40%;
	height: 100%;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent);
	animation: rpShine 2.8s ease-in-out infinite;
}
@keyframes rpShine {
	0% { left: -40%; }
	100% { left: 120%; }
}
.rp-submit:hover { filter: brightness(1.08); }

.rp-footer {
	position: relative;
	z-index: 2;
	max-width: 1180px;
	margin: 28px auto 0;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	font-size: 12px;
	color: rgba(243, 231, 199, 0.4);
}
.rp-footer a { color: rgba(212, 168, 75, 0.85) !important; }
.rp-footer a:hover { color: #fad859 !important; }

/* 弹窗 */
.rp-pop-layer {
	display: none;
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.72);
	backdrop-filter: blur(4px);
	z-index: 1000;
}
.rp-modal {
	display: none;
	position: fixed;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 92%;
	max-width: 640px;
	max-height: 82vh;
	z-index: 1001;
	border-radius: 18px;
	overflow: hidden;
	background: linear-gradient(180deg, #1c1812 0%, #14110d 100%);
	border: 1px solid rgba(212, 168, 75, 0.4);
	box-shadow:
		0 28px 70px rgba(0, 0, 0, 0.55),
		0 0 0 1px rgba(250, 216, 89, 0.08),
		inset 0 1px 0 rgba(250, 216, 89, 0.12);
}
.rp-modal-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 18px 22px;
	border-bottom: 1px solid rgba(212, 168, 75, 0.22);
	background: linear-gradient(90deg, rgba(212, 168, 75, 0.1), transparent 60%);
}
.rp-modal-head h3 {
	margin: 0;
	font-size: 18px;
	color: #fff8e8;
	letter-spacing: 1px;
	position: relative;
	padding-left: 14px;
}
.rp-modal-head h3::before {
	content: '';
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 4px;
	height: 16px;
	border-radius: 2px;
	background: linear-gradient(180deg, #fad859, #d4a84b);
}
.rp-modal-close {
	width: 32px;
	height: 32px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	border: 1px solid rgba(212, 168, 75, 0.3);
	color: #d4a84b !important;
	font-size: 20px;
	line-height: 1;
	transition: all 0.2s ease;
}
.rp-modal-close:hover {
	background: rgba(212, 168, 75, 0.15);
	color: #fad859 !important;
}

/* 协议正文 + 滚动条美化 */
.rp-modal-body {
	padding: 22px 18px 22px 22px;
	max-height: 52vh;
	overflow-x: hidden;
	overflow-y: auto;
	font-size: 13px;
	line-height: 1.9;
	color: rgba(243, 231, 199, 0.78);
	text-align: left;
	scrollbar-width: thin;
	scrollbar-color: #d4a84b rgba(255, 255, 255, 0.06);
}
.rp-modal-body::-webkit-scrollbar {
	width: 8px;
}
.rp-modal-body::-webkit-scrollbar-track {
	margin: 6px 0;
	background: rgba(255, 255, 255, 0.04);
	border-radius: 999px;
}
.rp-modal-body::-webkit-scrollbar-thumb {
	background: linear-gradient(180deg, #fad859, #d4a84b 55%, #a67c2d);
	border-radius: 999px;
	border: 2px solid transparent;
	background-clip: padding-box;
	box-shadow: 0 0 8px rgba(212, 168, 75, 0.35);
}
.rp-modal-body::-webkit-scrollbar-thumb:hover {
	background: linear-gradient(180deg, #ffe28a, #fad859 40%, #d4a84b);
	background-clip: padding-box;
}
.rp-modal-body::-webkit-scrollbar-corner {
	background: transparent;
}

.rp-modal-body.art,
.rp-modal-body.art * {
	font-family: "Microsoft YaHei", "PingFang SC", Arial, sans-serif !important;
}
.rp-modal-body.art p {
	margin: 0 0 16px;
	padding: 0;
	text-align: justify;
	text-justify: inter-ideograph;
	color: rgba(243, 231, 199, 0.78) !important;
	background: transparent !important;
	font-size: 13px !important;
	line-height: 1.95 !important;
}
.rp-modal-body.art p[style*="center"],
.rp-modal-body.art p[style*="22pt"],
.rp-modal-body.art p[style*="20pt"] {
	text-align: left !important;
	margin: 22px 0 14px !important;
	padding: 10px 14px !important;
	border-left: 3px solid #d4a84b;
	background: linear-gradient(90deg, rgba(212, 168, 75, 0.12), transparent) !important;
	color: #fad859 !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	line-height: 1.5 !important;
	letter-spacing: 0.5px;
	border-radius: 0 8px 8px 0;
}
.rp-modal-body.art span,
.rp-modal-body.art div {
	color: inherit !important;
	background: transparent !important;
}
.rp-modal-body.art span[style*="#C00000"],
.rp-modal-body.art span[style*="C00000"] {
	display: inline-block;
	margin-bottom: 6px;
	padding: 2px 8px;
	border-radius: 4px;
	color: #1a140c !important;
	background: linear-gradient(90deg, #fad859, #d4a84b) !important;
	font-size: 13px !important;
	font-weight: 700 !important;
}
.rp-modal-body.art b,
.rp-modal-body.art strong {
	color: #fad859 !important;
	font-weight: 700;
}
.rp-modal-foot {
	padding: 14px 20px 18px;
	text-align: center;
	border-top: 1px solid rgba(212, 168, 75, 0.22);
	background: rgba(0, 0, 0, 0.18);
}
.rp-modal-btn {
	min-width: 160px;
	height: 42px;
	border: 0;
	border-radius: 10px;
	background: linear-gradient(90deg, #a67c2d, #d4a84b, #fad859);
	background-size: 180% 100%;
	color: #1a140c;
	font-size: 14px;
	font-weight: 700;
	cursor: pointer;
	letter-spacing: 1px;
	transition: filter 0.2s ease, transform 0.2s ease;
}
.rp-modal-btn:hover {
	filter: brightness(1.08);
	transform: translateY(-1px);
}

/* validator 提示兼容 */
.rp-form .warning,
.rp-form .correct,
.rp-form .error {
	font-size: 12px;
	margin-top: 6px;
	display: block;
}

@media screen and (max-width: 960px) {
	.rp-layout {
		grid-template-columns: 1fr;
	}
	.rp-prism-wrap {
		margin-left: auto;
		margin-right: auto;
	}
	.rp-aside {
		text-align: center;
	}
	.rp-tips li {
		text-align: left;
	}
	.rp-aside-title {
		font-size: 30px;
	}
}
@media screen and (max-width: 560px) {
	.rp-scene { padding: 16px 14px; }
	.rp-header { flex-direction: column; align-items: flex-start; }
	.rp-step-num { width: 36px; height: 36px; font-size: 12px; }
	.rp-step-txt { font-size: 12px; }
	.rp-card-body { padding: 24px 18px; }
	.rp-footer { flex-wrap: wrap; text-align: center; }
}
