/* Suspended photo badge: local to the About portrait. */
.about-profile-card.hanging-profile-layout{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;align-items:center}
.hanging-profile-layout>.about-profile-info{grid-column:1;grid-row:1}
.hanging-avatar{grid-column:2;grid-row:1;position:relative;width:300px;height:420px;justify-self:center;isolation:isolate;perspective:900px}
.hanging-avatar__string{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.hanging-avatar__string path{fill:none;stroke-linecap:round}
.hanging-avatar__strap-edge{stroke:#8d9aa666;stroke-width:13}
.hanging-avatar__strap{stroke:#101319;stroke-width:10}
.hanging-avatar__stitch{stroke:#67717c;stroke-width:.5;stroke-dasharray:1 3;opacity:.6}
.hanging-avatar__string text{fill:#e3e5e8;font:600 4.8px 'Arial',sans-serif;letter-spacing:1.1px}
.hanging-avatar__string circle{fill:#202730;stroke:#7a8693;stroke-width:1}
.hanging-avatar .hanging-avatar__card{position:absolute;top:135px;left:50px;width:200px;max-width:none;height:265px;aspect-ratio:auto;padding:8px;display:block;border-radius:7px;border:1px solid #d7dadc;background:linear-gradient(145deg,#f9f9f5,#c9cecf);box-shadow:0 18px 30px #0005,1px 2px 0 #90979b,0 0 0 1px #ffffff12;transform-origin:50% 0;cursor:grab;touch-action:pan-y;user-select:none;will-change:transform;opacity:1;filter:none;transition:box-shadow .2s;transform-style:preserve-3d}
.hanging-avatar__card::before{content:'';position:absolute;z-index:3;top:-17px;left:calc(50% - 7px);width:14px;height:21px;border:2px solid #a9b0b4;border-radius:5px;background:linear-gradient(90deg,#444c54,#c4c9cc 40%,#5a626a 75%);box-shadow:inset 0 0 0 3px #252c33,0 2px 3px #0005}
.hanging-avatar__card::after{content:'';position:absolute;inset:8px;border-radius:2px;pointer-events:none;background:none;box-shadow:inset 0 0 0 1px #ffffff18}
.hanging-avatar .hanging-avatar__image{display:block;width:100%;height:100%;object-fit:contain;background:#dce0df;filter:none;border-radius:2px;pointer-events:none;user-select:none}
.hanging-avatar__hint{position:absolute;bottom:-12px;left:0;right:0;text-align:center;color:var(--text-muted);font:9px 'JetBrains Mono',monospace;letter-spacing:1.8px;opacity:.65;pointer-events:none}
.hanging-avatar__card:active{cursor:grabbing}
.hanging-avatar__card:hover{box-shadow:0 22px 38px #0006,1px 2px 0 #aab4b8}
.hanging-avatar__card:focus-visible{outline:2px solid var(--accent);outline-offset:7px}
@media(max-width:1100px) and (min-width:601px){.about-profile-card.hanging-profile-layout{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.hanging-avatar{width:240px;height:355px}.hanging-avatar .hanging-avatar__card{left:35px;top:110px;width:170px;height:225px}}
@media(max-width:600px){.about-profile-card.hanging-profile-layout{grid-template-columns:minmax(0,1fr);gap:12px}.hanging-profile-layout>.about-profile-info{grid-column:1;grid-row:1}.hanging-avatar{grid-column:1;grid-row:2;width:220px;height:320px;justify-self:end;margin-right:0}.hanging-avatar .hanging-avatar__card{left:35px;top:100px;width:150px;height:200px;padding:7px}.hanging-avatar__card::after{inset:7px}.hanging-avatar__hint{bottom:0;font-size:8px}}
@media(prefers-reduced-motion:reduce){.hanging-avatar .hanging-avatar__card{will-change:auto;transition:none}}
@media(max-width:600px){
 .about-profile-card.hanging-profile-layout{grid-template-columns:minmax(0,1fr) clamp(104px,32vw,150px);gap:10px;align-items:center}
 .hanging-profile-layout>.about-profile-info{grid-column:1;grid-row:1;min-width:0}
 .hanging-avatar{grid-column:2;grid-row:1;width:100%;height:260px;justify-self:center;margin:0}
 .hanging-avatar .hanging-avatar__card{left:12px;top:78px;width:calc(100% - 24px);height:auto;aspect-ratio:3/4;padding:5px}
 .hanging-avatar__card::after{inset:5px}
 .hanging-avatar__hint{font-size:6px;letter-spacing:.8px;bottom:22px}
 .hanging-profile-layout .home-name{font-size:clamp(23px,6.7vw,36px);line-height:1.16;letter-spacing:-.8px;margin-bottom:20px;overflow-wrap:normal}
 .hanging-profile-layout .hero-eyebrow{font-size:8px;letter-spacing:1.2px;line-height:1.7;margin-bottom:12px}
 .hanging-profile-layout .profile-details{font-size:12px;line-height:1.6;gap:9px}
 .hanging-profile-layout .profile-detail{gap:7px;min-width:0}
 .hanging-profile-layout .profile-detail i{font-size:12px;width:14px}
}
@media(max-width:360px){.hanging-avatar{height:225px}.hanging-avatar .hanging-avatar__card{top:64px}.hanging-profile-layout .profile-details{font-size:11px}.hanging-avatar__hint{bottom:18px}}

/* Desktop About: information | hanging portrait | original animated companion. */
.about-robot{display:none;min-width:0;position:relative;height:420px}
.about-robot .robot-viewport{width:100%;height:100%;touch-action:pan-y;cursor:grab;border-radius:16px}
.about-robot .robot-viewport:active{cursor:grabbing}
.about-robot .robot-viewport:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.about-robot-fallback{position:absolute;inset:0;display:grid;place-items:center;color:var(--text-muted);font:9px monospace;letter-spacing:1px}
.about-robot-fallback[hidden]{display:none}
.about-robot-caption{position:absolute;left:0;right:0;bottom:10px;text-align:center;font:8px 'JetBrains Mono',monospace;letter-spacing:1.3px;color:var(--text-muted);pointer-events:none}
@media(min-width:901px){
 .about-profile-card.hanging-profile-layout.has-about-robot{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding-left:0;padding-right:0}
 .has-about-robot>.about-profile-info{grid-column:1;grid-row:1}
 .has-about-robot>.hanging-avatar{grid-column:2;grid-row:1;width:min(100%,280px);height:420px}
 .has-about-robot .hanging-avatar__card{left:max(30px,calc((100% - 200px)/2));top:125px;width:calc(100% - 60px);max-width:200px;height:auto;aspect-ratio:3/4}
 .has-about-robot .hanging-avatar__hint{bottom:8px}
 .has-about-robot>.about-robot{display:block;grid-column:3;grid-row:1}
 .has-about-robot .home-name{font-size:clamp(34px,3.1vw,62px);line-height:1.15}
 .has-about-robot .profile-details{grid-template-columns:minmax(0,1fr);font-size:15px;gap:10px}
}
