/* V21: premium optical gallery, chromatic discipline by theme. */
.morph-visual,
.morph-visual[data-accent="iris"],
.morph-visual[data-accent="champagne"],
.morph-visual[data-accent="polar"] {
  background:
    radial-gradient(ellipse at 50% 53%,rgba(43,118,205,.28),transparent 58%),
    linear-gradient(145deg,#081426 0%,#07101d 64%,#0a1729 100%);
  border-color:rgba(151,202,252,.31);
  box-shadow:inset 0 1px 0 rgba(222,243,255,.065),0 18px 46px rgba(2,9,20,.17);
}
.morph-visual::after {
  content:"";position:absolute;inset:7px;z-index:1;pointer-events:none;
  border-radius:13px;border:1px solid rgba(170,210,255,.055);
}
.morph-visual .morph-grain {opacity:.15}
.morph-visual .morph-index {color:rgba(202,225,248,.67)}
html[data-theme="ivory"] .morph-visual,
html[data-theme="ivory"] .morph-visual[data-accent="iris"],
html[data-theme="ivory"] .morph-visual[data-accent="champagne"],
html[data-theme="ivory"] .morph-visual[data-accent="polar"] {
  background:
    radial-gradient(ellipse at 50% 49%,rgba(213,176,110,.32),transparent 60%),
    linear-gradient(145deg,#f5f0e7,#e7dcc9 62%,#f0e6d6);
  border-color:rgba(167,126,75,.35);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 18px 40px rgba(104,79,41,.11);
}
html[data-theme="ivory"] .morph-visual::after {border-color:rgba(132,93,47,.12)}
html[data-theme="ivory"] .morph-index,
html[data-theme="ivory"] .morph-dash {color:#94734d}
html[data-theme="ivory"] .morph-footer {color:#5c452c}
html[data-theme="ivory"] .morph-visual:before {opacity:.07;filter:sepia(1)}
html[data-theme="ivory"] .morph-grain {opacity:.08}
.morph-fallback .fallback-ring{border-width:3px}
html[data-theme="navy"] .morph-fallback .fallback-core {background:radial-gradient(circle at 27% 24%,#f2fbff,#7cc8fe 24%,#20629c 58%,#071b38)}
html[data-theme="ivory"] .morph-fallback .fallback-core {background:radial-gradient(circle at 27% 24%,#fff8e6,#efcd8f 23%,#ac7734 60%,#574125)}
html[data-theme="ivory"] .morph-fallback .fallback-ring{border-color:#b88b4d}
@media (prefers-reduced-motion:reduce),(forced-colors:active){
  .morph-visual::after {display:none}
}
