/* ---------- Landing (front-page.php only) ---------- */
html, body { height: 100%; }
.landing {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 100vh;
}
.panel {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 1.35rem;
  padding: clamp(2.5rem, 6vh, 5rem) clamp(1.5rem, 5vw, 4rem);
}
.panel-inner {
  display: flex; flex-direction: column; align-items: center; gap: 1.3rem;
  max-width: 430px; width: 100%;
}
.landing-wheel { color: var(--gold); }
.landing-wheel.top { width: 46px; height: 46px; opacity: 0.9; }
.landing-wheel.bottom { width: 26px; height: 26px; opacity: 0.45; margin-top: 0.5rem; }

.panel h1 {
  margin: 0;
  font-size: clamp(2.4rem, 4.4vw, 3.6rem);
  font-weight: 500;
  letter-spacing: -0.01em;
  line-height: 1.08;
}
.panel h1.si { font-weight: 500; letter-spacing: 0; line-height: 1.2; }
.panel .subtitle {
  margin: 0;
  font-size: 1.3rem;
  font-style: italic;
  color: var(--muted);
  line-height: 1.45;
  max-width: 22em;
}
.panel .subtitle.si { font-style: normal; }
.salutation {
  margin: 0.2rem 0;
  font-size: 1.19rem;
  line-height: 1.7;
  max-width: 20em;
}
.panel .mission {
  margin: 0;
  font-size: 1.19rem;
  color: var(--muted);
  line-height: 1.7;
  max-width: 24em;
}
.panel .cta { margin-top: 0.6rem; min-width: 200px; }

/* divider */
.divider {
  position: absolute; top: 0; bottom: 0; left: 50%;
  transform: translateX(-50%);
  z-index: 5; pointer-events: none;
}
html[data-divider="hairline"] .divider { width: 1px; background: var(--gold); opacity: 0.55; }
html[data-divider="plain"]    .divider { width: 1px; background: var(--rule); }
html[data-divider="lotus"]    .divider {
  width: 1px;
  background: linear-gradient(180deg, transparent, var(--rule) 12%, var(--gold) 50%, var(--rule) 88%, transparent);
}
.divider .medallion {
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 50px; height: 50px; border-radius: 50%;
  background: var(--bg);
  border: 1px solid var(--gold);
  display: none; align-items: center; justify-content: center;
  color: var(--gold); box-shadow: var(--shadow);
}
.divider .medallion .js-wheel { width: 26px; height: 26px; }
html[data-divider="lotus"] .divider .medallion { display: flex; }

/* dark-mode toggle pinned top-right */
.corner-toggle {
  position: fixed; top: clamp(1rem, 3vw, 1.6rem); right: clamp(1rem, 3vw, 1.6rem);
  z-index: 60;
}
.corner-toggle .theme-toggle { background: color-mix(in srgb, var(--bg) 70%, transparent); }

/* loading overlay */
#loader {
  position: fixed; inset: 0; z-index: 100;
  display: flex; align-items: center; justify-content: center;
  background: var(--bg);
  transition: opacity 0.6s ease, visibility 0.6s ease;
}
#loader .wheel { width: 96px; height: 96px; color: var(--gold); }
#loader .wheel svg { animation: sg-spin 2.6s linear infinite; }
@keyframes sg-spin { to { transform: rotate(360deg); } }
#loader.hidden { opacity: 0; visibility: hidden; }

/* fade content in once loaded */
.landing { opacity: 0; transition: opacity 0.7s ease 0.1s; }
body.ready .landing { opacity: 1; }

/* mobile: stack */
@media (max-width: 768px) {
  .landing { grid-template-columns: 1fr; }
  .divider { display: none; }
  .panel { min-height: auto; padding: clamp(3rem, 9vh, 4.5rem) 1.4rem; }
  .panel.right { border-top: 1px solid var(--rule); }
  .panel .cta { width: 100%; min-width: 0; }
  .corner-toggle { top: 0.9rem; right: 0.9rem; }
}
