
	canvas.svelte-e8agb2 {
		position: fixed;
		inset: 0;
		width: 100%;
		height: 100%;
		pointer-events: none;
		z-index: 0;
	}

	@keyframes svelte-1uha8ag-logoIntro {
		0%   { opacity: 0; transform: scale(1.8); }
		40%  { opacity: 1; transform: scale(1.8); }
		100% { opacity: 1; transform: scale(1); }
	}
	.logo-intro.svelte-1uha8ag { animation: svelte-1uha8ag-logoIntro 1.1s cubic-bezier(0.25, 0.46, 0.45, 0.94) both; }

	.home.svelte-1uha8ag { min-height: 100vh; }
	.hero.svelte-1uha8ag {
		text-align: center;
		min-height: calc(100vh - 64px);
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		padding: 48px 0;
	}
	.hero-logo.svelte-1uha8ag { width: 100%; max-width: 320px; height: auto; margin-bottom: 24px; object-fit: contain; }
	.hero-desc.svelte-1uha8ag { color: var(--text-sec); font-size: 14px; margin-top: 16px; max-width: 480px; margin-inline: auto; line-height: 1.7; }
	.login-btn.svelte-1uha8ag { margin-top: 24px; padding: 14px 32px; font-size: 15px; }
	.hero.svelte-1uha8ag h1:where(.svelte-1uha8ag) {
		font-size: 56px; letter-spacing: 12px;
		background: linear-gradient(135deg, var(--gold), var(--parchment), var(--gold));
		-webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
	}
	.subtitle.svelte-1uha8ag { font-family: 'Cinzel', serif; font-size: 13px; color: var(--text-sec); letter-spacing: 4px; margin-top: 8px; }
	.nav-grid.svelte-1uha8ag { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; max-width: 700px; margin: 0 auto; }
	.nav-card.svelte-1uha8ag {
		position: relative;
		overflow: visible;
		display: block;
		padding: 36px 28px;
		user-select: none;
		text-align: center;
		text-decoration: none;
		transition: all 0.3s;
	}
	.nav-card.svelte-1uha8ag:hover { transform: translateY(-4px); border-color: var(--border-strong); box-shadow: var(--shadow-gold); }
	.nav-icon-img.svelte-1uha8ag { width: 60px; height: 60px; margin-bottom: 16px; filter: var(--filter-icon-gold); }
	.nav-card.svelte-1uha8ag:hover .nav-icon-img:where(.svelte-1uha8ag) { opacity: 0.85; }
	.nav-card.svelte-1uha8ag h2:where(.svelte-1uha8ag) { margin-bottom: 8px; }
	.nav-card.svelte-1uha8ag p:where(.svelte-1uha8ag) { color: var(--text-sec); font-size: 13px; }

	.invite-card.svelte-1uha8ag {
		position: relative;
		overflow: visible;
		margin-top: 60px;
		padding: 16px 28px;
		text-align: center;
		max-width: 480px;
		margin-inline: auto;
	}
	.invite-label.svelte-1uha8ag {
		color: var(--text-sec);
		font-size: 13px;
		margin-bottom: 6px;
	}
	.invite-link.svelte-1uha8ag {
		font-size: 12px;
		color: var(--gold);
		word-break: break-all;
		text-decoration: none;
		opacity: 0.85;
		transition: opacity 0.2s;
	}
	.invite-link.svelte-1uha8ag:hover { opacity: 1; text-decoration: underline; }

	/* 角落花紋 */
	.corner.svelte-1uha8ag {
		position: absolute;
		width: 75px;
		height: 75px;
		background-image: url('../../../icons/testborder150.png');
		background-size: 75px 75px;
		background-repeat: no-repeat;
		pointer-events: none;
	}
	.corner-tl.svelte-1uha8ag { top:    -10px; left:  -10px; transform: scaleY(-1); }
	.corner-tr.svelte-1uha8ag { top:    -10px; right: -10px; transform: scale(-1, -1); }
	.corner-bl.svelte-1uha8ag { bottom: -10px; left:  -10px; }
	.corner-br.svelte-1uha8ag { bottom: -10px; right: -10px; transform: scaleX(-1); }

	/* Light theme overrides */
	[data-theme="light"] .hero.svelte-1uha8ag h1:where(.svelte-1uha8ag) {
		background: linear-gradient(135deg, var(--gold-dim), var(--gold-bright), var(--gold-dim));
		-webkit-background-clip: text;
		-webkit-text-fill-color: transparent;
		background-clip: text;
	}
	[data-theme="light"] .nav-card.svelte-1uha8ag {
		border: 1px solid rgba(125, 85, 16, 0.22);
	}
	[data-theme="light"] .nav-card.svelte-1uha8ag:hover {
		border-color: rgba(125, 85, 16, 0.4);
	}

	/* Footer */
	.site-footer.svelte-1uha8ag {
		text-align: center;
		padding: 40px 28px 32px;
		margin-top: 60px;
		border-top: 1px solid var(--border-vis);
		color: var(--text-sec);
		font-size: 12px;
		line-height: 1.8;
	}
	.footer-copyright.svelte-1uha8ag {
		color: var(--text-pri);
		font-size: 13px;
		margin-bottom: 12px;
	}
	.footer-trademark.svelte-1uha8ag {
		margin-bottom: 8px;
		opacity: 0.7;
	}
	.footer-credit.svelte-1uha8ag {
		opacity: 0.7;
	}
	.footer-links.svelte-1uha8ag {
		margin-bottom: 12px;
	}
	.footer-links.svelte-1uha8ag a:where(.svelte-1uha8ag) {
		color: var(--gold);
		text-decoration: none;
		opacity: 0.85;
		transition: opacity 0.2s;
	}
	.footer-links.svelte-1uha8ag a:where(.svelte-1uha8ag):hover {
		opacity: 1;
		text-decoration: underline;
	}
	.footer-sep.svelte-1uha8ag {
		margin: 0 8px;
		opacity: 0.4;
	}
	.footer-credit.svelte-1uha8ag a:where(.svelte-1uha8ag) {
		color: var(--gold);
		text-decoration: none;
		opacity: 0.85;
		transition: opacity 0.2s;
	}
	.footer-credit.svelte-1uha8ag a:where(.svelte-1uha8ag):hover {
		opacity: 1;
		text-decoration: underline;
	}
