/* Four illustrated worlds, contained within the existing midnight/gold cabinet. */
#solitaire-panel [data-solitaire-deck="garden"]{--deck-accent:#e6b888;--deck-frame:#b57c61;--deck-ground:#193a50;--deck-hint:#fff0bd;--deck-paper:#bcdbe0}
#solitaire-panel [data-solitaire-deck="directions"]{--deck-accent:#e3b973;--deck-frame:#bc955c;--deck-ground:#263849;--deck-hint:#f5e4b3;--deck-paper:#b1cece}
#solitaire-panel [data-solitaire-deck="story"]{--deck-accent:#f2d16a;--deck-frame:#c6ad68;--deck-ground:#13283e;--deck-hint:#fff4d9;--deck-paper:#fff4d9}
#solitaire-panel [data-solitaire-deck="art"]{--deck-accent:#e6c498;--deck-frame:#ac865d;--deck-ground:#17313e;--deck-hint:#f5e7c1;--deck-paper:#e9ddbc}

#solitaire-panel .solitaire-board[data-solitaire-deck="garden"]{grid-template-columns:repeat(4,minmax(0,1fr));max-width:480px}
#solitaire-panel .solitaire-board[data-solitaire-deck="directions"]{grid-template-columns:repeat(3,minmax(0,1fr));max-width:450px}
#solitaire-panel .solitaire-board[data-solitaire-deck="story"]{grid-template-columns:repeat(2,minmax(0,1fr));max-width:360px}
#solitaire-panel .solitaire-board[data-solitaire-deck]:not([data-love-deck]){gap:2px;padding:4px;background:var(--deck-ground);border:1px solid var(--deck-frame);scroll-margin-top:0;margin-bottom:8px}
#solitaire-panel [data-solitaire-deck]:not([data-love-deck]) button.solitaire-card{aspect-ratio:1;min-height:44px;border-radius:0;background:var(--deck-ground)}
#solitaire-panel [data-solitaire-deck="garden"] .solitaire-divider{stroke:#416981;stroke-width:1.2}
#solitaire-panel [data-solitaire-deck="directions"] .solitaire-divider{stroke:#716443;stroke-width:1.2}
#solitaire-panel [data-solitaire-deck="story"] .solitaire-divider{stroke:#17313e;stroke-width:2}
#solitaire-panel .solitaire-hint-wedge{stroke:var(--deck-hint);stroke-width:5}
#solitaire-panel [data-solitaire-deck]:not([data-love-deck]) .solitaire-card.is-hint{outline:3px solid var(--deck-hint);outline-offset:-3px}
#solitaire-panel [data-solitaire-deck]:not([data-love-deck]) .is-hint .solitaire-tile-number{min-width:21px;height:21px;background:var(--deck-hint);color:var(--deck-ground);border:1px solid var(--deck-ground);font-weight:700}
#solitaire-panel [data-solitaire-deck]:not([data-love-deck]) .is-locked .solitaire-tile-number{background:var(--deck-accent);color:var(--deck-ground)}

#solitaire-panel .solitaire-mode[data-deck-style="roerich"] .solitaire-mode-cover{aspect-ratio:1;object-fit:cover;border:2px solid #b57c61}
#solitaire-panel .solitaire-mode[data-deck-style="chirico"] .solitaire-mode-cover{aspect-ratio:1;object-fit:cover;border:2px solid #bc955c;border-radius:2px}
#solitaire-panel .solitaire-mode[data-deck-style="lichtenstein"] .solitaire-mode-cover{aspect-ratio:1;object-fit:cover;border:2px solid #c6ad68;border-radius:0}
#solitaire-panel .solitaire-mode[data-deck-style="dali"] .solitaire-mode-cover{aspect-ratio:2/3;object-fit:cover;border:2px solid #ac865d;border-radius:8px}

