:root {
  --ink: #142b45;
  --green-950: #003f2e;
  --green-700: #087a55;
  --surface: #fbfcfb;
}

* { box-sizing: border-box; }

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

body {
  min-height: 100svh;
  display: grid;
  place-items: center;
  color: var(--ink);
  background: #eef3f0;
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
}

a { color: inherit; text-decoration: none; }

.coming-soon {
  position: relative;
  width: min(100%, 1920px);
  height: clamp(760px, 100svh, 1080px);
  overflow: hidden;
  background: var(--surface);
  box-shadow: 0 24px 80px rgba(12, 54, 40, 0.08);
}

.hero {
  position: relative;
  isolation: isolate;
  height: 100%;
}

.hero-photo {
  position: absolute;
  inset: 0;
  z-index: -4;
  background: url("assets/merchant-hero.png") 70% center / cover no-repeat;
}

.photo-fade {
  position: absolute;
  inset: 0;
  z-index: -3;
  background:
    linear-gradient(90deg, var(--surface) 0%, rgba(251, 252, 251, 0.99) 32%, rgba(251, 252, 251, 0.88) 40%, rgba(251, 252, 251, 0.16) 57%, transparent 70%),
    linear-gradient(0deg, rgba(251, 252, 251, 0.42) 0%, transparent 20%);
}

.content {
  position: relative;
  z-index: 4;
  width: min(45%, 770px);
  height: 100%;
  padding: clamp(52px, 7vh, 76px) 0 clamp(58px, 8vh, 88px) clamp(52px, 5.1vw, 96px);
  display: flex;
  flex-direction: column;
}

.brand {
  display: block;
  align-self: flex-start;
}

.brand img {
  display: block;
  width: auto;
  height: clamp(104px, 8.5vw, 136px);
  max-width: 100%;
  object-fit: contain;
}

.headline-block {
  margin: auto 0;
  transform: translateY(-2%);
}

.eyebrow {
  max-width: 620px;
  margin: 0 0 18px;
  color: var(--green-700);
  font-size: clamp(13px, 0.9vw, 16px);
  font-weight: 760;
  letter-spacing: 0.08em;
  line-height: 1.5;
  text-transform: uppercase;
}

h1 {
  max-width: 670px;
  margin: 0;
  color: var(--green-950);
  font-size: clamp(38px, 3.25vw, 58px);
  line-height: 1.1;
  font-weight: 760;
  letter-spacing: -2px;
}

.accent-line {
  display: block;
  width: 98px;
  height: 4px;
  margin: 34px 0;
  border-radius: 10px;
  background: linear-gradient(90deg, #087653, #6bd097);
}

.intro {
  max-width: 620px;
  font-size: clamp(17px, 1.1vw, 20px);
  line-height: 1.55;
  letter-spacing: -0.2px;
}

.intro p { margin: 0 0 18px; }

.intro strong {
  color: var(--green-950);
  font-variant-numeric: tabular-nums;
}

.redirect-link {
  color: var(--green-700);
  font-weight: 700;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}

.redirect-link:hover,
.redirect-link:focus-visible {
  color: var(--green-950);
}

.ojire-mark {
  display: inline-flex;
  align-items: center;
  margin-top: 22px;
  padding: 10px 16px;
  border: 1px solid rgba(8, 122, 85, 0.12);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.72);
  transition: border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

.ojire-mark:hover,
.ojire-mark:focus-visible {
  border-color: rgba(8, 122, 85, 0.3);
  box-shadow: 0 10px 28px rgba(12, 54, 40, 0.1);
  transform: translateY(-2px);
}

.ojire-mark img {
  display: block;
  width: auto;
  height: 54px;
  object-fit: contain;
}

.progress-section {
  width: min(100%, 560px);
  margin-top: 38px;
}

.progress-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 13px;
  color: var(--green-950);
  font-size: 14px;
  font-weight: 650;
}

.progress-meta strong {
  font-size: 18px;
  font-weight: 760;
}

.progress-track {
  height: 11px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(22, 83, 63, 0.1);
}

