/* Feature 218 / FK02 only. Loaded solely by the dedicated FK02 template. */
.luna-fk02 {
  min-height: 100svh;
  color: #f2edf8;
}

.luna-tarot.luna-fk02 .luna-fortune-head--center {
  justify-content: center;
  padding: 24px 2.4vw;
}

.luna-fk02 [hidden] { display: none !important; }

.luna-fk02[data-phase="result"] {
  justify-content: flex-start;
  padding-top: 140px;
  padding-bottom: 48px;
}

.luna-fk02[data-phase="result"] .luna-fk02__stage { margin: 0 auto; }

.luna-fk02__stage {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(100% - 32px, 720px);
  min-height: 0;
  margin: auto;
  padding: 0;
}

.luna-fk02__intro,
.luna-fk02__quiz,
.luna-fk02__fan,
.luna-fk02__gathering,
.luna-fk02__result { width: 100%; animation: luna-fk02-in .48s ease both; }

.luna-fk02__intro,
.luna-fk02__quiz,
.luna-fk02__fan,
.luna-fk02__gathering { text-align: center; }

.luna-fk02__kicker,
.luna-fk02__eyebrow {
  margin: 0 0 18px;
  color: rgba(222, 190, 119, .88);
  font-family: "Cormorant Garamond", serif;
  font-size: 12px;
  letter-spacing: .22em;
}

.luna-fk02__intro h1 {
  margin: 0;
  color: #fffaf2;
  font-family: "Shippori Mincho", serif;
  font-size: clamp(30px, 7.5vw, 45px);
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: .08em;
}

.luna-fk02__lead {
  max-width: 34em;
  margin: 26px auto 34px;
  color: rgba(242, 237, 248, .76);
  font-size: 14px;
  line-height: 2;
}

.luna-fk02__start,
.luna-fk02__choice {
  border: 1px solid rgba(215, 176, 99, .48);
  color: #fff9ec;
  background: linear-gradient(135deg, rgba(114, 77, 148, .72), rgba(52, 35, 92, .82));
  box-shadow: 0 12px 34px rgba(5, 2, 18, .34), inset 0 0 20px rgba(255, 235, 188, .05);
}

.luna-fk02__start {
  min-width: 230px;
  padding: 16px 28px;
  border-radius: 999px;
  font: inherit;
  letter-spacing: .08em;
  cursor: pointer;
}

.luna-fk02__progress {
  margin: 0 0 28px;
  color: rgba(222, 190, 119, .75);
  font-family: "Cormorant Garamond", serif;
  letter-spacing: .18em;
}

.luna-fk02__prompt {
  max-width: 24em;
  margin: 0 auto 32px;
  font-family: "Shippori Mincho", serif;
  font-size: clamp(21px, 5.5vw, 29px);
  font-weight: 600;
  line-height: 1.75;
}

.luna-fk02__choices {
  display: grid;
  gap: 12px;
  max-width: 560px;
  margin: 0 auto;
}

.luna-fk02__choice {
  display: grid;
  grid-template-columns: 38px 1fr;
  align-items: center;
  width: 100%;
  padding: 15px 18px;
  border-color: rgba(215, 176, 99, .25);
  border-radius: 12px;
  font: inherit;
  line-height: 1.65;
  text-align: left;
  cursor: pointer;
}

.luna-fk02__choice span {
  color: #d9b468;
  font-family: "Cormorant Garamond", serif;
  font-size: 20px;
}

.luna-fk02__fan h2,
.luna-fk02__gathering h2 {
  margin: 0;
  font-family: "Shippori Mincho", serif;
  font-size: clamp(24px, 6vw, 34px);
  font-weight: 600;
  line-height: 1.65;
}

.luna-fk02__fan p,
.luna-fk02__gathering p {
  color: rgba(242, 237, 248, .68);
  line-height: 1.8;
}

.luna-fk02__slots {
  position: relative;
  height: 330px;
  max-width: 650px;
  margin: 20px auto 0;
}

.luna-fk02__slot {
  position: absolute;
  bottom: 48px;
  left: 50%;
  z-index: calc(var(--fk-index) + 1);
  width: clamp(76px, 19vw, 116px);
  aspect-ratio: 11 / 18;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  transform: translateX(-50%) rotate(var(--fk-angle)) translateY(-118px);
  transform-origin: 50% 150%;
  cursor: pointer;
  transition: filter .2s ease, transform .25s ease, opacity .25s ease;
}

