/* yurtalerts — Alaskan nature palette.
   Foreground green (spring) or snow (winter) · brown midground · blue sky background.
   Two moods set on <body class="mood-spring|mood-winter">. Photos drop into .hero__photo. */

:root {
  /* sky */
  --sky-deep: #3e72a4;
  --sky: #6fa8da;
  --sky-pale: #a8cde9;
  --glacier: #cadee8;
  --snow: #f2f7fb;
  /* land */
  --spruce-deep: #2c4636;
  --spruce: #38573f;
  --spring: #88ac3a;
  --spring-pale: #a9c76a;
  --bark: #6b5340;
  --bark-deep: #463528;
  --river: #98a39e;
  /* ink */
  --ink: #16241c;
  --mist: #5c6b62;
  --paper: #f7f4ec;

  --shadow: 0 1px 2px rgba(22, 36, 28, .08), 0 6px 20px rgba(22, 36, 28, .08);
  --radius: 14px;
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: "Mona Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  color: var(--ink);
  background: var(--paper);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
a { color: var(--spruce); text-decoration: none; }
a:hover { text-decoration: underline; }
h1, h2, h3 { font-family: "Bricolage Grotesque", Georgia, serif; line-height: 1.1; margin: 0 0 .4em; }

/* ---- layout ---- */
.wrap { max-width: 940px; margin: 0 auto; padding: 0 20px; }
.nav {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  padding: 14px 20px; background: rgba(255, 255, 255, .82);
  backdrop-filter: blur(8px); border-bottom: 1px solid rgba(22, 36, 28, .08);
  position: sticky; top: 0; z-index: 10;
}
.nav__brand { font-family: "Bricolage Grotesque", Georgia, serif; font-weight: 800; font-size: 1.25rem; letter-spacing: -.02em; }
.nav__brand b { color: var(--spring); }
.nav__spacer { flex: 1; }
.nav a { color: var(--ink); font-weight: 600; font-size: .95rem; }
.section { padding: 28px 0 56px; }

/* ---- the Alaska "scene": layered gradients evoking sky / peak / treeline ---- */
.hero { position: relative; overflow: hidden; border-radius: 0 0 24px 24px; }
.hero__scene {
  min-height: 320px; position: relative;
  display: flex; align-items: flex-end;
}
.hero__photo {
  position: absolute; inset: 0; background-size: cover; background-position: center;
  /* set per page:  style="background-image:url('/static/img/hero-spring.webp')" */
}
/* Legibility scrim over the photo: heavy at the bottom-left where the copy sits, so
   white text stays readable over bright photos (snow peaks / light sky). */
.hero__photo::after {
  content: ""; position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(10, 15, 18, .22) 0%, rgba(10, 15, 18, .36) 48%, rgba(10, 15, 18, .84) 100%),
    linear-gradient(90deg, rgba(10, 15, 18, .42) 0%, rgba(10, 15, 18, .10) 55%, transparent 100%);
}
.hero__copy {
  position: relative; z-index: 2; padding: 28px 26px;
  color: #fff;
  text-shadow: 0 1px 2px rgba(0, 0, 0, .6), 0 2px 20px rgba(0, 0, 0, .55);
}
.hero__copy h1 { color: #fff; font-size: clamp(1.8rem, 4vw, 2.8rem); text-shadow: 0 2px 4px rgba(0, 0, 0, .65), 0 3px 24px rgba(0, 0, 0, .5); }
.hero__copy p { max-width: 36ch; font-size: 1.05rem; opacity: .97; }

/* spring scene: blue sky -> snow peak -> bright new-growth treeline */
.mood-spring .hero__scene {
  background:
    linear-gradient(180deg, transparent 55%, rgba(44, 70, 54, .55) 100%),
    radial-gradient(120% 80% at 75% 120%, var(--spring) 0%, var(--spruce) 38%, transparent 60%),
    radial-gradient(60% 50% at 35% 95%, var(--spring-pale) 0%, transparent 55%),
    radial-gradient(50% 60% at 50% 30%, var(--snow) 0%, var(--glacier) 30%, transparent 55%),
    linear-gradient(180deg, var(--sky-deep) 0%, var(--sky) 45%, var(--sky-pale) 78%);
}
/* winter scene: cool sky -> snow peak -> bare brown slopes -> snow foreground */
.mood-winter .hero__scene {
  background:
    linear-gradient(180deg, transparent 60%, rgba(70, 53, 40, .5) 100%),
    radial-gradient(120% 80% at 70% 125%, var(--bark) 0%, var(--bark-deep) 40%, transparent 62%),
    radial-gradient(70% 55% at 50% 92%, var(--snow) 0%, var(--glacier) 45%, transparent 70%),
    radial-gradient(55% 65% at 48% 28%, #fff 0%, var(--glacier) 35%, transparent 58%),
    linear-gradient(180deg, #5a86b0 0%, var(--sky) 50%, var(--glacier) 85%);
}
.mood-spring { background: linear-gradient(180deg, #eef4e3 0%, var(--paper) 28%); }
.mood-winter { background: linear-gradient(180deg, #e7eff5 0%, var(--paper) 30%); }

/* ---- cards / listing ---- */
.cards { display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.card {
  background: #fff; border: 1px solid rgba(22, 36, 28, .09); border-radius: var(--radius);
  box-shadow: var(--shadow); padding: 16px; display: flex; flex-direction: column; gap: 8px;
}
.card__site { font-family: "Bricolage Grotesque", Georgia, serif; font-weight: 700; font-size: 1.08rem; }
.card__place { color: var(--mist); font-size: .86rem; }
.card__when { font-weight: 600; }
.badge {
  display: inline-block; padding: 2px 9px; border-radius: 999px; font-size: .72rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .03em;
}
.badge--src { background: var(--glacier); color: var(--sky-deep); }
.badge--price { background: #eef4e3; color: var(--spruce); }
.card__cta {
  margin-top: auto; display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  background: var(--spruce); color: #fff; font-weight: 700; padding: 10px 14px; border-radius: 10px;
  min-height: 44px;
}
.card__cta:hover { background: var(--spruce-deep); text-decoration: none; }
.mood-winter .card__cta { background: var(--sky-deep); }
.mood-winter .card__cta:hover { background: #2c557e; }

/* ---- watch rows (dashboard) ---- */
.watchrow {
  display: flex; align-items: center; gap: 14px; padding: 14px 16px; background: #fff;
  border: 1px solid rgba(22, 36, 28, .09); border-radius: var(--radius); box-shadow: var(--shadow); margin-bottom: 12px;
}
.watchrow__name { font-weight: 700; font-size: 1.05rem; }
.watchrow__meta { color: var(--mist); font-size: .85rem; }
.count {
  margin-left: auto; font-weight: 800; font-size: 1.1rem; padding: 6px 12px; border-radius: 10px;
  background: #eef4e3; color: var(--spruce);
}
.count--zero { background: #f0eee9; color: var(--mist); }

/* ---- forms / buttons ---- */
.btn {
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 10px 18px;
  background: var(--spring); color: var(--ink); font-weight: 700; border: 0; border-radius: 10px; cursor: pointer; font-size: 1rem;
}
.btn:hover { background: var(--spring-pale); text-decoration: none; }
.btn--ghost { background: transparent; border: 1.5px solid rgba(22, 36, 28, .2); color: var(--ink); }
.btn--danger { background: transparent; border: 1.5px solid #c2553f; color: #a23c28; }
.field { display: block; margin: 0 0 16px; }
.field label { display: block; font-weight: 600; margin-bottom: 5px; }
.field input, .field select {
  width: 100%; padding: 11px 12px; border: 1.5px solid rgba(22, 36, 28, .18); border-radius: 10px;
  font-size: 1rem; font-family: inherit; background: #fff;
}
.card-form { background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); padding: 22px; max-width: 560px; }
.row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.note { color: var(--mist); font-size: .88rem; }
.flash { padding: 12px 14px; border-radius: 10px; background: #eef4e3; color: var(--spruce); margin-bottom: 16px; }
.flash--warn { background: #fbf3df; color: #8a6d1f; }
.empty { text-align: center; color: var(--mist); padding: 48px 20px; }
.muted { color: var(--mist); }
@media (max-width: 560px) { .row2 { grid-template-columns: 1fr; } }

/* ---- mobile ---- */
@media (max-width: 640px) {
  .wrap { padding: 0 14px; }
  .nav { padding: 10px 14px; gap: 10px; }
  .nav a { font-size: .9rem; }
  .nav__brand { font-size: 1.15rem; }
  .section { padding: 20px 0 44px; }
  .hero__scene { min-height: 240px; }
  .hero__copy { padding: 20px 16px; }
  .hero__copy p { font-size: .98rem; }
  h2 { font-size: 1.45rem; }
  h3 { font-size: 1.15rem; }
  .watchrow { flex-wrap: wrap; gap: 10px; padding: 12px; }
  .count { margin-left: 0; width: 100%; text-align: center; }
  .card-form { padding: 16px; }
  .btn { padding: 10px 14px; font-size: .95rem; }
}
