/* Coming soon — locked public face */
html:not(.pe-open) .site-live { display: none !important; }
html.pe-open .coming-soon-gate { display: none !important; }

.coming-soon-gate {
  min-height: 100dvh;
  display: grid;
  place-items: center;
  padding: 32px 20px calc(32px + env(safe-area-inset-bottom, 0px));
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(900px 520px at 12% -8%, #d5e0d4, transparent 55%),
    radial-gradient(720px 420px at 100% 0%, #e8d0c2, transparent 48%),
    linear-gradient(165deg, #F5F3ED, #EBE6DC);
}
.coming-soon-gate::before {
  content: "";
  position: absolute;
  inset: -20% 40% auto -20%;
  height: 70%;
  background: radial-gradient(circle, rgba(197,106,74,.12), transparent 70%);
  animation: soon-glow 8s ease-in-out infinite alternate;
  pointer-events: none;
}
@keyframes soon-glow {
  from { transform: translate(0, 0) scale(1); opacity: .7; }
  to { transform: translate(8%, 6%) scale(1.08); opacity: 1; }
}
.soon-card {
  width: min(440px, 100%);
  text-align: center;
  position: relative;
  z-index: 1;
  animation: soon-rise .9s cubic-bezier(.22,1,.36,1) both;
}
@keyframes soon-rise {
  from { opacity: 0; transform: translateY(18px); filter: blur(6px); }
  to { opacity: 1; transform: none; filter: none; }
}
.soon-card .brand {
  justify-content: center;
  margin-bottom: 28px;
}
.soon-card .brand-icon { width: 52px; height: 52px; }
.soon-card .brand-word { font-size: 1.75rem; }
.soon-kicker {
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--terra, #C56A4A);
  margin-bottom: 10px;
}
.soon-card h1 {
  font-family: var(--display, "Bricolage Grotesque", system-ui, sans-serif);
  font-size: clamp(1.7rem, 5vw, 2.15rem);
  font-weight: 800;
  letter-spacing: -.03em;
  line-height: 1.15;
  color: var(--ink, #1A241C);
  margin: 0 0 12px;
}
.soon-card p {
  margin: 0 auto;
  max-width: 32ch;
  color: var(--muted, #6B7468);
  line-height: 1.5;
  font-size: 1.02rem;
}
.soon-line {
  width: 48px;
  height: 3px;
  border-radius: 99px;
  background: var(--terra, #C56A4A);
  margin: 22px auto 0;
  transform-origin: center;
  animation: soon-line 1.4s cubic-bezier(.22,1,.36,1) .35s both;
}
@keyframes soon-line {
  from { transform: scaleX(0); opacity: 0; }
  to { transform: scaleX(1); opacity: 1; }
}
.soon-foot {
  margin-top: 28px;
  font-size: .8rem;
  color: rgba(42,53,48,.45);
  font-weight: 650;
}

@media (prefers-reduced-motion: reduce) {
  .coming-soon-gate::before,
  .soon-card,
  .soon-line { animation: none !important; }
}
