*{
	-webkit-tap-highlight-color: transparent;
	-webkit-user-select: none;
	user-select: none;
}

body{
	margin:0;
	padding:0;
	min-height:100vh;
	display:flex;
	justify-content:center;
	align-items:center;
	background:var(--bg-color);
	color:var(--text-color);
	transition: background var(--transition-speed), color var(--transition-speed);
}

body.home-page{
	--home-pad-top: clamp(18px, 4vw, 40px);
	--home-pad-inline: clamp(18px, 4vw, 40px);
	--home-pad-bottom: clamp(18px, 4vw, 40px);
	box-sizing:border-box;
	position:relative;
	min-height:100vh;
	min-height:100svh;
	padding:var(--home-pad-top) var(--home-pad-inline) var(--home-pad-bottom);
	display:block;
	overflow-x:hidden;
	background:
		radial-gradient(circle at 18% 16%, rgba(255,255,255,.72), transparent 28%),
		radial-gradient(circle at 82% 14%, rgba(127,71,255,.16), transparent 24%),
		linear-gradient(160deg, rgba(255,255,255,.95) 0%, var(--bg-color) 48%, rgba(255,255,255,.88) 100%);
}

body.home-page::before,
body.home-page::after{
	content:"";
	position:fixed;
	pointer-events:none;
	z-index:0;
	filter:blur(4px);
}

body.home-page::before{
	top:-80px;
	left:-40px;
	width:260px;
	height:260px;
	background:radial-gradient(circle, rgba(255,255,255,.65) 0%, rgba(255,255,255,0) 68%);
}

body.home-page::after{
	right:-70px;
	bottom:-110px;
	width:320px;
	height:320px;
	background:radial-gradient(circle, rgba(127,71,255,.14) 0%, rgba(127,71,255,0) 70%);
}

body.home-page[data-theme="dark"]{
	background:
		radial-gradient(circle at 20% 18%, rgba(255,255,255,.08), transparent 24%),
		radial-gradient(circle at 80% 16%, rgba(157,122,255,.18), transparent 24%),
		linear-gradient(165deg, rgba(17,10,39,.98) 0%, rgba(26,16,61,1) 42%, rgba(41,30,86,.96) 100%);
}

body.home-page[data-theme="dark"]::before{
	background:radial-gradient(circle, rgba(255,255,255,.08) 0%, rgba(255,255,255,0) 68%);
}

body.home-page[data-theme="dark"]::after{
	background:radial-gradient(circle, rgba(157,122,255,.22) 0%, rgba(157,122,255,0) 70%);
}

body.game-page{
	flex-direction:column;
	gap:14px;
	padding:20px 12px;
	height:auto;
	min-height:100vh;
}

/* ===== 菜单 ===== */
.menu-container{
	position:relative;
	width:100%;
	max-width:760px;
	box-sizing:border-box;
	margin-inline:auto;
	min-height:calc(100vh - var(--home-pad-top) - var(--home-pad-bottom));
	min-height:calc(100svh - var(--home-pad-top) - var(--home-pad-bottom));
	display:flex;
	flex-direction:column;
	justify-content:center;
	text-align:center;
	z-index:1;
}

.hero-panel{
	position:relative;
	width:100%;
	box-sizing:border-box;
	padding:clamp(24px, 5vw, 42px);
	border-radius:28px;
	background:var(--dialog-bg);
	border:1px solid var(--dialog-border);
	backdrop-filter:blur(24px);
	-webkit-backdrop-filter:blur(24px);
	box-shadow:0 26px 80px rgba(44,30,88,.10);
	overflow:hidden;
	animation:homePanelIn .6s cubic-bezier(0.22,0.61,0.36,1) both;
}

.hero-panel::before{
	content:"";
	position:absolute;
	inset:0;
	border-radius:inherit;
	background:linear-gradient(135deg, rgba(255,255,255,.40) 0%, rgba(255,255,255,0) 42%);
	opacity:.7;
	pointer-events:none;
}

.hero-panel::after{
	content:"";
	position:absolute;
	inset:auto -80px -120px auto;
	width:240px;
	height:240px;
	border-radius:50%;
	background:radial-gradient(circle, rgba(127,71,255,.12) 0%, rgba(127,71,255,0) 68%);
	pointer-events:none;
}

body.home-page[data-theme="dark"] .hero-panel{
	box-shadow:0 26px 80px rgba(0,0,0,.28);
}

body.home-page[data-theme="dark"] .hero-panel::before{
	background:linear-gradient(135deg, rgba(255,255,255,.12) 0%, rgba(255,255,255,0) 42%);
}

body.home-page[data-theme="dark"] .hero-panel::after{
	background:radial-gradient(circle, rgba(157,122,255,.16) 0%, rgba(157,122,255,0) 68%);
}

.hero-chip-row{
	display:flex;
	flex-wrap:wrap;
	justify-content:center;
	gap:8px;
	margin:0 0 10px;
}

.hero-chip{
	padding:6px 12px;
	border-radius:999px;
	font-size:11px;
	line-height:1;
	letter-spacing:.08em;
	color:var(--dialog-text);
	background:rgba(255,255,255,.58);
	border:1px solid rgba(120,90,200,.18);
	box-shadow:
		0 1px 0 rgba(255,255,255,.6) inset,
		0 6px 14px rgba(120,90,200,.14),
		0 0 10px rgba(120,90,200,.10);
	opacity:.96;
}

body.home-page[data-theme="dark"] .hero-chip{
	background:rgba(157,122,255,.14);
	border-color:rgba(157,122,255,.30);
	box-shadow:
		0 1px 0 rgba(255,255,255,.14) inset,
		0 8px 16px rgba(0,0,0,.28),
		0 0 12px rgba(157,122,255,.20);
}

body.home-page[data-theme="dark"] .hero-chip{
	background:rgba(255,255,255,.08);
	border-color:rgba(255,255,255,.12);
	box-shadow:none;
}

.hero-kicker{
	margin:0 0 12px;
	font-size:12px;
	line-height:1.2;
	letter-spacing:.28em;
	text-transform:uppercase;
	color:var(--dialog-muted);
}

.game-title{
	color:var(--text-color);
	font-size:clamp(2.8rem, 8vw, 4.8rem);
	line-height:.95;
	margin:0;
	text-shadow:0 4px 18px var(--shadow-color);
	letter-spacing:.05em;
}

.hero-subtitle{
	width:min(100%, 24rem);
	margin:8px auto 0;
	font-size:clamp(14px, 2.1vw, 16px);
	line-height:1.55;
	height:1.55em;
	position:relative;
	overflow:hidden;
	color:var(--dialog-muted);
}

.hero-subtitle-line{
	position:absolute;
	inset:0;
	display:block;
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
	transform:translateY(0);
	transition:transform .5s cubic-bezier(.22,.61,.36,1);
}

.hero-subtitle.is-resetting .hero-subtitle-line{
	transition:none !important;
}

.hero-subtitle-line.is-next{
	transform:translateY(100%);
}

.hero-subtitle.is-sliding .hero-subtitle-line.is-current{
	transform:translateY(-100%);
}

.hero-subtitle.is-sliding .hero-subtitle-line.is-next{
	transform:translateY(0);
}

