.set-visual { position: relative; min-height: 390px; margin: 18px 0 8px; border-radius: 28px; overflow: hidden; background: radial-gradient(circle at 28% 20%, #fff 0 18%, transparent 42%), linear-gradient(145deg,#fff7dc,#fce8e2 60%,#e5f1f2); }
.set-visual figure { position: absolute; margin: 0; }
.set-print { left: 7%; top: 8%; width: 45%; transform: rotate(-4deg); filter: drop-shadow(0 16px 18px rgba(80,50,30,.2)); }
.set-print img { display: block; width: 100%; height: auto; border: 9px solid #fff; border-radius: 4px; }
.set-mug { right: 2%; bottom: 0; width: 57%; filter: drop-shadow(0 15px 20px rgba(80,50,30,.18)); }
.set-mug img { display: block; width: 100%; height: auto; }
.set-eyebrow { margin: 0 0 8px; color: var(--strawberry-coral); font-size: 13px; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.set-price-breakdown { display: grid; grid-template-columns: 1fr auto; gap: 8px 16px; margin: 18px 0; padding: 14px; border: 1px solid var(--line); border-radius: 14px; background: #fffaf4; color: var(--soft-ink); }
.set-price-breakdown b { color: var(--blue); text-align: right; }
.story-print-choice { display: grid; grid-template-columns: 20px 1fr auto; gap: 10px; align-items: center; padding: 11px; border: 1px solid rgba(238,117,109,.35); border-radius: 10px; background: #fff; color: var(--blue); font-weight: 850; }
.story-print-choice input { width: 18px; height: 18px; accent-color: var(--strawberry-coral); }
.story-print-choice small { color: var(--strawberry-coral); font-size: 13px; font-weight: 850; }
.print-idea[hidden] { display: none; }
.set-availability { margin: 12px 0 20px; padding: 12px 14px; border-radius: 12px; background: var(--cream); color: var(--blue); font-weight: 800; line-height: 1.45; }
.set-availability.is-error { background: #fff0ed; color: #a6413b; }
.set-explainer { margin: 22px 0 34px; padding: 22px; border-radius: 22px; background: linear-gradient(135deg,#eaf5f5,#fff8ec); text-align: center; }
.set-explainer h2 { margin: 0 0 10px; color: var(--blue); font-size: 23px; }.set-explainer p { margin: 0 auto 12px; max-width: 480px; line-height: 1.6; }.set-explainer a { color: var(--blue); font-weight: 850; }
@media (max-width: 520px) { .set-visual { min-height: 330px; }.set-print { width: 48%; }.set-mug { width: 63%; } }

.set-price-breakdown { padding: 0; border: 0; background: none; text-align: left; margin: 18px 0 12px; font-size: 14px; }
.set-print-explanation { padding: 16px; border: 1px solid #e7ded2; border-radius: 14px; background: #fffcf6; text-align: left; }
.set-print-explanation h3 { margin: 0 0 6px; color: var(--blue); font-size: 16px; }
.set-print-explanation p { margin: 0; font-size: 14px; line-height: 1.5; }
.set-print-explanation small { display: block; margin-top: 8px; font-size: 12px; color: var(--soft-ink); }
.set-character-identity { display: grid; grid-template-columns: minmax(0, 1fr) 120px; gap: 12px; }
.story-set-page .character-detail-card { padding: 18px; gap: 16px; background: #fff; border-radius: 18px; }
.story-set-page .character-detail-card > strong { font-size: 18px; }
.story-set-page .character-detail-card .story-print-choice { display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; gap: 10px; padding: 14px 12px; background: #fffcf6; align-items: center; }
.story-set-page .story-print-choice:has(input:checked) { border-color: var(--strawberry-coral); background: #fff6f1; }
.story-set-page .story-print-choice input { min-height: 20px; width: 20px; padding: 0; }
.story-print-choice span { color: var(--blue); }
.story-print-choice > span { display: flex; align-items: center; gap: 8px; }
.story-print-choice svg { fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.story-print-choice span small { display: block; margin-top: 3px; color: var(--soft-ink); font-size: 11px; font-weight: 500; }
.story-print-choice b { color: var(--blue); font-size: 13px; white-space: nowrap; }
.set-photo-upload { position: relative; display: grid; padding: 14px; border: 1px dashed #bdd0d5; border-radius: 12px; background: #f7faf9; text-align: center !important; cursor: pointer; }
.set-photo-upload > input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.set-photo-upload > span { color: var(--blue); font-weight: 800; }
.set-photo-upload small { color: var(--soft-ink); font-size: 11px; font-weight: 500; }
.set-photo-upload:focus-within { outline: 3px solid var(--blue); outline-offset: 3px; }
.set-character-photo-list { display: flex; gap: 12px; flex-wrap: wrap; }
.set-character-photo-list:empty, .story-set-page [data-photo-status]:empty { display: none; }
.set-character-photo { margin: 0; width: 110px; display: grid; gap: 5px; align-content: start; }
.set-character-photo img { width: 100%; height: 100px; object-fit: cover; border-radius: 10px; }
.set-character-photo figcaption { font-size: 12px; color: var(--blue); overflow-wrap: anywhere; }
.set-character-photo button { min-height: 36px; border: 1px solid #e7ded2; border-radius: 8px; background: white; font: inherit; font-size: 12px; }
.set-character-photo select { width: 100%; min-height: 44px; font: inherit; font-size: 16px; }
.story-set-page [data-unassigned-photos] .set-character-photo { width: 180px; padding: 12px; border: 1px solid var(--line); border-radius: 12px; }
.story-set-page [data-unassigned-photos] .set-character-photo img { width: 110px; }
.story-set-page .set-availability { margin: 0; font-size: 14px; }
.story-set-page [data-step="3"] > h2 { margin: 0 0 18px; font-size: 24px; color: var(--blue); }
@media (max-width: 360px) {
  .story-set-page .character-detail-card { padding: 14px; }
  .set-character-identity { grid-template-columns: minmax(0, 1fr) 100px; gap: 8px; }
  .story-set-page .character-detail-card .story-print-choice { grid-template-columns: 20px minmax(0, 1fr); }
  .story-print-choice b { grid-column: 2; }
}
