/* Viewer companion demo. All visual tokens belong to the existing homepage. */
#viewer-companions{scroll-margin-top:90px}
#viewer-companions .sec-head{max-width:800px;margin-bottom:36px}
#viewer-companions .sec-head p{max-width:700px;margin-inline:auto}
.companion-panel{overflow:hidden}
.companion-topline{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 28px;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}
.companion-demo-label{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.companion-demo-label strong{color:var(--ink);font-size:13px;font-weight:600}
.companion-demo-dot{width:7px;height:7px;background:var(--accent);border-radius:50%;flex:none}
.companion-motion{border:0;padding:5px 0;background:transparent;color:var(--muted);font:inherit;cursor:pointer;white-space:nowrap}
.companion-motion:hover{color:var(--accent)}
.companion-motion:disabled{cursor:default;color:var(--faint)}
.companion-scene{height:300px;position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 50% 110%,rgba(124,92,255,.17),transparent 70%)}
.companion-scene canvas{display:block;width:100%;height:100%;position:relative;z-index:1}
.companion-scene-note{position:absolute;top:24px;left:28px;color:var(--faint);font:11px var(--mono);letter-spacing:.06em;pointer-events:none}
.companion-count{position:absolute;top:20px;right:28px;display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px;pointer-events:none}
.companion-count b{color:var(--accent);font:500 18px var(--mono)}
.companion-empty{position:absolute;inset:0;display:grid;place-items:center;padding:60px 24px;color:var(--muted);font-size:13px;text-align:center}
.companion-empty[hidden]{display:none}
.companion-console{display:flex;align-items:center;gap:18px;justify-content:space-between;padding:24px 28px;border-top:1px solid var(--line)}
.companion-message{min-width:0;display:flex;align-items:center;gap:12px}
.companion-message-icon{width:38px;height:38px;display:grid;place-items:center;flex:none;border-radius:12px;background:rgba(124,92,255,.1);color:var(--accent);font-size:17px}
.companion-message p{font-size:13px;color:var(--ink);line-height:1.65}
.companion-message small{font-size:11px;color:var(--muted);display:block}
.companion-buttons{display:flex;gap:9px;flex-wrap:wrap;flex:none}
.companion-buttons .btn{height:42px;padding:0 17px;font-size:13px}
#viewer-companions button:disabled{opacity:.55;cursor:default;transform:none;box-shadow:none}
#viewer-companions button:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.companion-caption{margin-top:16px;font-size:11px;color:var(--muted);line-height:1.7}
.companion-caption [role="status"]{min-height:19px}
@media(max-width:760px){.companion-console{flex-direction:column;align-items:stretch;gap:18px}.companion-buttons{width:100%}.companion-buttons .btn{justify-content:center;flex:1;padding:0 10px}.companion-scene{height:290px}}
@media(max-width:480px){.companion-topline{padding:16px;gap:10px;font-size:10.5px}.companion-demo-label{gap:6px}.companion-demo-label strong{font-size:12px}.companion-demo-label small{flex-basis:100%;padding-left:13px;font-size:10px}.companion-scene{height:270px}.companion-scene-note{left:16px;top:19px;font-size:10px}.companion-count{right:16px;top:14px}.companion-console{padding:20px 16px}.companion-message p{font-size:12px}.companion-buttons{gap:7px}.companion-buttons .btn{font-size:12px}}
@media(prefers-reduced-motion:reduce){#viewer-companions *,#viewer-companions *::before{scroll-behavior:auto;transition:none!important;animation:none!important}}