.install-spotlight{
	margin-top:18px;
	padding:16px 16px 18px;
	border-radius:24px;
	text-align:left;
	position:relative;
	overflow:hidden;
	background:
		linear-gradient(135deg, rgba(106,69,184,.14) 0%, rgba(255,107,154,.10) 58%, rgba(255,255,255,.86) 100%);
	border:1px solid rgba(127,71,255,.16);
	box-shadow:0 18px 36px rgba(59,40,112,.12);
}

.install-spotlight::before{
	content:"";
	position:absolute;
	inset:auto -30px -48px auto;
	width:120px;
	height:120px;
	border-radius:50%;
	background:radial-gradient(circle, rgba(255,255,255,.46) 0%, rgba(255,255,255,0) 72%);
	pointer-events:none;
}

.install-spotlight-head{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
	margin-bottom:10px;
}

.install-spotlight-badge,
.install-spotlight-dismiss{
	display:inline-flex;
	align-items:center;
	gap:6px;
	min-height:28px;
	padding:0 12px;
	border-radius:999px;
	font-size:12px;
	line-height:1;
	font-weight:800;
}

.install-spotlight-badge{
	color:#fff;
	background:linear-gradient(135deg, var(--black-cell) 0%, var(--current-color) 100%);
	box-shadow:0 10px 22px rgba(106,69,184,.24);
}

.install-spotlight-dismiss{
	color:var(--primary);
	background:rgba(255,255,255,.56);
	border:1px solid rgba(127,71,255,.12);
	cursor:pointer;
	transition:transform var(--transition-speed), background var(--transition-speed), border-color var(--transition-speed), color var(--transition-speed);
}

.install-spotlight-dismiss:hover{
	transform:translateY(-1px);
	background:rgba(255,255,255,.88);
	border-color:rgba(127,71,255,.22);
}

.install-spotlight-dismiss:active{
	transform:translateY(0) scale(.985);
}

.install-spotlight-dismiss:focus-visible{
	outline:2px solid var(--current-color);
	outline-offset:3px;
}

.install-spotlight-title{
	margin:0;
	font-size:24px;
	line-height:1.08;
	color:var(--text-color);
}

.install-spotlight-desc{
	margin:10px 0 0;
	font-size:14px;
	line-height:1.7;
	color:var(--dialog-muted);
	max-width:32rem;
}

.install-spotlight-actions{
	display:flex;
	flex-wrap:wrap;
	gap:10px;
	margin-top:14px;
}

.install-spotlight-btn{
	min-height:42px;
	padding:0 16px;
	border:none;
	border-radius:999px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	font:inherit;
	font-size:14px;
	font-weight:700;
	cursor:pointer;
	transition:transform var(--transition-speed), box-shadow var(--transition-speed), filter var(--transition-speed), background var(--transition-speed);
}

.install-spotlight-btn:hover{
	transform:translateY(-1px);
}

.install-spotlight-btn:active{
	transform:translateY(0) scale(.985);
}

.install-spotlight-btn:focus-visible{
	outline:2px solid var(--current-color);
	outline-offset:3px;
}

.install-spotlight-btn-primary{
	color:#fff;
	background:linear-gradient(135deg, var(--black-cell) 0%, var(--passive-color) 100%);
	box-shadow:0 14px 28px rgba(106,69,184,.24);
}

.install-spotlight-btn-primary:hover{
	filter:brightness(1.04);
}

.install-spotlight-btn-secondary{
	color:var(--text-color);
	background:rgba(255,255,255,.72);
	border:1px solid rgba(127,71,255,.14);
	box-shadow:0 10px 22px rgba(44,30,88,.08);
}

.install-spotlight-btn-secondary:hover{
	background:rgba(255,255,255,.9);
}

body.home-page[data-theme="dark"] .install-spotlight{
	background:
		linear-gradient(135deg, rgba(157,122,255,.16) 0%, rgba(255,107,154,.12) 58%, rgba(255,255,255,.08) 100%);
	border-color:rgba(255,255,255,.10);
	box-shadow:0 20px 40px rgba(0,0,0,.24);
}

body.home-page[data-theme="dark"] .install-spotlight-dismiss{
	color:#f0eaff;
	background:rgba(255,255,255,.08);
	border-color:rgba(255,255,255,.12);
}

body.home-page[data-theme="dark"] .install-spotlight-dismiss:hover{
	background:rgba(255,255,255,.14);
	border-color:rgba(255,255,255,.18);
}

body.home-page[data-theme="dark"] .install-spotlight-btn-secondary{
	color:var(--dialog-text);
	background:rgba(255,255,255,.08);
	border-color:rgba(255,255,255,.12);
	box-shadow:0 12px 24px rgba(0,0,0,.16);
}

body.home-page[data-theme="dark"] .install-spotlight-btn-secondary:hover{
	background:rgba(255,255,255,.14);
}

.menu-buttons{
	display:grid;
	gap:14px;
	margin-top:18px;
}

.menu-secondary-grid{
	display:grid;
	grid-template-columns:repeat(3, minmax(0, 1fr));
	gap:12px;
}

.menu-btn{
	width:100%;
	padding:16px 18px;
	box-sizing:border-box;
	background:rgba(255,255,255,.58);
	color:var(--text-color);
	border:1px solid rgba(255,255,255,.42);
	border-radius:22px;
	cursor:pointer;
	font:inherit;
	transition:
		transform var(--transition-speed),
		background var(--transition-speed),
		box-shadow var(--transition-speed),
		border-color var(--transition-speed);
	box-shadow:0 14px 30px rgba(32,22,62,.08);
	display:flex;
	align-items:center;
	gap:14px;
	text-align:left;
	position:relative;
	isolation:isolate;
	overflow:hidden;
}

.menu-btn::before{
	content:"";
	position:absolute;
	inset:0;
	background:linear-gradient(135deg, rgba(255,255,255,.18) 0%, rgba(255,255,255,0) 40%);
	opacity:.8;
	pointer-events:none;
}

.menu-btn-primary{
	padding:18px 20px;
	background:transparent;
	color:#fff;
	border:none;
	box-shadow:0 18px 40px rgba(106,69,184,.25);
}

.menu-btn-primary::after{
	content:"";
	position:absolute;
	inset:0;
	border-radius:inherit;
	background:linear-gradient(135deg, var(--black-cell) 0%, var(--current-color) 100%);
	z-index:-1;
}

.menu-btn-primary::before{
	background:linear-gradient(135deg, rgba(255,255,255,.10) 0%, rgba(255,255,255,0) 42%);
	opacity:.65;
}

.menu-btn-secondary{
	background:rgba(255,255,255,.56);
}

body.home-page[data-theme="dark"] .menu-btn-secondary{
	background:rgba(255,255,255,.08);
	color:var(--dialog-text);
	border-color:rgba(255,255,255,.10);
	box-shadow:0 16px 32px rgba(0,0,0,.20);
}

body.home-page[data-theme="dark"] .menu-btn::before{
	background:linear-gradient(135deg, rgba(255,255,255,.10) 0%, rgba(255,255,255,0) 40%);
}

.menu-btn-icon{
	width:46px;
	height:46px;
	border-radius:15px;
	display:grid;
	place-items:center;
	flex:none;
	font-size:20px;
	background:rgba(127,71,255,.12);
	color:inherit;
	box-shadow:inset 0 1px 0 rgba(255,255,255,.22);
}

.menu-btn-primary .menu-btn-icon{
	background:rgba(255,255,255,.16);
	border:none;
	box-shadow:inset 0 1px 0 rgba(255,255,255,.16);
}

