/* The image is a single full-viewport scene, independent of the content columns. */
:root{--scene-veil:21,17,36;--scene-card:25,21,42}
:root[data-theme=light]{--scene-veil:245,240,248;--scene-card:255,250,255}
body{background:var(--bg)}
.scene{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;background:var(--bg)}
.scene-image{position:absolute;left:-65%;top:0;width:165%;max-width:none;height:100%;object-fit:cover;object-position:50% 53%;transform:none;border:0;border-radius:0;opacity:1;-webkit-mask-image:none;mask-image:none}
.scene-wash{position:absolute;inset:0;background:linear-gradient(90deg,rgba(var(--scene-veil),.04) 0%,rgba(var(--scene-veil),.12) 12%,rgba(var(--scene-veil),.32) 23%,rgba(var(--scene-veil),.58) 42%,rgba(var(--scene-veil),.74) 72%,rgba(var(--scene-veil),.84) 100%),linear-gradient(180deg,rgba(var(--scene-veil),.24),transparent 30%,rgba(var(--scene-veil),.16) 65%,rgba(var(--scene-veil),.72))}
.shell{position:relative;z-index:1;isolation:auto}
.shell::before,.character-panel::before,.character-panel::after{display:none}
.character-panel{background:transparent;border:0;border-radius:0;box-shadow:none;overflow:visible;isolation:auto}
.character-origin,.character-caption{color:#fff5ff;text-shadow:0 2px 14px #130d32a6}
.character-origin span,.character-kicker,.character-caption p,.character-caption a{color:#f1e2f4}
.character-rule{color:#f1e2f4}
.feather-corner{opacity:.32}
.topbar{border-bottom-color:rgba(var(--blend-line),.25);background:transparent}
.section-heading h2,.section-heading .text-button{text-shadow:0 1px 6px rgba(var(--scene-veil),.9)}
:root[data-theme=light] .section-heading h2,:root[data-theme=light] .section-heading .text-button{text-shadow:0 1px 6px rgba(255,250,255,.9)}
.summary,.node{background:linear-gradient(110deg,rgba(var(--scene-card),.76),rgba(var(--scene-card),.84));border-color:rgba(215,190,234,.19);box-shadow:0 6px 22px #0806140b}
.summary::before{opacity:.24}
.node::before{opacity:.20}
.search,.filters,.sort select,.icon-button{background:rgba(var(--scene-card),.72)}
.status-pill{background:rgba(var(--scene-card),.60)}
.node-facts,.node-network{border-color:rgba(var(--blend-line),.45)}
.legend,footer{color:var(--text);text-shadow:0 1px 5px rgba(var(--scene-veil),.65)}
:root[data-theme=light] body{background:var(--bg)}
:root[data-theme=light] .scene-wash{background:linear-gradient(90deg,rgba(var(--scene-veil),.02),rgba(var(--scene-veil),.12) 18%,rgba(var(--scene-veil),.52) 43%,rgba(var(--scene-veil),.73) 72%,rgba(var(--scene-veil),.86) 100%),linear-gradient(180deg,rgba(var(--scene-veil),.13),transparent 35%,rgba(var(--scene-veil),.10) 68%,rgba(var(--scene-veil),.62))}
:root[data-theme=light] .summary,:root[data-theme=light] .node{background:linear-gradient(110deg,rgba(255,250,255,.68),rgba(255,250,255,.85));border-color:rgba(150,113,171,.22)}
:root[data-theme=light] .character-origin,:root[data-theme=light] .character-caption{text-shadow:0 2px 10px #281738d9}
@media(max-width:760px){
  .scene-image{left:0;top:0;width:100%;height:100%;object-position:48% 44%;transform:none}
  .scene-wash{background:linear-gradient(180deg,rgba(var(--scene-veil),.18),rgba(var(--scene-veil),.42) 18%,rgba(var(--scene-veil),.65) 50%,rgba(var(--scene-veil),.84) 100%),linear-gradient(90deg,rgba(var(--scene-veil),.30),transparent 70%)}
  .character-panel{overflow:visible;background:transparent;border-radius:0}
  .character-origin,.character-caption{color:#fff5ff;text-shadow:0 1px 7px #201132c9}
  .character-origin span,.character-kicker,.character-caption a{color:#f1e2f4}
  .summary,.node{background:rgba(var(--scene-card),.77)}
  :root[data-theme=light] .scene-wash{background:linear-gradient(180deg,rgba(var(--scene-veil),.12),rgba(var(--scene-veil),.60) 18%,rgba(var(--scene-veil),.78) 55%,rgba(var(--scene-veil),.88) 100%)}
  :root[data-theme=light] .character-origin,:root[data-theme=light] .character-caption{color:var(--text);text-shadow:0 1px 8px #fff9ffb0}
  :root[data-theme=light] .character-origin span,:root[data-theme=light] .character-kicker,:root[data-theme=light] .character-caption a{color:var(--text)}
}
