html { scroll-behavior: smooth; }
section { scroll-margin-top: 96px; }
:root{ --grad: linear-gradient(90deg,#ff4d4d 0%,#ff8a34 18%,#ff33cc 40%,#9b59ff 62%,#3db9ff 82%,#57d2ff 100%); }
.neon-text{ background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; text-shadow: 0 0 12px rgba(255,51,204,.35), 0 0 28px rgba(61,185,255,.25); }
.space-bg{
  background:
    radial-gradient(1200px 800px at 70% 10%, rgba(255,60,180,.08), transparent 55%),
    radial-gradient(900px 600px at 20% 80%, rgba(80,120,255,.10), transparent 60%),
    #0b0b0f;
  position: relative; overflow-x: hidden;
}
.space-bg:before{
  content:""; position:absolute; inset:0; pointer-events:none; opacity:.55;
  background:
    radial-gradient(2px 2px at 20% 15%, rgba(255,255,255,.7), transparent 60%),
    radial-gradient(1.5px 1.5px at 35% 70%, rgba(255,255,255,.55), transparent 60%),
    radial-gradient(1.2px 1.2px at 75% 25%, rgba(255,255,255,.55), transparent 60%),
    radial-gradient(1.2px 1.2px at 55% 45%, rgba(255,255,255,.45), transparent 60%),
    radial-gradient(1.2px 1.2px at 90% 65%, rgba(255,255,255,.55), transparent 60%);
}
.btn-neon{ background: var(--grad); color:#0b0b0f; box-shadow: 0 0 24px rgba(255,51,204,.25), inset 0 0 1px rgba(255,255,255,.35); }
.soft-card{ background: rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.12); border-radius: 1rem; }

/* gallery grid */
.gallery-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
@media (min-width: 640px){ .gallery-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (min-width: 1024px){ .gallery-grid{ grid-template-columns:repeat(4,minmax(0,1fr)); } }
.gallery-item{ position:relative; border-radius:1rem; overflow:hidden; cursor:zoom-in; }
.gallery-item::before{ content:""; display:block; aspect-ratio:1/1; }
.gallery-item > img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }

/* schedule: chips scroll on mobile */
.chips-scroll{ overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.chips-scroll::-webkit-scrollbar{ display:none; }

/* compact table */
table.schedule{ width:100%; border-collapse:separate; border-spacing:0; font-size:.92rem; }
table.schedule th, table.schedule td{ padding:.45rem .6rem; }
table.schedule thead th{ font-weight:700; text-align:left; border-bottom:1px solid rgba(255,255,255,.12); }
table.schedule tbody tr + tr td{ border-top:1px dashed rgba(255,255,255,.08); }
.day-row{ background:rgba(255,255,255,.06); font-weight:700; }

.seg{ display:inline-flex; border:1px solid rgba(255,255,255,.15); border-radius:.75rem; overflow:hidden; }
.seg button{ padding:.5rem .8rem; font-size:.9rem; }
.seg button.active{ background:rgba(255,255,255,.12); }

/* mobile accordion for table view */
.acc summary{ list-style:none; cursor:pointer; padding:.8rem 1rem; }
.acc summary::-webkit-details-marker{ display:none; }