body.home-page[data-theme="dark"] .menu-btn-secondary .menu-btn-icon{
	background:rgba(157,122,255,.14);
	box-shadow:none;
}

.menu-btn-copy{
	min-width:0;
	display:grid;
	gap:4px;
}

.menu-btn-title{
	font-size:16px;
	font-weight:700;
	line-height:1.2;
}

.menu-btn-desc{
	font-size:13px;
	line-height:1.5;
	opacity:.78;
}

.menu-btn-arrow{
	margin-left:auto;
	font-size:18px;
	line-height:1;
	opacity:.72;
	transition:transform var(--transition-speed), opacity var(--transition-speed);
}

.menu-btn:hover{
	transform:translateY(-2px);
	box-shadow:0 18px 36px rgba(32,22,62,.14);
}

.menu-btn:hover .menu-btn-arrow{
	transform:translateX(3px);
	opacity:.95;
}

body.home-page[data-theme="dark"] .menu-btn:hover{
	box-shadow:0 20px 38px rgba(0,0,0,.28);
}

.menu-btn:active{
	transform:translateY(0) scale(.985);
}

.menu-btn:focus-visible{
	outline:2px solid var(--current-color);
	outline-offset:3px;
}

.home-note{
	margin-top:20px;
	padding-top:16px;
	border-top:1px solid rgba(255,255,255,.28);
	display:flex;
	align-items:center;
	justify-content:center;
	gap:10px;
	color:var(--dialog-muted);
	font-size:13px;
	line-height:1.5;
}

.home-note p{
	margin:0;
}

.home-note-dot{
	width:8px;
	height:8px;
	border-radius:999px;
	flex:none;
	background:linear-gradient(135deg, var(--ok) 0%, var(--current-color) 100%);
	box-shadow:0 0 0 6px rgba(127,71,255,.08);
}

body.home-page[data-theme="dark"] .home-note{
	border-top-color:rgba(255,255,255,.10);
}

.home-social{
	margin-top:10px;
	display:flex;
	justify-content:center;
}

.home-social-link{
	display:inline-flex;
	align-items:center;
	gap:8px;
	padding:8px 12px;
	border-radius:999px;
	font-size:13px;
	line-height:1;
	text-decoration:none;
	color:var(--dialog-muted);
	background:rgba(255,255,255,.46);
	border:1px solid rgba(255,255,255,.35);
	transition:transform var(--transition-speed), color var(--transition-speed), background var(--transition-speed);
}

.home-social-link:hover{
	transform:translateY(-1px);
	color:var(--text-color);
}

body.home-page[data-theme="dark"] .home-social-link{
	background:rgba(255,255,255,.08);
	border-color:rgba(255,255,255,.12);
}

#xProfileLink{
	align-items:flex-start;
	gap:10px;
	padding:10px 14px;
	line-height:1.3;
	border-radius:16px;
	position:relative;
	overflow:hidden;
	color:#8f1c24;
	border-color:rgba(236,86,86,.62);
	background:linear-gradient(135deg, rgba(255,242,242,.92) 0%, rgba(255,255,255,.86) 56%, rgba(255,231,238,.92) 100%);
	box-shadow:
		0 0 0 1px rgba(255,113,113,.32),
		0 12px 30px rgba(216,39,78,.22),
		0 0 20px rgba(255,70,70,.24);
	animation:xRantPulse 1.6s ease-in-out infinite;
}

#xProfileLink::before{
	content:"";
	position:absolute;
	inset:-30% auto auto -30%;
	width:68%;
	height:180%;
	background:linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.52) 50%, rgba(255,255,255,0) 100%);
	transform:translateX(-170%) rotate(14deg);
	animation:xRantSweep 2.2s linear infinite;
	pointer-events:none;
}

#xProfileLink .bi{
	flex:none;
	margin-top:2px;
}

.x-rant-copy{
	display:flex;
	flex-direction:column;
	align-items:flex-start;
	gap:4px;
	min-width:0;
}

.x-rant-name{
	display:flex;
	flex-wrap:wrap;
	gap:4px;
	font-size:13px;
	font-weight:700;
	color:#981b26;
}

.x-rant-name s{
	color:#6f7485;
	text-decoration-color:#ff2f57;
	text-decoration-thickness:2px;
}

.x-rant-name strong{
	padding:2px 8px;
	border-radius:999px;
	font-size:12px;
	line-height:1.2;
	color:#fff;
	background:linear-gradient(135deg, #ff355f 0%, #b80d45 100%);
	box-shadow:0 4px 12px rgba(184,13,69,.34);
}

.x-rant-line{
	font-size:12px;
	font-weight:700;
	line-height:1.45;
	color:#b11135;
	text-shadow:0 0 10px rgba(255,71,115,.28);
}

#xProfileLink:hover{
	transform:translateY(-2px) scale(1.01);
	color:#8f1c24;
}

body.home-page[data-theme="dark"] #xProfileLink{
	color:#ffd6de;
	border-color:rgba(255,114,149,.54);
	background:linear-gradient(135deg, rgba(86,20,44,.92) 0%, rgba(42,18,54,.95) 55%, rgba(92,17,48,.88) 100%);
	box-shadow:
		0 0 0 1px rgba(255,113,171,.30),
		0 12px 34px rgba(0,0,0,.34),
		0 0 22px rgba(255,76,149,.30);
}

body.home-page[data-theme="dark"] .x-rant-name{
	color:#ffdce7;
}

body.home-page[data-theme="dark"] .x-rant-name s{
	color:#e4bac6;
	text-decoration-color:#ff7aa9;
}

