/* Locked 1600x2400 scene; head origin 173,0 and anchor 627,1150. */
.fox-rig.companion-rig{height:auto;aspect-ratio:2/3;animation:none!important;transform:none!important;filter:none!important}
.companion-body,.companion-head{position:absolute;inset:0;display:block;transform-origin:50% 98.8%}
.companion-head{transform-origin:50% 47.916667%}
.companion-face{position:absolute;left:10.8125%;top:0;width:78.375%;height:52.25%;max-width:none}
.companion-torso{position:absolute;left:12.5%;top:41.25%;width:74.9375%;height:57.583333%;max-width:none}
.companion-rig .rig-cloth{animation:none!important;pointer-events:none}
.companion-rig .cloth-cap,.companion-rig .cloth-crown,.companion-rig .cloth-explorer{left:19%;top:-3%;width:62%;height:41.333%}
.companion-rig .cloth-pirate_hat,.companion-rig .cloth-space_cap{left:17%;top:-3%;width:66%;height:44%}
.companion-rig .cloth-vest,.companion-rig .cloth-pirate_vest,.companion-rig .cloth-space_suit{left:14%;top:41%;width:72%;height:48%}
.companion-rig .cloth-cape{left:6%;top:39%;width:88%;height:58.666%}
.companion-rig .cloth-scarf,.companion-rig .cloth-pirate_scarf,.companion-rig .cloth-star_medal{left:22%;top:36.5%;width:56%;height:37.333%}
.companion-caption{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.companion-power{position:absolute;right:0;top:20%;font-size:2rem}
.home-fox .companion-rig,.closet-preview .companion-rig{width:190px;height:285px}
.mission-focus-picture .companion-rig{width:100px;height:150px}
@media(max-width:600px){.home-fox .companion-rig,.closet-preview .companion-rig{width:150px;height:225px}}
.companion-reveal{position:absolute;bottom:2%;left:-10%;width:120%;background:#fff4c4;border:2px solid #22564a;border-radius:12px;padding:5px;font-size:14px;text-align:center}
/* FQ-APP-023 Stage 1: visibility:hidden (not display:none) keeps the mount's
   layout box present while inactive, so its size is already correct — via
   the .companion-rig width/height rules above — the moment 3D is ready. */
.companion-3d-mount{position:relative;overflow:hidden;visibility:hidden}
.companion-3d-mount canvas{display:block;width:100%;height:100%}
/* FQ-APP-024 Stage 2: the home anchor is an invisible same-sized position
   reference only (getBoundingClientRect() target) — the real canvas lives in
   a persistent overlay appended to <body>, see companion-3d-home-overlay
   below. position:absolute so it doesn't add layout space inside .home-fox
   (already position:relative) alongside the 2D rig it overlaps. */
.companion-3d-home-anchor{position:absolute;top:0;left:0;visibility:hidden;pointer-events:none}
/* Sized/positioned imperatively per-frame from the anchor's rect (companion-3d-controller.mjs).
   pointer-events:none so it never steals taps meant for .home-fox underneath (Phase 4). */
.companion-3d-home-overlay{position:absolute;pointer-events:none;z-index:1}
