.info-body{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.4fr);gap:70px;align-items:center;margin-top:65px}
.portrait-frame{margin:0;perspective:1000px;max-width:440px;width:100%;justify-self:start}
.portrait-surface{position:relative;aspect-ratio:3/4;border-radius:28px;overflow:hidden;background:#e7e7e7;box-shadow:0 16px 45px rgba(0,0,0,.1);transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .25s ease;isolation:isolate}
.portrait-surface img{width:100%;height:100%;display:block;object-fit:cover;object-position:50% 42%;transform:translate(var(--px,0px),var(--py,0px)) scale(1.07);transition:transform .25s ease}
.portrait-surface:after{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at var(--gx,50%) var(--gy,50%),rgba(255,255,255,.22),transparent 65%);opacity:0;transition:opacity .3s}
.portrait-frame:hover .portrait-surface:after{opacity:1}
.portrait-surface figcaption{position:absolute;bottom:20px;left:20px;right:20px;padding:16px 20px;border:1px solid rgba(255,255,255,.4);border-radius:18px;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:rgba(255,255,255,.65);color:#222;font-size:17px}
.portrait-surface figcaption span{display:block;font-size:13px;color:#555;margin-top:4px}
.info-body .info-grid{margin-top:0;gap:35px;grid-template-columns:1.2fr 1fr}
.info-body .info-grid p{font-size:19px}.info-body .capabilities{font-size:clamp(24px,2.1vw,35px)}
[data-theme=dark] .portrait-surface{box-shadow:0 16px 45px rgba(0,0,0,.35)}
[data-theme=dark] .portrait-surface figcaption{background:rgba(25,25,30,.7);color:#f5f5f7;border-color:rgba(255,255,255,.2)}
[data-theme=dark] .portrait-surface figcaption span{color:#c5c5ca}
@media(max-width:1100px){.info-body{gap:40px;grid-template-columns:.9fr 1.1fr}.info-body .info-grid{grid-template-columns:1fr;gap:20px}.info-body .capabilities{font-size:26px}}
@media(max-width:700px){.info-body{grid-template-columns:1fr;gap:40px;margin-top:40px}.portrait-frame{max-width:380px;justify-self:center}.info-body .info-grid{gap:25px}}
@media(prefers-reduced-motion:reduce){.portrait-surface,.portrait-surface img{transition:none;transform:none}.portrait-surface:after{display:none}}
