:root{
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:#17201f;background:#f5f7f6
}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;display:flex;flex-direction:column}
a{color:inherit}
.topbar{height:68px;background:#fff;border-bottom:1px solid #e4e9e7;display:flex;align-items:center;padding:0 22px;position:sticky;top:0;z-index:10}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;font-weight:850;font-size:19px}
.brand-mark{width:38px;height:38px;border-radius:12px;background:#0f766e;color:#fff;display:grid;place-items:center;font-weight:900}
.page{width:min(100% - 30px,1040px);margin:0 auto;flex:1}
footer{text-align:center;padding:30px;color:#75817e;font-size:13px}
.loading-card,.message-card{max-width:720px;margin:70px auto;background:#fff;border:1px solid #e2e8e5;border-radius:24px;padding:40px;text-align:center}
.spinner{width:32px;height:32px;border:3px solid #dce8e4;border-top-color:#0f766e;border-radius:50%;margin:0 auto 18px;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.eyebrow{font-size:12px;font-weight:900;letter-spacing:1.6px;color:#0f766e;text-transform:uppercase}
.hero{margin:48px auto 26px;text-align:center;max-width:800px}
.hero h1{font-size:clamp(34px,6vw,62px);letter-spacing:-2px;line-height:1.02;margin:16px 0}
.hero p{font-size:18px;line-height:1.65;color:#5b6663;margin:0 auto;max-width:680px}
.events-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:30px 0 56px}
.event-card{display:block;text-decoration:none;background:#fff;border:1px solid #e2e8e5;border-radius:20px;overflow:hidden;transition:.18s transform,.18s box-shadow}
.event-card:hover{transform:translateY(-3px);box-shadow:0 14px 35px rgba(20,40,35,.09)}
.card-cover{width:100%;aspect-ratio:16/10;object-fit:cover;background:linear-gradient(135deg,#cfeae4,#e1eaf1);display:block}
.fallback{width:100%;aspect-ratio:16/10;background:linear-gradient(135deg,#0f766e,#164e63);display:flex;align-items:flex-end;padding:18px;color:#fff;font-weight:800}
.card-body{padding:17px}
.badge{display:inline-flex;padding:6px 10px;border-radius:999px;background:#e6f5f1;color:#0b655e;font-size:11px;font-weight:850}
.card-title{font-size:19px;font-weight:850;line-height:1.2;margin:11px 0}
.card-meta{font-size:14px;line-height:1.55;color:#68736f}
.event-shell{max-width:860px;margin:30px auto 58px}
.poster-wrap{background:#e7edeb;border-radius:28px;overflow:hidden;border:1px solid #e0e7e4}
.poster{width:100%;max-height:620px;object-fit:contain;display:block;background:#111}
.poster-fallback{min-height:360px;background:linear-gradient(135deg,#0f766e,#164e63);display:flex;align-items:flex-end;padding:32px;color:#fff}
.poster-fallback h2{font-size:clamp(28px,5vw,48px);margin:8px 0 0;letter-spacing:-1px}
.detail-card{background:#fff;border:1px solid #e2e8e5;border-radius:24px;padding:28px;margin-top:18px}
.event-title{font-size:clamp(30px,5vw,48px);line-height:1.06;letter-spacing:-1.5px;margin:14px 0 20px}
.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:20px}
.info{padding:15px 16px;background:#f6f8f7;border-radius:16px}
.info-label{font-size:11px;text-transform:uppercase;letter-spacing:.8px;font-weight:850;color:#7a8581}
.info-value{margin-top:5px;font-weight:750;line-height:1.45}
.description{white-space:pre-wrap;line-height:1.75;color:#46514e;font-size:16px}
.action-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.button{border:0;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;padding:12px 17px;border-radius:14px;font-weight:800;cursor:pointer;font:inherit}
.button-primary{background:#0f766e;color:#fff}
.button-secondary{background:#e8f2ef;color:#105f59}
.note{font-size:13px;color:#74807c;margin-top:12px}
@media(max-width:800px){.events-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){
  .topbar{padding:0 15px}.page{width:min(100% - 22px,1040px)}
  .hero{margin-top:30px}.events-grid{grid-template-columns:1fr}
  .detail-card{padding:20px}.info-grid{grid-template-columns:1fr}
  .poster-wrap{border-radius:20px}.event-shell{margin-top:18px}
}