body.home-page[data-theme="dark"] .x-rant-name strong{
	background:linear-gradient(135deg, #ff4a87 0%, #d01661 100%);
}

body.home-page[data-theme="dark"] .x-rant-line{
	color:#ffd2df;
	text-shadow:0 0 14px rgba(255,117,172,.35);
}

@keyframes xRantPulse{
	0%, 100%{
		box-shadow:
			0 0 0 1px rgba(255,113,113,.28),
			0 10px 24px rgba(216,39,78,.18),
			0 0 16px rgba(255,70,70,.20);
	}
	50%{
		box-shadow:
			0 0 0 1px rgba(255,70,70,.44),
			0 14px 34px rgba(216,39,78,.28),
			0 0 28px rgba(255,49,109,.36);
	}
}

@keyframes xRantSweep{
	0%{
		transform:translateX(-170%) rotate(14deg);
	}
	100%{
		transform:translateX(220%) rotate(14deg);
	}
}

/* ===== Intro.js Home Skin ===== */
.introjs-overlay{
	background:rgba(15, 8, 34, .50) !important;
}

.introjs-helperLayer{
	background:transparent !important;
	border-radius:20px !important;
	box-shadow:
		0 0 0 1px rgba(127,71,255,.45),
		0 14px 34px rgba(22,14,44,.28) !important;
}

.home-intro-highlight{
	border-radius:20px;
}

.introjs-tooltipReferenceLayer{
	/* Keep tooltip layer above overlay; low z-index can turn Next click into overlay click (exit). */
	z-index:100000001 !important;
	pointer-events:none !important;
}

.introjs-tooltip.home-intro-tooltip{
	pointer-events:auto !important;
	min-width:0 !important;
	width:min(320px, calc(100vw - 28px)) !important;
	max-width:min(320px, calc(100vw - 28px)) !important;
	background:var(--dialog-bg) !important;
	border:1px solid var(--dialog-border) !important;
	border-radius:16px !important;
	backdrop-filter:blur(18px);
	-webkit-backdrop-filter:blur(18px);
	box-shadow:0 18px 44px rgba(30,20,60,.22) !important;
	color:var(--dialog-text) !important;
	padding:0 !important;
}

.home-intro-tooltip .introjs-tooltip-header{
	padding:14px 14px 0 !important;
}

.home-intro-tooltip .introjs-tooltip-title{
	font-size:16px !important;
	line-height:1.35 !important;
	font-weight:700 !important;
	color:var(--dialog-text) !important;
	margin:0 !important;
}

.home-intro-tooltip .introjs-tooltiptext{
	padding:8px 14px 12px !important;
	font-size:14px !important;
	line-height:1.6 !important;
	color:var(--dialog-muted) !important;
}

.home-intro-tooltip .introjs-tooltipbuttons{
	padding:10px 12px 12px !important;
	border-top:1px solid rgba(127,71,255,.12) !important;
	display:flex !important;
	gap:8px !important;
}

.home-intro-tooltip .introjs-button{
	flex:1 1 0;
	display:inline-flex !important;
	align-items:center !important;
	justify-content:center !important;
	float:none !important;
	min-width:0 !important;
	min-height:34px !important;
	border-radius:10px !important;
	padding:7px 10px !important;
	font-size:13px !important;
	line-height:1.2 !important;
	text-align:center !important;
	border:1px solid rgba(127,71,255,.20) !important;
	background:rgba(255,255,255,.72) !important;
	color:var(--dialog-text) !important;
	text-shadow:none !important;
	box-shadow:none !important;
}

.home-intro-tooltip .introjs-skipbutton{
	font-size:11px !important;
	font-weight:600 !important;
	line-height:1 !important;
	padding:6px 8px !important;
	color:var(--dialog-muted) !important;
}

.introjs-tooltip.home-intro-tooltip .introjs-tooltipbuttons .introjs-prevbutton,
.introjs-tooltip.home-intro-tooltip .introjs-tooltipbuttons .introjs-nextbutton,
.introjs-tooltip.home-intro-tooltip .introjs-tooltipbuttons .introjs-donebutton{
	display:inline-flex !important;
	align-items:center !important;
	justify-content:center !important;
	text-align:center !important;
}

.home-intro-tooltip .introjs-button:hover{
	background:rgba(255,255,255,.90) !important;
	border-color:rgba(127,71,255,.32) !important;
}

.home-intro-tooltip .introjs-button:focus-visible{
	outline:2px solid var(--current-color) !important;
	outline-offset:1px !important;
}

.home-intro-tooltip .introjs-nextbutton{
	background:linear-gradient(135deg, var(--black-cell) 0%, var(--current-color) 100%) !important;
	color:#fff !important;
	border-color:transparent !important;
}

.home-intro-tooltip .introjs-nextbutton:hover{
	background:linear-gradient(135deg, var(--black-cell) 0%, var(--current-color) 100%) !important;
	color:#fff !important;
	filter:brightness(1.05);
}

.home-intro-tooltip .introjs-donebutton{
	background:linear-gradient(135deg, var(--black-cell) 0%, var(--current-color) 100%) !important;
	color:#fff !important;
	border-color:transparent !important;
}

.home-intro-tooltip .introjs-donebutton:hover{
	background:linear-gradient(135deg, var(--black-cell) 0%, var(--current-color) 100%) !important;
	color:#fff !important;
	filter:brightness(1.05);
}

.home-intro-tooltip .introjs-bullets{
	margin:0 12px 8px !important;
}

.home-intro-tooltip .introjs-bullets ul li a{
	width:7px !important;
	height:7px !important;
	background:rgba(127,71,255,.22) !important;
}

.home-intro-tooltip .introjs-bullets ul li a.active{
	background:var(--current-color) !important;
}

.home-intro-tooltip .introjs-progress{
	height:4px !important;
	margin:0 14px 8px !important;
	background:rgba(127,71,255,.10) !important;
	border-radius:999px !important;
}

.home-intro-tooltip .introjs-progressbar{
	background:linear-gradient(90deg, var(--black-cell), var(--current-color)) !important;
	border-radius:inherit !important;
}

body.home-page[data-theme="dark"] .introjs-overlay{
	background:rgba(5, 3, 12, .62) !important;
}

body.home-page[data-theme="dark"] .introjs-helperLayer{
	box-shadow:
		0 0 0 1px rgba(157,122,255,.50),
		0 16px 36px rgba(0,0,0,.44) !important;
}

body.home-page[data-theme="dark"] .introjs-tooltip.home-intro-tooltip{
	box-shadow:0 20px 50px rgba(0,0,0,.40) !important;
}

body.home-page[data-theme="dark"] .home-intro-tooltip .introjs-tooltipbuttons{
	border-top:1px solid rgba(255,255,255,.10) !important;
}

body.home-page[data-theme="dark"] .home-intro-tooltip .introjs-button{
	background:rgba(255,255,255,.08) !important;
	border-color:rgba(255,255,255,.14) !important;
	color:var(--dialog-text) !important;
}

body.home-page[data-theme="dark"] .home-intro-tooltip .introjs-button:hover{
	background:rgba(255,255,255,.14) !important;
	border-color:rgba(157,122,255,.36) !important;
}

body.home-page[data-theme="dark"] .home-intro-tooltip .introjs-bullets ul li a{
	background:rgba(157,122,255,.30) !important;
}

body.home-page[data-theme="dark"] .home-intro-tooltip .introjs-progress{
	background:rgba(255,255,255,.08) !important;
}

@keyframes homePanelIn{
	0%{
		opacity:0;
		transform:translateY(14px) scale(.985);
	}
	100%{
		opacity:1;
		transform:none;
	}
}

@media (max-width: 820px){
	.menu-secondary-grid{
		grid-template-columns:repeat(2, minmax(0, 1fr));
	}

	#devLog{
		grid-column:1 / -1;
	}
}

@media (max-width: 560px){
	body.home-page{
		--home-pad-top:16px;
		--home-pad-inline:14px;
		--home-pad-bottom:20px;
	}

	.menu-container{
		width:100%;
	}

	.hero-panel{
		padding:22px 18px;
		border-radius:24px;
	}

	.hero-chip-row{
		gap:8px;
		margin-bottom:16px;
	}

	.hero-kicker{
		letter-spacing:.22em;
	}

	.hero-subtitle{
		margin-top:16px;
		line-height:1.65;
		height:1.65em;
	}

	.install-spotlight{
		margin-top:16px;
		padding:15px 14px 16px;
		border-radius:20px;
	}

	.install-spotlight-head{
		flex-wrap:wrap;
	}

	.install-spotlight-title{
		font-size:21px;
	}

	.install-spotlight-actions{
		flex-direction:column;
	}

	.install-spotlight-btn{
		width:100%;
		justify-content:center;
	}

	.menu-secondary-grid{
		grid-template-columns:1fr;
	}

	#devLog{
		grid-column:auto;
	}

	.menu-btn{
		padding:15px 16px;
		border-radius:18px;
		gap:12px;
	}

	.menu-btn-primary{
		padding:17px 18px;
	}

	.menu-btn-icon{
		width:42px;
		height:42px;
		border-radius:13px;
		font-size:18px;
	}

	.menu-btn-title{
		font-size:15px;
	}

	.menu-btn-desc{
		font-size:12px;
	}

	.home-note{
		justify-content:flex-start;
		text-align:left;
	}

	#xProfileLink{
		padding:10px 12px;
		border-radius:14px;
	}

	.x-rant-line{
		font-size:11px;
		line-height:1.5;
	}
}

