.meaning-source { margin: 20px 0; padding: 14px 0; border-top: 1px solid var(--line, #baa06444); font: 13px/1.8 var(--sans, system-ui); color: var(--muted, #bcb49f); }
.meaning-source summary { cursor: pointer; color: var(--gold, #d5ba7c); }
.meaning-source h4 { margin: 16px 0 6px; font-weight: 400; color: var(--ink, #e8dcc6); }
.meaning-source blockquote { margin: 12px 0; padding-left: 12px; border-left: 2px solid #a78b5366; font: 13px/1.7 Georgia,serif; }
.meaning-source a,.spread-source { color: var(--gold, #d5ba7c); font-size: 12px; }
.spread-browser { margin: 20px 0; }
.spread-browser > label { display: flex; justify-content: space-between; font-size: 12px; color: var(--muted); margin-bottom: 10px; }
.spread-choices { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin: 0; }
.spread-choice { min-width: 0; min-height: 59px; padding: 10px 14px; border-radius: 5px; }
.spread-choice strong { font-size: 14px; margin-bottom: 3px; }
.spread-choice small { font-size: 10px; }
.spread-detail { margin-top: 16px; padding: 18px; background: #18231e99; border: 1px solid #b69a5933; border-radius: 8px; }
.spread-detail-head { display: flex; align-items: start; justify-content: space-between; gap: 12px; }
.spread-detail-head h2 { font-size: 18px; font-weight: 400; margin: 0 0 7px; }
.spread-detail-head p,.spread-note { color: var(--muted); font: 12px/1.8 var(--sans); margin: 0; }
.spread-detail-head > span { white-space: nowrap; color: var(--gold); font-size: 10px; }
.spread-map { position: relative; width: min(100%,340px); height: 190px; margin: 12px auto; }
.map-celtic { height: 245px; }
.map-card { position: absolute; display: grid; place-items: center; transform: translate(-50%,-50%) rotate(var(--map-angle)); border: 1px solid #cbb179; border-radius: 3px; background: linear-gradient(125deg,#293c38,#14251f); color: #d9c28c; padding: 0; overflow: hidden; }
.map-card b { font: 12px var(--serif,Georgia); }
.map-card { aspect-ratio: 2/3; }
.map-print { position: absolute; inset: 0; }
.map-print:not(.print-window) img { width: 100%; height: 100%; object-fit: fill; }
.map-card.filled { cursor: pointer; border: 0; }
.map-card.filled b { position: absolute; background: #0c1615e0; color: #eee0ac; font-size: 10px; padding: 2px 4px; border-radius: 2px; }
.spread-position-guide { margin: 4px 0 16px; padding-left: 20px; color: var(--gold); font-size: 12px; }
.spread-position-guide li { padding: 3px 0; }
.spread-position-guide strong { font-weight: 400; margin-right: 8px; }
.spread-position-guide span { color: var(--muted); font-size: 11px; line-height: 1.8; }
.spread-note { margin-bottom: 12px; }
.reading-submit { margin-top: 20px; text-align: center; }
.reading-submit > .primary-button { width: 100%; }
.result-spread-map { max-width: 640px; margin: 22px auto; text-align: center; }
.result-cards { flex-wrap: wrap; }
.result-texts { grid-template-columns: repeat(auto-fit,minmax(min(100%,230px),1fr)); }
.insight-cards { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,240px),1fr)); }
.results-page .result-orientation { font-size: 12px; }
.spread-browser-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.spread-browser-heading h2 { font:18px var(--serif); margin:0; }
.spread-browser-heading a { color:var(--gold); font-size:11px; white-space:nowrap; }
.spread-help,.topic-focus,.theme-recommendation,.prompt-preview-note { font:12px/1.8 var(--sans); color:var(--muted); }
.topic-focus { margin:8px 0 12px; }
.spread-depths { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; margin:14px 0; }
.depth-choice { padding:12px 3px; border:1px solid var(--line); border-radius:6px; background:#14221c; color:var(--muted); }
.depth-choice strong,.depth-choice small { display:block; }
.depth-choice strong { font:16px var(--serif); margin-bottom:6px; }
.depth-choice small { font:10px/1.5 var(--sans); }
.depth-choice.active { border-color:var(--gold); background:#283229; color:var(--gold-bright); }
.spread-choices { grid-template-columns:repeat(auto-fit,minmax(115px,1fr)); }
.spread-choice:only-child { max-width:none; }
.plan-context { color:var(--gold); font:12px/1.8 var(--sans); margin-top:16px; }
.decision-options { display:grid; gap:12px; padding:16px; border:1px solid var(--line); border-radius:8px; }
.decision-options[hidden] { display:none; }
.decision-options p { margin:0; font-size:13px; }
.decision-options label { display:grid; gap:6px; color:var(--gold); font-size:12px; }
.decision-options input { min-width:0; width:100%; padding:12px; border:1px solid var(--line); background:#0c1712; color:var(--cream); border-radius:4px; font:14px var(--sans); }
.decision-options small { color:var(--muted); font-size:11px; }
.reading-prompt { margin:26px 0; padding:18px; border:1px solid var(--line); border-radius:8px; text-align:left; }
.reading-prompt summary { cursor:pointer; color:var(--gold); font:15px/1.6 var(--serif); }
.reading-prompt p,.reading-prompt small { display:block; font:12px/1.8 var(--sans); color:var(--muted); }
.reading-prompt textarea { display:block; width:100%; height:340px; margin:12px 0; padding:12px; resize:vertical; background:#0b1511; color:var(--cream); border:1px solid var(--line); font:12px/1.7 var(--sans); }
@media(max-width:600px) {
 :root { --usable-height: calc(100dvh - var(--header-height) - var(--safe-top) - 66px - var(--safe)); }
 .room { height: var(--usable-height); min-height: 450px; padding: 10px 0 12px; display: flex; flex-direction: column; }
 .room-intro { flex: none; margin: 0 16px 5px; }
 .room-intro h1 { font-size: 22px; line-height: 1.4; margin: 7px 0; }
 .card-theater { display: flex; flex: 1; flex-direction: column; min-height: 0; width: 100%; margin: 0; }
 .card-theater > [data-motion-enable] { align-self: center; }
 .theater-caption { flex: none; margin-bottom: 3px; }
 .room .coverflow { flex: 1; height: auto; min-height: 190px; width: 100%; container-type: size; --flow-card-width: clamp(144px,calc((100dvh - 440px - var(--safe-top) - var(--safe)) * 0.666667),calc(100vw - 96px)); --flow-card-height: calc(var(--flow-card-width) * 1.5); }
 .room .flow-card, .room .flow-card.is-center { --fitted-width: min(var(--flow-card-width),calc((100cqh - 12px) * 0.666667)); width: var(--fitted-width); height: calc(var(--fitted-width) * 1.5); margin: calc(var(--fitted-width) * -.75) 0 0 calc(var(--fitted-width) * -.5); }
 .room .flow-controls { flex: none; margin: 0; }
 .room .card-meta { flex: none; min-height: 65px; margin: 4px 0 0; }
 .room .card-meta h2 { font-size: 22px; margin: 4px 0; }
 .room .subtle-hint { flex: none; font-size: 10px; margin: 3px 12px 8px; }
 .mobile-room-cta { flex: none; margin: 0 24px; }
 .mobile-room-cta .primary-button { width: 100%; min-height: 48px; font-size: 14px; }
 .room-footer { display: none; }
 .reading-page { height: var(--usable-height); min-height: 460px; padding: 16px 20px 0; display: flex; flex-direction: column; }
 .reading-page > h1 { font-size: 24px; letter-spacing: 3px; margin: 9px 0; }
 .reading-page > .reading-lead { margin: 0; }
 .question-form { display: flex; flex: 1; min-height:0; flex-direction: column; width: 100%; max-width: 570px; margin: 12px auto 0; }
 .reading-fields { flex:1; min-height:0; overflow-y:auto; overscroll-behavior-y:contain; padding:0 2px 24px; scroll-padding-block:12px 24px; }
 .question-field textarea { min-height: 96px; }
 .spread-browser { flex: 1; margin: 14px 0; }
 .spread-choices { grid-template-columns: repeat(auto-fit,minmax(100px,1fr)); }
 .spread-choice { padding: 10px 12px; gap: 0; }
 .spread-choice strong { font-size: 14px; }
 .spread-choice small { font-size: 10px; }
 .spread-detail { padding: 14px; }
 .reading-submit { position:static; flex:none; z-index: 10; margin: 0 -20px; padding: 10px 20px 8px; background: #101815f7; border-top: 1px solid #b69a592b; }
 .reading-submit .reading-disclaimer { margin: 6px 0 0; font-size: 10px; }
 .reading-decoration { display: none; }
 .result-cards { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: start; gap: 24px 12px; }
 .result-card { width: 100%; min-width: 0; }
 .result-card .card-shell { width: 100%; }
 .result-card:only-child { grid-column: 1 / -1; }
 .result-card:only-child .card-shell { width: min(100%,290px); }
 .result-position { min-height: 28px; }
 .result-texts { grid-template-columns: 1fr; }
 .viewer-details > .message { font-size: 18px; line-height: 1.8; }
}
