/* Approved Companion composition. Scoped to the hero; sticky tracker and other tabs keep their layout. */
.companion section{padding:0;margin:0;border:0;border-radius:0;background:none;box-shadow:none;min-width:0}
.companion section.companion-rank{padding-top:6px}
.companion section.companion-path{padding:18px 0;border-top:1px solid var(--companion-line);border-bottom:1px solid var(--companion-line);margin-top:25px}
.companion .companion-pyramid{align-items:stretch;justify-items:stretch}
.hero.companion{--companion-accent:color-mix(in srgb,var(--rank) 60%,#eee1ff);--companion-muted:#b3abbe;--companion-line:#b7a3cc30;padding:26px 20px 20px;background:radial-gradient(ellipse at 50% 20%,#3c274950,transparent 49%),#141118;border:1px solid #665173;border-radius:26px;text-align:center;container:companion / inline-size;overflow:visible}
.companion .wkbuff{position:static;margin:0 0 18px auto;width:max-content;background:none;border:0;padding:0;font-size:12px;min-height:20px}.companion .wkbuff.locked{color:#fca5a5}
.companion-rank{padding-top:6px}.companion-seal{width:340px;max-width:100%;aspect-ratio:1;position:relative;isolation:isolate;display:grid;place-items:center;margin:auto;border:1px solid #c4a5e024;border-radius:50%}
.companion #bar.companion-seal-track{position:absolute;inset:12px;width:auto;height:auto;max-width:none;border:0;border-radius:50%;padding:0;margin:0;background:conic-gradient(from 230deg,var(--companion-accent) var(--companion-fill,0deg),#56425e50 0 260deg,transparent 0);mask:radial-gradient(farthest-side,transparent calc(100% - 5px),#000 0);overflow:visible;pointer-events:none;clip-path:none}
.companion #bar>span{display:none}.companion-seal-inner{position:absolute;inset:27px;border:1px solid #d0b7e126;border-radius:50%;pointer-events:none}.companion-seal-inner:after{content:'';position:absolute;inset:12px;border:1px dashed #c4a5e024;border-radius:50%}
.companion .companion-seal .badge{width:73%;height:73%;margin:0;z-index:1;filter:none}.companion .badge>svg{width:100%;height:100%;display:block}.companion .badge:focus-visible{outline:2px solid var(--companion-accent);outline-offset:7px;border-radius:50%}
.hero.companion .badge::before,.hero.companion .badge::after{margin:0;translate:-50% -50%;height:auto;aspect-ratio:1}
.hero.companion .badge::before{width:154%}
.hero.companion .badge::after{width:138%}
.companion-seal-key,.companion-seal-percent{position:absolute;left:50%;transform:translateX(-50%);white-space:nowrap;background:#19131f;color:var(--companion-accent);padding:0 10px;z-index:2;letter-spacing:.15em}.companion-seal-key{top:0;font:18px Georgia,serif}.companion-seal-percent{bottom:7px;font-size:10px}
.companion-titles{display:flex;flex-direction:column}.companion .companion-titles .rank-title{font-size:14px;letter-spacing:.06em;font-weight:400;margin:6px 0 0;color:var(--companion-muted);text-transform:none;line-height:1.35}.companion .companion-titles .rank-name{order:-1;font-size:27px;font-weight:600;letter-spacing:.12em;line-height:1.5;color:var(--companion-accent);margin:22px 0 0;overflow-wrap:anywhere}
.companion.gms-current .rank-name{order:-1;font-size:18px;letter-spacing:.07em;margin-top:20px}.companion.gms-current .rank-title{font-size:12px;letter-spacing:.03em;text-transform:none;margin-top:7px}
.companion-xp{display:flex;justify-content:center;align-items:baseline;gap:12px;margin-top:14px}.companion-xp>span{font-size:12px;color:var(--companion-muted)}.companion .points{margin:0;line-height:1.3}.companion .points b{font-size:36px;font-weight:600;letter-spacing:-1px;transform-origin:center}
.companion #barLabel{font-size:12px;color:var(--companion-muted);line-height:1.7;margin:10px 0 0;overflow-wrap:anywhere}.companion #barLabel b{color:var(--companion-accent);font-weight:600}
.companion-profile{border:1px solid #8b6e9b38;border-radius:100px 100px 14px 14px;background:linear-gradient(180deg,#49305422,transparent 70%);padding:23px 18px 0;max-width:370px;margin:28px auto 0}
.companion-hunter-level{display:flex;align-items:center;justify-content:center;gap:32px}.companion .hero-character{flex:0 0 110px;width:110px;height:204px}.companion .hero-character img{width:110px;height:194px}.companion .hunter-energy{inset:-10% -32% -6%}.companion .hero-character:after{bottom:-4px;height:22px;width:130%}
.companion-level{flex-shrink:0;text-align:center}.companion #levelChip{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:122px;height:122px;aspect-ratio:1;border-radius:50%;background:#19131f;box-shadow:0 0 0 7px #c2a2e708;flex:none;top:auto;right:auto;bottom:auto;margin:0;gap:3px}
.companion #levelChip svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);pointer-events:none}.companion #levelChip .lr-track{stroke:#4c3b5b;stroke-width:1.4}.companion #levelChip .lr-fill{stroke:var(--companion-accent);stroke-width:1.4}.companion #levelChip .lr-lbl{position:static;font-size:9px;letter-spacing:.18em;line-height:1.5;color:var(--companion-muted)}.companion #levelChip .lr-num{position:static;font-size:41px;line-height:1.15;font-weight:500;color:#eee6f2}.companion #levelChip .lr-progress{position:static;font-size:10px;line-height:1.5;height:auto;color:var(--companion-muted)}.companion #levelPercent:after{content:' complete'}.companion-level>p{font-size:10px;color:var(--companion-muted);margin:14px 0 0}
.companion-activity{display:flex;align-items:center;justify-content:center;gap:15px;border-top:1px solid var(--companion-line);margin-top:18px;padding:14px 0}.companion-calendar{min-width:44px;height:47px;padding:0 5px;border:1px solid #9974b35e;border-top:6px solid #67487c;border-radius:5px;display:grid;place-items:center;font-size:16px;font-weight:500;color:#e6d6f0}.companion-activity>span{text-align:left;font-size:13px;color:#eee6f2}.companion-activity small{display:block;font-size:10px;color:var(--companion-muted);margin-top:4px}
.companion-instruments{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:center;max-width:390px;margin:26px auto 0}.companion-streak{display:flex;flex-direction:column;align-items:center}.companion-streak-orbit{width:122px;height:122px;position:relative;display:grid;place-items:center}.companion-streak-orbit b{font-size:33px;line-height:1.2;font-weight:500}.companion-streak-orbit span{display:block;font-size:9px;letter-spacing:.08em;margin-top:5px;color:var(--companion-muted)}.companion-dots{position:absolute;inset:0;pointer-events:none}.companion-dots i{position:absolute;left:calc(50% - 2px);top:calc(50% - 2px);width:4px;height:4px;border-radius:50%;background:#4e3f5d;transform:rotate(calc(var(--n)*12deg)) translateY(-56px)}.companion-dots .on{background:#ddc0ff}.companion-streak>p{font-size:10px;color:var(--companion-muted);margin:8px 0 0;line-height:1.5}
.companion-dial{width:132px;height:68px;border:5px solid #594160;border-bottom:0;border-radius:140px 140px 0 0;margin:18px auto 27px;position:relative;background:repeating-conic-gradient(from -90deg at 50% 100%,transparent 0 17deg,#bb93ce45 17deg 18deg,transparent 18deg 20deg);background-clip:padding-box}.companion-needle{position:absolute;bottom:0;left:50%;height:53px;width:2px;background:#e1c4f3;transform-origin:bottom center}.companion-dial b{position:absolute;font-size:24px;font-weight:500;bottom:-14px;left:50%;transform:translateX(-50%);padding:0 9px;background:#141118;white-space:nowrap}.companion-momentum>p{font-size:12px;color:var(--companion-muted);margin:0}.companion-momentum small{display:block;font-size:9px;margin-top:5px;letter-spacing:.05em}.companion-locked .companion-dial b,.companion-locked small{color:#fca5a5}
.companion-path{display:flex;align-items:center;justify-content:center;gap:7px;padding:18px 0;border-top:1px solid var(--companion-line);border-bottom:1px solid var(--companion-line);margin-top:25px}.companion-path>div{display:flex;gap:5px;align-items:center;min-width:0}.companion-path .companion-art{width:28px;height:28px;flex-shrink:0}.companion-path .companion-path-current .companion-art{width:38px;height:38px}.companion-art>svg,.companion-art>img{width:100%;height:100%;display:block;object-fit:contain}.companion-path>div>span:not(.companion-art){font-size:8px;color:var(--companion-muted);text-align:left;min-width:0}.companion-path b{display:block;font-size:10px;color:#d8cbdc;font-weight:500;line-height:1.3}.companion-path-link{height:1px;background:repeating-linear-gradient(90deg,#b7a3cc55 0 4px,transparent 4px 9px);flex:1;min-width:5px;max-width:38px}.companion-path-link.complete{background:#c5a4eb80}.companion-path-end{max-width:68px}
.companion-explorer{margin-top:20px;border:1px solid #9e7bbd38;border-radius:14px;background:#1b1421;overflow:hidden}.companion-explorer summary{list-style:none;display:flex;gap:13px;align-items:center;cursor:pointer;padding:14px 15px;min-height:76px;text-align:left;font-size:14px;color:#eadcf2}.companion-explorer summary::-webkit-details-marker{display:none}.companion-explorer summary small{display:block;font-size:10px;color:var(--companion-muted);margin-top:4px}.companion-teaser{display:flex;align-items:center;flex-shrink:0}.companion-teaser img{width:28px;height:28px;object-fit:contain}.companion-teaser img+img{margin-left:-7px}.companion-teaser img:nth-child(2){width:35px;height:35px;z-index:1}.companion-chevron{font-size:27px;margin-left:auto}.companion-explorer[open] .companion-chevron{transform:rotate(90deg)}.companion-explorer[open] summary{border-bottom:1px solid var(--companion-line)}.companion-explorer-body{padding:23px 8px 0}.companion-guide{font-size:10px;color:#bfb2cb;line-height:1.6;margin:0 0 20px}.companion-guide>span{display:block;font-size:9px;letter-spacing:.24em;color:#d6b9ed;margin-bottom:7px}
.companion .companion-pyramid{position:relative;isolation:isolate;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:124px 116px 94px;gap:34px 13px;margin:0 auto;padding:5px 0 24px;max-width:720px;border:0;overflow:visible}
.companion-pyramid:before,.companion-pyramid:after{content:'';position:absolute;inset:0 0 20px;z-index:-1;pointer-events:none}.companion-pyramid:before{background:linear-gradient(180deg,#c9a8750a,#a77dc716 70%,#a77dc706);clip-path:polygon(50% 0,100% 100%,0 100%)}.companion-pyramid:after{background:linear-gradient(#d1b08055,#af88ce1c);clip-path:polygon(50% 0,100% 100%,99.7% 100%,50% .7%,.3% 100%,0 100%)}
.companion-tier{position:relative;align-self:end;height:13px;transform:translateY(10px);pointer-events:none;z-index:-1;background:linear-gradient(#3d2d48,#211a29);border-top:1px solid #b895d052;clip-path:polygon(8px 0,calc(100% - 8px) 0,100% 7px,100% 100%,0 100%,0 7px)}.companion-tier.tier-summit{grid-row:1;grid-column:3;background:linear-gradient(#665138,#2a2225);border-top-color:#d9bb7c80}.companion-tier.tier-elite{grid-row:2;grid-column:2/5}.companion-tier.tier-base{grid-row:3;grid-column:1/-1}
.companion .companion-rung{position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:44px;min-height:44px;width:auto;padding:5px 0;gap:6px;background:none;border:0;border-radius:8px;box-shadow:none;opacity:1;filter:none;color:#e0d5e9;font:inherit;cursor:pointer;line-height:1.2}
.companion-rung:before{content:'';position:absolute;z-index:-1;width:100%;height:100%;border-radius:50%;background:radial-gradient(ellipse,#9471af10,transparent 65%);pointer-events:none}.companion .companion-rung .companion-art{display:block;width:46px;height:46px;flex-shrink:0}.companion .companion-rung .companion-art>*{width:100%;height:100%;margin:0}.companion .companion-rung .lbl{font-size:10px;color:inherit;text-wrap:balance;white-space:normal;margin:0;font-weight:500}
.companion .companion-rung[data-companion-rank=S] .companion-art,.companion .companion-rung[data-companion-rank=M] .companion-art,.companion .companion-rung[data-companion-rank=GM] .companion-art{width:56px;height:56px}.companion .companion-rung.gms-rung .companion-art{width:88px;height:88px}.companion .companion-rung.gms-rung:not(.reached) .companion-art{opacity:.65}.companion .companion-rung.gms-rung .lbl{color:#e1c48b;letter-spacing:.12em}
.companion-rung.current:before{background:radial-gradient(ellipse,#9b5eea30,transparent 70%)}.companion-current-tag{font-size:8px;color:#e4c7ff;border-bottom:1px solid #ba8cf0;padding-bottom:3px}.companion-rung[aria-pressed=true]:before{background:radial-gradient(ellipse,#a775d936,#ab78df10 45%,transparent 70%)}.companion-rung[aria-pressed=true]:after{content:'';position:absolute;inset:5px -2px;border:1px solid #c8a7fb36;border-radius:60px 60px 8px 8px;pointer-events:none}
.companion-arrows{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;color:#c8a7fb}.companion-arrows>g{fill:none;stroke:#b695ce;stroke-width:1.2}.companion-arrows .future{opacity:.8;stroke-dasharray:2 4}
.companion-rank-detail{display:flex;align-items:center;gap:14px;text-align:left;margin-top:18px;padding:22px 4px;border-top:1px solid #aa86c22b;min-height:170px}.companion-rank-detail>.companion-art{width:85px;height:105px;flex-shrink:0}.companion-rank-detail>div{min-width:0}.companion-detail-kind{font-size:8px;letter-spacing:.08em;color:#c0a4d3}.companion-rank-detail h3{font-size:22px;line-height:1.25;margin:4px 0;font-weight:500}.companion-rank-detail p{font-size:11px;line-height:1.5;color:var(--companion-muted);margin:0}.companion-rank-detail dl{display:flex;flex-wrap:wrap;gap:12px 16px;margin:12px 0 0}.companion-rank-detail dt{font-size:9px;color:var(--companion-muted)}.companion-rank-detail dd{font-size:12px;margin:4px 0 0;color:#ebdff2}.companion-rank-detail .companion-rank-lock{color:#fca5a5;margin-top:12px}.companion-rank-detail .companion-pearl-count{margin-top:12px}
.companion-more{font:inherit;font-size:11px;min-height:44px;cursor:pointer;color:#d5b2f7;border:0;background:none;padding:9px 0;text-align:left}.companion button:focus-visible,.companion summary:focus-visible{outline:2px solid #d2b6ff;outline-offset:-3px}.companion button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
@media(hover:hover) and (pointer:fine){.companion .companion-rung:hover{background:none;transform:none}.companion-rung:hover:before{background:radial-gradient(ellipse,#ac88cd24,transparent 72%)}.companion-explorer summary:hover{background:#32203e55}.companion-more:hover{color:#fff}}
@container companion (max-width:360px){.companion-seal{width:320px}.companion-pyramid{column-gap:10px!important}}
@container companion (max-width:290px){
 .companion-seal{width:260px}.companion-seal-percent{font-size:8px}.companion .rank-title{font-size:18px}.companion .points b{font-size:33px}.companion #barLabel{font-size:10px}.companion-profile{padding-left:12px;padding-right:12px}.companion-hunter-level{gap:17px}.companion .hero-character{flex-basis:94px;width:94px;height:181px}.companion .hero-character img{width:94px;height:171px}.companion #levelChip{width:110px;height:110px}.companion #levelChip .lr-num{font-size:37px}.companion-instruments{gap:8px}.companion-dial{width:118px;height:62px}.companion-needle{height:47px}.companion-dial b{font-size:22px}.companion-path{gap:5px}.companion-path>div{gap:3px}.companion-path .companion-art{width:22px;height:22px}.companion-path .companion-path-current .companion-art{width:30px;height:30px}.companion-path b{font-size:9px}.companion-explorer-body{padding-left:0;padding-right:0}.companion .companion-pyramid{column-gap:8px!important}.companion .companion-rung .companion-art{width:40px;height:40px}.companion .companion-rung[data-companion-rank=S] .companion-art,.companion .companion-rung[data-companion-rank=M] .companion-art,.companion .companion-rung[data-companion-rank=GM] .companion-art{width:47px;height:47px}.companion .companion-rung.gms-rung .companion-art{width:79px;height:79px}.companion .companion-rung .lbl{font-size:9px}.companion-rank-detail{gap:10px}.companion-rank-detail>.companion-art{width:66px;height:90px}.companion-rank-detail h3{font-size:19px}.companion-rank-detail dd{font-size:11px}
}
@media(max-width:350px){.hero.companion{padding-left:12px;padding-right:12px}.companion-explorer summary{padding-left:10px;padding-right:10px;gap:8px}.companion-explorer summary small{font-size:9px}}
