:root {
  --ink: rgba(54, 39, 25, 0.95);
  --ink-soft: rgba(54, 39, 25, 0.88);
  --ink-faint: rgba(78, 56, 36, 0.46);
  --warm-shadow: rgba(255, 244, 225, 0.34);
}

* {
  box-sizing: border-box;
}

html,
body {
  width: 100%;
  min-height: 100%;
  margin: 0;
}

body {
  font-family: Georgia, "Times New Roman", serif;
  color: var(--ink);
  background: #22160d;
}

.page {
  position: relative;
  min-height: 100svh;
  overflow: hidden;
  isolation: isolate;
  background-image: url("../img/reflection-lake-bg.jpg");
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}

.page::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    radial-gradient(circle at 50% 27%, rgba(255, 242, 220, 0.18), rgba(255, 242, 220, 0.08) 24%, transparent 46%),
    linear-gradient(180deg, rgba(17, 10, 5, 0.05), rgba(255, 247, 233, 0.02) 25%, rgba(15, 9, 4, 0.08) 100%);
  pointer-events: none;
}

.notice {
  position: absolute;
  top: clamp(7rem, 17vh, 9rem);
  left: 50%;
  transform: translateX(-50%);
  width: min(30rem, 38vw);
  text-align: center;
  text-wrap: balance;
  color: var(--ink);
  opacity: 0.97;
  text-shadow:
    0 1px 0 var(--warm-shadow),
    0 8px 22px rgba(255, 240, 218, 0.06);
}

.eyebrow {
  margin: 0 0 0.72rem;
  font-size: clamp(2.35rem, 3.8vw, 3.55rem);
  line-height: 0.98;
  font-weight: 400;
  letter-spacing: -0.035em;
}

.flourish {
  width: 8rem;
  height: 1rem;
  margin: 0 auto 1.08rem;
  opacity: 0.74;
  background:
    linear-gradient(90deg, transparent 0 8%, var(--ink-faint) 8% 42%, transparent 42% 58%, var(--ink-faint) 58% 92%, transparent 92%),
    radial-gradient(ellipse at center, var(--ink-faint) 0 18%, transparent 19%);
  background-repeat: no-repeat;
  background-size: 100% 1.25px, 1.55rem 0.66rem;
  background-position: center 50%, center 50%;
}

h1 {
  margin: 0 0 1.08rem;
  font-size: clamp(1.42rem, 2.02vw, 1.9rem);
  line-height: 1.14;
  font-weight: 400;
  font-style: italic;
  letter-spacing: -0.02em;
}

.body-copy,
.reserved-line {
  margin: 0;
  font-size: clamp(0.9rem, 1.02vw, 1.06rem);
  line-height: 1.36;
  color: var(--ink-soft);
}

.small-rule {
  width: 3rem;
  height: 1.2px;
  margin: 0.78rem auto 0.68rem;
  background: var(--ink-faint);
  opacity: 0.72;
}

.reserved-line {
  font-style: italic;
}

@media (max-width: 1100px) {
  .notice {
    top: 14vh;
    width: min(33rem, 52vw);
  }

  .eyebrow {
    font-size: clamp(2.25rem, 4.8vw, 3.35rem);
  }

  h1 {
    font-size: clamp(1.35rem, 2.8vw, 1.78rem);
  }

  .body-copy,
  .reserved-line {
    font-size: clamp(0.88rem, 1.45vw, 1.02rem);
  }
}

@media (max-width: 900px) {
  .page {
    min-height: 100dvh;
    background-position: 57% center;
  }

  .notice {
    top: 11vh;
    width: 68vw;
  }

  .eyebrow {
    margin-bottom: 0.65rem;
    font-size: clamp(2rem, 6vw, 2.9rem);
  }

  .flourish {
    width: 7.2rem;
    margin-bottom: 0.88rem;
  }

  h1 {
    margin-bottom: 0.9rem;
    font-size: clamp(1.28rem, 3.8vw, 1.62rem);
  }

  .body-copy,
  .reserved-line {
    font-size: clamp(0.84rem, 2vw, 0.96rem);
    line-height: 1.32;
  }

  .small-rule {
    width: 2.8rem;
    margin: 0.66rem auto 0.56rem;
  }

  .desktop-break {
    display: none;
  }
}

/* Portrait mobile: use the extended vertical background, warm light text,
   and simplified copy for readability over the detailed scenic image. */
