:root {
  --rd-bg: #06172b;
  --rd-bg-deep: #041120;
  --rd-surface: #0a2037;
  --rd-line: #9f5d52;
  --rd-line-soft: rgba(159, 93, 82, 0.55);
  --rd-gold: #d6a02e;
  --rd-ink: #f1ece4;
  --rd-muted: #c6b8aa;
  --rd-selected: #174b4a;
  color-scheme: dark;
}

* {
  font-family: Meiryo, "メイリオ", sans-serif !important;
  letter-spacing: 0 !important;
}

body {
  background: var(--rd-bg-deep);
  color: var(--rd-ink);
  font-family: Meiryo, "メイリオ", sans-serif;
  font-weight: 400;
}

body::before {
  background-image:
    radial-gradient(circle, rgba(241, 236, 228, 0.62) 0 1px, transparent 1.3px),
    radial-gradient(circle, rgba(214, 160, 46, 0.82) 0 1px, transparent 1.5px);
  background-position: 18px 22px, 74px 96px;
  background-size: 168px 168px, 236px 236px;
  opacity: 0.55;
  animation: none;
}

body::after { display: none; }

button,
input,
select,
textarea {
  font-family: Meiryo, "メイリオ", sans-serif;
}

button {
  min-height: 44px;
  border-color: var(--rd-line);
  border-radius: 4px;
  color: var(--rd-ink);
  font-size: 0.92rem;
  font-weight: 400;
}

button:hover { background: rgba(214, 160, 46, 0.09); color: #fff; }
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible {
  outline: 2px solid #f0be55;
  outline-offset: 3px;
}

button:disabled {
  cursor: not-allowed;
  background: #39434d !important;
  border-color: #5c6570 !important;
  color: #989fa5 !important;
  opacity: 0.78;
}

.app-shell {
  width: min(100% - 32px, 1440px);
  padding-top: 106px;
}

.site-header {
  min-height: 78px;
  padding: 12px max(24px, calc((100vw - 1360px) / 2));
  border-bottom-color: rgba(159, 93, 82, 0.48);
  background: rgba(4, 17, 32, 0.97);
  backdrop-filter: none;
}

.site-brand {
  grid-template-columns: 44px auto;
  grid-template-rows: auto auto;
  column-gap: 12px;
  align-items: center;
  color: inherit;
  text-decoration: none;
}

.site-brand:hover h1,
.site-brand:focus-visible h1 { color: var(--rd-gold); }
.site-brand:focus-visible { outline: 2px solid var(--rd-gold); outline-offset: 5px; }

.brand-mark {
  grid-row: 1 / 3;
  display: grid;
  place-items: center;
  width: 40px;
  height: 52px;
  border: 2px solid #d6a02e;
  border-radius: 5px;
  color: #f0be55;
  transform: rotate(-4deg);
}

.site-brand .eyebrow { display: none; }
.site-brand h1 { font-size: 1.08rem; font-weight: 400; }
.site-brand .lead { color: var(--rd-muted); font-size: 0.72rem; }
.header-actions [data-auth-open="register"] { display: none !important; }
.header-link { color: var(--rd-ink); font-size: 0.84rem; font-weight: 400; }

.reader-panel {
  grid-template-columns: minmax(0, 1180px);
  width: 100%;
}

.intro {
  border: 0;
  background: transparent;
  box-shadow: none;
  padding: 12px 28px 30px;
}

.wizard-panel {
  gap: 18px;
  justify-items: stretch;
  width: 100%;
  margin: 0;
  scroll-margin-top: 96px;
  text-align: left;
}

.wizard-title {
  color: var(--rd-ink);
  font-size: 1.34rem;
  font-weight: 500;
  text-align: center;
}

.wizard-copy {
  max-width: none;
  color: var(--rd-muted);
  font-size: 0.92rem;
  text-align: center;
}

.reading-progress {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  width: min(100%, 620px);
  margin: 0 auto 8px;
  padding: 0;
  list-style: none;
}

.reading-progress li {
  position: relative;
  display: grid;
  justify-items: center;
  gap: 5px;
  color: #84909b;
  font-size: 0.74rem;
}

.reading-progress li:not(:last-child)::after {
  position: absolute;
  top: 14px;
  left: calc(50% + 20px);
  width: calc(100% - 40px);
  height: 1px;
  background: #52606c;
  content: "";
}

.reading-progress span {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border: 1px solid #66727d;
  border-radius: 50%;
  background: var(--rd-bg-deep);
}

.reading-progress .is-complete,
.reading-progress .is-current { color: var(--rd-ink); }
.reading-progress .is-complete span,
.reading-progress .is-current span { border-color: var(--rd-gold); }
.reading-progress .is-complete::after { background: var(--rd-line); }
body[data-wizard-step="question"] .reading-progress { display: none; }

.question-intro {
  margin: 0 0 8px;
  color: var(--rd-ink);
  font-size: 1rem;
  line-height: 1.7;
}

.consultation-section h2,
.reading-settings h2 {
  margin: 0 0 10px;
  color: var(--rd-ink);
  font-size: 1rem;
  font-weight: 500;
}

.required-label {
  display: inline-block;
  margin-left: 8px;
  padding: 2px 7px;
  background: #c94d5d;
  color: #fff;
  font-size: 0.72rem;
  vertical-align: 2px;
}

.theme-options {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 10px;
}

.theme-option {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-width: 0;
  min-height: 62px;
  padding: 10px;
  border-color: var(--rd-line);
  color: var(--rd-ink);
}

.theme-option > span { font-size: 1.45rem; }
.theme-option.is-selected,
.tone-option.is-selected {
  border-color: #72b5a9;
  background: var(--rd-selected);
  box-shadow: inset 0 0 0 1px rgba(114, 181, 169, 0.36);
}

.question-example {
  min-height: 1.5em;
  margin: 0 0 8px;
  color: #ddb978;
  font-size: 0.86rem;
}

#wizardQuestionInput {
  width: 100%;
  max-width: none;
  min-height: 180px;
  border-color: var(--rd-line);
  border-radius: 4px;
  background: rgba(4, 17, 32, 0.72);
  color: var(--rd-ink);
  font-size: 0.95rem;
  padding: 16px;
}

