body{margin:0;padding:0;background:#ffe;font-size:14px;font-family:'微软雅黑','宋体',sans-serif;color:#231F20;overflow-x:auto;overflow-y:auto}
a {color:#000;font-size:14px;}
#main{width:100%;overflow:visible;padding:0 8px;box-sizing:border-box;position:relative;}
#wrap{position:relative;margin:0 auto;width:1100px;max-width:100%;height:680px;margin-top:10px;overflow:hidden;}
#text{width:400px;height:425px;left:60px;top:80px;position:absolute;}
#code{display:none;font-size:16px;}
#clock-box {position:absolute;left:60px;top:550px;font-size:28px;display:none;}
#clock-box a {font-size:28px;text-decoration:none;}
#clock{margin-left:48px;}
#clock .digit {font-size:64px;}
#canvas{margin:0 auto;width:1100px;height:680px;position:relative;z-index:1;}
#canvas.canvas-done{pointer-events:none !important;}
#error{margin:0 auto;text-align:center;margin-top:60px;display:none;}
.hand{cursor:pointer;}
.say{margin-left:5px;}
.space{margin-right:150px;}

#tree-stage{
	width:1100px;
	max-width:100%;
	margin:0 auto;
	position:relative;
	overflow:visible;
}

/* 按钮组：开花完成前整组隐藏；完成后显示（手机底栏 / 电脑树旁） */
#wish-btn-group{
	display:none !important;
	flex-direction:row !important;
	flex-wrap:nowrap !important;
	align-items:center !important;
	justify-content:center !important;
	gap:12px !important;
	position:fixed !important;
	left:50% !important;
	right:auto !important;
	top:auto !important;
	bottom:max(14px, env(safe-area-inset-bottom, 0px)) !important;
	margin:0 !important;
	transform:translateX(-50%) !important;
	z-index:100020 !important;
	padding:8px 10px !important;
	max-width:96vw !important;
	width:auto !important;
	box-sizing:border-box;
	background:rgba(255,247,248,.95) !important;
	border:1px solid #f0d0d6 !important;
	border-radius:999px !important;
	box-shadow:0 10px 28px rgba(160,40,60,.18) !important;
	backdrop-filter:blur(8px);
	-webkit-backdrop-filter:blur(8px);
	pointer-events:auto !important;
	overflow:visible !important;
}
#wish-btn-group.wish-btns-on,
#wish-btn-group.wish-btns-ready{
	display:flex !important;
}
@media (min-width: 921px){
	#wish-btn-group{
		flex-direction:column !important;
		align-items:stretch !important;
		justify-content:flex-start !important;
		gap:14px !important;
		position:absolute !important;
		left:50% !important;
		top:210px !important;
		bottom:auto !important;
		margin:0 0 0 390px !important;
		transform:none !important;
		z-index:40 !important;
		padding:12px !important;
		max-width:168px !important;
		width:auto !important;
		background:linear-gradient(165deg, rgba(255,255,255,.82), rgba(255,240,243,.5)) !important;
		border:1px solid rgba(240, 180, 190, .75) !important;
		border-radius:22px !important;
		box-shadow:
			0 14px 36px rgba(160, 50, 70, .12),
			inset 0 1px 0 rgba(255,255,255,.9) !important;
		backdrop-filter:blur(10px);
		-webkit-backdrop-filter:blur(10px);
	}
	#wish-btn-group.wish-btns-on,
	#wish-btn-group.wish-btns-ready{
		display:flex !important;
	}
}
#wish-btn-group.wish-btns-on #wish-btn,
#wish-btn-group.wish-btns-ready #wish-btn,
#wish-btn-group.wish-btns-on #wish-wall-link,
#wish-btn-group.wish-btns-ready #wish-wall-link{
	display:inline-flex !important;
	opacity:1;
	visibility:visible;
	position:relative !important;
	flex:0 0 auto !important;
	width:auto !important;
}
@media (min-width: 921px){
	#wish-btn-group.wish-btns-on #wish-btn,
	#wish-btn-group.wish-btns-ready #wish-btn,
	#wish-btn-group.wish-btns-on #wish-wall-link,
	#wish-btn-group.wish-btns-ready #wish-wall-link{
		width:100% !important;
	}
}
#wish-btn,
#wish-list-btn,
#wish-wall-link{
	display:none;
	position:relative !important;
	flex:0 0 auto !important;
	margin:0 !important;
	border:none;
	font-family:'微软雅黑','宋体',sans-serif;
	cursor:pointer;
	-webkit-appearance:none !important;
	-moz-appearance:none !important;
	appearance:none !important;
	box-sizing:border-box;
	transition:transform .22s ease, box-shadow .22s ease, background .22s ease, opacity .22s ease;
	white-space:nowrap;
	pointer-events:auto;
	text-decoration:none !important;
	text-align:center;
}
#wish-btn{
	display:none !important;
	position:relative;
	padding:13px 18px;
	border-radius:16px;
	background:linear-gradient(145deg, #e0455c 0%, #c41e3a 50%, #a81830 100%) !important;
	color:#fff !important;
	font-size:15px;
	letter-spacing:.1em;
	box-shadow:0 8px 22px rgba(196,30,58,.4);
	border:1px solid rgba(255,255,255,.3);
}
#wish-list-btn,
a.tree-action--admin{
	display:none !important;
}
#wish-btn-group #wish-btn:hover,
#wish-btn-group #wish-list-btn:hover{
	transform:translateX(-4px);
}
#wish-count{
	display:none;
	margin-left:6px;
	padding:1px 7px;
	border-radius:10px;
	background:rgba(255,255,255,.28);
	font-size:12px;
	vertical-align:middle;
}
#wish-layer{
	position:absolute;
	left:0;
	top:0;
	width:1100px;
	height:680px;
	pointer-events:none;
	z-index:15;
	overflow:hidden;
}
/* 树冠闪光层（花开后由 JS 注入光点） */
#tree-sparkles{
	position:absolute;
	left:0;
	top:0;
	width:1100px;
	height:680px;
	pointer-events:none;
	z-index:6;
	overflow:hidden;
	opacity:0;
	transition:opacity .9s ease;
}
#tree-sparkles.is-on{
	opacity:1;
}
#wish-hotspot{
	position:absolute;
	left:560px;
	top:40px;
	width:480px;
	height:480px;
	pointer-events:auto;
	cursor:pointer;
	z-index:14;
	display:none;
}
.wish-tag{
	position:absolute;
	pointer-events:auto;
	cursor:pointer;
	width:86px;
	padding:8px 8px 10px;
	background:linear-gradient(180deg,#fff6f7 0%,#ffd6dc 100%);
	border:1px solid #f0a0ab;
	border-radius:4px 4px 10px 10px;
	box-shadow:1px 3px 8px rgba(180,40,60,.22);
	font-size:12px;
	line-height:1.35;
	color:#8b1e2d;
	text-align:center;
	word-break:break-all;
	transform-origin:50% 0;
	animation:wish-sway 3.6s ease-in-out infinite;
	z-index:16;
}
.wish-tag.hanging{
	animation:wish-drop .55s ease-out, wish-sway 3.6s ease-in-out .55s infinite;
}
.wish-tag::before{
	content:'';
	position:absolute;
	left:50%;
	top:-14px;
	width:1px;
	height:14px;
	margin-left:-1px;
	background:#c41e3a;
}
.wish-tag .wish-heart{
	display:block;
	font-size:14px;
	color:#c41e3a;
	margin-bottom:2px;
	line-height:1;
}
.wish-tag .wish-text{
	display:block;
	max-height:3.9em;
	overflow:hidden;
}
.wish-tag .wish-name{
	display:block;
	margin-top:4px;
	font-size:11px;
	color:#b85a68;
	opacity:.85;
}
@keyframes wish-sway{
	0%,100%{transform:rotate(-3deg);}
	50%{transform:rotate(3deg);}
}
@keyframes wish-drop{
	0%{opacity:0;transform:translateY(-40px) scale(.6);}
	70%{opacity:1;transform:translateY(4px) scale(1.05);}
	100%{opacity:1;transform:translateY(0) scale(1);}
}
.wish-spark{
	position:absolute;
	pointer-events:none;
	color:#c41e3a;
	font-size:18px;
	z-index:18;
	animation:wish-spark-fly 1s ease-out forwards;
}
@keyframes wish-spark-fly{
	0%{opacity:1;transform:translate(0,0) scale(1);}
	100%{opacity:0;transform:translate(var(--sx),var(--sy)) scale(.4);}
}
#wish-mask{
	display:none;
	position:fixed;
	left:0;
	top:0;
	right:0;
	bottom:0;
	background:rgba(45,28,32,.48);
	z-index:100040;
	backdrop-filter:blur(3px);
	-webkit-backdrop-filter:blur(3px);
}
#wish-mask.is-open,
#wish-login.is-open,
#wish-wall.is-open,
#wish-dialog.is-open,
#wish-detail.is-open,
#wish-pwd-dialog.is-open{
	display:block !important;
}
#wish-login.is-open,
#wish-wall.is-open,
#wish-dialog.is-open,
#wish-detail.is-open,
#wish-pwd-dialog.is-open{
	z-index:100050;
}
#wish-mask.is-open{
	z-index:100040;
}
#wish-dialog,
#wish-detail,
#wish-login,
#wish-pwd-dialog,
#wish-wall{
	display:none;
	position:fixed;
	left:50%;
	top:50%;
	width:360px;
	margin:0;
	padding:24px 26px 20px;
	background:#fffaf6;
	border:1px solid #f0c8ce;
	border-radius:12px;
	box-shadow:0 12px 40px rgba(0,0,0,.2);
	z-index:100050;
	font-family:'微软雅黑','宋体',sans-serif;
	box-sizing:border-box;
	-webkit-transform:translate(-50%, -50%);
	transform:translate(-50%, -50%);
	max-height:90vh;
	overflow:auto;
}

