/* Initiation Circle v1: source nine-slice frames and measured dial slots. */
.modal.initiation-modal {
  --initiation-ivory: #fff0d9;
  --initiation-body: #c5d1d6;
  isolation: isolate;
  container-type: inline-size;
  width: min(430px, 100%);
  height: min(820px, 100%);
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--initiation-ivory);
  overflow: visible;
}
.initiation-modal::before, .initiation-next::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  padding: 0;
  transform: none;
  border: 1px solid transparent;
  border-radius: 0;
  background: none;
  border-image-repeat: stretch;
  pointer-events: none;
}
.initiation-modal::before {
  border-image-source: url('./assets/initiation-circle-v1/window.webp');
  border-image-slice: 142 89 150 106 fill;
  border-image-width: 77px 45px 80px 53px;
}
.initiation-modal .modal-head {
  position: relative;
  flex: 0 0 auto;
  padding: 34px 55px 13px;
  text-align: center;
  background: none;
}
.initiation-modal .modal-title {
  margin: 0;
  color: var(--initiation-ivory);
  font: clamp(20px, 6cqw, 26px)/1.15 var(--font-display);
  text-shadow: none;
  overflow-wrap: anywhere;
}
.initiation-modal .close-modal {
  position: absolute;
  top: 20px;
  right: 15px;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
}
.initiation-modal .close-modal > span {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  background: url('./assets/initiation-circle-v1/close.webp') center / 100% 100% no-repeat;
  color: #ffe5b1;
  font: 800 24px/1 var(--font-body);
}
.initiation-modal .close-modal:focus-visible { outline: 2px solid #d6f2db; outline-offset: 0; }
.initiation-modal .modal-body {
  min-height: 0;
  padding: 0 27px 22px;
  margin-bottom: 24px;
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: #6d8188 #13242c;
}
.initiation-hero { text-align: center; }
.initiation-dial {
  position: relative;
  width: min(240px, 82%);
  aspect-ratio: 641 / 636;
  margin: 0 auto 18px;
}
.initiation-dial-art { display: block; width: 100%; height: 100%; object-fit: contain; pointer-events: none; user-select: none; }
.initiation-spot {
  position: absolute;
  display: grid;
  place-items: center;
  width: 19%;
  aspect-ratio: 1;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle at 45% 42%, #26373e, #111e26 85%);
  box-shadow: inset 0 1px 4px #000b;
}
.initiation-spot.is-complete {
  background: radial-gradient(circle at 38% 29%, #91f4a7 0%, #24ba5c 39%, #075329 86%);
  box-shadow: inset 0 0 3px #c8ffd2;
  color: #e7ffdf;
}
.initiation-spot svg { width: 70%; height: 70%; }
.initiation-current-badge { position: absolute; left: 26%; top: 24%; width: 48%; height: 48%; object-fit: contain; pointer-events: none; }
.initiation-modal .initiation-requirements { display: block; margin: 0 0 15px; padding: 0; list-style: none; border-top: 1px solid #6d8188; }
.initiation-requirement {
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  min-height: 70px;
  padding: 13px 5px;
  border-bottom: 1px solid #6d8188;
}
.initiation-requirement.has-action { grid-template-columns: 26px minmax(0, 1fr) 44px; }
.initiation-status { display: block; width: 18px; height: 18px; margin: auto; border-radius: 50%; border: 2px solid #97abb3; box-shadow: inset 0 1px 2px #0a1117; }
.initiation-status.is-complete {
  background: radial-gradient(circle at 38% 29%, #91f4a7 0%, #24ba5c 39%, #075329 86%);
  box-shadow: inset 0 1px 2px #0a1117;
}
.initiation-requirement h4 { margin: 0; font-size: 16px; line-height: 1.25; overflow-wrap: anywhere; }
.initiation-shop { display: grid; place-items: center; width: 44px; height: 44px; padding: 10px; border: 1px solid #6d8188; border-radius: 6px; color: var(--initiation-ivory); background: #233a3e; }
.initiation-shop svg { width: 24px; height: 24px; }
.initiation-shop:focus-visible { outline: 2px solid #d6f2db; outline-offset: 2px; }
.initiation-next { position: relative; isolation: isolate; display: grid; grid-template-columns: 64px minmax(0, 1fr); align-items: center; gap: 9px; min-height: 105px; padding: 18px 15px 22px; }
.initiation-next::before {
  border-image-source: url('./assets/initiation-circle-v1/next-tier.webp');
  border-image-slice: 58 124 98 124 fill;
  border-image-width: 19px 40px 33px 40px;
}
.initiation-next-badge { display: block; width: 64px; height: 64px; object-fit: contain; }
.initiation-next-label { margin: 0 0 5px; color: var(--initiation-body); font-size: 11px; line-height: 1.3; }
.initiation-next h3 { margin: 0; font: 800 17px/1.17 var(--font-body); overflow-wrap: anywhere; }
.initiation-count { margin: 6px 0 0; color: var(--initiation-body); font-size: 12px; line-height: 1.3; }
.initiation-final { padding: 18px; text-align: center; color: #b9efb2; font-weight: 700; line-height: 1.4; }
@media (max-width: 350px) {
  .initiation-modal .modal-head { padding-inline: 45px; }
  .initiation-modal .modal-body { padding-inline: 22px; }
  .initiation-next { grid-template-columns: 52px minmax(0, 1fr); gap: 6px; padding-inline: 12px; }
  .initiation-next-badge { width: 52px; height: 52px; }
  .initiation-next h3 { font-size: 15px; }
}
