/* Solaria's restored constellation-style relationship diagram */
#bonds{background:radial-gradient(ellipse 74% 55% at 54% 45%,rgba(75,73,125,.16),transparent 75%),#090F1B}
#bonds .wrap{max-width:1330px}
#bonds .bond-intro-line{margin-bottom:13px}
#bonds .bond-region-tabs{display:flex;gap:8px;overflow-x:auto;scrollbar-width:thin;margin:0 0 18px;padding:3px 1px 12px}
#bonds .arc-region-tab{flex:none;position:relative;min-height:45px;padding:10px 18px;background:rgba(17,24,38,.75);border:1px solid rgba(193,178,164,.19);color:#C6C5CE;font-size:14px;font-weight:700;letter-spacing:.02em;cursor:pointer}
#bonds .arc-region-tab:hover{border-color:rgba(220,195,154,.7);color:#F5E6D0}
#bonds .arc-region-tab.active{background:linear-gradient(180deg,rgba(212,184,135,.14),rgba(38,35,52,.5));border-color:#D6BA86;color:#F3DCB7}
#bonds .arc-region-tab.active:after{content:"";position:absolute;bottom:-1px;left:14px;right:14px;height:2px;background:#E4C88E}
#bonds .arcana-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(315px,365px);gap:15px;align-items:start}
#bonds .arcana-board{--arc-aura:#D9B86C;min-width:0;overflow:hidden;border:1px solid rgba(214,185,142,.28);background:#0C1422;box-shadow:inset 0 0 70px rgba(64,54,103,.08)}
#bonds .arcana-topline{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:18px 20px;border-bottom:1px solid rgba(218,190,149,.23);background:linear-gradient(94deg,rgba(37,38,64,.75),rgba(16,23,37,.9))}
#bonds .arcana-topline small{display:block;font:600 10px var(--lat);letter-spacing:.14em;color:#C2B39C;margin-bottom:7px}
#bonds .arcana-topline h3{margin:0;color:#F2E3CB;font:700 21px/1.35 var(--disp)}
#bonds .arcana-tools{display:flex;gap:5px;align-items:center}
#bonds .arcana-tools button{min-width:35px;height:35px;padding:0 9px;border:1px solid rgba(213,183,144,.31);background:rgba(10,14,24,.42);color:#E7D3B5;font-size:18px;cursor:pointer}
#bonds #bondShowAll{font-size:12px;font-weight:750;white-space:nowrap;padding:0 12px}
#bonds .arcana-tools button:hover{background:rgba(216,185,144,.16)}
#bonds .arcana-scroll{overflow-x:auto;overflow-y:hidden;background:radial-gradient(ellipse 58% 56% at 50% 48%,rgba(58,59,98,.35),transparent 78%),radial-gradient(ellipse 74% 88% at 45% 45%,#131D31,#09111F 90%);scrollbar-width:thin;scrollbar-color:rgba(213,182,134,.5) #101A29;-webkit-overflow-scrolling:touch}
#bonds #bsvg{display:block;width:100%;min-width:785px;height:auto}
#bonds .arc-starfield circle.star-dim{fill:#D7CAD1;opacity:.21}
#bonds .arc-starfield circle.star-bright{fill:#F1DBAA;opacity:.65}
#bonds .arc-geometry{opacity:.6}
#bonds .arc-geometry ellipse,#bonds .arc-geometry circle,#bonds .arc-geometry line{fill:none;stroke:var(--arc-aura);stroke-width:1}
#bonds .arc-geometry .orbit-main{opacity:.31;stroke-dasharray:2 8}
#bonds .arc-geometry .orbit-inner{opacity:.15}
#bonds .arc-geometry .orbit-dashed{stroke-dasharray:3 13;opacity:.3}
#bonds .arc-geometry .orbit-axis{opacity:.15;stroke-dasharray:2 12}
#bonds .arc-thread{fill:none;stroke-width:2;stroke-linecap:round;opacity:.28;transition:opacity .28s,stroke-width .28s}
#bonds .arc-thread.allied{stroke:#DDBB81}
#bonds .arc-thread.hostile{stroke:#D48686}
#bonds .arc-thread.complex{stroke:#AAB5DD;stroke-dasharray:6 8}
#bonds .arc-thread.muted{opacity:.07}
#bonds .arc-thread.selected{opacity:.95;stroke-width:3}
#bonds .arc-person{cursor:pointer;outline:0;transition:opacity .2s}
#bonds .arc-person.is-dim{opacity:.33}
#bonds .arc-glow{fill:none;stroke:var(--arc-aura);stroke-width:1;stroke-dasharray:3 8;opacity:.28}
#bonds .arc-outer-ring{fill:none;stroke:var(--arc-aura);stroke-width:1.3;opacity:.8}
#bonds .arc-portrait-back{fill:#1D2940}
#bonds .arc-rim{fill:none;stroke:var(--arc-aura);stroke-width:2.6}
#bonds .arc-person:hover .arc-rim,#bonds .arc-person:focus-visible .arc-rim,#bonds .arc-person.is-selected .arc-rim{stroke-width:5}
#bonds .arc-person.is-selected .arc-glow{stroke-width:2;stroke-dasharray:none;opacity:.9}
#bonds .arc-person:focus-visible .arc-glow{opacity:1;stroke-width:3;stroke-dasharray:none}
#bonds .arc-person-name,#bonds .arc-person-role{paint-order:stroke;stroke:#08101C;stroke-width:4;stroke-linejoin:round;fill:#F0E4D3;letter-spacing:.01em}
#bonds .arc-person-name{font:750 16px var(--disp)}
#bonds .arc-person-role{font:600 11px var(--ui);fill:#BCCAD9}
#bonds .arc-locked-symbol{font:40px var(--disp);fill:#A697C2;opacity:.7}
#bonds .arcana-bottomline{padding:13px 18px;display:flex;justify-content:space-between;gap:15px;border-top:1px solid rgba(214,186,145,.18);font-size:12px;color:#B9C4D3}
#bonds .arcana-bottomline span:first-child{color:#E1C89D}
#bonds .arcana-legend{display:flex;justify-content:center;gap:22px;flex-wrap:wrap;padding:15px;border-top:1px solid rgba(214,186,145,.13);background:#0D1726}
#bonds .arcana-legend span{font-size:12px;color:#D2D1D2;display:flex;align-items:center;gap:8px}
#bonds .arcana-legend span:before{content:"";width:23px;height:2px;background:#DDBB81}
#bonds .arcana-legend .hostile:before{background:#D48686}
#bonds .arcana-legend .complex:before{background:#AAB5DD}
#bonds .arcana-dossier{min-height:680px;background:linear-gradient(164deg,#171E32,#0E1725 63%);border:1px solid rgba(216,185,138,.28);overflow:hidden}
#bonds .arc-dossier-stamp{padding:18px 20px;font:600 10px var(--lat);letter-spacing:.12em;color:#CCB48D;border-bottom:1px solid rgba(214,185,139,.21);background:rgba(7,13,24,.3)}
#bonds .arc-dossier-empty,#bonds .arc-dossier-sealed{text-align:center;padding:70px 22px}
#bonds .arc-dossier-empty>span,#bonds .arc-dossier-sealed>span{display:block;font-size:52px;color:#9889AE;opacity:.7}
#bonds .arc-dossier-empty h3,#bonds .arc-dossier-sealed h3{font:700 23px var(--disp);color:#EEDDC6;margin:12px 0}
#bonds .arc-dossier-empty p,#bonds .arc-dossier-sealed p{font-size:15px;line-height:1.9;color:#CBD0D8}
#bonds .arc-dossier-sealed button{border:1px solid rgba(213,180,142,.5);background:rgba(151,113,125,.09);padding:13px 16px;margin-top:12px;color:#EBD0AA;font-size:13px;font-weight:750}
#bonds .arc-dossier-person{display:flex;align-items:start;gap:14px;padding:23px 19px}
#bonds .arc-dossier-photo{flex:none;border:1px solid rgba(222,193,145,.43);padding:0;background:#101829;cursor:zoom-in}
#bonds .arc-dossier-photo img{width:83px;height:115px;object-fit:cover;object-position:center 19%}
#bonds .arc-dossier-person>div{min-width:0;flex:1}
#bonds .arc-dossier-person h3{font:700 22px/1.35 var(--disp);color:#F0E2D0;margin:0}
#bonds .arc-dossier-person small{display:block;margin:7px 0;color:#DFC39A;font-size:12px;line-height:1.6}
#bonds .arc-dossier-person p{color:#C6CCD5;font-size:13px;line-height:1.8;margin:10px 0}
#bonds .arc-profile-link{color:#E8C795;font-size:12px;border-bottom:1px solid rgba(218,181,126,.5);padding:6px 0}
#bonds .arc-relation-summary{margin:0 19px 17px;border-top:1px solid rgba(215,182,132,.18);padding-top:15px;font-size:12px;color:#BFC7D1}
#bonds .arc-relation-summary span{margin:0 7px;color:#D4B688}
#bonds .arc-dossier-caption{display:flex;align-items:center;justify-content:space-between;margin:22px 18px 12px;color:#E4CEAA;font-size:14px;font-weight:750}
#bonds .arc-dossier-caption span{font:600 11px var(--lat);color:#A8B9C7}
#bonds .arc-connection-list{display:grid;gap:7px;padding:0 13px}
#bonds .arc-connection{display:flex;align-items:start;gap:10px;padding:12px 10px;background:rgba(8,14,24,.45);border:1px solid rgba(215,184,135,.15)}
#bonds .arc-related-image{flex:none;background:#131E2E;border:1px solid rgba(220,185,135,.24);padding:0;cursor:zoom-in}
#bonds .arc-related-image img{width:44px;height:58px;object-fit:cover;object-position:center 18%}
#bonds .arc-connection-copy{min-width:0;flex:1}
#bonds .arc-related-name{padding:0;text-align:left;color:#EEDFC7;font-size:13px;font-weight:750}
#bonds .arc-related-name span{color:#D6B88D}
#bonds .arc-connection-copy small{display:block;color:#B6C4E0;font-size:11px;margin:4px 0}
#bonds .arc-connection-copy small.hostile{color:#DBA6A2}
#bonds .arc-connection-copy small.allied{color:#DCC594}
#bonds .arc-connection-copy p{color:#C3CCD7;font-size:12px;line-height:1.7;margin:5px 0 0}
#bonds .arc-doc{flex:none;padding:5px 2px;color:#DCC39B;font-size:11px;align-self:center;border-bottom:1px solid rgba(214,185,142,.44)}
#bonds .arc-no-links{padding:0 20px;color:#C8CFD6;font-size:14px;line-height:1.8}
#bonds .arcana-disclaimer{color:#AAB6C6;font-size:12px;line-height:1.8;margin:18px 0 0}
.arc-gallery{margin:auto;padding:0;max-width:min(820px,calc(100vw - 24px));max-height:calc(100dvh - 24px);background:#101825;color:#F1E4D5;border:1px solid rgba(216,190,148,.55)}
.arc-gallery::backdrop{background:rgba(3,6,16,.91)}
.arc-gallery-wrap{width:min(690px,calc(100vw - 26px))}
.arc-gallery-heading,.arc-gallery-foot{display:flex;align-items:center;justify-content:space-between;gap:15px;background:#171F30;padding:14px 18px}
.arc-gallery-heading b{font:700 18px var(--disp)}
.arc-gallery-heading button,.arc-gallery-foot button{border-bottom:1px solid rgba(221,187,138,.55);color:#E3C899;font-size:12px;padding:7px 0}
.arc-gallery-wrap img{width:100%;max-height:calc(100dvh - 170px);object-fit:contain}
.arc-gallery-foot span{font-size:12px;color:#C3C9D4}
@media(max-width:980px){#bonds .arcana-layout{grid-template-columns:1fr}#bonds .arcana-dossier{min-height:0}}
@media(max-width:650px){#bonds .arcana-topline{padding:13px 12px}#bonds .arcana-topline h3{font-size:19px}#bonds .arcana-topline small{font-size:9px}#bonds .arcana-tools button{min-width:31px;height:32px;padding:0 6px}#bonds #bondShowAll{padding:0 8px}#bonds #bsvg{min-width:820px}#bonds .arcana-bottomline{font-size:11px;padding:11px}#bonds .arcana-dossier{border-top:2px solid rgba(214,186,141,.3)}#bonds .arc-connection-list{padding:0 10px}#bonds .arc-dossier-person{padding:18px 14px}}
@media(prefers-reduced-motion:reduce){#bonds .arc-thread,#bonds .arc-person{transition:none}}

/* Empire-scale overview & cross-region bridges */
#bonds .arcana-bridges{border-top:1px solid rgba(206,178,137,.24);padding:17px 18px;background:linear-gradient(135deg,#121D31,#13192B)}
#bonds .arcana-bridges[hidden]{display:none!important}
#bonds .arc-bridges-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#E9D0A5;font-size:14px;font-weight:750;margin:0 0 13px}
#bonds .arc-bridges-heading small{font:600 10px var(--lat);color:#AEB9CD;letter-spacing:.08em}
#bonds .arc-bridge-list{display:flex;gap:10px;overflow-x:auto;padding:3px 0 8px;scrollbar-width:thin}
#bonds .arc-bridge{flex:0 0 192px;max-width:80%;display:flex;gap:10px;align-items:center;text-align:left;padding:8px;border:1px solid rgba(218,185,137,.25);background:rgba(7,14,26,.75);color:#F2E5D6;cursor:pointer}
#bonds .arc-bridge:hover{border-color:#DCC292;background:#202B3D}
#bonds .arc-bridge img{flex:none;width:42px;height:52px;object-fit:cover;object-position:center 18%}
#bonds .arc-bridge span{display:block;min-width:0}
#bonds .arc-bridge b{display:block;font-size:13px;line-height:1.5}
#bonds .arc-bridge small{display:block;margin-top:4px;font-size:11px;line-height:1.5;color:#C8CDD8}
#bonds .arc-imperial-glyph .arc-glyph-mark{font:52px var(--disp);fill:rgba(219,189,142,.42)}
#bonds .arc-imperial-glyph .arc-glyph-word{font:600 14px var(--lat);fill:rgba(224,202,165,.54);letter-spacing:.22em}
#bonds .arc-region-tab.active{box-shadow:inset 0 0 0 1px rgba(240,213,168,.15)}
@media(max-width:650px){#bonds .arcana-bridges{padding:14px 12px}#bonds .arc-bridge{flex-basis:174px}}
