/* Visual layer only: partners do not alter records or impose categories. */
body{background-color:#f5f3e9;background-image:radial-gradient(#dce2d1 .8px,transparent .8px)}
.character-room{background:#fffcf5;border-color:#d9dec9;padding-top:15px;box-shadow:0 5px 0 #e0e4d1,0 12px 30px #6d7b4808}
.partner-world{padding:5px 10px 12px;border-bottom:1px dashed #dcdcc5;background:radial-gradient(ellipse at 50% 45%,#fff4d6aa,transparent 70%);border-radius:15px}
.world-caption{text-align:center;font-size:14px;letter-spacing:.5px;color:#9c8762;margin:4px 0 12px}
.cast{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:end;gap:8px;max-width:930px;margin:auto}
.partner{--tone:#e9efdb;--ink:#617743;min-width:0;margin:0;position:relative;text-align:center;padding-top:14px}
.cast-art{width:100px;height:200px;margin:0 auto;background-image:url('assets/union-cast.png');background-size:500% 100%;background-repeat:no-repeat;mix-blend-mode:multiply}
.cast-art{mask-image:linear-gradient(to right,transparent,#000 7%,#000 93%,transparent);-webkit-mask-image:linear-gradient(to right,transparent,#000 7%,#000 93%,transparent)}
.growth .cast-art{background-position:0% 0}.health{--tone:#e7f0f7;--ink:#557f9d}.health .cast-art{background-position:25% 0}.ebom .cast-art{background-position:50% 0;width:112px;height:224px}.career{--tone:#eeedf7;--ink:#6b6a8f}.career .cast-art{background-position:75% 0}.family{--tone:#fbecda;--ink:#a17a52}.family .cast-art{background-position:100% 0}
.partner figcaption{position:relative;padding-top:7px;min-height:72px}.partner figcaption:before{content:"";position:absolute;top:-5px;height:6px;border-radius:50%;width:72px;left:50%;transform:translateX(-50%);background:var(--tone)}
.character-room .partner h2{display:inline-block;margin:0;padding:3px 11px;border-radius:10px;background:var(--tone);font-size:14px;line-height:1.5;color:var(--ink);font-weight:700;white-space:nowrap}
.partner figcaption p{font-size:12px;color:#8c8c78;margin:7px auto 0;max-width:156px;line-height:1.6;word-break:keep-all}
.ebom-label{position:absolute;top:0;left:50%;transform:translateX(-50%);font-size:12px;color:#8b7544;letter-spacing:2px}
.ebom h1{font-size:23px;margin:0;line-height:1.3;color:#5e6647;letter-spacing:1px}.partner .shared-time{font-size:11px;color:#90866d;line-height:1.5}.shared-time strong{display:block;font-size:14px;color:#73694f;font-weight:600}.world-footnote{text-align:center;font-size:12px;color:#a39c85;margin:5px 0 2px}
.character-room>.section-heading{margin-top:17px}.character-room .cards{gap:12px}.character-room .card{min-height:156px}.character-room .slot-stage{height:48px;border-bottom:0;background:var(--slot)}.slot-stage:after{display:none}.role-emblem{font-size:19px;line-height:32px;width:33px;height:33px;background:#fffdfa;border-radius:11px;color:#6f7f5f;font-weight:700;margin-top:5px}.character-room .slot-info{padding-top:8px}.character-room .card-index{font-size:10px}.character-room .vacant-slot{min-height:156px;gap:4px;padding:12px}.empty-slot-mark{font-size:26px;font-weight:400;color:#bfc9b0;line-height:1.3}.vacant-slot strong{font-size:13px}.vacant-slot p{font-size:12px}.character-room .goal-preview{font-size:12px}
@media(max-width:850px){.partner-world{padding-left:0;padding-right:0}.cast{gap:3px}.cast-art{width:78px;height:156px}.ebom .cast-art{width:86px;height:172px}.character-room .partner h2{font-size:12px;padding:3px 8px}.partner figcaption p{font-size:11px}.partner figcaption{min-height:80px}.ebom h1{font-size:21px}.world-caption{font-size:13px}.world-footnote{margin-top:0}}
@media(max-width:520px){.cast{grid-template-columns:repeat(4,minmax(0,1fr));column-gap:3px;row-gap:7px}.ebom{grid-row:1;grid-column:1/-1;display:grid;grid-template-columns:80px auto;align-items:center;justify-content:center;gap:9px;padding-top:5px}.ebom .cast-art{width:66px;height:132px;margin:0}.ebom-label{position:static;transform:none;grid-column:2;grid-row:1;text-align:left;align-self:start;padding-top:10px}.ebom figcaption{grid-column:2;grid-row:1;padding-top:25px;text-align:left;min-height:0}.ebom .cast-art{grid-column:1;grid-row:1}.ebom figcaption:before{display:none}.ebom .shared-time{margin-left:0}.partner:not(.ebom){padding-top:0}.cast-art{width:60px;height:120px}.partner figcaption p{font-size:10px;max-width:90px}.character-room .partner h2{font-size:11px;padding:3px 5px}.partner figcaption{min-height:78px}.world-caption{font-size:12px;margin-bottom:2px}.world-footnote{font-size:11px}.character-room .card,.character-room .vacant-slot{min-height:150px}}
