:root {
  --ink: #0a1515;
  --ink2: #102222;
  --jade: #2f8f6f;
  --gold: #d9b45a;
  --gold2: #f3d98a;
  --text: #e8e2cf;
  --muted: #a9a28c;
  font-family: "Noto Sans Thai", "Leelawadee UI", "Sarabun", Tahoma, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--ink); color: var(--text); line-height: 1.6; }
a { color: var(--gold2); }

.top {
  position: sticky; top: 0; z-index: 10; display: flex; align-items: center; justify-content: space-between;
  gap: 16px; padding: 10px clamp(16px, 4vw, 48px); background: rgba(10, 21, 21, 0.92);
  border-bottom: 1px solid rgba(217, 180, 90, 0.25); backdrop-filter: blur(6px);
}
.brand { font-size: 22px; font-weight: 700; color: var(--gold); text-decoration: none; white-space: nowrap; }
.brand span { color: #c94a3a; }
nav { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
nav a { color: var(--text); text-decoration: none; font-size: 15px; }
nav a:hover { color: var(--gold2); }
.nav-play { padding: 6px 16px; border: 1px solid var(--gold); border-radius: 4px; color: var(--gold2) !important; }

.hero {
  min-height: min(86vh, 760px); display: grid; place-items: center; text-align: center; padding: 64px 16px;
  background:
    linear-gradient(180deg, rgba(10, 21, 21, 0.35) 0%, rgba(10, 21, 21, 0.75) 70%, var(--ink) 100%),
    url("img/hero.webp") center / cover no-repeat;
}
.hero-inner { max-width: 760px; }
.kicker { margin: 0; letter-spacing: 0.45em; color: var(--gold); font-size: 14px; }
.hero h1 {
  margin: 8px 0 12px; font-size: clamp(40px, 8vw, 84px); line-height: 1.15; color: var(--gold2);
  text-shadow: 0 2px 0 #6b4a12, 0 0 24px rgba(0, 0, 0, 0.8);
}
.lead { font-size: clamp(17px, 2.4vw, 21px); margin: 0 auto 28px; max-width: 620px; }
.cta {
  display: inline-block; padding: 14px 48px; font-size: 22px; font-weight: 700; color: #241703; text-decoration: none;
  background: linear-gradient(180deg, var(--gold2), var(--gold) 55%, #a87d26); border: 1px solid #f7e6b0;
  border-radius: 6px; box-shadow: 0 4px 18px rgba(217, 180, 90, 0.35);
}
.cta:hover { filter: brightness(1.08); }
.sub { color: var(--muted); margin: 14px 0 6px; }
.status { color: var(--muted); font-size: 14px; margin: 0; }
.status.on::before { content: "●"; color: #4cd07d; margin-right: 6px; }
.status.off::before { content: "●"; color: #c94a3a; margin-right: 6px; }

.band { max-width: 1100px; margin: 0 auto; padding: 56px clamp(16px, 4vw, 32px); }
h2 { color: var(--gold); font-size: clamp(24px, 3.4vw, 32px); margin: 0 0 20px; border-left: 4px solid var(--jade); padding-left: 12px; }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
.grid article { background: var(--ink2); border: 1px solid rgba(217, 180, 90, 0.2); border-radius: 6px; padding: 18px; }
.grid h3 { margin: 0 0 6px; color: var(--gold2); font-size: 19px; }
.grid p { margin: 0; color: var(--text); }

.gallery {
  max-width: 1100px; margin: 0 auto; padding: 0 clamp(16px, 4vw, 32px); display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 14px;
}
.gallery figure { margin: 0; background: var(--ink2); border: 1px solid rgba(217, 180, 90, 0.2); border-radius: 6px; overflow: hidden; }
.gallery img { display: block; width: 100%; aspect-ratio: 16 / 7; object-fit: cover; }
.gallery figcaption { padding: 8px 12px; color: var(--muted); font-size: 14px; }

.note { color: var(--muted); }
.tl { width: 100%; border-collapse: collapse; font-size: 15px; }
.tl th, .tl td { text-align: left; padding: 9px 10px; border-bottom: 1px solid rgba(217, 180, 90, 0.15); vertical-align: top; }
.tl th { color: var(--gold); font-weight: 600; }
.tl td:first-child { white-space: nowrap; color: var(--gold2); font-weight: 700; }
.tl td:nth-child(2) { white-space: nowrap; color: var(--muted); }
.tl tr.past td { opacity: 0.55; }
.tl tr.next td { background: rgba(47, 143, 111, 0.15); }
.steps { padding-left: 22px; }
.steps li { margin-bottom: 8px; }

footer { border-top: 1px solid rgba(217, 180, 90, 0.2); padding: 24px 16px 40px; text-align: center; color: var(--muted); font-size: 13px; }

@media (max-width: 640px) {
  .top { flex-direction: column; gap: 6px; }
  nav { gap: 12px; justify-content: center; }
  .tl td:nth-child(2), .tl th:nth-child(2) { display: none; }
}