@media (max-width: 380px){
	.menu-btn-arrow{
		display:none;
	}

	.hero-chip{
		font-size:11px;
		padding:6px 10px;
	}
}

/* ===== 棋盘 ===== */
.board{
	width:min(92vw, 400px);
	height:auto;
	aspect-ratio:1 / 1;
	max-width:400px;
	max-height:400px;
	display:grid;
	grid-template-columns:repeat(10, minmax(0, 1fr));
	gap:clamp(2px, 0.7vw, 4px);
	padding:clamp(8px, 2vw, 12px);
	background:var(--board-color);
	border-radius:12px;
	box-shadow:0 4px 20px var(--shadow-color);
	transition: background var(--transition-speed), box-shadow var(--transition-speed);
}

/* ===== 回合 + 按钮 ===== */
.round-info{
	font-size:16px;
	font-weight:700;
	letter-spacing:.5px;
	color:var(--text-color);
	opacity:.9;
	margin-top:4px;
}

.controls{
	display:flex;
	gap:14px;
	justify-content:center;
	align-items:center;
}

.dice-btn{
	width:64px;
	height:64px;
	border-radius:999px;
	border:none;
	color:#fff;
	font-weight:700;
	letter-spacing:.5px;
	cursor:pointer;
	box-shadow:0 8px 22px rgba(0,0,0,.22);
	transition: transform .15s ease, filter .15s ease, box-shadow .15s ease, opacity .15s ease;
}

.dice-btn:hover{
	transform:scale(1.05);
	filter:brightness(1.05);
	box-shadow:0 10px 26px rgba(0,0,0,.28);
}

.dice-btn:active{ transform:scale(.98); }
.dice-btn.master{
	background: var(--master-color);
}

.dice-btn.passive{
	background: var(--passive-color);
}
.dice-btn:disabled{
	opacity:.5;
	cursor:not-allowed;
	transform:none;
	filter:none;
	box-shadow:none;
}

@media (max-width:420px){
	.dice-btn{ width:58px; height:58px; font-size:13px; }
	.controls{ gap:12px; }
	.round-info{ font-size:15px; }
}

/* ===== 任务面板：避免“边框跳变” ===== */
.task-panel{
	width:min(100%,520px);
	max-width:calc(100vw - 24px);
	margin:14px auto 0;
	padding:12px;
	border-radius:14px;
	box-sizing:border-box;

	background:var(--bg-color);
	border:1px solid transparent;

	backdrop-filter:blur(10px);
	-webkit-backdrop-filter:blur(10px);

	display:grid;
	gap:10px;
	align-self:center;
	transition: background var(--transition-speed), box-shadow var(--transition-speed);
	position:relative;
	box-shadow:0 6px 20px rgba(0,0,0,.06);
}

.task-panel::before{
	content:"";
	position:absolute;
	inset:0;
	border-radius:inherit;
	border:1px solid var(--cell-color);
	opacity:.7;
	pointer-events:none;
	transition: opacity var(--transition-speed), border-color var(--transition-speed);
}

.task-block{
	padding:10px 12px;
	border-radius:12px;
	background:var(--bg-color);
	border:1px solid transparent;

	transition: background var(--transition-speed), box-shadow var(--transition-speed);
	position:relative;
	box-shadow:0 4px 14px rgba(0,0,0,.05);
}

.task-block::before{
	content:"";
	position:absolute;
	inset:0;
	border-radius:inherit;
	border:1px solid var(--cell-color);
	opacity:.55;
	pointer-events:none;
	transition: opacity var(--transition-speed), border-color var(--transition-speed);
}

.task-title{
	font-size:12px;
	opacity:.7;
	margin-bottom:6px;
	display:flex;
	align-items:center;
	justify-content:center;
	gap:6px;
}

.task-title-label{
	display:inline-flex;
	align-items:center;
}

