* { margin: 0; padding: 0; box-sizing: border-box; }

body { font-family: 'Noto Sans TC', sans-serif; background-color: #fcfbf9; color: #2c2a29; overflow-x: hidden; line-height: 1.6; }

img { max-width: 100%; height: auto; display: block; }

a { text-decoration: none; color: inherit; transition: color 0.4s ease; }

header { width: 100%; position: fixed; top: 0; background: rgba(252, 251, 249, 0.92); z-index: 100; padding: 25px 5%; border-bottom: 1px solid rgba(193, 155, 134, 0.2); display: flex; justify-content: center; align-items: center; backdrop-filter: blur(10px); transition: padding 0.4s ease, box-shadow 0.4s ease; }
header.is-active { padding: 15px 5%; box-shadow: 0 4px 20px rgba(0,0,0,0.04); }
header h1 { font-size: 20px; font-weight: 500; letter-spacing: 4px; color: #c19b86; margin: 0; text-transform: uppercase; }

#hero-section { min-height: 100vh; display: flex; align-items: center; justify-content: center; position: relative; padding: 100px 5% 50px; background-image: url('../image/img-hero.webp'); background-size: cover; background-position: center; background-attachment: fixed; }
#hero-section::after { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(to bottom, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.6) 100%); }
#hero-section .hero-content { position: relative; z-index: 10; text-align: center; color: #fff; max-width: 800px; opacity: 0; transform: translateY(40px); transition: opacity 1.2s ease, transform 1.2s ease; }
#hero-section .hero-content.is-active { opacity: 1; transform: translateY(0); }
#hero-section .hero-subtitle { font-size: 16px; font-weight: 300; letter-spacing: 6px; margin-bottom: 25px; text-transform: uppercase; color: #ebd8c8; }
#hero-section .hero-title { font-size: 48px; font-weight: 500; letter-spacing: 5px; margin-bottom: 30px; line-height: 1.4; }
#hero-section .hero-text { font-size: 18px; font-weight: 300; letter-spacing: 1px; color: #f2f2f2; max-width: 600px; margin: 0 auto; line-height: 1.9; }

#intro-section { padding: 140px 5%; background-color: #fff; text-align: center; }
#intro-section .intro-list { max-width: 760px; margin: 0 auto; }
#intro-section .intro-item { opacity: 0; transform: translateY(30px); transition: all 1s ease; }
#intro-section .intro-item.is-active { opacity: 1; transform: translateY(0); }
#intro-section .intro-title { font-size: 32px; font-weight: 400; color: #c19b86; margin-bottom: 40px; letter-spacing: 3px; }
#intro-section .intro-text { font-size: 16px; font-weight: 300; color: #7a7671; line-height: 2.2; letter-spacing: 1.5px; }

#cake-section { padding: 120px 5%; background-color: #fcfbf9; }
#cake-section > .cake-title { text-align: center; font-size: 36px; font-weight: 400; color: #2c2a29; letter-spacing: 4px; margin-bottom: 15px; opacity: 0; transform: translateY(30px); transition: all 0.8s ease; }
#cake-section > .cake-title.is-active { opacity: 1; transform: translateY(0); }
#cake-section > .cake-subtitle { text-align: center; font-size: 15px; font-weight: 300; color: #c19b86; letter-spacing: 3px; margin-bottom: 80px; opacity: 0; transform: translateY(30px); transition: all 0.8s ease 0.2s; }
#cake-section > .cake-subtitle.is-active { opacity: 1; transform: translateY(0); }
#cake-section .cake-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; max-width: 1200px; margin: 0 auto; }
#cake-section .cake-item { background: #fff; padding: 30px; border-radius: 2px; box-shadow: 0 15px 40px rgba(0,0,0,0.02); opacity: 0; transform: translateY(40px); transition: all 0.8s ease; }
#cake-section .cake-item.is-active { opacity: 1; transform: translateY(0); }
#cake-section .cake-media { overflow: hidden; margin-bottom: 30px; position: relative; aspect-ratio: 4 / 5; border-radius: 2px; }
#cake-section .cake-image { width: 100%; height: 100%; object-fit: cover; transition: transform 1s ease; }
#cake-section .cake-item:hover .cake-image { transform: scale(1.06); }
#cake-section .cake-title { font-size: 20px; font-weight: 500; color: #2c2a29; margin-bottom: 15px; letter-spacing: 2px; }
#cake-section .cake-text { font-size: 15px; font-weight: 300; color: #7a7671; line-height: 1.9; }

#dining-section { padding: 120px 5%; background-color: #fff; }
#dining-section > .dining-title { text-align: center; font-size: 36px; font-weight: 400; color: #2c2a29; letter-spacing: 4px; margin-bottom: 15px; opacity: 0; transform: translateY(30px); transition: all 0.8s ease; }
#dining-section > .dining-title.is-active { opacity: 1; transform: translateY(0); }
#dining-section > .dining-subtitle { text-align: center; font-size: 15px; font-weight: 300; color: #c19b86; letter-spacing: 3px; margin-bottom: 90px; opacity: 0; transform: translateY(30px); transition: all 0.8s ease 0.2s; }
#dining-section > .dining-subtitle.is-active { opacity: 1; transform: translateY(0); }
#dining-section .dining-list { display: flex; flex-direction: column; gap: 120px; max-width: 1100px; margin: 0 auto; }
#dining-section .dining-item { display: flex; align-items: center; gap: 80px; opacity: 0; transform: translateY(50px); transition: all 1.2s ease; }
#dining-section .dining-item.is-active { opacity: 1; transform: translateY(0); }
#dining-section .dining-item:nth-child(even) { flex-direction: row-reverse; }
#dining-section .dining-media { flex: 1.2; overflow: hidden; border-radius: 2px; position: relative; box-shadow: 0 20px 60px rgba(0,0,0,0.05); }
#dining-section .dining-image { width: 100%; height: 650px; object-fit: cover; transition: transform 1.2s ease; }
#dining-section .dining-item:hover .dining-image { transform: scale(1.04); }
#dining-section .dining-content { flex: 1; padding: 0 30px; }
#dining-section .dining-title { font-size: 30px; font-weight: 400; color: #2c2a29; margin-bottom: 25px; letter-spacing: 2px; }
#dining-section .dining-text { font-size: 15px; font-weight: 300; color: #7a7671; line-height: 2.1; margin-bottom: 40px; }
#dining-section .dining-figure { display: inline-block; padding: 14px 35px; border: 1px solid #c19b86; color: #c19b86; font-size: 13px; letter-spacing: 3px; text-transform: uppercase; transition: all 0.4s ease; background: transparent; }
#dining-section .dining-figure:hover { background: #c19b86; color: #fff; }

footer { background-color: #2c2a29; color: #fff; padding: 80px 5%; text-align: center; }
footer .footer-title { font-size: 18px; font-weight: 300; letter-spacing: 5px; color: #c19b86; margin-bottom: 25px; }
footer .footer-text { font-size: 13px; font-weight: 300; color: #888; letter-spacing: 1.5px; }

@media (max-width: 1280px) {
	#cake-section .cake-grid { gap: 30px; }
	#dining-section .dining-item { gap: 50px; }
	#dining-section .dining-image { height: 550px; }
}

@media (max-width: 960px) {
	#hero-section .hero-title { font-size: 40px; }
	#cake-section .cake-grid { grid-template-columns: repeat(2, 1fr); }
	#dining-section .dining-image { height: 450px; }
	#dining-section .dining-content { padding: 0; }
}

@media (max-width: 768px) {
	header { padding: 15px 5%; }
	#hero-section { padding: 130px 5% 60px; }
	#hero-section .hero-title { font-size: 32px; }
	#hero-section .hero-subtitle { font-size: 14px; letter-spacing: 4px; }
	#intro-section { padding: 100px 5%; }
	#intro-section .intro-title { font-size: 28px; }
	#cake-section { padding: 100px 5%; }
	#cake-section .cake-grid { grid-template-columns: 1fr; max-width: 480px; margin: 0 auto; }
	#cake-section > .cake-title { font-size: 30px; }
	#dining-section { padding: 100px 5%; }
	#dining-section > .dining-title { font-size: 30px; }
	#dining-section .dining-item { flex-direction: column; gap: 40px; text-align: center; }
	#dining-section .dining-item:nth-child(even) { flex-direction: column; }
	#dining-section .dining-media { width: 100%; }
	#dining-section .dining-title { font-size: 26px; }
}

@media (max-width: 500px) {
	header h1 { font-size: 16px; letter-spacing: 2px; }
	#hero-section .hero-title { font-size: 28px; letter-spacing: 3px; }
	#hero-section .hero-text { font-size: 15px; }
	#intro-section .intro-title { font-size: 24px; }
	#intro-section .intro-text { font-size: 15px; }
	#cake-section .cake-item { padding: 20px; }
	#cake-section > .cake-title { font-size: 26px; }
	#dining-section > .dining-title { font-size: 26px; }
	#dining-section .dining-image { height: 350px; }
	#dining-section .dining-figure { padding: 12px 25px; font-size: 12px; }
}