/* 许愿填写框美化 */
#wish-dialog{
	width:400px;
	margin:0;
	padding:0;
	overflow:hidden;
	border:none;
	border-radius:18px;
	background:#fff;
	box-shadow:
		0 20px 50px rgba(140,30,50,.28),
		0 0 0 1px rgba(255,220,226,.6);
	animation:wish-form-pop .38s cubic-bezier(.22,1,.36,1);
}
@keyframes wish-form-pop{
	0%{opacity:0;transform:translate(-50%, -50%) translateY(16px) scale(.95);}
	100%{opacity:1;transform:translate(-50%, -50%) translateY(0) scale(1);}
}
#wish-dialog .wish-form-hero{
	position:relative;
	padding:26px 28px 20px;
	text-align:center;
	background:
		radial-gradient(ellipse at 70% 0%, rgba(255,255,255,.4), transparent 50%),
		linear-gradient(150deg, #c41e3a 0%, #e85a6b 55%, #f4b4bc 100%);
	color:#fff;
	overflow:hidden;
}
#wish-dialog .wish-form-hero::before{
	content:'';
	position:absolute;
	left:-30px;
	bottom:-40px;
	width:120px;
	height:120px;
	border-radius:50%;
	background:rgba(255,255,255,.12);
}
#wish-dialog .wish-form-hero::after{
	content:'';
	position:absolute;
	right:-20px;
	top:-30px;
	width:90px;
	height:90px;
	border-radius:50%;
	background:rgba(255,255,255,.1);
}
#wish-dialog .wish-form-icon{
	width:50px;
	height:50px;
	margin:0 auto 8px;
	line-height:50px;
	border-radius:50%;
	background:rgba(255,255,255,.22);
	border:1px solid rgba(255,255,255,.4);
	font-size:24px;
	position:relative;
	z-index:1;
}
#wish-dialog .wish-form-hero h3{
	margin:0 0 6px;
	font-size:22px;
	font-weight:normal;
	color:#fff;
	letter-spacing:.1em;
	position:relative;
	z-index:1;
}
#wish-dialog .wish-form-hero .wish-tip{
	margin:0;
	font-size:13px;
	color:rgba(255,255,255,.92);
	position:relative;
	z-index:1;
}
#wish-dialog .wish-form-body{
	padding:20px 26px 24px;
	background:linear-gradient(180deg, #fffdfb 0%, #fff5f6 100%);
}
#wish-dialog .wish-form-body label{
	display:block;
	margin:0 0 6px;
	font-size:13px;
	color:#8b4a55;
}
#wish-dialog .wish-form-body label + input,
#wish-dialog .wish-form-body label + textarea{
	margin-bottom:14px;
}
#wish-dialog #wish-len{
	float:right;
	color:#c49aa2;
	font-weight:normal;
}
#wish-dialog .wish-form-body input,
#wish-dialog .wish-form-body textarea{
	width:100%;
	box-sizing:border-box;
	padding:11px 14px;
	border:1px solid #efc2c9;
	border-radius:12px;
	font-size:14px;
	font-family:inherit;
	outline:none;
	background:#fff;
	color:#333;
	transition:border-color .2s, box-shadow .2s;
}
#wish-dialog .wish-form-body textarea{
	height:96px;
	resize:none;
	line-height:1.5;
}
#wish-dialog .wish-form-body input:focus,
#wish-dialog .wish-form-body textarea:focus{
	border-color:#c41e3a;
	box-shadow:0 0 0 3px rgba(196,30,58,.12);
}
.wish-form-actions{
	display:flex;
	gap:10px;
	margin-top:6px;
}
.wish-form-ghost,
.wish-form-primary{
	flex:1;
	padding:11px 12px;
	border:none;
	border-radius:22px;
	font-size:14px;
	font-family:inherit;
	cursor:pointer;
	transition:transform .15s, box-shadow .15s, background .15s;
}
.wish-form-ghost{
	background:#f3e8ea;
	color:#8b5a64;
}
.wish-form-ghost:hover{
	background:#ead7db;
}
.wish-form-primary{
	background:linear-gradient(135deg, #c41e3a, #e0455c);
	color:#fff;
	box-shadow:0 6px 16px rgba(196,30,58,.28);
	letter-spacing:.08em;
}
.wish-form-primary:hover{
	transform:translateY(-1px);
	box-shadow:0 8px 20px rgba(196,30,58,.36);
}

/* 登录界面专属美化 */
#wish-login{
	width:380px;
	margin:0;
	padding:0;
	overflow:hidden;
	border:none;
	border-radius:18px;
	background:#fff;
	opacity:1;
	visibility:visible;
	box-shadow:
		0 20px 50px rgba(140,30,50,.28),
		0 0 0 1px rgba(255,220,226,.6);
}
/* 动画保留居中 translate，避免弹窗飞出屏幕 */
#wish-login.login-animating{
	-webkit-animation:login-pop .38s cubic-bezier(.22,1,.36,1);
	animation:login-pop .38s cubic-bezier(.22,1,.36,1);
}
@keyframes login-pop{
	0%{transform:translate(-50%, -50%) translateY(18px) scale(.94);}
	100%{transform:translate(-50%, -50%) translateY(0) scale(1);}
}
@-webkit-keyframes login-pop{
	0%{-webkit-transform:translate(-50%, -50%) translateY(18px) scale(.94);}
	100%{-webkit-transform:translate(-50%, -50%) translateY(0) scale(1);}
}
#wish-login .login-hero{
	position:relative;
	padding:28px 28px 22px;
	text-align:center;
	background:
		radial-gradient(ellipse at 30% 20%, rgba(255,255,255,.35), transparent 55%),
		linear-gradient(145deg, #c41e3a 0%, #e85a6b 48%, #f0a0ab 100%);
	color:#fff;
	overflow:hidden;
}
#wish-login .login-hero::before,
#wish-login .login-hero::after{
	content:'♥';
	position:absolute;
	opacity:.18;
	font-size:64px;
	pointer-events:none;
	animation:login-float 4s ease-in-out infinite;
}
#wish-login .login-hero::before{
	left:18px;
	top:10px;
	transform:rotate(-18deg);
}
#wish-login .login-hero::after{
	right:16px;
	bottom:4px;
	font-size:48px;
	transform:rotate(12deg);
	animation-delay:1.2s;
}
@keyframes login-float{
	0%,100%{transform:translateY(0) rotate(-18deg);}
	50%{transform:translateY(-6px) rotate(-12deg);}
}
#wish-login .login-heart{
	width:54px;
	height:54px;
	margin:0 auto 10px;
	line-height:54px;
	border-radius:50%;
	background:rgba(255,255,255,.22);
	border:1px solid rgba(255,255,255,.35);
	font-size:26px;
	color:#fff;
	box-shadow:0 6px 16px rgba(100,20,40,.2);
	animation:login-pulse 2.4s ease-in-out infinite;
}
@keyframes login-pulse{
	0%,100%{transform:scale(1);}
	50%{transform:scale(1.06);}
}
#wish-login .login-hero h3{
	margin:0 0 6px;
	font-size:22px;
	font-weight:normal;
	color:#fff;
	letter-spacing:.08em;
	text-shadow:0 1px 2px rgba(80,10,20,.2);
}
#wish-login .login-hero .wish-tip{
	margin:0;
	font-size:13px;
	color:rgba(255,255,255,.9);
	letter-spacing:.04em;
}
#wish-login .login-body{
	padding:22px 28px 26px;
	background:linear-gradient(180deg, #fffdfb 0%, #fff5f6 100%);
}
#wish-login .login-body > label:not(.wish-check){
	display:block;
	margin:0 0 6px;
	font-size:13px;
	color:#8b4a55;
}
#wish-login .wish-pwd-wrap{
	margin-bottom:4px;
}
#wish-login .wish-pwd-wrap input{
	width:100%;
	box-sizing:border-box;
	padding:12px 46px 12px 14px;
	border:1px solid #efc2c9;
	border-radius:12px;
	font-size:15px;
	font-family:inherit;
	outline:none;
	background:#fff;
	color:#333;
	transition:border-color .2s, box-shadow .2s;
}
#wish-login .wish-pwd-wrap input:focus{
	border-color:#c41e3a;
	box-shadow:0 0 0 3px rgba(196,30,58,.12);
}
#wish-login #wish-pwd-toggle{
	position:absolute;
	right:6px;
	top:50%;
	margin-top:-15px;
	width:36px;
	height:30px;
	padding:0;
	border:none;
	border-radius:8px;
	background:#ffe8ec;
	color:#c41e3a;
	font-size:12px;
	font-family:inherit;
	cursor:pointer;
	transition:background .15s;
}
#wish-login #wish-pwd-toggle:hover{
	background:#ffd4db;
}
#wish-login .wish-check{
	margin:14px 0 2px !important;
	color:#9a6a72 !important;
}
#wish-login .wish-error{
	min-height:20px;
	margin:8px 0 10px;
	font-size:12px;
	color:#c41e3a;
	text-align:center;
}
#wish-login .login-primary{
	display:block;
	width:100%;
	margin:4px 0 10px;
	padding:12px 16px;
	border:none;
	border-radius:24px;
	background:linear-gradient(135deg, #c41e3a, #e0455c);
	color:#fff;
	font-size:15px;
	font-family:inherit;
	letter-spacing:.12em;
	cursor:pointer;
	box-shadow:0 8px 20px rgba(196,30,58,.3);
	transition:transform .15s, box-shadow .15s;
}
#wish-login .login-primary:hover{
	transform:translateY(-1px);
	box-shadow:0 10px 24px rgba(196,30,58,.38);
}
#wish-login .login-primary:active{
	transform:translateY(0);
}
#wish-login .login-ghost{
	display:block;
	width:100%;
	padding:10px 16px;
	border:none;
	border-radius:20px;
	background:transparent;
	color:#a07078;
	font-size:13px;
	font-family:inherit;
	cursor:pointer;
	transition:color .15s, background .15s;
}
#wish-login .login-ghost:hover{
	color:#c41e3a;
	background:rgba(196,30,58,.06);
}