@media (max-width: 700px) and (orientation: portrait) {
  .page {
    background-image: url("../img/reflection-lake-bg-mobile.jpg");
    background-position: center center;
  }

  .page::before {
    background:
      radial-gradient(circle at 50% 24%, rgba(255, 242, 220, 0.08), rgba(255, 242, 220, 0.03) 22%, transparent 44%),
      linear-gradient(180deg, rgba(17, 10, 5, 0.04), rgba(255, 247, 233, 0.01) 24%, rgba(15, 9, 4, 0.1) 100%);
  }

  .notice {
    top: 17vh;
    width: 76vw;
    color: rgba(248, 224, 184, 0.9);
    opacity: 0.97;
    z-index: 1;
    text-shadow:
      0 1px 2px rgba(32, 21, 12, 0.82),
      0 4px 14px rgba(18, 12, 8, 0.58),
      0 0 22px rgba(0, 0, 0, 0.34);
  }

  .notice::before {
    content: "";
    position: absolute;
    inset: -1.25rem -1.75rem;
    z-index: -1;
    border-radius: 999px;
    background: radial-gradient(
      ellipse at center,
      rgba(20, 12, 6, 0.44),
      rgba(20, 12, 6, 0.28) 44%,
      rgba(20, 12, 6, 0.12) 72%,
      transparent 100%
    );
    filter: blur(12px);
    pointer-events: none;
  }

  .eyebrow {
    font-size: clamp(1.75rem, 8vw, 2.35rem);
    margin-bottom: 0.5rem;
    line-height: 0.95;
  }

  .flourish {
    width: 5.8rem;
    margin-bottom: 0.72rem;
    opacity: 0.72;
    background:
      linear-gradient(90deg, transparent 0 8%, rgba(248, 224, 184, 0.6) 8% 42%, transparent 42% 58%, rgba(248, 224, 184, 0.6) 58% 92%, transparent 92%),
      radial-gradient(ellipse at center, rgba(248, 224, 184, 0.6) 0 18%, transparent 19%);
    background-repeat: no-repeat;
    background-size: 100% 1.05px, 1.25rem 0.52rem;
    background-position: center 50%, center 50%;
  }

  h1 {
    font-size: clamp(1.05rem, 5.2vw, 1.38rem);
    margin-bottom: 0;
    line-height: 1.12;
  }

  /* Hide the smaller body text and divider lines on portrait mobile.
     Desktop and landscape mobile still show the full message. */
  .body-copy,
  .small-rule {
    display: none;
  }

  .reserved-line {
    display: block;
    margin-top: 0.95rem;
    font-size: clamp(0.86rem, 3.7vw, 1rem);
    line-height: 1.28;
    color: rgba(248, 224, 184, 0.86);
  }
}

@media (max-width: 520px) and (orientation: portrait) {
  .notice {
    top: 18vh;
    width: 78vw;
  }

  .eyebrow {
    font-size: clamp(1.65rem, 8.8vw, 2.22rem);
  }

  h1 {
    font-size: clamp(1rem, 5.6vw, 1.3rem);
  }

  .reserved-line {
    font-size: clamp(0.82rem, 3.8vw, 0.94rem);
  }
}

/* Landscape phones: keep the wide image but tighten the layout. */
@media (max-width: 950px) and (orientation: landscape) {
  .page {
    min-height: 100dvh;
    background-image: url("../img/reflection-lake-bg.jpg");
    background-position: center 54%;
  }

  .notice {
    top: 1rem;
    width: min(22rem, 38vw);
  }

  .eyebrow {
    margin-bottom: 0.45rem;
    font-size: clamp(1.65rem, 3.4vw, 2.2rem);
  }

  .flourish {
    width: 6.2rem;
    margin-bottom: 0.62rem;
    background-size: 100% 1.1px, 1.3rem 0.56rem;
  }

  h1 {
    margin-bottom: 0.78rem;
    font-size: clamp(1.02rem, 2vw, 1.4rem);
  }

  .body-copy,
  .reserved-line {
    display: block;
    font-size: clamp(0.75rem, 1.35vw, 0.88rem);
    line-height: 1.28;
    color: var(--ink-soft);
  }

  .small-rule {
    display: block;
    width: 2.8rem;
    margin: 0.62rem auto 0.5rem;
    background: var(--ink-faint);
  }
}