/* VIOSCANS IP Playground - Robotic Violet artwork only.
   The existing site CSS, header, footer and all network applications remain authoritative.
   6 distinct scenes: 1 transparent character cutout, 5 complete cinematic laboratory illustrations.
   Never crop a robot or instrument; images scale by natural aspect ratio.
*/
.ipp-page .ipp-robot-picture,
.ipp-page .ipp-robot-image {display:block!important; box-sizing:border-box!important;}
.ipp-page .ipp-robot-picture {position:relative!important; width:100%!important; height:auto!important; max-height:none!important; min-height:0!important; align-self:flex-start!important; margin:0!important; padding:0!important; line-height:0; overflow:visible!important; transform:none!important;}
.ipp-page .ipp-robot-image {width:100%!important; height:auto!important; max-width:100%!important; max-height:none!important; min-height:0!important; object-fit:contain!important; object-position:top center!important; margin:0!important; padding:0!important; border:0!important; border-radius:0!important; position:static!important; transform:none!important; inset:auto!important;}
/* Desktop - Violet is suspended at the upper boundary of her hero panel. */
.ipp-page .ipp-hero.card {display:grid!important; grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr)!important; align-items:stretch!important; gap:clamp(18px,2vw,32px)!important; padding-top:0!important; padding-bottom:0!important; min-height:0!important; height:auto!important; overflow:visible!important;}
.ipp-page .ipp-hero .ipp-hero-copy {min-width:0; align-self:center!important; padding-block:clamp(24px,3vw,46px)!important;}
.ipp-page .ipp-hero .ipp-hero-art {position:relative!important; display:block!important; min-width:0!important; min-height:0!important; height:auto!important; max-height:none!important; margin:0!important; padding:0!important; align-self:flex-start!important; justify-self:center!important; width:min(100%,610px)!important; overflow:visible!important;}
.ipp-page .ipp-hero .ipp-robot-picture {width:100%!important;}
/* Section illustrations begin exactly at their colored top border; text retains breathing room. */
.ipp-page .section-card, .ipp-page .ipp-workbench.card {overflow:visible!important;}
.ipp-page .section-hd.ipp-split-head,
.ipp-page .section-hd.ipp-slim-head {display:grid!important; grid-template-columns:minmax(0,1fr) minmax(210px,288px)!important; align-items:start!important; gap:clamp(12px,2vw,26px)!important; padding-top:0!important; padding-bottom:0!important; padding-right:0!important; padding-left:0!important; min-height:0!important; overflow:visible!important;}
.ipp-page .section-hd.ipp-split-head > :first-child,
.ipp-page .section-hd.ipp-slim-head > :first-child {min-width:0!important; padding-block:clamp(18px,2.3vw,28px)!important;}
.ipp-page .ipp-side-figure,
.ipp-page .ipp-callout-card {position:relative!important; display:flex!important; flex-direction:column!important; align-self:start!important; justify-self:stretch!important; max-width:288px!important; width:100%!important; min-width:0!important; height:auto!important; min-height:0!important; margin:0!important; padding:0!important; transform:none!important; overflow:visible!important;}
.ipp-page .ipp-side-figure .ipp-robot-picture,
.ipp-page .ipp-callout-card .ipp-robot-picture {flex:0 0 auto; width:100%!important; padding:0!important; margin:0!important;}
.ipp-page .ipp-side-figure .ipp-robot-image,
.ipp-page .ipp-callout-card .ipp-robot-image {width:100%!important; max-height:none!important;}
.ipp-page .ipp-callout-card {border-radius:0 0 14px 14px!important; overflow:hidden!important; background:#1b1533!important;}
.ipp-page .ipp-callout-text {padding:11px 13px 14px!important; background:#f6f0ff!important; color:#332149!important; line-height:1.35;}
.ipp-page .ipp-callout-text .tiny-soft {color:#5c3a8f!important;}
.ipp-page .ipp-side-figure {border-radius:0!important;}
/* Existing bit controls, forms and result tables stay untouched and interactive. */
.ipp-page .ipp-hero-copy, .ipp-page .section-hd > div:first-child {overflow-wrap:break-word;}
@media(max-width:1080px){
  .ipp-page .ipp-hero.card {grid-template-columns:minmax(0,1fr) minmax(0,.85fr)!important; gap:14px!important;}
  .ipp-page .section-hd.ipp-split-head,.ipp-page .section-hd.ipp-slim-head {grid-template-columns:minmax(0,1fr) minmax(190px,260px)!important;}
  .ipp-page .ipp-side-figure,.ipp-page .ipp-callout-card {max-width:260px!important;}
}
@media(max-width:790px){
  .ipp-page .ipp-hero.card {grid-template-columns:minmax(0,1fr)!important; gap:0!important;}
  .ipp-page .ipp-hero .ipp-hero-art {order:-1!important; width:min(100%,610px)!important; justify-self:center!important;}
  .ipp-page .ipp-hero .ipp-hero-copy {padding:22px clamp(14px,3vw,26px) 28px!important;}
  .ipp-page .section-hd.ipp-split-head,.ipp-page .section-hd.ipp-slim-head {grid-template-columns:1fr!important; gap:0!important;}
  .ipp-page .section-hd.ipp-split-head > :first-child,.ipp-page .section-hd.ipp-slim-head > :first-child {order:2!important; padding:20px clamp(14px,3vw,26px)!important;}
  .ipp-page .ipp-side-figure,.ipp-page .ipp-callout-card {order:1!important; justify-self:center!important; max-width:min(100%,410px)!important;}
}
@media(max-width:420px){
  .ipp-page .ipp-hero .ipp-hero-art {width:100%!important;}
  .ipp-page .ipp-side-figure,.ipp-page .ipp-callout-card {max-width:min(100%,350px)!important;}
  .ipp-page .ipp-hero .ipp-hero-copy {padding-inline:12px!important;}
}
@media print {
  .ipp-page .ipp-robot-picture {break-inside:avoid;}
  .ipp-page .ipp-hero.card {display:block!important;}
  .ipp-page .ipp-hero .ipp-hero-art {max-width:340px!important;}
}
/* Reverse Resolve has artwork FIRST in its source, so the generic first-child
   text padding must apply to its copy (second child), never the robot image. */
.ipp-page .section-hd.ipp-split-head.reverse > .ipp-side-figure:first-child {
  padding:0!important; margin:0!important; order:1!important; align-self:start!important;
}
.ipp-page .section-hd.ipp-split-head.reverse > div:last-child:not(.ipp-side-figure) {
  padding:clamp(18px,2.3vw,28px) clamp(14px,2vw,24px)!important;
  min-width:0!important; order:2!important;
}
@media(max-width:790px){
  .ipp-page .section-hd.ipp-split-head.reverse > div:last-child:not(.ipp-side-figure) {
    padding:20px clamp(14px,3vw,26px)!important;
  }
}