#wish-wall{
	width:480px;
	margin:0;
	max-height:86vh;
	overflow:auto;
	padding-bottom:16px;
}
.admin-tabs{
	display:flex;
	gap:8px;
	margin:10px 0 14px;
}
.admin-tab{
	flex:1;
	padding:8px 10px;
	border:1px solid #f0c0c8;
	border-radius:16px;
	background:#fff;
	color:#a06070;
	font-size:13px;
	font-family:inherit;
	cursor:pointer;
}
.admin-tab.is-on{
	background:#c41e3a;
	border-color:#c41e3a;
	color:#fff;
}
.admin-pane label{
	display:block;
	margin:10px 0 4px;
	font-size:13px;
	color:#8b4a55;
}
.admin-pane input,
.admin-pane textarea{
	width:100%;
	box-sizing:border-box;
	padding:9px 12px;
	border:1px solid #e8b4bc;
	border-radius:10px;
	font-size:14px;
	font-family:inherit;
	outline:none;
	background:#fff;
	color:#333;
}
.admin-pane textarea{
	min-height:140px;
	resize:vertical;
	line-height:1.55;
}
.admin-pane input:focus,
.admin-pane textarea:focus{
	border-color:#c41e3a;
	box-shadow:0 0 0 3px rgba(196,30,58,.1);
}
#admin-content-reset{
	background:#eee;
	color:#666;
}
#admin-content-save{
	border:none;
}
#wish-pwd-dialog{
	margin:0;
}
#wish-dialog h3,
#wish-detail h3,
#wish-pwd-dialog h3,
#wish-wall h3{
	margin:0 0 6px;
	font-size:20px;
	color:#c41e3a;
	font-weight:normal;
	text-align:center;
}
#wish-dialog .wish-tip,
#wish-pwd-dialog .wish-tip{
	margin:0 0 14px;
	font-size:13px;
	color:#888;
	text-align:center;
}
#wish-len{
	float:right;
	color:#aaa;
	font-weight:normal;
}
#wish-dialog label,
#wish-pwd-dialog label{
	display:block;
	margin:10px 0 4px;
	font-size:13px;
	color:#555;
}
#wish-dialog input,
#wish-dialog textarea,
#wish-pwd-dialog input{
	width:100%;
	box-sizing:border-box;
	padding:8px 10px;
	border:1px solid #e8b4bc;
	border-radius:6px;
	font-size:14px;
	font-family:inherit;
	outline:none;
	background:#fff;
	color:#333;
}
#wish-dialog textarea{
	height:72px;
	resize:none;
}
#wish-dialog input:focus,
#wish-dialog textarea:focus,
#wish-pwd-dialog input:focus,
#wish-search:focus{
	border-color:#c41e3a;
}
.wish-pwd-wrap{
	position:relative;
}
.wish-pwd-wrap input{
	padding-right:42px !important;
}
#wish-pwd-toggle{
	position:absolute;
	right:4px;
	top:50%;
	margin-top:-14px;
	width:34px;
	height:28px;
	padding:0;
	border:none;
	border-radius:6px;
	background:#f5e6e8;
	color:#8b1e2d;
	font-size:12px;
	font-family:inherit;
	cursor:pointer;
}
.wish-check{
	display:flex !important;
	align-items:center;
	gap:6px;
	margin:12px 0 4px !important;
	font-size:13px !important;
	color:#666 !important;
	cursor:pointer;
	user-select:none;
}
.wish-check input{
	width:auto !important;
	margin:0;
}
.wish-error{
	min-height:18px;
	margin:8px 0 0;
	font-size:12px;
	color:#c41e3a;
	text-align:center;
}
#wish-admin-stats{
	margin:8px 0 12px;
	padding:10px 12px;
	background:#fff;
	border:1px solid #f0d0d6;
	border-radius:8px;
	font-size:12px;
	color:#888;
	line-height:1.7;
	text-align:center;
}
#wish-admin-stats strong{
	color:#c41e3a;
	font-weight:normal;
	margin:0 2px;
}
.wish-admin-tools{
	display:flex;
	gap:8px;
	margin-bottom:10px;
}
#wish-search{
	flex:1;
	min-width:0;
	padding:7px 10px;
	border:1px solid #e8b4bc;
	border-radius:6px;
	font-size:13px;
	font-family:inherit;
	outline:none;
	background:#fff;
}
#wish-filter{
	padding:7px 8px;
	border:1px solid #e8b4bc;
	border-radius:6px;
	font-size:13px;
	font-family:inherit;
	background:#fff;
	color:#555;
	outline:none;
}
.wish-batch-bar{
	display:flex;
	align-items:center;
	flex-wrap:wrap;
	gap:6px;
	margin-bottom:10px;
	padding-bottom:8px;
	border-bottom:1px dashed #f0d0d6;
}
.wish-batch-bar .wish-check{
	margin:0 8px 0 0 !important;
}
.wish-batch-bar button{
	padding:4px 10px;
	border:1px solid #e8a0aa;
	border-radius:12px;
	background:#fff;
	color:#c41e3a;
	font-size:12px;
	font-family:inherit;
	cursor:pointer;
}
.wish-batch-bar button:hover{
	background:#c41e3a;
	color:#fff;
}
.wish-detail-text{
	margin:16px 0 8px;
	padding:14px;
	background:#fff;
	border:1px dashed #f0a0ab;
	border-radius:8px;
	color:#8b1e2d;
	font-size:15px;
	line-height:1.6;
	text-align:center;
	word-break:break-all;
}
.wish-detail-meta{
	margin:0 0 8px;
	font-size:12px;
	color:#999;
	text-align:center;
}
#wish-wall-list{
	list-style:none;
	margin:0;
	padding:0;
	max-height:280px;
	overflow:auto;
}
#wish-wall-list li{
	padding:10px 12px;
	margin-bottom:8px;
	background:#fff;
	border:1px solid #f0d0d6;
	border-radius:8px;
	display:flex;
	align-items:flex-start;
	gap:8px;
}
#wish-wall-list li.is-hidden{
	opacity:.55;
	background:#fafafa;
}
#wish-wall-list li:hover{
	border-color:#c41e3a;
}
#wish-wall-list .wall-check{
	margin-top:3px;
	flex-shrink:0;
}
#wish-wall-list .wall-main{
	flex:1;
	min-width:0;
	cursor:pointer;
}
#wish-wall-list .wall-text{
	color:#8b1e2d;
	font-size:14px;
	word-break:break-all;
}
#wish-wall-list .wall-meta{
	margin-top:4px;
	font-size:11px;
	color:#aaa;
}
#wish-wall-list .wall-badge{
	display:inline-block;
	margin-left:6px;
	padding:0 6px;
	border-radius:8px;
	font-size:10px;
	background:#eee;
	color:#888;
	vertical-align:middle;
}
#wish-wall-list .wall-badge.hide{
	background:#f5e6e8;
	color:#c41e3a;
}
#wish-wall-list .wall-ops{
	flex-shrink:0;
	display:flex;
	flex-direction:column;
	gap:4px;
}
#wish-wall-list .wall-ops button{
	padding:4px 10px;
	border:1px solid #e8a0aa;
	border-radius:12px;
	background:#fff;
	color:#c41e3a;
	font-size:12px;
	font-family:inherit;
	cursor:pointer;
	white-space:nowrap;
}
#wish-wall-list .wall-ops button:hover{
	background:#c41e3a;
	color:#fff;
}
#wish-wall-list .wall-empty{
	padding:30px 10px;
	text-align:center;
	color:#bbb;
	border:none;
	background:transparent;
	display:block;
}
.wish-tag.is-hidden-tag{
	display:none !important;
}
.wish-actions{
	margin-top:16px;
	text-align:right;
}
.wish-admin-bar{
	display:flex;
	justify-content:flex-end;
	flex-wrap:wrap;
	align-items:center;
	gap:6px 0;
}
.wish-actions button{
	padding:7px 14px;
	margin-left:6px;
	border:none;
	border-radius:16px;
	font-size:13px;
	font-family:inherit;
	cursor:pointer;
}
#wish-cancel,
#wish-detail-close,
#wish-wall-close,
#wish-pwd-cancel{
	background:#eee;
	color:#666;
}
#wish-submit,
#wish-pwd-save{
	background:#c41e3a;
	color:#fff;
}
#wish-wall-clear,
#wish-admin-changepwd,
#wish-admin-export{
	background:#fff;
	color:#c41e3a;
	border:1px solid #e8a0aa;
}
#wish-admin-logout{
	margin-right:auto;
	margin-left:0;
	background:#fff;
	color:#888;
	border:1px solid #ddd;
}
#wish-toast{
	display:none;
	position:fixed;
	left:50%;
	bottom:80px;
	transform:translateX(-50%);
	padding:10px 20px;
	background:rgba(196,30,58,.92);
	color:#fff;
	border-radius:20px;
	font-size:14px;
	z-index:100020;
	pointer-events:none;
}

