:root{
  --bg: #0d1224;
  --bg-2: #161d38;
  --bg-3: #1c2447;
  --ink: #f4f1e8;
  --ink-dim: #b9bfd6;
  --gold: #e3b568;
  --gold-soft: #c9a05c;
  --line: rgba(244,241,232,0.14);
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  min-height:100vh;
  background:
    radial-gradient(1200px 600px at 15% -10%, rgba(227,181,104,0.12), transparent 60%),
    radial-gradient(900px 500px at 90% 10%, rgba(120,140,220,0.16), transparent 55%),
    linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 100%);
  background-attachment: fixed;
  color: var(--ink);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  position:relative;
}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}

.stars{position:fixed; inset:0; pointer-events:none; z-index:0;
  background-image:
    radial-gradient(1.5px 1.5px at 20% 30%, rgba(244,241,232,0.55) 50%, transparent 51%),
    radial-gradient(1.5px 1.5px at 75% 15%, rgba(244,241,232,0.4) 50%, transparent 51%),
    radial-gradient(1px 1px at 60% 60%, rgba(244,241,232,0.35) 50%, transparent 51%),
    radial-gradient(1.5px 1.5px at 35% 75%, rgba(244,241,232,0.45) 50%, transparent 51%),
    radial-gradient(1px 1px at 90% 55%, rgba(244,241,232,0.3) 50%, transparent 51%),
    radial-gradient(1.5px 1.5px at 50% 20%, rgba(244,241,232,0.4) 50%, transparent 51%),
    radial-gradient(1px 1px at 10% 65%, rgba(244,241,232,0.3) 50%, transparent 51%);
  opacity:0.8;
}

.moon{
  width:34px; height:34px;
  border-radius:50%;
  background: radial-gradient(circle at 34% 32%, #fff7e0 0%, var(--gold) 55%, var(--gold-soft) 100%);
  box-shadow: 0 0 26px rgba(227,181,104,0.35);
  flex: none;
}

/* header / nav */
.site-header{
  position:relative; z-index:2;
  display:flex; align-items:center; justify-content:space-between;
  gap: 20px;
  padding: 22px 6vw;
  border-bottom: 1px solid var(--line);
}
.brand-link{display:flex; align-items:center; gap:12px;}
.brand-link .brand{
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.5rem;
  letter-spacing: 0.02em;
}
.brand-link .brand em{color:var(--gold); font-style:normal;}
.main-nav{display:flex; gap: 28px; align-items:center;}
.main-nav a{
  font-size: 0.92rem; letter-spacing: 0.02em; color: var(--ink-dim);
  padding: 6px 2px; border-bottom: 1px solid transparent;
  transition: color .15s ease, border-color .15s ease;
}
.main-nav a:hover, .main-nav a.active{ color: var(--ink); border-color: var(--gold); }

main{position:relative; z-index:1; max-width: 1180px; margin: 0 auto; padding: 0 6vw 8vh;}

/* generic page header block */
.page-head{ text-align:center; padding: 7vh 0 4vh; max-width: 720px; margin: 0 auto; }
.kicker{
  font-size: 0.78rem; letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--gold); margin: 0 0 14px;
}
.page-head h1{
  font-family: Georgia, "Times New Roman", serif; font-weight:400;
  font-size: clamp(1.8rem, 4vw, 2.6rem); margin: 0 0 14px; color: var(--ink);
}
.page-head p{ color: var(--ink-dim); line-height:1.7; font-size:1.02rem; }

/* filter bar */
.filter-bar{
  display:flex; flex-wrap:wrap; gap:10px; justify-content:center;
  margin: 0 0 44px;
}
.filter-pill{
  font-size:0.85rem; letter-spacing:0.02em; color: var(--ink-dim);
  border:1px solid var(--line); border-radius:999px; padding:9px 18px;
  background: rgba(244,241,232,0.03); cursor:pointer;
  transition: all .15s ease;
}
.filter-pill:hover{ color: var(--ink); border-color: rgba(244,241,232,0.3); }
.filter-pill.active{ color: var(--bg); background: var(--gold); border-color: var(--gold); font-weight:600; }