.task-live-count{
	display:inline-flex;
	align-items:center;
	padding:1px 7px;
	border-radius:999px;
	font-size:10px;
	line-height:1.2;
	font-weight:700;
	color:color-mix(in srgb, var(--passive-color) 80%, #111);
	background:color-mix(in srgb, var(--passive-color) 14%, transparent);
	border:1px solid color-mix(in srgb, var(--passive-color) 28%, transparent);
}

.task-detail-trigger{
	width:18px;
	height:18px;
	border-radius:999px;
	border:1px solid color-mix(in srgb, var(--passive-color) 45%, transparent);
	background:color-mix(in srgb, var(--passive-color) 14%, transparent);
	color:var(--passive-color);
	display:inline-flex;
	align-items:center;
	justify-content:center;
	cursor:pointer;
	padding:0;
	line-height:1;
	font-size:11px;
	transition:transform .15s ease, filter .15s ease, background var(--transition-speed), border-color var(--transition-speed);
}

.task-detail-trigger:hover{
	transform:scale(1.06);
	filter:brightness(1.04);
}

.task-detail-trigger:active{
	transform:scale(.96);
}

.task-detail-trigger i{
	font-size:10px;
	font-weight:800;
	line-height:1;
}

.task-detail-trigger:focus-visible{
	outline:2px solid color-mix(in srgb, var(--passive-color) 70%, #fff);
	outline-offset:2px;
}

.task-badge{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	padding:2px 8px;
	border-radius:999px;
	font-size:10px;
	line-height:1.2;
	font-weight:700;
	opacity:1;
	color:#fff;
	background:linear-gradient(135deg, #ff6b8b 0%, #6a45b8 100%);
}

.task-badge[hidden]{
	display:none !important;
}

.task-content{
	font-size:15px;
	font-weight:600;
	word-break:break-word;
	text-align:center;
}

#taskMaster{ color:#b42318; }
#taskPassive{ color:#1d4ed8; }

/* ===== 格子 ===== */
.cell{
	background:var(--cell-color);
	border-radius:var(--cell-radius);
	display:flex;
	align-items:stretch;
	justify-content:stretch;
	min-width:0;
	min-height:0;
	aspect-ratio:1 / 1;
	font-size:12px;
	color:var(--text-color);
	transition: transform var(--transition-speed), background var(--transition-speed);
}

/* 主/被当前位置 */
.master-location{
	outline:2px solid var(--master-color);
	box-shadow:0 0 0 4px var(--master-glow);
}

.passive-location{
	outline:2px solid var(--passive-color);
	box-shadow:0 0 0 4px var(--passive-glow);
}

.black{
	background:var(--black-cell);
	cursor:pointer;
	position:relative;
	overflow:hidden;
}

.black::after{
	content:'';
	position:absolute;
	inset:0;
	background:radial-gradient(circle at center, rgba(255,255,255,0.12) 0%, transparent 60%);
	pointer-events:none;
}

.start{
	background:var(--start-cell);
	cursor:pointer;
	font-weight:700;
}

.end{
	background:var(--end-cell);
	cursor:pointer;
	font-weight:700;
}

.black:hover,.start:hover,.end:hover{
	transform:scale(var(--hover-scale));
	z-index:2;
	box-shadow:0 2px 8px var(--shadow-color);
}



/* ===== 动效 ===== */
@keyframes pulse{
	0%{ transform:scale(1); opacity:1; }
	50%{ transform:scale(1.08); opacity:.9; box-shadow:0 0 20px var(--current-glow); }
	100%{ transform:scale(1); opacity:1; }
}

@keyframes movingGlow{
	0%{ box-shadow:0 0 5px var(--moving-glow), inset 0 0 10px var(--moving-glow); }
	50%{ box-shadow:0 0 15px var(--moving-glow), inset 0 0 15px var(--moving-glow); }
	100%{ box-shadow:0 0 5px var(--moving-glow), inset 0 0 10px var(--moving-glow); }
}

.current-location{
	background:var(--current-color) !important;
	animation:pulse 1s ease-in-out infinite;
	box-shadow:0 0 12px var(--current-glow);
	z-index:2;
}

.moving{
	position:relative;
	transform:scale(1.05);
	z-index:3;
	transition: all .3s cubic-bezier(0.22,0.61,0.36,1);
	animation:movingGlow 1s ease-in-out infinite;
}

/* ===== 骰子弹窗 ===== */
@keyframes dicePopIn{
	0%{ transform:translate(-50%,-50%) scale(.8); opacity:0; }
	100%{ transform:translate(-50%,-50%) scale(1); opacity:1; }
}

@keyframes diceOverlayIn{
	0%{ opacity:0; }
	100%{ opacity:1; }
}

.dice-overlay{
	position:fixed;
	inset:0;
	background: rgba(0,0,0,.32);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	z-index:9998;
	animation:diceOverlayIn .12s ease;
}

/* 背景冻结（可选，但很爽） */
body.dice-focus .board,
body.dice-focus .controls,
body.dice-focus .task-panel{
	filter: blur(1.5px) saturate(.9) brightness(.92);
	transform: scale(.992);
	transition: filter .12s ease, transform .12s ease;
	pointer-events:none; /* 骰子期间别点到棋盘 */
}

.popup{
	position:fixed;
	left:50%;
	top:50%;
	transform:translate(-50%,-50%);
	width:140px;
	height:140px;
	background:var(--board-color);
	border:2px solid var(--black-cell);
	border-radius:14px;
	z-index:9999;
	box-shadow: 0 18px 60px rgba(0,0,0,.22);
	display:flex;
	align-items:center;
	justify-content:center;
	backdrop-filter:blur(4px);
	z-index:9999;
	animation:dicePopIn .3s cubic-bezier(0.34,1.56,0.64,1);
}

.dice{
	position:relative;
	width:90px;
	height:90px;
	display:grid;
	grid-template-columns:repeat(3,1fr);
	grid-template-rows:repeat(3,1fr);
	background:var(--cell-color);
	border:2px solid var(--black-cell);
	border-radius:12px;
	padding:12px;
	box-shadow: inset 0 2px 4px rgba(255,255,255,0.1), 0 2px 8px var(--shadow-color);
}

/* .dice::after{
	content: attr(data-point);
	position:absolute;
	bottom:-28px;
	left:50%;
	transform:translateX(-50%);
	color:var(--text-color);
	font-weight:700;
	font-size:18px;
	opacity:.8;
} */

.dot{
	width:16px;
	height:16px;
	border-radius:50%;
	opacity:0;
	place-self:center;
	position:relative;
	background: var(--text-color);
	box-shadow:
		inset 0 1px 2px rgba(255,255,255,.18),
		inset 0 -2px 3px rgba(0,0,0,.28),
		0 1px 2px rgba(0,0,0,.15);
}

.dot::after{
	content:"";
	position:absolute;
	left:3px;
	top:3px;
	width:6px;
	height:6px;
	border-radius:50%;
	background: rgba(255,255,255,.45);
	filter: blur(.2px);
}

/* 9个点布局 */
.dot:nth-child(1){ grid-area:1/1; }
.dot:nth-child(2){ grid-area:1/2; }
.dot:nth-child(3){ grid-area:1/3; }
.dot:nth-child(4){ grid-area:2/1; }
.dot:nth-child(5){ grid-area:2/2; }
.dot:nth-child(6){ grid-area:2/3; }
.dot:nth-child(7){ grid-area:3/1; }
.dot:nth-child(8){ grid-area:3/2; }
.dot:nth-child(9){ grid-area:3/3; }

/* 点数显隐 */
[data-point="1"] .dot:nth-child(5){ opacity:1; }
[data-point="2"] .dot:nth-child(1),
[data-point="2"] .dot:nth-child(9){ opacity:1; }
[data-point="3"] .dot:nth-child(1),
[data-point="3"] .dot:nth-child(5),
[data-point="3"] .dot:nth-child(9){ opacity:1; }
[data-point="4"] .dot:nth-child(1),
[data-point="4"] .dot:nth-child(3),
[data-point="4"] .dot:nth-child(7),
[data-point="4"] .dot:nth-child(9){ opacity:1; }
[data-point="5"] .dot:nth-child(1),
[data-point="5"] .dot:nth-child(3),
[data-point="5"] .dot:nth-child(5),
[data-point="5"] .dot:nth-child(7),
[data-point="5"] .dot:nth-child(9){ opacity:1; }
[data-point="6"] .dot:nth-child(1),
[data-point="6"] .dot:nth-child(3),
[data-point="6"] .dot:nth-child(4),
[data-point="6"] .dot:nth-child(6),
[data-point="6"] .dot:nth-child(7),
[data-point="6"] .dot:nth-child(9){ opacity:1; }

/* ===== 通用遮罩 ===== */
.punishment-overlay{
	position:fixed;
	inset:0;
	background:var(--overlay-bg);
	backdrop-filter:blur(16px);
	-webkit-backdrop-filter:blur(16px);
	z-index:999;
	display:flex;
	justify-content:center;
	align-items:center;
	padding:16px;
}

/* ===== 关键：弹窗改成“头固定 + 内容滚动 + 底固定按钮” ===== */
@keyframes popIn{
	0%{ transform:scale(.92); opacity:0; }
	100%{ transform:scale(1); opacity:1; }
}

.punishment-dialog{
	width:min(92vw, 520px);
	max-height:min(86vh, 760px);
    max-height: 90%;
    max-width: 280px; 
	background:var(--dialog-bg);
	border-radius:14px;
	box-shadow:0 12px 48px rgba(0,0,0,0.12);
	backdrop-filter:blur(24px);
	-webkit-backdrop-filter:blur(24px);
	border:1px solid var(--dialog-border);
	animation: popIn .3s cubic-bezier(0.22,0.61,0.36,1);
    /* padding-bottom: 10px; */
	display:flex;
	flex-direction:column;
	overflow:hidden;
}

/* 标题固定（你之前用 punishment-title，继续兼容） */
.punishment-title{
	margin:0;
	padding:14px 16px;
	color:var(--dialog-text);
	font-size:18px;
	font-weight:700;
	letter-spacing:.4px;
	border-bottom:1px solid rgba(0,0,0,0.06);
}

[data-theme="dark"] .punishment-title{
	border-bottom:1px solid rgba(255,255,255,0.10);
}

/* 内容滚动 */
.punishment-content{
	color:var(--dialog-muted);
	padding:14px 16px 10px;
	line-height:1.6;
	font-size:15px;
	overflow:auto;
	-webkit-overflow-scrolling:touch;
}

.punishment-content{
	-webkit-overflow-scrolling: touch;
	scrollbar-gutter: stable both-edges; 
}

.punishment-content{
	scrollbar-width: thin; 
	scrollbar-color: rgba(120,120,120,.55) rgba(0,0,0,0);
}

/* 3) Chromium / WebKit（Chrome / Edge / Safari）- 日间灰色 */
.punishment-content::-webkit-scrollbar{
	width: 10px;
}
.punishment-content::-webkit-scrollbar-track{
	background: transparent;
	border-radius: 999px;
}
.punishment-content::-webkit-scrollbar-thumb{
	border-radius: 999px;

	/* 日间模式：中性灰色 */
	background: linear-gradient(
		180deg,
		rgba(150,150,150,.55),
		rgba(100,100,100,.35)
	);


	border: 3px solid rgba(0,0,0,0);        
	background-clip: padding-box;

	/* 轻微高光 */
	box-shadow: inset 0 0 0 1px rgba(255,255,255,.18);
}
.punishment-content::-webkit-scrollbar-thumb:hover{
	background: linear-gradient(
		180deg,
		rgba(120,120,120,.72),
		rgba(80,80,80,.48)
	);
}
.punishment-content::-webkit-scrollbar-thumb:active{
	background: linear-gradient(
		180deg,
		rgba(100,100,100,.9),
		rgba(60,60,60,.62)
	);
}

/* 4) 夜间：紫色主题保持不变 */
[data-theme="dark"] .punishment-content{
	scrollbar-color: rgba(157,122,255,.60) rgba(255,255,255,0);
}
[data-theme="dark"] .punishment-content::-webkit-scrollbar-thumb{
	background: linear-gradient(
		180deg,
		rgba(157,122,255,.55),
		rgba(127,71,255,.35)
	);
	box-shadow: inset 0 0 0 1px rgba(255,255,255,.14);
}
[data-theme="dark"] .punishment-content::-webkit-scrollbar-thumb:hover{
	background: linear-gradient(
		180deg,
		rgba(157,122,255,.70),
		rgba(127,71,255,.48)
	);
}

.b-task-stats-content{
	display:flex;
	flex-direction:column;
	gap:12px;
}

.b-task-stats-section{
	display:flex;
	flex-direction:column;
	gap:8px;
}

.b-task-stats-row{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
	font-size:14px;
}

.b-task-stats-row-emphasis{
	align-items:flex-start;
}

.b-task-stats-row span{
	color:var(--dialog-muted);
}

.b-task-stats-row strong{
	color:var(--dialog-text);
	font-weight:700;
	white-space:nowrap;
	font-variant-numeric:tabular-nums;
}

.b-task-stats-value-wrap{
	display:inline-flex;
	align-items:center;
	gap:8px;
}

.b-task-stats-stack{
	display:flex;
	flex-direction:column;
	align-items:flex-start;
	gap:8px;
	font-size:14px;
}

.b-task-stats-stack > span{
	color:var(--dialog-muted);
}

.b-task-stats-info-btn{
	width:18px;
	height:18px;
	border-radius:999px;
	border:1px solid color-mix(in srgb, var(--passive-color) 45%, transparent);
	background:color-mix(in srgb, var(--passive-color) 14%, transparent);
	color:var(--passive-color);
	display:inline-flex;
	align-items:center;
	justify-content:center;
	cursor:pointer;
	padding:0;
	font-size:10px;
	line-height:1;
	transition:transform .15s ease, filter .15s ease, background var(--transition-speed), border-color var(--transition-speed);
}

.b-task-stats-info-btn:hover{
	transform:scale(1.06);
	filter:brightness(1.04);
}

.b-task-stats-info-btn:active{
	transform:scale(.96);
}

.b-task-stats-info-btn i{
	font-size:10px;
	font-weight:800;
	line-height:1;
}

.b-task-stats-info-btn:focus-visible{
	outline:2px solid color-mix(in srgb, var(--passive-color) 70%, #fff);
	outline-offset:2px;
}

.b-task-stats-divider{
	height:1px;
	background:color-mix(in srgb, var(--dialog-text) 10%, transparent);
}

.b-task-stats-note{
	margin:2px 0 0;
	font-size:13px;
	line-height:1.55;
	color:var(--dialog-muted);
}

.rest-countdown-dialog{
	max-width:320px;
}

.rest-countdown-content{
	padding:18px 18px 20px;
	display:flex;
	flex-direction:column;
	align-items:center;
	gap:14px;
	text-align:center;
	overflow:visible;
}

.rest-countdown-badge{
	padding:6px 12px;
	border-radius:999px;
	font-size:12px;
	line-height:1;
	letter-spacing:.08em;
	color:var(--dialog-text);
	background:rgba(127,71,255,0.10);
	border:1px solid rgba(127,71,255,0.16);
}

.rest-countdown-text{
	width:100%;
	font-size:16px;
	font-weight:600;
	line-height:1.5;
	color:var(--dialog-text);
}

.rest-countdown-number{
	font-size:clamp(42px, 14vw, 64px);
	font-weight:800;
	line-height:1;
	letter-spacing:.06em;
	color:var(--dialog-text);
	text-shadow:0 8px 24px rgba(127,71,255,0.18);
	font-variant-numeric:tabular-nums;
}

.rest-countdown-progress{
	width:100%;
	height:14px;
	padding:2px;
	border-radius:999px;
	background:rgba(127,71,255,0.10);
	border:1px solid rgba(127,71,255,0.12);
	box-shadow:inset 0 1px 2px rgba(255,255,255,0.28);
	overflow:hidden;
}

.rest-countdown-progress-bar{
	width:100%;
	height:100%;
	border-radius:inherit;
	background:linear-gradient(90deg, var(--passive-color), var(--ok));
	transform:scaleX(0);
	transform-origin:left center;
	transition:transform .1s linear;
	box-shadow:0 4px 14px rgba(255,107,154,0.22);
}

.rest-countdown-note{
	font-size:13px;
	line-height:1.5;
	color:var(--dialog-muted);
}

[data-theme="dark"] .rest-countdown-badge{
	background:rgba(157,122,255,0.18);
	border-color:rgba(255,255,255,0.10);
}

[data-theme="dark"] .rest-countdown-progress{
	background:rgba(255,255,255,0.08);
	border-color:rgba(255,255,255,0.10);
	box-shadow:inset 0 1px 2px rgba(0,0,0,0.22);
}

[data-theme="dark"] .rest-countdown-number{
	text-shadow:0 10px 28px rgba(0,0,0,0.35);
}

/* 5) 触屏端优化 */
@media (pointer: coarse){
	.punishment-content::-webkit-scrollbar{
		width: 8px;
	}
	.punishment-content::-webkit-scrollbar-thumb{
		border-width: 2px;
	}
}

@media (max-width: 480px){
	.rest-countdown-content{
		padding:16px 16px 18px;
		gap:12px;
	}

	.rest-countdown-text{
		font-size:15px;
	}

	.rest-countdown-progress{
		height:12px;
	}
}

.dialog-buttons{
    margin-top: 10px;
	padding:12px 16px;
	border-top:1px solid rgba(0,0,0,0.06);
	display:flex;
	gap:10px;
	flex-direction:column;
}

[data-theme="dark"] .dialog-buttons{
	border-top:1px solid rgba(255,255,255,0.10);
}

/* 按钮 */
.punishment-button{
	background: rgba(255,255,255,0.7);
	color: var(--dialog-text);
	border: 1px solid rgba(0,0,0,0.10);
	padding: 10px 12px;
	border-radius: 10px;
	width: 80%;
    margin: 0 auto 10px;
	font-size: 16px;
	cursor: pointer;
	transition: transform .12s ease, background .2s ease, box-shadow .2s ease, opacity .2s ease;
	box-shadow: 0 2px 8px rgba(0,0,0,0.05);
	text-align:center;
	line-height:1.4;
}

[data-theme="dark"] .punishment-button{
	background: rgba(255,255,255,0.10);
	border: 1px solid rgba(255,255,255,0.14);
	color: rgba(255,255,255,0.92);
	box-shadow: 0 2px 10px rgba(0,0,0,0.25);
}

.punishment-button:hover{
	background: rgba(255,255,255,0.9);
	box-shadow: 0 4px 12px rgba(0,0,0,0.10);
}

[data-theme="dark"] .punishment-button:hover{
	background: rgba(255,255,255,0.16);
}

.punishment-button:active{ transform: scale(.98); }

/* 你那俩按钮 id 继续保留 */
#confirmRestart{
	background: rgba(100,230,150,0.78);
	color: #ffffff;
	border-color: rgba(0,0,0,0.08);
}
#cancelRestart{
	background: rgba(255,100,100,0.76);
	color: #ffffff;
	border-color: rgba(0,0,0,0.08);
}

/* ===== 抖一抖 ===== */
@keyframes shake{
	0%,100%{ transform: translateX(0); }
	20%{ transform: translateX(-5px); }
	40%{ transform: translateX(5px); }
	60%{ transform: translateX(-5px); }
	80%{ transform: translateX(5px); }
}

/* ===== 免责声明文案 ===== */
.legal-disclaimer{
	font-size:14px;
	line-height:1.6;
	color:var(--dialog-muted);
}
.legal-disclaimer strong{
	display:block;
	text-align:center;
	font-size:16px;
	color:var(--dialog-text);
	margin-bottom:6px;
}
.legal-disclaimer a{ font-weight:600; }

/* ===== 退出遮罩 ===== */
.exit-overlay{
	position:fixed;
	inset:0;
	background:rgba(255,255,255,0.95);
	backdrop-filter:blur(10px);
	display:flex;
	justify-content:center;
	align-items:center;
	z-index:9999;
}
[data-theme="dark"] .exit-overlay{
	background:rgba(10,10,14,0.92);
}

.exit-message{
	text-align:center;
	padding:30px;
	background:rgba(255,255,255,0.9);
	border-radius:12px;
	box-shadow:0 8px 32px rgba(0,0,0,0.1);
	animation: popIn .3s ease-out;
}
[data-theme="dark"] .exit-message{
	background:rgba(42,33,80,0.78);
	color:rgba(255,255,255,0.92);
}

/* ===== 棋盘/模式选择弹窗（沿用 punishment-dialog 结构也行，这里保留 board-dialog 兼容） ===== */
.board-segmented{
	position:relative;
	margin:8px 0 14px;
	padding:6px;
	border-radius:14px;
	background:rgba(255,255,255,0.55);
	border:1px solid rgba(0,0,0,0.06);
	box-shadow:0 10px 28px rgba(0,0,0,0.06);
	backdrop-filter:blur(14px);
	-webkit-backdrop-filter:blur(14px);
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:6px;
}

[data-theme="dark"] .board-segmented{
	background:rgba(255,255,255,0.08);
	border:1px solid rgba(255,255,255,0.12);
	box-shadow:0 12px 34px rgba(0,0,0,0.25);
}

.board-seg-btn{
	position:relative;
	z-index:2;
	border:none;
	background:transparent;
	color:var(--dialog-muted);
	font-size:14px;
	font-weight:800;
	padding:10px 8px;
	border-radius:12px;
	cursor:pointer;
	transition:color .18s ease, transform .12s ease;
}

.board-seg-btn.active{
	color:var(--dialog-text);
}

.board-seg-btn:active{
	transform:scale(.98);
}

.board-seg-indicator{
	position:absolute;
	top:6px;
	left:6px;
	height:calc(100% - 12px);
	width:calc(50% - 6px);
	border-radius:12px;
	z-index:1;
	background:rgba(255,255,255,0.78);
	border:1px solid rgba(0,0,0,0.06);
	box-shadow:0 8px 22px rgba(0,0,0,0.10);
	backdrop-filter:blur(18px);
	-webkit-backdrop-filter:blur(18px);
	transform:translateX(0);
	transition:transform .22s cubic-bezier(.16,1,.3,1), width .22s cubic-bezier(.16,1,.3,1);
}

[data-theme="dark"] .board-seg-indicator{
	background:rgba(255,255,255,0.10);
	border:1px solid rgba(255,255,255,0.14);
	box-shadow:0 10px 26px rgba(0,0,0,0.28);
}

.board-empty{
	padding:16px 14px;
	text-align:center;
	font-size:14px;
	color:var(--dialog-muted);
	border-radius:14px;
	background:rgba(255,255,255,0.35);
	border:1px solid rgba(0,0,0,0.05);
}


.board-dialog{
	width:min(92vw, 520px);
	max-height:min(86vh, 760px);

	background:var(--dialog-bg);
	border-radius:14px;
	box-shadow:0 12px 48px rgba(0,0,0,0.12);
	backdrop-filter:blur(24px);
	-webkit-backdrop-filter:blur(24px);
	border:1px solid var(--dialog-border);
	animation: popIn .3s cubic-bezier(0.22,0.61,0.36,1);

	display:flex;
	flex-direction:column;
	overflow:hidden;
}

.board-list{
	padding:14px 16px 10px;
	overflow:auto;
	-webkit-overflow-scrolling:touch;
}

.board-item{
	background: rgba(255,255,255,0.5);
	padding: 14px 18px;
	border-radius: 10px;
	margin-bottom: 12px;
	cursor: pointer;
	transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
	border: 1px solid rgba(0,0,0,0.08);
	display:grid;
	grid-template-columns:1fr auto;
	gap:8px;
}

[data-theme="dark"] .board-item{
	background: rgba(255,255,255,0.08);
	border: 1px solid rgba(255,255,255,0.12);
}

.board-item:hover{
	background: rgba(255,255,255,0.8);
	transform: translateY(-2px);
	box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}

[data-theme="dark"] .board-item:hover{
	background: rgba(255,255,255,0.14);
}

.board-info{ display:flex; flex-direction:column; }
.board-name{
	font-weight:700;
	color:var(--dialog-text);
	font-size:16px;
	white-space:normal;
	word-break:break-word;
	overflow-wrap:anywhere;
}
.board-desc{
	color:var(--dialog-muted);
	font-size:13px;
	line-height:1.4;
	margin-top:4px;
	white-space:normal;
	word-break:break-word;
	overflow-wrap:anywhere;
}
.board-size{
	font-size:14px;
	color:var(--dialog-muted);
	white-space:nowrap;
	text-align:right;
	align-self:start;
}

/* ===== 临时提示 ===== */
.tmp-tip{
	position:fixed;
	left:50%;
	top:22px;
	transform:translate(-50%,-10px);
	padding:10px 14px;
	border-radius:999px;
	background:rgba(0,0,0,.65);
	color:#fff;
	font-size:13px;
	opacity:0;
	pointer-events:none;
	transition: opacity .18s ease, transform .18s ease;
	z-index:9999;
}
.tmp-tip.show{
	opacity:1;
	transform:translate(-50%,0);
}
