/* 沿用 worldmap 的金色系 --gold:#c8a24a (rgb 200,162,74) */
#timeline {
	position: relative;
	max-width: 760px;
	margin: 10px auto 0;
	padding: 10px 0 30px;
}

/* 貫穿的時間軸主線:白金色金屬光澤由上而下流動 */
#timeline:before {
	content: "";
	position: absolute;
	left: 120px;
	top: 0;
	bottom: 0;
	width: 2px;	/* 重複漸層:暗金底 + 一道白金高光,沿線循環向下流動 */
	background: repeating-linear-gradient(to bottom, rgba(200, 162, 74, 0.28) 0px, rgba(200, 162, 74, 0.28) 70px, rgba(214, 190, 120, 0.6) 100px, rgba(255, 250, 236, 0.98) 120px, rgba(214, 190, 120, 0.6) 140px, rgba(200, 162, 74, 0.28) 170px, rgba(200, 162, 74, 0.28) 500px);
	background-size: 100% 240px;	/* 遮罩保留原本兩端淡出 */
	-webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 6%, #000 94%, transparent 100%);
	mask-image: linear-gradient(to bottom, transparent 0, #000 6%, #000 94%, transparent 100%);
	animation: tl-sheen 3.2s linear infinite;
}

@keyframes tl-sheen {
	from {
		background-position: 0 0;
	}

	to {
		background-position: 0 240px;
	}

	/* 位移一個週期 → 無縫循環 */
}

@media (prefers-reduced-motion:reduce) {
	#timeline:before {
		animation: none;
	}

	.player-30-name.name-flash {
		animation: none;
	}

}

.tl-year {
	position: relative;
	margin: 26px 0 14px 0;
	padding-left: 150px;
	font-size: 22px;
	font-weight: bold;
	color: white;
	text-shadow: black 2px 2px;
	letter-spacing: 2px;
}

.tl-year:before {
	content: "";
	position: absolute;
	left: 113px;
	top: 50%;
	width: 16px;
	height: 16px;
	margin-top: -8px;
	border-radius: 50%;
	background: #d2e281;
	filter: drop-shadow(0 0 5px #d6ff80);
}

.tl-item {
	position: relative;
	padding-left: 150px;
	min-height: 40px;
	margin: 14px 0;
}

/* 每筆事件的小圓點 */
.tl-dot {
	position: absolute;
	left: 113px;
	top: 14px;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: #060b07;
	border: 2px solid #c8a24a;
	box-shadow: 0 0 5px rgba(200, 162, 74, 0.6);
}

/* 日期徽章,固定在主線左側 */
.tl-when {
	position: absolute;
	left: 0;
	top: 10px;
	width: 100px;
	text-align: right;
	font-size: 14px;
	color: #aaaaaa;
	letter-spacing: 1px;
}

.tl-card {
	background: rgba(0, 0, 0, 0.55);
	border: 1px solid rgba(200, 162, 74, 0.25);
	border-radius: 8px;
	padding: 10px 14px;
	width: 80%;
}

.tl-card:hover {
	transform: translateX(3px);
}

@keyframes tl-card-flash {
	0% {
		border-color: rgba(200, 162, 74, 0.25);
		box-shadow: none;
	}

	15% {
		border-color: rgba(200, 162, 74, 0.9);
		box-shadow: 0 0 12px rgba(200, 162, 74, 0.4), inset 0 0 8px rgba(200, 162, 74, 0.08);
	}

	50% {
		border-color: rgba(200, 162, 74, 0.55);
		box-shadow: 0 0 6px rgba(200, 162, 74, 0.2);
	}

	100% {
		border-color: rgba(200, 162, 74, 0.25);
		box-shadow: none;
	}

}

.tl-card.tl-card-flash {
	animation: tl-card-flash 1.8s ease-out forwards;
}

.tl-who {
	font-size: 17px;
	margin-bottom: 4px;
}

.tl-what {
	font-size: 15px;
	color: #cccccc;
	line-height: 1.5;
}

.tl-empty {
	text-align: center;
	color: #888;
	padding: 40px 0;
}

.phone #timeline:before {
	left: 18px;
}

.phone .tl-year {
	padding-left: 46px;
}

.phone .tl-year:before {
	left: 11px;
}

.phone .tl-item {
	padding-left: 46px;
}

.phone .tl-dot {
	left: 13px;
}

.phone .tl-when {
	position: static;
	width: auto;
	text-align: left;
	margin-bottom: 4px;
}

.player-lv30 {
	position: relative;
	width: 72%;
	left: 14%;
	margin-top: 200px;
	margin-bottom: 200px;
}

.player-lv30-border {
	font-family: en, sym, huninn, zh !important;
	white-space: pre;
	font-weight: bold;
	position: absolute;
	transform: scale(0.8, 0.7) translate(-32%, -52%);
	top: 0;
	left: 0;
	pointer-events: none;
	user-select: none;
}

.player-lv30-border2 {
	font-family: en, sym, huninn, zh !important;
	white-space: pre;
	font-weight: bold;
	transform: rotate(180deg) scale(0.8, 0.7) translate(-30%, -60%);
	position: absolute;
	bottom: 0%;
	right: 0%;
	pointer-events: none;
	user-select: none;
}

.phone .player-lv30-border, .phone .player-lv30-border2 {
	display: none;
}

.phone .player-lv-title {
	text-align: center;
}

.player-lv30-list {
	width: 100%;
	text-align: left;
	font-weight: bold;
	left: 3%;
	position: relative;
}

.player-30-name {
	width: 19%;
	height: 20px;
	display: inline-block;
	margin: 0;
	padding: 0;
}

.phone .player-30-name {
	width: 48%;
	text-align: center;
}

@keyframes name-flash {
	0% {
		color: #cccccc;
		text-shadow: 0 0 0px;
	}

	20% {
		color: #ffffff;
		text-shadow: 0 0 10px;
	}

	55% {
		color: #ffffff;
		text-shadow: 0 0 10px;
	}

	100% {
		color: #cccccc;
		text-shadow: 0 0 0px;
	}

}

.player-30-name.name-flash {
	animation: name-flash 1.8s ease-out forwards;
}

.player-lv-title {
	position: relative;
	text-align: right;
	font-size: 20px;
	top: -35px;
}

.player-lv30-count {
	position: relative;
	text-align: left;
	font-size: 20px;
	top: 25px;
	left: 00px;
}