#solitaire-panel .solitaire-deck-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 10px;margin-block:18px 28px}
#solitaire-panel button.solitaire-deck-scene{display:flex;flex-direction:column;gap:7px;align-items:center;min-width:0;min-height:44px;margin:0;padding:0 0 8px;background:transparent;border:0;border-radius:0;box-shadow:none;color:var(--text-main,#f8fdfe);font-size:12px;line-height:1.5}
#solitaire-panel .solitaire-deck-scene img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain;border:1px solid var(--deck-frame);border-radius:2px}
#solitaire-panel [data-solitaire-deck="story"] .solitaire-deck-scene img{border-radius:0}
#solitaire-panel [data-solitaire-deck="art"] .solitaire-deck-scene img{aspect-ratio:2/3}
#solitaire-panel .solitaire-deck-scene[aria-pressed="true"] img{outline:2px solid var(--deck-accent);outline-offset:3px}
#solitaire-panel .solitaire-deck-card{object-fit:contain;border:1px solid var(--deck-frame)}
#solitaire-panel .solitaire-deck-card--square{aspect-ratio:1;border-radius:2px}
#solitaire-panel [data-solitaire-deck]:not([data-solitaire-deck="pattern"]) .solitaire-reading-image{object-fit:contain;border-color:var(--deck-frame)}
#solitaire-panel .solitaire-deck-scene:focus-visible{outline:3px solid var(--focus-cabinet,#f0ce8d);outline-offset:4px}

#solitaire-panel .solitaire-match-help{max-width:480px;margin:0 auto 24px;padding:18px;border:1px solid var(--deck-frame);border-radius:4px;background:var(--surface-card,#091b29);color:var(--text-main,#f8fdfe)}
#solitaire-panel .solitaire-match-help[hidden]{display:none}
#solitaire-panel .solitaire-match-help .solitaire-love-hint-image{background:transparent;padding:0;border:1px solid var(--deck-frame);border-radius:2px}
#solitaire-panel .solitaire-hint-copy{min-width:0}
#solitaire-panel .solitaire-hint-copy p{font-size:13px;line-height:1.5;margin:6px 0;color:var(--text-muted,#b8c4c9)}
#solitaire-panel .solitaire-hint-copy .solitaire-love-turns{color:var(--text-main,#f8fdfe);font-weight:700}
#solitaire-panel .solitaire-match-help .solitaire-love-coordinates{position:static;width:auto;height:auto;padding:0;margin:6px 0;overflow:visible;clip-path:none;white-space:normal}
#solitaire-panel .solitaire-hint-fragments{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;max-width:320px;margin:16px auto 0}
#solitaire-panel .solitaire-hint-fragments figure{display:flex;flex-direction:column;align-items:center;gap:5px;min-width:0;margin:0}
#solitaire-panel .solitaire-hint-fragments svg{display:block;width:80px;height:80px;max-width:100%;border:1px solid var(--deck-frame,var(--border-gold));background:var(--deck-ground,#193a34)}
#solitaire-panel .solitaire-hint-fragments figcaption{color:var(--text-muted,#b8c4c9);font-size:12px;line-height:1.5;text-align:center}
#solitaire-panel .solitaire-hint-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:16px}
#solitaire-panel .solitaire-hint-actions button{min-width:0;min-height:44px;padding:8px 5px;font-size:12px;line-height:1.4;letter-spacing:normal}
#solitaire-panel .solitaire-hint-actions .solitaire-control--primary{border-color:var(--deck-accent);background:var(--deck-accent);color:var(--deck-ground)}
#solitaire-panel .solitaire-hint-actions button:disabled{opacity:.5;cursor:default}

/* A 2:3 portrait has two equal 4:3 halves. Both use the same full-size source. */
#solitaire-panel [data-solitaire-deck="art"].solitaire-art-board{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 12px}
#solitaire-panel [data-solitaire-deck="art"] .solitaire-art-card{border-color:var(--deck-frame);background:var(--deck-ground)}
#solitaire-panel [data-solitaire-deck="art"] .solitaire-art-half{aspect-ratio:4/3}
#solitaire-panel [data-solitaire-deck="art"] .solitaire-art-half img{width:100%;height:200%;object-fit:cover}
#solitaire-panel [data-solitaire-deck="art"] .solitaire-art-half--lower img{top:-100%}
#solitaire-panel [data-solitaire-deck="art"] .solitaire-art-half[aria-pressed="true"]::after{border-color:var(--deck-hint)}
#solitaire-panel [data-solitaire-deck="art"] .is-complete .solitaire-art-caption{color:var(--deck-accent)}