/* 加载提示 */
#page-loading{
	position:fixed;
	left:50%;
	top:18px;
	transform:translateX(-50%);
	z-index:100030;
	padding:8px 16px;
	border-radius:999px;
	background:rgba(255,255,255,.92);
	border:1px solid #f0c8ce;
	color:#8b1e2d;
	font-size:13px;
	box-shadow:0 6px 18px rgba(180,40,60,.12);
	pointer-events:none;
}

/* 音乐开关 */
#music-toggle{
	position:fixed;
	left:18px;
	bottom:18px;
	z-index:100025;
	width:44px;
	height:44px;
	border:1px solid #e8a0aa;
	border-radius:50%;
	background:#fff;
	color:#c41e3a;
	font-size:18px;
	cursor:pointer;
	box-shadow:0 4px 14px rgba(180,40,60,.16);
}
#music-toggle.is-on{
	background:linear-gradient(135deg,#c41e3a,#e85a6b);
	color:#fff;
	border-color:transparent;
}

.site-footer{
	display:none !important;
}

/* ========== 手机 / 窄屏布局（媒体查询 + JS 类双保险） ========== */
.mobile-letter{display:none;}

html.is-mobile-view #wrap #text,
html.is-mobile-view #wrap #clock-box,
body.is-mobile-view #wrap #text,
body.is-mobile-view #wrap #clock-box{
	display:none !important;
	visibility:hidden !important;
}