.progress-track > span {
  display: block;
  width: 72%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #27a966 0%, #83d9aa 48%, var(--green-700) 100%);
  box-shadow: inset -8px 0 10px rgba(0, 67, 43, 0.14);
  transform-origin: left;
  animation: load-progress 1.6s cubic-bezier(0.2, 0.75, 0.2, 1) both;
}

.progress-section > p {
  margin: 12px 0 0;
  color: #6d7d8d;
  font-size: 11px;
  font-weight: 580;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

@keyframes load-progress {
  from { transform: scaleX(0); }
  to { transform: scaleX(1); }
}

.orbit {
  position: absolute;
  z-index: 2;
  width: 900px;
  height: 900px;
  right: -174px;
  bottom: -735px;
  border: 2px solid rgba(161, 255, 205, 0.46);
  border-radius: 50%;
  filter: drop-shadow(0 0 6px rgba(87, 255, 166, 0.55));
  pointer-events: none;
  transform: rotate(5deg);
}

.orbit i {
  position: absolute;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #eafff2;
  box-shadow: 0 0 16px 5px rgba(100, 255, 171, 0.8);
}

.orbit i:nth-child(1) { top: 8px; left: 37%; }
.orbit i:nth-child(2) { top: 33px; left: 57%; }
.orbit i:nth-child(3) { top: 119px; left: 78%; }

.ambient {
  position: absolute;
  z-index: 0;
  border-radius: 50%;
  pointer-events: none;
}

.ambient--one {
  width: 190px;
  height: 190px;
  right: 22%;
  top: 27%;
  background: rgba(144, 237, 187, 0.1);
}

.ambient--two {
  width: 240px;
  height: 240px;
  left: -80px;
  bottom: -80px;
  background: rgba(91, 197, 143, 0.08);
}

@media (max-width: 1180px) {
  .content { width: 51%; padding-left: 42px; }
  .hero-photo { background-position: 69% center; }
}

@media (max-width: 900px) {
  body { display: block; background: var(--surface); }
  .coming-soon { width: 100%; height: auto; min-height: 100svh; overflow: visible; box-shadow: none; }
  .hero { min-height: 100svh; display: flex; flex-direction: column; padding-bottom: 42px; }
  .hero-photo { position: relative; inset: auto; z-index: -2; width: 100%; height: 58svh; min-height: 480px; background-position: 67% center; order: 1; }
  .hero-photo::after { content: ""; position: absolute; inset: auto 0 0; height: 72px; background: linear-gradient(180deg, transparent, var(--surface)); }
  .photo-fade { background: linear-gradient(180deg, rgba(251, 252, 251, 0.24) 0%, transparent 56%, var(--surface) 100%); }
  .content { position: static; width: 100%; height: auto; padding: 0 max(25px, env(safe-area-inset-right)) 0 max(25px, env(safe-area-inset-left)); display: block; order: 2; }
  .brand { position: absolute; z-index: 5; top: max(24px, env(safe-area-inset-top)); left: max(25px, env(safe-area-inset-left)); padding: 11px 14px; border-radius: 17px; background: rgba(255, 255, 255, 0.9); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); box-shadow: 0 10px 30px rgba(10, 60, 44, 0.12); }
  .brand img { width: auto; height: 92px; }
  .headline-block { margin: -42px 0 0; padding: 28px 4px 0; transform: none; }
  .eyebrow { font-size: 13px; }
  h1 { max-width: 620px; font-size: clamp(34px, 8vw, 48px); letter-spacing: -1.5px; }
  .accent-line { margin: 26px 0; }
  .intro { font-size: 16px; }
  .progress-section { margin-top: 32px; }
  .orbit { display: none; }
}

@media (max-width: 520px) {
  .hero-photo { height: 54svh; min-height: 420px; background-position: 66% center; }
  .content { padding-left: 20px; padding-right: 20px; }
  .headline-block { margin-top: -30px; }
  .brand { left: 20px; padding: 9px 12px; }
  .brand img { width: auto; height: 78px; }
  h1 { font-size: clamp(31px, 8.7vw, 40px); line-height: 1.08; letter-spacing: -1.2px; }
  .intro { line-height: 1.5; }
  .ojire-mark img { height: 44px; }
  .progress-meta { gap: 14px; font-size: 12px; }
  .progress-section { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}
