:root{--wrap:1100px;--bd:#e5e7eb;--mut:#6b7280;--bg:#f8fafc;--card:#fff;--danger:#b91c1c;}
*{box-sizing:border-box;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}
body{margin:0;background:var(--bg);color:#111827}
.wrap{max-width:var(--wrap);margin:0 auto;padding:14px}
.top{background:#fff;border-bottom:1px solid var(--bd)}
.brand{display:flex;gap:12px;align-items:center}
.logo{width:44px;height:44px;object-fit:contain}
.title{font-weight:700}
.theme{color:var(--mut);font-size:14px}
.nav{display:flex;gap:12px;flex-wrap:wrap;align-items:center;justify-content:flex-end}
.nav a{color:#111827;text-decoration:none;padding:6px 8px;border-radius:8px}
.nav a:hover{background:#f3f4f6}
.banner{height:160px;background-size:cover;background-position:center;border-top:1px solid var(--bd)}
main{min-height:55vh}
.card{background:var(--card);border:1px solid var(--bd);border-radius:14px;padding:14px;margin:12px 0;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:800px){.grid,.grid2{grid-template-columns:1fr}.nav{justify-content:flex-start}}
.form label{display:block;margin:10px 0 6px;font-weight:600}
.form input{width:100%;padding:10px;border:1px solid var(--bd);border-radius:10px}
.form.inline{display:flex;gap:10px;align-items:center}
.form.inline input{flex:1}
.btn{display:inline-block;border:1px solid var(--bd);background:#111827;color:#fff;padding:10px 12px;border-radius:10px;text-decoration:none;cursor:pointer}
.btn:hover{opacity:.92}
.btn:disabled{opacity:.6;cursor:not-allowed}
.btn-danger{background:var(--danger)}
.alert{padding:12px;border-radius:12px;margin:12px 0;border:1px solid var(--bd)}
.alert-danger{background:#fef2f2;border-color:#fecaca}
.alert-success{background:#f0fdf4;border-color:#bbf7d0}
.muted{color:var(--mut)}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
@media (max-width:1000px){.gallery{grid-template-columns:repeat(3,1fr)}}
@media (max-width:700px){.gallery{grid-template-columns:repeat(2,1fr)}}
.thumb{background:#fff;border:1px solid var(--bd);border-radius:14px;overflow:hidden}
.thumb img{width:100%;height:160px;object-fit:cover;background:#f3f4f6}
.cap{padding:10px}
.footer{background:#0b1220;color:#e5e7eb;margin-top:24px}
.footer .h{font-weight:700;margin-bottom:8px}
.footer .item{margin:10px 0}
.footer .cols{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}
.footer .copy{margin-top:12px;color:#9ca3af}
@media(max-width:800px){.footer .cols{grid-template-columns:1fr}}

/* ====== Layout base ====== */
.container{max-width:1080px;margin:0 auto;padding:0 14px}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}

/* ====== Topbar ====== */
.topbar{position:sticky;top:0;background:#0b2a4a;color:#fff;z-index:20;box-shadow:0 6px 20px rgba(0,0,0,.15)}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 0}
.brand{display:flex;align-items:center;gap:10px}
.brand-logo{width:36px;height:36px;border-radius:10px;background:#fff}
.brand-title{font-weight:800}
.topnav{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.topnav a{opacity:.92}
.topnav a:hover{opacity:1;text-decoration:underline}
.btn-primary{background:#ffcc00;color:#111;padding:8px 12px;border-radius:10px;font-weight:800}

/* ====== Hero ====== */
.hero{padding:14px 0}
.hero-banner{
  border-radius:16px;
  overflow:hidden;
  min-height:280px;
  background-size:cover;
  background-position:center;
  position:relative;
}
.hero-overlay{
  position:absolute;inset:0;
  background:linear-gradient(90deg, rgba(0,0,0,.55), rgba(0,0,0,.15));
  padding:24px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  gap:8px;
}
.hero-title{margin:0;color:#fff;font-size:30px;font-weight:900}
.hero-sub{margin:0;color:rgba(255,255,255,.92)}

/* ====== Countdown ====== */
.countdown-wrap{padding:12px 0}
.countdown-box{
  padding:16px;
  border-radius:14px;
  background:#0b2a4a;
  color:#fff;
  box-shadow:0 8px 24px rgba(0,0,0,.2);
}
.countdown-title{font-size:18px;font-weight:900;margin-bottom:10px}
.countdown-timer{display:flex;gap:10px;flex-wrap:wrap}
.cd-item{
  flex:1;
  min-width:120px;
  text-align:center;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.18);
  border-radius:12px;
  padding:10px 8px;
}
.cd-num{font-size:34px;font-weight:900;line-height:1}
.cd-label{opacity:.9;margin-top:6px}
.deadline-note{margin-top:10px;font-size:15px}
.deadline-highlight{
  display:inline-block;
  padding:6px 10px;
  margin-left:6px;
  border-radius:10px;
  background:#ffcc00;
  color:#111;
  font-weight:900;
}

/* ====== Featured photos ====== */
.featured{padding:8px 0 22px}
.section-head{margin:10px 0 12px}
.section-title{margin:0;font-size:22px;font-weight:900}
.section-desc{margin:6px 0 0;color:#3b4b5c}
.photo-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:12px;
}
.photo-card{
  border-radius:14px;
  overflow:hidden;
  background:#f2f4f7;
  box-shadow:0 6px 16px rgba(0,0,0,.12);
  aspect-ratio: 4 / 3;
}
.photo-card img{width:100%;height:100%;object-fit:cover;transition:transform .25s ease}
.photo-card:hover img{transform:scale(1.05)}

/* ====== Footer ====== */
.footer{margin-top:18px;background:#0b2a4a;color:#fff}
.footer-inner{padding:14px 0;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.footer a{text-decoration:underline;opacity:.95}

/* ====== Responsive ====== */
@media (max-width: 900px){
  .photo-grid{grid-template-columns:repeat(3, 1fr)}
}
@media (max-width: 640px){
  .topbar-inner{flex-direction:column;align-items:flex-start}
  .photo-grid{grid-template-columns:repeat(2, 1fr)}
  .hero-title{font-size:24px}
}