@media (max-width: 920px){
	html, body, body.wish-site{
		overflow-x:hidden !important;
		width:100% !important;
		max-width:100vw !important;
	}
	body.wish-site{
		padding-bottom:110px !important;
		box-sizing:border-box;
	}
	#main{
		padding:0 !important;
		overflow:hidden !important;
		width:100% !important;
		max-width:100vw !important;
	}
	#tree-stage{
		width:100% !important;
		min-height:320px;
		margin:8vh auto 4px !important;
		overflow:hidden !important;
		background:#ffe8ec;
		/* 高度由 JS 按缩放写入；树就位后裁切右侧树冠 */
	}
	#wrap{
		width:1100px !important;
		height:680px !important;
		min-height:680px !important;
		max-width:none !important;
		margin:0 !important;
		position:relative !important;
		overflow:hidden !important;
		/* transform 由 JS fitTreeStage 设置，兼容 iPhone Safari */
		transform-origin:top left !important;
		background:#ffe;
	}
	#canvas{
		width:1100px !important;
		height:680px !important;
		max-width:none !important;
		display:block !important;
		margin:0;
		touch-action:manipulation;
		-webkit-tap-highlight-color:transparent;
		cursor:pointer;
	}
	/* 手机隐藏画布内桌面文案（太小且占左半屏），改用下方可读区 */
	#wrap #text,
	#wrap #clock-box{
		display:none !important;
	}
	#wish-layer{
		width:1100px !important;
		height:680px !important;
	}
	#tree-sparkles{
		width:1100px !important;
		height:680px !important;
	}
	#wish-hotspot{
		left:300px !important;
		top:40px !important;
		width:480px !important;
		height:500px !important;
	}
	.space{margin-right:150px !important;}

	.mobile-letter{
		display:none;
		padding:10px 16px 24px;
		margin:0 auto;
		max-width:640px;
		box-sizing:border-box;
	}
	.mobile-letter.is-show{
		display:block !important;
		animation:mobileLetterIn .45s ease both;
	}
	.mobile-letter-title{
		margin:0 0 10px;
		text-align:center;
		font-family:"STKaiti","KaiTi","楷体","Songti SC",serif;
		font-size:20px;
		color:#c41e3a;
		letter-spacing:.08em;
		font-weight:600;
	}
	.mobile-letter-body{
		background:rgba(255,255,255,.9);
		border:1px solid #f0d0d6;
		border-radius:14px;
		padding:14px 14px 12px;
		line-height:1.65;
		color:#5a3038;
		font-size:14px;
		margin-bottom:8px;
	}
	.mobile-letter-body p{margin:0 0 5px;}
	.mobile-letter-sign{
		text-align:right !important;
		color:#c41e3a !important;
		margin-top:8px !important;
	}
	.mobile-clock{
		margin-top:12px;
		text-align:center;
		font-size:13px;
		color:#8a5a64;
		line-height:1.55;
		padding-bottom:4px;
	}
	.mobile-clock .digit{
		color:#c41e3a;
		font-size:18px;
		font-weight:700;
		margin:0 2px;
	}
	@keyframes mobileLetterIn{
		from{opacity:0;transform:translateY(10px);}
		to{opacity:1;transform:none;}
	}

	#wish-btn-group{
		position:fixed !important;
		left:50% !important;
		right:auto !important;
		top:auto !important;
		bottom:max(14px, env(safe-area-inset-bottom, 0px)) !important;
		margin:0 !important;
		transform:translateX(-50%) !important;
		display:none !important;
		flex-direction:row !important;
		flex-wrap:nowrap !important;
		align-items:center !important;
		justify-content:center !important;
		gap:12px !important;
		z-index:100020 !important;
		padding:8px 10px !important;
		max-width:96vw !important;
		width:auto !important;
		background:rgba(255,247,248,.95) !important;
		border:1px solid #f0d0d6 !important;
		border-radius:999px !important;
		box-shadow:0 10px 28px rgba(160,40,60,.18) !important;
		backdrop-filter:blur(8px);
		-webkit-backdrop-filter:blur(8px);
	}
	#wish-btn-group.wish-btns-on,
	#wish-btn-group.wish-btns-ready{
		display:flex !important;
	}
	#wish-btn-group .tree-action,
	#wish-btn-group #wish-btn,
	#wish-btn-group #wish-list-btn{
		position:relative !important;
		flex:0 0 auto !important;
		min-width:100px !important;
		width:auto !important;
		min-height:44px !important;
		padding:11px 16px !important;
		font-size:14px !important;
		margin:0 !important;
	}

	.site-hero-bar{padding:8px 12px 2px !important;}
	.brand-mark{font-size:22px !important;letter-spacing:.1em !important;}
	.brand-sub{font-size:12px !important;padding:0 8px;line-height:1.4;}
	#page-loading{
		font-size:12px !important;
		padding:6px 12px !important;
		top:8px !important;
		max-width:88vw;
		z-index:60;
	}
	#music-toggle{
		top:8px !important;
		right:8px !important;
		width:36px !important;
		height:36px !important;
		z-index:60;
	}
	#wish-dialog,
	#wish-dialog.wish-dialog-card{
		width:min(400px, 92vw) !important;
		max-height:86vh !important;
		overflow:auto !important;
		left:50% !important;
		top:46% !important;
		transform:translate(-50%, -50%) !important;
		-webkit-transform:translate(-50%, -50%) !important;
	}
	#wish-detail{
		width:min(360px, 92vw) !important;
		left:50% !important;
		top:46% !important;
		transform:translate(-50%, -50%) !important;
	}
}

@media (min-width: 921px){
	.mobile-letter{display:none !important;}
	#tree-stage{
		width:1100px;
		max-width:100%;
		margin:0 auto;
		overflow:visible;
		height:auto !important;
		min-height:0;
	}
	#wrap{
		overflow:visible !important;
		max-width:100%;
		transform:none !important;
		-webkit-transform:none !important;
	}
	#wrap #text,
	#wrap #clock-box{
		visibility:visible;
		opacity:1;
	}
	#wish-btn-group{
		position:absolute !important;
		left:50% !important;
		right:auto !important;
		top:210px !important;
		bottom:auto !important;
		margin:0 0 0 390px !important;
		transform:none !important;
		flex-direction:column !important;
		align-items:stretch !important;
		z-index:40 !important;
		padding:12px !important;
		max-width:168px !important;
		width:auto !important;
		border-radius:22px !important;
		background:linear-gradient(165deg, rgba(255,255,255,.82), rgba(255,240,243,.5)) !important;
	}
	#wish-btn-group .tree-action,
	#wish-btn-group #wish-btn,
	#wish-btn-group #wish-list-btn{
		width:100% !important;
		border-radius:16px !important;
	}
}