.birth-details {
  border-top: 1px solid rgba(159, 93, 82, 0.48);
  border-bottom: 1px solid rgba(159, 93, 82, 0.48);
  padding: 14px 4px;
}

.birth-fields { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; padding: 2px 0; }
.birth-fields label { display: grid; gap: 6px; color: var(--rd-muted); font-size: 0.8rem; }

.reading-settings {
  display: grid;
  grid-template-columns: 0.88fr 1.12fr;
  border-bottom: 1px solid rgba(159, 93, 82, 0.48);
  padding-bottom: 18px;
}

.method-setting { padding-right: 28px; }
.tone-setting { border-left: 1px solid rgba(159, 93, 82, 0.48); padding-left: 28px; }
.method-setting p { display: flex; align-items: center; gap: 8px; margin: 0; }
.method-setting strong { color: var(--rd-ink); font-weight: 500; }
.method-setting small { display: block; min-height: 3.2em; margin: 7px 0 12px; color: #d3aa72; line-height: 1.55; }
.recommend-label { border: 1px solid #70a899; color: #a5d7c9; font-size: 0.68rem; padding: 2px 6px; }

.tone-options { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.tone-option { min-width: 0; min-height: 44px; padding: 6px; }

.tone-preview,
.step-character {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 14px;
  align-items: center;
  margin-top: 14px;
}

.tone-cat-character,
.tone-animal-character {
  position: relative;
  display: block;
  width: 92px;
  aspect-ratio: 1;
}

.tone-cat-character img,
.tone-animal-character img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.tone-speech {
  position: relative;
  min-height: 72px;
  display: grid;
  align-items: center;
  border: 1px solid var(--rd-line);
  border-radius: 5px;
  padding: 12px 14px;
  background: rgba(5, 24, 42, 0.76);
}
.tone-speech::before {
  position: absolute;
  left: -8px;
  width: 14px;
  height: 14px;
  border-left: 1px solid var(--rd-line);
  border-bottom: 1px solid var(--rd-line);
  background: #071a2d;
  content: "";
  transform: rotate(45deg);
}
.tone-speech p { position: relative; margin: 0; font-size: 0.84rem; line-height: 1.65; }
.form-error { min-height: 1.4em; margin: -8px 0; color: #ff9ca7; font-size: 0.82rem; text-align: center; }
.primary-wide { width: min(100%, 920px); margin: 0 auto; background: #d7a12d; border-color: #e0b857; color: #07121e; font-size: 1.05rem; }
.secondary-action { color: var(--rd-ink); }
.text-button { min-width: 0; min-height: 34px; border: 0; background: transparent; color: #e1c79c; text-decoration: underline; text-underline-offset: 4px; }

.spread-picker-backdrop {
  position: fixed;
  inset: 0;
  z-index: 90;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(1, 8, 16, 0.76);
}
.spread-picker {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  width: min(680px, 100%);
  max-height: min(800px, calc(100dvh - 48px));
  border: 1px solid var(--rd-line);
  border-radius: 5px;
  background: var(--rd-surface);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.42);
}
.spread-picker > header { display: flex; justify-content: space-between; gap: 16px; padding: 20px 22px 14px; border-bottom: 1px solid var(--rd-line-soft); }
.spread-picker h2 { margin: 0; font-size: 1.15rem; font-weight: 500; }
.spread-picker header p { margin: 6px 0 0; color: var(--rd-muted); font-size: 0.82rem; }
.icon-button { width: 40px; min-width: 40px; height: 40px; min-height: 40px; padding: 0; border: 0; font-size: 1.5rem; }
.spread-picker-list { overflow: auto; padding: 8px 22px 16px; }
.spread-purpose-group { padding: 12px 0; border-bottom: 1px solid rgba(159, 93, 82, 0.36); }
.spread-purpose-group h3 { margin: 0 0 8px; color: #d9b67a; font-size: 0.82rem; font-weight: 500; }
.spread-option { display: grid; grid-template-columns: 22px 1fr; gap: 10px; align-items: start; width: 100%; min-height: 58px; margin-top: 6px; padding: 10px 12px; text-align: left; }
.spread-option.is-selected { border-color: #72b5a9; background: var(--rd-selected); }
.radio-dot { width: 17px; height: 17px; margin-top: 2px; border: 2px solid #ddd7ce; border-radius: 50%; }
.spread-option.is-selected .radio-dot { border: 5px solid #88c9bc; }
.spread-option strong { display: block; color: var(--rd-ink); font-size: 0.86rem; font-weight: 500; }
.spread-option small { display: block; margin-top: 4px; color: var(--rd-muted); font-size: 0.72rem; line-height: 1.45; }
.spread-picker footer { display: flex; justify-content: flex-end; gap: 10px; padding: 14px 22px; border-top: 1px solid var(--rd-line-soft); }
.spread-picker footer button:last-child { background: var(--rd-gold); color: #07121e; }

.question-summary { width: 100%; max-width: none; border: 1px solid var(--rd-line-soft); border-radius: 4px; background: rgba(4, 17, 32, 0.48); padding: 12px 16px; }
.shuffle-count { margin: -8px 0 0; color: #d9b67a; font-size: 0.8rem; text-align: center; }
.board-anchor { width: 100%; min-height: 300px; }
.board-anchor .card-board { width: 100%; }
.shuffle-deck-trigger { display: grid; justify-items: center; width: 100%; }
.shuffle-deck-trigger .board-anchor { min-height: 300px; }
.shuffle-deck-trigger .card-board { cursor: pointer; }
.shuffle-deck-label { margin-top: 6px; color: #e1c79c; font-size: 0.84rem; text-decoration: underline; text-underline-offset: 4px; }
.step-character { width: min(100%, 420px); margin: 0 auto; }
.step-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 330px)); width: min(100%, 680px); margin: 0 auto; }
.step-actions button:first-child { background: var(--rd-gold); color: #07121e; }
.shuffle-step-actions { grid-template-columns: minmax(0, 330px); justify-content: center; }
.reveal-primary-action { display: grid; grid-template-columns: minmax(0, 360px); justify-content: center; width: 100%; margin: 0 auto 4px; }
.reveal-primary-action button { width: 100%; background: var(--rd-gold); color: #07121e; }

.deck-shuffle-card { animation-name: rd-scatter-shuffle; animation-duration: 2.3s; }
@keyframes rd-scatter-shuffle {
  0% { left: var(--start-x); top: var(--start-y); opacity: 1; transform: translate(-50%, -50%) rotate(var(--start-rot)) scale(1); }
  8% { opacity: 1; }
  18% { left: var(--center-x); top: var(--center-y); transform: translate(-50%, -50%) rotate(var(--orbit-tilt)) scale(0.55); }
  34% { left: var(--orbit-x1); top: var(--orbit-y1); transform: translate(-50%, -50%) rotate(calc(var(--orbit-tilt) + 50deg)) scale(0.72); }
  48% { left: var(--orbit-x2); top: var(--orbit-y2); transform: translate(-50%, -50%) rotate(calc(var(--orbit-tilt) - 36deg)) scale(0.62); }
  62% { left: var(--orbit-x3); top: var(--orbit-y3); transform: translate(-50%, -50%) rotate(calc(var(--orbit-tilt) + 78deg)) scale(0.74); }
  76% { left: var(--orbit-x4); top: var(--orbit-y4); transform: translate(-50%, -50%) rotate(calc(var(--orbit-tilt) - 64deg)) scale(0.6); }
  88% { left: var(--center-x2); top: var(--center-y2); opacity: 1; transform: translate(-50%, -50%) rotate(var(--orbit-tilt)) scale(0.56); }
  96%, 100% { left: var(--end-x); top: var(--end-y); opacity: 1; transform: translate(-50%, -50%) rotate(var(--end-rot)) scale(1); }
}

.shuffle-layer { opacity: 1; transition: opacity 180ms linear; }
.shuffle-layer.is-settling { opacity: 0; }

body[data-wizard-step="shuffle"] .card-board {
  position: relative;
  display: block;
  width: 260px;
  height: 300px;
  margin: 0 auto;
  padding: 0;
}
body[data-wizard-step="shuffle"] .card-board .tarot-card {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 158px;
  transform: translate(-50%, -50%) translate(var(--x-jitter), var(--y-jitter)) rotate(var(--tilt));
}
body[data-wizard-step="shuffle"] .card-board .tarot-card:nth-child(n+13) { display: none; }

.selection-status { display: grid; justify-items: center; gap: 8px; }
.selection-status > p { margin: 0; color: #d9b67a; }
.selection-slots { display: flex; flex-wrap: wrap; justify-content: center; gap: 22px; }
.selection-slot { display: grid; justify-items: center; gap: 7px; color: var(--rd-muted); font-size: 0.72rem; }
.selection-slot i { display: block; width: 70px; aspect-ratio: 1 / 1.648; border: 1px dashed var(--rd-line); border-radius: 4px; }
.selection-slot.is-filled i { border-style: solid; background: #0d2944; box-shadow: inset 0 0 0 5px #071a2d; }

body[data-wizard-step="arrange"] .selection-board-anchor { min-height: 330px; overflow: visible; }
body[data-wizard-step="arrange"] .card-board.is-compact-select {
  position: relative;
  display: block;
  width: 100%;
  min-height: 330px;
  overflow: visible;
  padding: 0;
}
body[data-wizard-step="arrange"] .card-board .tarot-card {
  position: absolute;
  width: 92px;
  margin: 0;
  transform: translateY(calc(0px - var(--wave-lift, 0px))) rotate(var(--tilt));
  transition: transform 110ms ease, filter 110ms ease;
}
body[data-wizard-step="arrange"] .card-board .tarot-card:hover,
body[data-wizard-step="arrange"] .card-board .tarot-card:focus-visible { z-index: 200 !important; transform: translateY(calc(-12px - var(--wave-lift, 0px))) rotate(var(--tilt)); }
body[data-wizard-step="arrange"] .card-board .tarot-card.is-selected { z-index: 190 !important; transform: translateY(calc(-18px - var(--wave-lift, 0px))) rotate(var(--tilt)); }

body[data-wizard-step="reveal"] .reveal-character { margin-bottom: 4px; }
body[data-wizard-step="reveal"] .reveal-board-anchor {
  position: relative;
  z-index: 0;
  min-height: 0;
  overflow: visible;
  box-sizing: border-box;
  padding: 18px 14px 34px;
  margin-bottom: 18px;
  isolation: isolate;
}
body[data-wizard-step="reveal"] .card-board.is-spread {
  --spread-card-size: clamp(72px, 8.5vw, 108px);
  gap: clamp(12px, 3vw, 30px);
  align-items: start;
  width: min(100%, 680px);
  margin: 0 auto;
  box-sizing: border-box;
  overflow: visible;
  padding: 14px 12px 18px;
}
body[data-wizard-step="reveal"] .card-board.spread-layout-celtic-cross { --spread-card-size: clamp(46px, min(7vw, 10dvh), 84px); }
body[data-wizard-step="reveal"] .card-board.spread-layout-horoscope { --spread-card-size: clamp(38px, min(6.3vw, 8dvh), 72px); }
body[data-wizard-step="reveal"] .card-board.spread-layout-lenormand-grand-tableau { --spread-card-size: clamp(24px, min(4.2vw, 6dvh), 40px); gap: clamp(3px, 0.6vw, 7px); }
body[data-wizard-step="reveal"] .card-board.is-spread[class*="spread-layout-"] { width: min(100%, 880px); }
body[data-wizard-step="reveal"] .spread-slot { width: var(--spread-card-size); min-width: 0; }
body[data-wizard-step="reveal"] .spread-card { width: var(--spread-card-size) !important; max-width: var(--spread-card-size) !important; }
body[data-wizard-step="reveal"] .spread-card.is-next { animation-name: rd-next-card-pulse; }
body[data-wizard-step="reveal"] .spread-layout-simple-cross .spread-card.is-next { animation-name: rd-next-card-pulse-cross; }
body[data-wizard-step="reveal"] .spread-position { color: #e1c79c; font-size: 0.86rem; }
body[data-wizard-step="reveal"] .wizard-panel > .text-button { margin-bottom: 26px; }
@keyframes rd-next-card-pulse {
  0%, 100% { transform: translate(var(--x-jitter), var(--y-jitter)) rotate(var(--tilt)); filter: brightness(1.08); }
  50% { transform: translate(var(--x-jitter), calc(var(--y-jitter) - 5px)) rotate(var(--tilt)); filter: brightness(1.25); }
}
@keyframes rd-next-card-pulse-cross {
  0%, 100% { transform: rotate(90deg); filter: brightness(1.08); }
  50% { transform: translateY(-5px) rotate(90deg); filter: brightness(1.25); }
}
.cat-stage { display: none !important; }

.reading-result-page {
  display: grid;
  gap: 28px;
  width: min(100%, 920px);
  margin: 0 auto;
}

.result-header {
  padding-bottom: 18px;
  border-bottom: 1px solid var(--rd-line);
  text-align: center;
}

.result-header > p,
.result-card-copy > p,
.result-overall > div > p,
.result-premium > div > p {
  margin: 0 0 7px;
  color: #d9b67a;
  font-size: 0.78rem;
}

.result-header h2 {
  margin: 0;
  color: var(--rd-ink);
  font-size: 1.35rem;
  font-weight: 500;
}

.result-question {
  width: min(100%, 700px);
  margin: 14px auto 0;
  color: var(--rd-muted);
  font-size: 0.88rem;
  line-height: 1.7;
}

.result-card-list { display: grid; gap: 0; }
.result-card-entry {
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr);
  gap: 24px;
  padding: 24px 0;
  border-bottom: 1px solid var(--rd-line-soft);
}
.result-card-visual { display: grid; place-items: start center; }
.result-card-visual .tarot-card { width: 112px; }
.result-card-copy h3 { margin: 0 0 12px; color: var(--rd-ink); font-size: 1rem; font-weight: 500; }
.result-card-copy h3 small { margin-left: 7px; color: var(--rd-muted); font-size: 0.75rem; font-weight: 400; }
.result-card-copy > div,
.result-overall > div > div,
.result-premium-preview { color: #d9dde0; font-size: 0.9rem; line-height: 1.9; }

.result-overall {
  display: grid;
  grid-template-columns: 104px minmax(0, 1fr);
  gap: 20px;
  padding: 22px;
  border: 1px solid var(--rd-line);
  background: rgba(5, 24, 42, 0.72);
}
.result-advisor .tone-cat-character,
.result-advisor .tone-animal-character { width: 104px; }

.result-premium {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 220px;
  gap: 24px;
  align-items: center;
  padding: 22px;
  border-top: 1px solid #b18536;
  border-bottom: 1px solid #b18536;
  background: rgba(28, 32, 48, 0.64);
}
.result-premium h3 { margin: 0 0 12px; color: var(--rd-ink); font-size: 1rem; font-weight: 500; }
.result-premium-preview {
  display: -webkit-box;
  overflow: hidden;
  color: var(--rd-muted);
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.result-premium > button { background: var(--rd-gold); color: #07121e; }
.result-footer-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.member-ticket-choice { display: grid; gap: 16px; }
.member-ticket-choice .ticket-product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ai-wait-panel { margin-inline: auto; }
.card-focus.is-bulk-reading .bulk-reading-entry {
  grid-template-columns: minmax(0, 1fr) clamp(96px, 11vw, 124px);
  grid-template-areas: "reading-copy reading-card";
  align-items: start;
}
.card-focus.is-bulk-reading .bulk-reading-entry-copy { grid-area: reading-copy; }
.card-focus.is-bulk-reading .bulk-reading-free-summary {
  margin: 5px 0 11px;
  padding: 7px 9px;
  border-left: 3px solid rgba(118, 190, 173, 0.8);
  background: rgba(99, 154, 143, 0.1);
  color: var(--rd-muted);
  font-size: 0.8rem;
  line-height: 1.55;
}
.card-focus.is-bulk-reading .bulk-reading-free-summary span {
  display: block;
  margin-bottom: 2px;
  color: #a8d3c8;
  font-size: 0.68rem;
}
.card-focus.is-bulk-reading .bulk-reading-detail { margin-top: 0; }
.card-focus.is-bulk-reading .bulk-reading-entry-card { grid-area: reading-card; align-self: start; display: grid; justify-items: center; gap: 7px; }
.reading-card-thumbnail {
  width: min(100%, 112px);
  aspect-ratio: 1 / var(--card-ratio);
  overflow: hidden;
  border: 1px solid rgba(250, 225, 161, 0.5);
  border-radius: 7px;
  background: #f2ead8;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.32);
}
.reading-card-thumbnail img { display: block; width: 100%; height: 100%; object-fit: cover; }
.reading-card-thumbnail.is-reversed img { transform: rotate(180deg); }
.reading-card-thumbnail .text-card-face-content { display: grid; height: 100%; place-items: center; padding: 8px; color: #2a2030; text-align: center; }
.card-focus.is-bulk-reading .bulk-reading-entry-card small { color: var(--rd-muted); font-size: 0.72rem; line-height: 1.3; }
.legal-footer {
  position: relative;
  z-index: 2;
  clear: both;
  background: var(--rd-bg-deep);
}

.contact-page {
  width: min(100% - 32px, 680px);
  margin: 0 auto;
  padding: 104px 0 64px;
}
.contact-page > header { text-align: center; }
.contact-page h1 { margin: 0; color: var(--rd-ink); font-size: clamp(1.3rem, 3vw, 1.8rem); font-weight: 500; }
.contact-page header p { margin: 12px auto 0; color: var(--rd-muted); font-size: 0.86rem; line-height: 1.8; }
.contact-form { display: grid; gap: 18px; margin-top: 30px; padding: 24px; border: 1px solid var(--rd-line); background: rgba(5, 24, 42, 0.7); }
.contact-form label { display: grid; gap: 8px; color: var(--rd-ink); font-size: 0.9rem; }
.contact-form input,
.contact-form select,
.contact-form textarea { width: 100%; border: 1px solid var(--rd-line-soft); border-radius: 4px; background: rgba(4, 17, 32, 0.8); color: var(--rd-ink); padding: 11px 12px; font-size: 1rem; }
.contact-form textarea { min-height: 180px; resize: vertical; }
.contact-form .contact-privacy { margin: 0; color: var(--rd-muted); font-size: 0.78rem; line-height: 1.7; }
.contact-form .contact-message { min-height: 1.5em; margin: 0; color: #a9d6c8; font-size: 0.86rem; }
.contact-form .contact-message.is-error { color: #ffacb6; }
.contact-form button { width: min(100%, 320px); justify-self: center; }
.contact-back { display: block; width: fit-content; margin: 24px auto 0; color: var(--rd-ink); }
@media (max-width: 600px) {
  .contact-page { padding-top: 88px; }
  .contact-form { padding: 18px 14px; }
}

.account-page,
.mypage-page {
  display: grid;
  gap: 22px;
  width: min(100%, 680px);
  margin: 18px auto 0;
}
.account-page > header,
.mypage-page > header { text-align: center; }
.account-page h2,
.mypage-page h2 { margin: 0; color: var(--rd-ink); font-size: 1.25rem; font-weight: 500; }
.account-page header p,
.mypage-page header p { margin: 8px 0 0; color: var(--rd-muted); font-size: 0.82rem; line-height: 1.6; }
.account-tabs { display: grid; grid-template-columns: repeat(2, 1fr); border-bottom: 1px solid var(--rd-line); }
.account-tabs button { border: 0; border-bottom: 3px solid transparent; background: transparent; color: var(--rd-muted); }
.account-tabs button.is-selected { border-bottom-color: var(--rd-gold); color: var(--rd-ink); }
.auth-form { display: grid; gap: 16px; width: min(100%, 520px); margin: 0 auto; }
.auth-form label { display: grid; gap: 7px; color: var(--rd-muted); font-size: 0.82rem; }
.auth-form input { width: 100%; min-height: 46px; border-radius: 4px; border-color: var(--rd-line); background: rgba(4, 17, 32, 0.72); color: var(--rd-ink); }
.auth-form .wizard-actions { grid-template-columns: 1fr; width: 100%; margin-inline: auto; }
.auth-form .wizard-actions button { width: 100%; }
.account-page > .text-button { justify-self: center; }
.auth-message { min-height: 1.4em; margin: 0; color: #9fd0c5; text-align: center; }
.auth-message.is-error { color: #ff9ca7; }

.mypage-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  padding: 18px;
  border: 1px solid var(--rd-line);
  background: rgba(5, 24, 42, 0.62);
}
.mypage-summary div { display: grid; gap: 4px; }
.mypage-summary span { color: var(--rd-muted); font-size: 0.76rem; }
.mypage-summary strong { color: var(--rd-ink); font-size: 1.2rem; font-weight: 500; }
.history-list { display: grid; gap: 0; }
.history-list h3 { margin: 0; padding-bottom: 12px; border-bottom: 1px solid var(--rd-line); font-size: 1rem; font-weight: 500; }
.history-list > p { color: var(--rd-muted); text-align: center; }
.history-item { display: grid; grid-template-columns: 1fr auto; gap: 5px 14px; padding: 16px 0; border-bottom: 1px solid var(--rd-line-soft); }
.history-item strong { color: var(--rd-ink); font-weight: 500; }
.history-item span { color: var(--rd-muted); font-size: 0.75rem; }
.history-item p { grid-column: 1 / 2; margin: 0; color: var(--rd-muted); font-size: 0.82rem; }
.history-item button { grid-column: 2; grid-row: 1 / 3; align-self: center; }

@media (max-width: 820px) {
  .app-shell { width: 100%; padding: 86px 14px 12px; }
  .site-header { min-height: 70px; padding: 9px 14px; }
  .site-brand { grid-template-columns: 34px auto; column-gap: 9px; }
  .brand-mark { width: 32px; height: 44px; }
  .site-brand h1 { font-size: 0.92rem; }
  .site-brand .lead { display: none; }
  .header-actions [data-language-toggle],
  .header-actions [data-auth-open="login"] { display: none; }
  .intro { padding: 8px 2px 24px; }
  .wizard-panel { gap: 14px; }
  .question-intro { font-size: 0.92rem; line-height: 1.7; padding-inline: 4px; }
  .theme-options { grid-template-columns: repeat(2, 1fr); gap: 8px; }
  .theme-option { min-height: 54px; }
  .theme-option:last-child { grid-column: 1 / 3; }
  #wizardQuestionInput { min-height: 180px; }
  .birth-fields { grid-template-columns: 1fr; }
  .reading-settings { grid-template-columns: 1fr; gap: 18px; }
  .method-setting { padding-right: 0; }
  .tone-setting { border-left: 0; border-top: 1px solid var(--rd-line-soft); padding: 18px 0 0; }
  .tone-preview { grid-template-columns: 72px minmax(0, 1fr); }
  .tone-cat-character,
  .tone-animal-character { width: 72px; }
  .tone-speech { min-height: 74px; padding: 10px 12px; }
  .tone-speech p { font-size: 0.76rem; }
  .primary-wide { width: 100%; }
  .spread-picker-backdrop { align-items: end; padding: 0; }
  .spread-picker { width: 100%; max-height: 82dvh; border-radius: 6px 6px 0 0; border-bottom: 0; }
  .spread-picker > header { padding: 16px 16px 12px; }
  .spread-picker-list { padding: 6px 16px 12px; }
  .spread-picker footer { position: sticky; bottom: 0; display: grid; grid-template-columns: 1fr; padding: 12px 16px 16px; background: var(--rd-surface); }
  .spread-picker footer .text-button { order: 2; }
  .reading-progress { width: 100%; }
  .reading-progress li { font-size: 0.68rem; }
  .question-summary { font-size: 0.76rem; }
  .board-anchor { min-height: 230px; }
  .step-character { grid-template-columns: 70px minmax(0, 1fr); width: 100%; }
  .step-character .tone-cat-character,
  .step-character .tone-animal-character { width: 70px; }
  .step-actions { grid-template-columns: 1fr; width: 100%; }
  body[data-wizard-step="shuffle"] .card-board { width: 210px; height: 250px; }
  body[data-wizard-step="shuffle"] .card-board .tarot-card { width: 126px; }
  .shuffle-deck-trigger .board-anchor { min-height: 250px; }
  .shuffle-deck-label { margin-top: 6px; }
  .selection-slots { gap: 12px; }
  .selection-slot i { width: 64px; }
  body[data-wizard-step="arrange"] .selection-board-anchor { min-height: 410px; }
  body[data-wizard-step="arrange"] .card-board.is-compact-select { width: 100%; min-height: 410px; padding: 0; }
  body[data-wizard-step="arrange"] .card-board .tarot-card { width: 58px; }
  body[data-wizard-step="reveal"] .card-board.is-spread { --spread-card-size: min(21vw, 72px); gap: 12px; width: 100%; }
  body[data-wizard-step="reveal"] .card-board.spread-layout-celtic-cross { --spread-card-size: min(12vw, 46px); gap: 5px; }
  body[data-wizard-step="reveal"] .card-board.spread-layout-horoscope { --spread-card-size: min(10.5vw, 40px); gap: 4px; }
  body[data-wizard-step="reveal"] .card-board.spread-layout-lenormand-grand-tableau { --spread-card-size: min(8vw, 28px); gap: 3px; }
  body[data-wizard-step="reveal"] .reveal-board-anchor { min-height: 0; padding: 14px 10px 30px; margin-bottom: 14px; }
  body[data-wizard-step="reveal"] .card-board.is-spread { padding: 12px 8px 16px; }
  .member-ticket-choice .ticket-product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .member-ticket-choice .ticket-product { min-width: 0; padding-inline: 6px; }
  .card-focus.is-bulk-reading .bulk-reading-entry { grid-template-columns: minmax(0, 1fr) 68px; gap: 10px; }
  .reading-card-thumbnail { width: 64px; }
  .reading-result-page { gap: 20px; }
  .result-card-entry { grid-template-columns: 88px minmax(0, 1fr); gap: 14px; padding: 20px 0; }
  .result-card-visual .tarot-card { width: 78px; }
  .result-card-copy h3 { font-size: 0.92rem; }
  .result-card-copy h3 small { display: block; margin: 4px 0 0; }
  .result-card-copy > div,
  .result-overall > div > div,
  .result-premium-preview { font-size: 0.84rem; line-height: 1.8; }
  .result-overall { grid-template-columns: 72px minmax(0, 1fr); gap: 12px; padding: 16px; }
  .result-advisor .tone-cat-character,
  .result-advisor .tone-animal-character { width: 72px; }
  .result-premium { grid-template-columns: 1fr; padding: 18px 16px; }
  .result-premium > button { width: 100%; }
  .account-page,
  .mypage-page { margin-top: 0; }
  .mypage-summary { grid-template-columns: 1fr; }
  .history-item { grid-template-columns: 1fr; }
  .history-item button { grid-column: 1; grid-row: auto; justify-self: start; margin-top: 6px; }
}

@media (max-width: 420px) {
  .site-brand h1 { font-size: 0.86rem; }
  .question-intro { font-size: 0.86rem; }
  .consultation-section h2,
  .reading-settings h2 { font-size: 0.92rem; }
  .theme-option { font-size: 0.82rem; }
  .selection-slot i { width: 58px; }
}