.luna-fk02__slot .luna-card-back {
  position: absolute;
  inset: 0;
  display: block;
  border: 1px solid rgba(222, 190, 119, .72);
  border-radius: 8px;
  background:
    radial-gradient(circle at 50% 50%, transparent 0 16%, rgba(222, 190, 119, .7) 17% 18%, transparent 19%),
    radial-gradient(circle at 50% 50%, #d8b15f 0 3%, transparent 4%),
    repeating-linear-gradient(45deg, rgba(221, 184, 107, .09) 0 1px, transparent 1px 7px),
    linear-gradient(145deg, #302058, #17102e);
  box-shadow: 0 16px 30px rgba(4, 1, 14, .5);
}

.luna-fk02__slot:hover,
.luna-fk02__slot:focus-visible {
  filter: brightness(1.22);
  transform: translateX(-50%) rotate(var(--fk-angle)) translateY(-130px);
  outline: 2px solid rgba(244, 218, 154, .62);
  outline-offset: 4px;
}

.luna-fk02__gathering { padding-top: 0; }
.luna-fk02__moon { margin: 28px auto; color: #e5c47d; font-size: 62px; animation: luna-fk02-pulse 1.8s ease-in-out infinite; }
.luna-fk02__gather-canvas { position: fixed; inset: 0; z-index: 5; width: 100%; height: 100%; pointer-events: none; }

.luna-fk02__reading {
  max-width: 620px;
  margin: 0 auto;
  padding: clamp(26px, 6vw, 48px);
  border: 1px solid rgba(222, 190, 119, .25);
  border-radius: 22px;
  background: linear-gradient(165deg, rgba(40, 27, 72, .92), rgba(18, 12, 38, .96));
  box-shadow: 0 24px 70px rgba(3, 1, 12, .46);
  text-align: center;
}

.luna-fk02__chosen-card {
  display: grid;
  place-items: center;
  width: 132px;
  aspect-ratio: 11 / 18;
  margin: 0 auto 16px;
  overflow: hidden;
  border: 1px solid rgba(222, 190, 119, .68);
  border-radius: 9px;
  background: radial-gradient(circle at 50% 38%, rgba(213, 173, 93, .2), transparent 30%), #17102e;
  box-shadow: 0 14px 34px rgba(4, 1, 14, .48);
}

.luna-fk02__chosen-card img { width: 100%; height: 100%; object-fit: cover; }
.luna-fk02__chosen-card img.is-reversed { transform: rotate(180deg); }
.luna-fk02__card-motif { color: #dcb965; font-size: 54px; }
.luna-fk02__result-title { margin: 0; color: #fff8e8; font-family: "Shippori Mincho", serif; font-size: 22px; }
.luna-fk02__orientation { margin: 8px 0 28px; color: rgba(222, 190, 119, .78); font-size: 12px; letter-spacing: .08em; }
.luna-fk02__detail-card p { font-size: 12px; color: rgba(239, 233, 247, .68); }

.luna-fk02__type { padding: 24px 0; border-top: 1px solid rgba(222, 190, 119, .2); border-bottom: 1px solid rgba(222, 190, 119, .2); }
.luna-fk02__type > span { color: rgba(222, 190, 119, .7); font-family: "Cormorant Garamond", serif; letter-spacing: .16em; }
.luna-fk02__type h2 { margin: 8px 0; color: #fffaf2; font-family: "Shippori Mincho", serif; font-size: 28px; }
.luna-fk02__type p { margin: 0; color: rgba(242, 237, 248, .72); }

.luna-fk02__copy,
.luna-fk02__next { margin-top: 26px; text-align: left; }
.luna-fk02__copy h3,
.luna-fk02__next h3 { margin: 0 0 10px; color: #dfbd72; font-size: 13px; letter-spacing: .08em; }
.luna-fk02__copy p,
.luna-fk02__next p { margin: 0 0 12px; color: rgba(247, 242, 250, .84); font-size: 14px; line-height: 1.95; }
.luna-fk02__copy--summary p:first-child { color: #fffaf2; font-family: "Shippori Mincho", serif; font-size: 17px; }
.luna-fk02__closing { margin: 28px 0; padding: 18px; border-radius: 12px; color: rgba(247, 242, 250, .82); background: rgba(222, 190, 119, .07); line-height: 1.85; }
.luna-fk02__next { padding: 20px; border: 1px solid rgba(222, 190, 119, .2); border-radius: 14px; background: rgba(11, 7, 27, .3); }
.luna-fk02__next p { margin: 0; font-family: "Shippori Mincho", serif; }
.luna-fk02__error { padding: 40px; text-align: center; }

.luna-fk02 .luna-onward { margin-top: 34px; }
.luna-fk02 .luna-actions--onward { display: grid; gap: 10px; }
.luna-fk02 .luna-actions--onward .lu-line-btn { display: flex; align-items: center; justify-content: center; min-height: 48px; border: 1px solid rgba(222, 190, 119, .28); border-radius: 999px; color: rgba(247, 242, 250, .84); text-decoration: none; }
.luna-fk02 .luna-actions--onward .lu-line-btn--gold { color: #fff8e8; border-color: rgba(222, 190, 119, .62); background: rgba(222, 190, 119, .09); }
.luna-fk02 .luna-actions--onward [aria-disabled="true"] { opacity: .44; }

@keyframes luna-fk02-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes luna-fk02-pulse { 50% { opacity: .55; transform: scale(.94); } }

@media (max-width: 540px) {
  .luna-fk02__stage { width: min(100% - 24px, 720px); }
  .luna-fk02__slots { height: 290px; }
  .luna-fk02__slot { width: 78px; }
  .luna-fk02__reading { padding: 26px 18px; border-radius: 16px; }
}

@media (max-width: 600px) {
  .luna-fk02[data-phase="result"] { padding-top: 122px; }
  .luna-tarot.luna-fk02 .luna-fortune-head--center {
    display: flex;
    padding: 14px 16px;
  }
  .luna-tarot.luna-fk02 .luna-fortune-brand { display: inline-flex; gap: 10px; }
  .luna-tarot.luna-fk02 .luna-fortune-brand__jp { font-size: 19px; }
  .luna-tarot.luna-fk02 .luna-fortune-brand__en { font-size: 15px; }
}

@media (prefers-reduced-motion: reduce) {
  .luna-fk02__intro,
  .luna-fk02__quiz,
  .luna-fk02__fan,
  .luna-fk02__gathering,
  .luna-fk02__result,
  .luna-fk02__moon { animation: none; }
  .luna-fk02__slot { transition: none; }
}
