#view-companions{padding-bottom:25px}.companions-intro{text-align:center;padding:20px 0 14px}.companions-intro .eyebrow{display:block;font-size:9px;letter-spacing:4px;color:#a69163}.companions-intro .page-title{margin:8px 0;font-size:30px}.companions-intro>p:last-child{font-size:12px;color:#a6a58e}.companion-gate h2,.companion-invitation h2{font:500 20px 'Songti SC',Georgia,serif;color:#ead6a4}.companion-gate{padding:22px}.companion-invitation{position:relative;text-align:center;padding:22px 18px;background:radial-gradient(ellipse at 50% 0,#a77d2828,transparent 70%),#161c19;border:1px solid #d1b47366}.companion-emblem{font-size:40px;line-height:48px;color:#e7c783;text-shadow:0 0 20px #edc96c30}.companion-invitation h2{margin:8px 0}.companion-code,.companion-url{display:block;width:100%;min-width:0;text-align:center;border:1px solid #c4a45f55;border-radius:10px;padding:12px 8px;background:#0d1512;color:#f2d999;font:15px ui-monospace,monospace;letter-spacing:.5px;margin:9px 0;min-height:44px}.companion-url{font-size:10px;letter-spacing:0;color:#b7b6a2}.companion-invitation .two{gap:9px}.companion-invitation .btn-primary,.companion-invitation .btn-secondary{font-size:12px;min-height:45px;padding:10px 5px}.companion-status{font-size:11px;color:#e9c987;min-height:15px;margin:7px 0}.companion-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid #a98f5b44;border-radius:15px;background:#151c18;margin:16px 0;padding:15px 4px;text-align:center}.companion-stats>div+div{border-left:1px solid #9e885f33}.companion-stats strong{font:26px Georgia,serif;color:#e8cd8e;display:block}.companion-stats small{font-size:10px;color:#a9ab98;display:block;margin-top:5px}.companion-quest-link{display:grid;grid-template-columns:40px 1fr 15px;align-items:center;gap:3px 9px;border:1px solid #d4b66d66;border-radius:16px;padding:18px 14px;margin:17px 0;background:linear-gradient(120deg,#51402066,#13201b);color:#eed9a5;text-decoration:none}.quest-sigil{grid-row:1/3;font-size:31px;text-align:center}.companion-quest-link>span:nth-child(2){font:500 18px 'Songti SC',Georgia,serif}.companion-quest-link small{grid-column:2;font-size:10px;color:#aaa78d}.companion-quest-link b{grid-column:3;grid-row:1/3;font-size:24px;font-weight:400}.companion-rules{border-bottom:1px solid #8e805944;padding:12px 2px;margin-bottom:20px}.companion-rules summary{font-size:12px;color:#c8b382;cursor:pointer}.roster-heading{display:flex;align-items:center;justify-content:space-between;gap:7px;margin-bottom:13px}.roster-heading h2{font:500 20px 'Songti SC',Georgia,serif;color:#e7d4a6}.roster-heading span{font-size:9px;color:#8f9d8a}.companion-row{display:grid;grid-template-columns:26px minmax(0,1fr) auto;align-items:center;gap:8px;padding:15px 10px;border:1px solid #9b915033;border-radius:12px;background:#171f1a;margin-bottom:8px}.companion-avatar{font-size:20px;color:#cbb176}.companion-row strong{font-size:12px;font-weight:500;overflow-wrap:anywhere}.companion-row small{display:block;font-size:9px;color:#8f9e8c;margin-top:4px}.companion-achievement{text-align:right;font-size:10px;color:#e0c58f}.companion-empty{text-align:center;padding:28px 18px;border:1px dashed #aa965b55;border-radius:14px;color:#a3ab98;font-size:12px;line-height:1.9}.companion-preview{font-size:10px;line-height:1.8;color:#c1b37b;text-align:center;padding:10px;border:1px dashed #c1a05a55;border-radius:10px}.tabs{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr));gap:0}.tabs .tab{min-width:0;width:100%;padding-left:0;padding-right:0;max-width:none}.tabs .tab span{font-size:11px}@media(max-width:350px){.companion-row{grid-template-columns:20px minmax(0,1fr);gap:6px}.companion-achievement{grid-column:2;text-align:left;display:flex;gap:10px}.companion-achievement small{margin:0}.companion-code{font-size:13px;letter-spacing:0}.tabs .tab span{font-size:10px}}
.roster-heading{flex-wrap:wrap}.companion-refresh{min-height:36px;padding:6px 10px;border:1px solid #ad965b55;background:#1a211b;color:#c9b682;border-radius:9px;font-size:10px}
/* The fellowship opens as a game scene; the quest portal is the primary action. */
#view-companions{gap:12px;padding-top:0}
.companions-intro{position:relative;isolation:isolate;min-height:230px;margin:0 -18px;padding:32px 22px 24px;text-align:left;overflow:hidden;background:linear-gradient(90deg,#0b1110e8,#0b111040 80%),url('../assets/guardian/08-temple-background.webp') center 42%/cover}
.companions-intro:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(transparent 65%,#101413)}
.companions-intro .eyebrow{position:relative;margin:0 0 10px;font-size:9px;letter-spacing:4px;color:#c9ac70}
.companions-intro .page-title{position:relative;text-align:left;font:600 35px/1.4 'Songti SC',Georgia,serif;letter-spacing:4px;margin:0 0 9px;max-width:65%;text-shadow:0 3px 16px #000}
.companions-intro .hero-motto{position:relative;max-width:55%;white-space:pre-line;color:#c9c2a9;font-size:12px;line-height:1.9;margin:0;letter-spacing:1px}
.companions-hero-art{position:absolute;inset:0;z-index:-1;pointer-events:none}
.companions-hero-guardian{position:absolute;right:-5px;bottom:-37px;width:205px;height:270px;object-fit:contain;filter:drop-shadow(0 8px 15px #0008)}
.companions-hero-ring{position:absolute;right:12px;top:30px;width:180px;height:180px;border:1px solid #e1bd6b77;border-radius:50%;box-shadow:inset 0 0 20px #e7ba5d22,0 0 20px #e7ba5d16}
.companion-preview{margin:0;padding:7px 10px;font-size:9px;line-height:1.6}
.companion-quest-link{position:relative;isolation:isolate;display:block;min-height:227px;margin:1px 0 5px;padding:22px 17px;border:1px solid #d8bd79aa;border-radius:18px;overflow:hidden;background:linear-gradient(90deg,#111e26f5,#111e2688 65%,#15263344),url('../assets/arena/bg-silver.webp') center/cover;box-shadow:inset 0 1px #f8dfa733,0 8px 26px #0003}
.companion-quest-link:after{content:'';position:absolute;inset:7px;border:1px solid #d9bb7933;border-radius:12px;pointer-events:none}
.quest-art{position:absolute;inset:0;z-index:-1;pointer-events:none}
.quest-guardian{position:absolute;width:175px;height:230px;right:-31px;bottom:-19px;object-fit:contain;filter:drop-shadow(0 7px 12px #000b)}
.quest-art-ring{position:absolute;width:140px;height:140px;right:-2px;top:27px;border:1px solid #b7dcea66;border-radius:50%;box-shadow:0 0 22px #95d9ee22}
.quest-body{position:relative;max-width:76%;display:grid;justify-items:start;gap:7px}
.quest-kicker{font:500 8px/1.4 ui-monospace,monospace;letter-spacing:3px;color:#bdab7c}
.quest-title{font:600 26px/1.4 'Songti SC',Georgia,serif;letter-spacing:3px;color:#f5dfad;text-shadow:0 3px 12px #000}
.companion-quest-link .quest-description{display:block;grid-column:auto;white-space:pre-line;font-size:10px;color:#b8c4be;line-height:1.7;letter-spacing:.4px}
.quest-platforms{display:flex;flex-wrap:wrap;gap:4px;margin:2px 0}
.quest-platforms span{font-size:8px;line-height:1.4;background:#152329cc;border:1px solid #afc7bb44;border-radius:5px;padding:3px 5px;color:#c8d1c4}
.quest-cta{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:9px 17px;border:1px solid #f4df9e;border-radius:9px;background:linear-gradient(135deg,#f1d99a,#b78e49);color:#231c0c;font-size:12px;font-weight:600;box-shadow:0 0 15px #d1b06922}
.companion-quest-link .quest-reward{display:block;grid-column:auto;font-size:9px;color:#cfb980;line-height:1.4}
.companion-quest-link:active .quest-cta{background:#fae4b0;transform:translateY(1px)}
.companion-invitation{padding:17px 15px}.companion-emblem{font-size:24px;line-height:30px}.companion-invitation .companion-status{margin:4px 0;min-height:10px}
@media(max-width:350px){.companions-intro{min-height:210px;padding:27px 20px 20px}.companions-intro .page-title{font-size:29px;letter-spacing:2px}.companions-hero-guardian{right:-24px;width:180px;height:245px}.companions-hero-ring{right:-6px;width:160px;height:160px}.quest-body{max-width:78%}.quest-title{font-size:24px;letter-spacing:1px}.quest-guardian{width:154px;right:-39px;opacity:.85}.quest-platforms span{font-size:7px;padding:3px 4px}.quest-cta{font-size:11px;padding:9px 13px}}
@media(max-width:350px){.companions-intro{margin-left:-12px;margin-right:-12px}}
/* Fellowship is a social gathering; its quest link is a compact commission ticket. */
.companion-quest-link{min-height:178px;padding:18px 15px;background:linear-gradient(115deg,#29302a,#152225);border-color:#b8a36b88;border-radius:12px;box-shadow:inset 0 1px #e2d3a31a,0 5px 15px #0002}
.companion-quest-link:after{inset:5px;border-radius:7px;border-style:dashed;border-color:#b8a36b2c}
.companion-quest-link .quest-body{max-width:71%;gap:6px}
.companion-quest-link .quest-title{font-size:22px;letter-spacing:2px}
.companion-quest-link .quest-description{max-width:175px;font-size:10px;line-height:1.6}
.companion-quest-link .quest-cta{min-height:38px;font-size:11px;padding:8px 12px;background:#cbb374;border-color:#e7d39a;box-shadow:none}
.quest-ticket-art{left:auto;right:0;width:105px;z-index:0;opacity:.85}
.quest-ticket-poster{position:absolute;right:15px;top:42px;width:60px;height:100px;display:grid;justify-items:center;align-content:space-between;border:1px solid #c5b57888;border-radius:5px;background:linear-gradient(150deg,#393a29,#111a17);box-shadow:0 5px 12px #0006;overflow:hidden}
.quest-ticket-poster:nth-child(1){transform:rotate(-16deg) translate(-12px,0)}
.quest-ticket-poster:nth-child(2){transform:rotate(2deg);background:linear-gradient(150deg,#364a54,#102027)}
.quest-ticket-poster:nth-child(3){transform:rotate(18deg) translate(12px,2px);background:linear-gradient(150deg,#5b452a,#211c12)}
.quest-ticket-poster img{height:82px;width:58px;object-fit:contain}.quest-ticket-poster small{font:8px Georgia,serif;color:#dec993;padding-bottom:3px}
@media(max-width:350px){.companion-quest-link{padding:15px 12px;min-height:178px}.companion-quest-link .quest-body{max-width:72%}.companion-quest-link .quest-title{font-size:21px}.quest-ticket-art{right:-14px;opacity:.65}.companion-quest-link .quest-description{max-width:150px}.companion-quest-link .quest-cta{font-size:10px;padding:8px 10px}}
/* A private three-branch placement map, distinct from the actual-invite roster. */
.companion-tree{margin:22px 0;background:radial-gradient(ellipse at 50% 22%,#8d724c18,transparent 70%),linear-gradient(145deg,#1b2023,#11161a);border-color:#c3a66a55;padding:18px 12px;overflow:hidden}.tree-heading{text-align:center}.tree-heading .eyebrow{font-size:8px;letter-spacing:2px;color:#a5926b}.tree-heading h2{font:24px 'Songti SC',Georgia,serif;letter-spacing:3px;color:#eddbac;margin:8px 0}.tree-heading p{font-size:10px;line-height:1.8;color:#a5aea6}.tree-summary{display:grid;grid-template-columns:repeat(3,1fr);padding:12px 0;margin:14px 0;border-top:1px solid #b29b5f33;border-bottom:1px solid #b29b5f33;text-align:center}.tree-summary div+div{border-left:1px solid #b29b5f22}.tree-summary b{display:block;color:#ead19a;font:22px Georgia}.tree-summary span{display:block;font-size:9px;color:#a4aa9c;margin-top:5px}.tree-legend{display:flex;justify-content:center;gap:12px;font-size:9px;margin:13px 0 20px;flex-wrap:wrap}.tree-legend .invited{color:#e8c783}.tree-legend .placed{color:#aac8e3}.tree-root{width:145px;margin:0 auto 24px!important;text-align:center;position:relative}.tree-root:after{content:'';position:absolute;height:24px;width:1px;background:#bca26c77;top:100%;left:50%}.tree-node{border:1px solid #ac985b66;border-radius:9px;padding:8px 4px;background:linear-gradient(135deg,#332d20,#1a1b19);min-width:0;text-align:center;color:#e0d2b3}.tree-node>strong{display:block;font-size:10px;line-height:1.6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-avatar{display:block;font-size:20px;line-height:26px;color:#dfc17b}.tree-node>small{display:block;font-size:8px;line-height:1.8;overflow-wrap:anywhere}.tree-source{color:#cfb77e}.tree-capacity{color:#a1a591}.tree-history{color:#a59a82;font-size:7px!important}.tree-spill{color:#c5b28b}.tree-placed{background:linear-gradient(135deg,#202e3c,#151c25);border-color:#7091aa77}.tree-placed .tree-avatar,.tree-placed .tree-source{color:#abcbe4}.tree-branch-btn{border:0;background:#0002;color:inherit;font-size:8px;padding:5px 2px;min-height:28px;margin-top:3px;width:100%;border-radius:4px}.tree-branches{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;border-top:1px solid #bca26c77}.tree-branch{min-width:0;padding-top:14px;position:relative}.tree-branch:before{content:'';position:absolute;top:0;left:50%;height:12px;width:1px;background:#bca26c77}.tree-position{display:block;text-align:center;font-size:8px;color:#a99773;margin-bottom:7px}.tree-leaves{display:grid;gap:8px;margin-top:13px;padding-top:4px;border-top:1px solid #8f875744}.tree-leaves .tree-node{position:relative;padding:6px 3px}.tree-leaves .tree-avatar{font-size:14px;line-height:18px}.tree-leaves .tree-node:before{content:'';height:8px;width:1px;background:#8f875744;position:absolute;bottom:100%;left:50%}.tree-empty-slot{padding:10px 3px;border:1px dashed #9b91633d;border-radius:7px;font-size:9px;color:#7e867b;text-align:center}.tree-empty-branch{min-height:85px;display:grid;place-items:center}.tree-explanation{font-size:10px;line-height:1.9;color:#b1b3a6;margin-top:16px}.tree-home{font-size:11px;color:#ddc58e;border:1px solid #ac985b55;padding:9px 12px;background:#24251e;border-radius:7px;min-height:38px;margin-bottom:14px}.companion-roster .roster-heading h2{font-size:18px}@media(max-width:350px){.companion-tree{padding:15px 8px}.tree-branches{gap:4px}.tree-node>strong{font-size:9px}.tree-node>small{font-size:7px}.tree-node{padding-inline:2px}.tree-legend{font-size:8px;gap:8px}}