/* trip cards grid */
.trip-grid{
  display:grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 26px; margin-bottom: 6vh;
}
.trip-card{
  display:block; border-radius:16px; overflow:hidden;
  border:1px solid var(--line); background: var(--bg-2);
  transition: transform .18s ease, border-color .18s ease;
}
.trip-card:hover{ transform: translateY(-4px); border-color: rgba(227,181,104,0.4); }
.trip-card .cover{ aspect-ratio: 4/3; overflow:hidden; background:var(--bg-3); }
.trip-card .cover img{ width:100%; height:100%; object-fit:cover; }
.trip-card .body{ padding: 18px 20px 22px; }
.trip-card .cat{
  font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase; color: var(--gold);
  margin: 0 0 8px;
}
.trip-card h3{
  font-family: Georgia, "Times New Roman", serif; font-weight:400;
  font-size: 1.2rem; margin: 0 0 8px; color: var(--ink);
}
.trip-card .meta{ font-size:0.82rem; color: var(--ink-dim); margin:0 0 10px; }
.trip-card .excerpt{ font-size:0.9rem; color: var(--ink-dim); line-height:1.6; margin:0; }
.empty-state{
  text-align:center; color: var(--ink-dim); padding: 40px 20px; font-size:0.95rem;
  border:1px dashed var(--line); border-radius:14px; display:none;
}

/* detail page */
.trip-hero{ padding: 6vh 0 3vh; max-width: 760px; margin:0 auto; text-align:center; }
.breadcrumb{ font-size:0.82rem; color: var(--ink-dim); text-align:center; margin: 22px 0 0; }
.breadcrumb a{ color: var(--gold); }
.trip-hero .cat{
  font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; color: var(--gold); margin:0 0 12px;
}
.trip-hero h1{
  font-family: Georgia, "Times New Roman", serif; font-weight:400;
  font-size: clamp(1.8rem, 4vw, 2.6rem); margin:0 0 10px;
}
.trip-hero .meta{ color: var(--ink-dim); font-size:0.92rem; }
.trip-text{ max-width: 700px; margin: 0 auto 5vh; color: var(--ink-dim); line-height:1.8; font-size:1.02rem; }
.trip-text .note{
  border-left: 2px solid var(--gold); padding: 4px 0 4px 16px; margin: 24px 0;
  font-style: italic; color: var(--ink-dim); font-size:0.95rem;
}
.section-title{
  font-family: Georgia, "Times New Roman", serif; font-weight:400; font-size:1.4rem;
  text-align:center; margin: 0 0 26px; color: var(--ink);
}
.gallery-grid{
  display:grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 10px; margin-bottom: 6vh;
}
.gallery-grid button{
  padding:0; border:0; background:none; cursor:pointer; border-radius:10px; overflow:hidden;
  aspect-ratio: 4/5;
}
.gallery-grid img{ width:100%; height:100%; object-fit:cover; transition: transform .2s ease; }
.gallery-grid button:hover img{ transform: scale(1.05); }

/* lightbox */
.lightbox{
  position:fixed; inset:0; background: rgba(6,8,18,0.94); z-index:50;
  display:none; align-items:center; justify-content:center; flex-direction:column;
  padding: 4vh 4vw;
}
.lightbox.open{ display:flex; }
.lightbox img{ max-width:100%; max-height:78vh; border-radius:10px; }
.lightbox .lb-counter{ color: var(--ink-dim); font-size:0.85rem; margin-top:16px; }
.lightbox .lb-close, .lightbox .lb-prev, .lightbox .lb-next{
  position:absolute; background:none; border:1px solid var(--line); color: var(--ink);
  border-radius:50%; width:44px; height:44px; cursor:pointer; font-size:1.1rem;
  display:flex; align-items:center; justify-content:center;
}
.lightbox .lb-close{ top:24px; right:24px; }
.lightbox .lb-prev{ left:24px; top:50%; transform:translateY(-50%); }
.lightbox .lb-next{ right:24px; top:50%; transform:translateY(-50%); }
.lightbox .lb-prev:hover, .lightbox .lb-next:hover, .lightbox .lb-close:hover{ border-color: var(--gold); color: var(--gold); }

footer{
  position:relative; z-index:1; text-align:center;
  margin-top: 40px; padding: 30px 6vw 50px;
  color: rgba(185,191,214,0.55); font-size: 0.8rem; letter-spacing: 0.03em;
}

@media (max-width: 640px){
  .site-header{ flex-direction:column; align-items:flex-start; gap:12px; padding:18px 6vw; }
  .main-nav{ gap:18px; flex-wrap:wrap; }
  .lightbox .lb-prev{ left:8px; } .lightbox .lb-next{ right:8px; }
}