/* Manual play: source colors stay intact, including fixed and non-hinted cards. */
#solitaire-panel button.solitaire-card::after{content:"";position:absolute;inset:0;pointer-events:none;border:1px solid #cfb179;box-shadow:inset 0 0 0 1px #010b15}
#solitaire-panel button.solitaire-card.is-locked::after{border-color:#ecc88a;box-shadow:inset 0 0 0 1px #010b15,inset 0 0 0 2px #b3956a}
#solitaire-panel :is(button.solitaire-card,button.solitaire-art-half):disabled{opacity:1;filter:none}
#solitaire-panel .solitaire-card image,#solitaire-panel .solitaire-art-half img,#solitaire-panel .solitaire-deck-scene img,#solitaire-panel .solitaire-reading-image{filter:saturate(1.12) contrast(1.06)}
#solitaire-panel .solitaire-art-card{border:1px solid #cfb179;box-shadow:0 5px 12px #0005}
#solitaire-panel .solitaire-rotor,#solitaire-panel .solitaire-source-orientation{transform-box:view-box;transform-origin:100px 100px}
#solitaire-panel .solitaire-rotor{transition:transform 0.25s ease}
#solitaire-panel .solitaire-discovery-contour{fill:none;stroke:#ecc88a;stroke-width:5;pointer-events:none;animation:solitaire-discovery-pulse 450ms ease-out both}
@keyframes solitaire-discovery-pulse{0%{stroke-opacity:0;stroke-width:2}35%{stroke-opacity:1;stroke-width:6}100%{stroke-opacity:0;stroke-width:3}}

#solitaire-panel .solitaire-dialog{width:min(680px,calc(100% - 24px));max-width:none;max-height:calc(100dvh - 32px);padding:0;border:1px solid #cfb179;border-radius:12px;background:#101e31;color:#f8fdfe;box-shadow:0 18px 60px #0009;overflow:hidden}
#solitaire-panel .solitaire-dialog[open]{display:flex;flex-direction:column}
#solitaire-panel .solitaire-dialog::backdrop{background:#010b15cc}
#solitaire-panel .solitaire-dialog-body{min-height:0;overflow:auto;padding:20px;scrollbar-color:#b3956a #101e31}
#solitaire-panel .solitaire-dialog .solitaire-reading{padding:0;border:0;gap:20px}
#solitaire-panel .solitaire-dialog .solitaire-reading-image{max-width:220px;max-height:220px;width:auto;max-inline-size:100%;object-fit:contain}
#solitaire-panel .solitaire-dialog .solitaire-reading-title{font-size:30px;line-height:1.1}
#solitaire-panel .solitaire-reading-section{font-size:17px;line-height:1.4;margin:24px 0 8px;color:#ecc88a}
#solitaire-panel .solitaire-dialog-actions{display:flex;flex-wrap:wrap;flex-shrink:0;gap:8px;padding:12px 20px;border-top:1px solid #b3956a66;background:#101e31}
#solitaire-panel .solitaire-dialog-actions button{flex:1 1 120px;min-height:44px;margin:0;white-space:normal;line-height:1.4}
#solitaire-panel .solitaire-dialog button:focus-visible{outline:3px solid #f0ce8d;outline-offset:2px}
#solitaire-panel .solitaire-dialog ::selection{color:#010b15;background:#ecc88a}
@media(prefers-reduced-motion:reduce){#solitaire-panel .solitaire-rotor{transition:none}#solitaire-panel .solitaire-discovery-contour{animation:none;stroke-opacity:1}}

@media(max-width:600px){
  #solitaire-panel .solitaire-board[data-solitaire-deck]:not([data-love-deck]){max-width:none;width:100%;margin-inline:0}
  #solitaire-panel .solitaire-match-help{max-width:none;margin-inline:0;padding:12px}
  #solitaire-panel .solitaire-deck-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:359px){
  #solitaire-panel .solitaire-match-help .solitaire-love-hint-pair{grid-template-columns:72px minmax(0,1fr);gap:12px}
  #solitaire-panel .solitaire-match-help .solitaire-love-hint-image{width:72px;height:72px}
  #solitaire-panel .solitaire-hint-fragments{gap:12px}
}
