* { box-sizing: border-box; }
body { margin: 0; font-family: "Noto Sans TC", "Chivo", ui-sans-serif, system-ui, sans-serif; background: #FBF3E4; }
a { color: #E55A00; text-decoration: none; }
a:hover { color: #C24C00; }
img { max-width: 100%; }
.stencil { font-family: "Big Shoulders Display", "Chivo", sans-serif; }
.eyebrow { font-size: 15px; font-weight: 600; letter-spacing: 0.02em; }
.eyebrow-en { font-family: "Big Shoulders Display", "Chivo", sans-serif; font-size: 12px; font-weight: 900; letter-spacing: 0.08em; }
.kicker { display: flex; flex-direction: row; align-items: baseline; gap: 8px; }
.micro { font-size: 12px; font-weight: 700; letter-spacing: 0.06em; }
h1, h2, h3 { text-wrap: balance; }
h2.h-section { margin: 0; font-weight: 700; font-size: 36px; line-height: 1.28; }
h3.h-card { margin: 0; font-size: 20px; font-weight: 600; }
p.body-md { margin: 0; font-size: 15.5px; line-height: 1.75; }
p { text-wrap: pretty; }

@keyframes reveal-up { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
@keyframes reveal-fade { from { opacity: 0; } to { opacity: 1; } }
.reveal { opacity: 0; animation: reveal-up 0.6s ease-out both; }
.reveal-fade { opacity: 0; animation: reveal-fade 0.6s ease-out both; }
.d1 { animation-delay: 0s; }
.d2 { animation-delay: 0.1s; }
.d3 { animation-delay: 0.2s; }
.d4 { animation-delay: 0.3s; }
@media (prefers-reduced-motion: reduce) {
  .reveal, .reveal-fade { animation: none; opacity: 1; }
}

.reveal-on-scroll { opacity: 0; transform: translateY(24px); transition: all 0.7s ease-out; }
.reveal-on-scroll.is-visible { opacity: 1; transform: translateY(0); }
@media (prefers-reduced-motion: reduce) {
  .reveal-on-scroll { opacity: 1; transform: none; transition: none; }
}

.partners-track-wrap {
  overflow: hidden;
  width: 100%;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.partners-track {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 20px;
  width: max-content;
  animation: partners-scroll 82s linear infinite;
}
.partners-track:hover { animation-play-state: paused; }
.partner-tile {
  flex-shrink: 0;
  width: 160px;
  height: 76px;
  background: #FFFFFF;
  border: 1px solid #EADFC4;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px;
}
@keyframes partners-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
  .partners-track { animation: none; }
  .partners-track-wrap { overflow-x: auto; }
}

@media (max-width: 900px) {
  .grid-3 { grid-template-columns: 1fr !important; }
  .grid-2 { grid-template-columns: 1fr !important; }
  .hero-grid { grid-template-columns: 1fr !important; }
  .hero-copy { text-align: center !important; align-items: center !important; }
  .hero-ctas { align-items: center !important; }
  .nav-links { display: none !important; }
  .nav-cta { display: none !important; }
}
