/* Prime Creation // hardware-fused spatial presentation v5
   Windowed stereo uses bounded percentage disparity. Depth/parallax add a
   three-plane visual reconstruction with overscan so viewpoint motion reveals
   depth without exposing empty seams. */

:root{
  --prime-spatial-intensity:1;
  --pc-spatial-depth-gain:1;
  --pc-spatial-x:0px;
  --pc-spatial-y:0px;
  --pc-spatial-z:0px;
  --pc-spatial-tilt-x:0deg;
  --pc-spatial-tilt-y:0deg;
  --pc-spatial-yaw:0deg;
  --pc-spatial-energy:0;
}

html.prime-mobile-spatial .pc-spatial-media{
  position:relative;
  isolation:isolate;
  perspective:clamp(680px,78vw,1200px);
  transform-style:preserve-3d;
}
html.prime-mobile-spatial .pc-spatial-source{
  position:relative;
  z-index:2;
  transform:translate3d(var(--pc-source-x,0px),var(--pc-source-y,0px),var(--pc-source-z,0px)) rotateX(var(--pc-source-rx,0deg)) rotateY(var(--pc-source-ry,0deg));
  transform-origin:50% 50%;
  backface-visibility:hidden;
}
html.prime-mobile-spatial :is(.pc-spatial-eye,.pc-spatial-depth-plane){
  position:absolute;
  display:block;
  overflow:hidden;
  pointer-events:none;
  user-select:none;
  transform-origin:50% 50%;
  backface-visibility:hidden;
}
html.prime-mobile-spatial :is(.pc-spatial-eye,.pc-spatial-depth-plane)>img{
  display:block;
  width:100%;
  height:100%;
  max-width:none;
  max-height:none;
  object-fit:inherit;
  object-position:inherit;
  pointer-events:none;
}

/* Stereo window. Roughly 2% total disparity at full intensity is the default
   zero-parallax placement, then hardware depth makes only bounded adjustments. */
html.prime-mobile-spatial .pc-spatial-eye{z-index:5;opacity:.12;will-change:transform,opacity}
html.prime-mobile-spatial .pc-spatial-eye-a{
  transform:translate3d(var(--pc-eye-a-x,-1%),var(--pc-eye-a-y,0px),var(--pc-eye-a-z,0px));
  clip-path:inset(0 49.35% 0 0);
}
html.prime-mobile-spatial .pc-spatial-eye-b{
  transform:translate3d(var(--pc-eye-b-x,1%),var(--pc-eye-b-y,0px),var(--pc-eye-b-z,0px));
  clip-path:inset(0 0 0 49.35%);
}
html.prime-mobile-spatial [data-pc-spatial-style="stereo"].pc-spatial-media .pc-spatial-eye{opacity:calc(.11 + var(--pc-spatial-energy,0) * .07)}
html.prime-mobile-spatial [data-pc-spatial-style="depth"].pc-spatial-media .pc-spatial-eye{opacity:.105}
html.prime-mobile-spatial [data-pc-spatial-style="lenticular"].pc-spatial-media .pc-spatial-eye{opacity:.13}
html.prime-mobile-spatial [data-pc-spatial-style="parallax"].pc-spatial-media .pc-spatial-eye{opacity:.055}

/* Layered 2.5D reconstruction. The far plane overscans to cover disocclusion;
   mid and near masks separate center-weighted scene regions without running a
   heavy per-image ML model in the page. Only the nearest visible records receive
   these planes, enforced by the JS layer budget. */
html.prime-mobile-spatial .pc-spatial-depth-plane{display:none;will-change:transform;z-index:1}
html.prime-mobile-spatial [data-pc-depth-layers="active"]>.pc-spatial-depth-plane{display:block}
html.prime-mobile-spatial .pc-spatial-depth-far{
  z-index:1;
  opacity:.34;
  transform:translate3d(var(--pc-depth-far-x,0px),var(--pc-depth-far-y,0px),var(--pc-depth-far-z,-5px)) scale(1.075);
}
html.prime-mobile-spatial .pc-spatial-depth-mid{
  z-index:3;
  opacity:.42;
  transform:translate3d(var(--pc-depth-mid-x,0px),var(--pc-depth-mid-y,0px),var(--pc-depth-mid-z,4px)) scale(1.028);
  -webkit-mask-image:radial-gradient(ellipse 62% 58% at 50% 48%,#000 0 52%,rgba(0,0,0,.94) 65%,transparent 88%);
  mask-image:radial-gradient(ellipse 62% 58% at 50% 48%,#000 0 52%,rgba(0,0,0,.94) 65%,transparent 88%);
}
html.prime-mobile-spatial .pc-spatial-depth-near{
  z-index:4;
  opacity:.5;
  transform:translate3d(var(--pc-depth-near-x,0px),var(--pc-depth-near-y,0px),var(--pc-depth-near-z,10px)) scale(1.012);
  -webkit-mask-image:radial-gradient(ellipse 35% 38% at 50% 46%,#000 0 48%,rgba(0,0,0,.96) 61%,transparent 86%);
  mask-image:radial-gradient(ellipse 35% 38% at 50% 46%,#000 0 48%,rgba(0,0,0,.96) 61%,transparent 86%);
}
html.prime-mobile-spatial [data-pc-spatial-style="parallax"].pc-spatial-media .pc-spatial-depth-far{opacity:.22}
html.prime-mobile-spatial [data-pc-spatial-style="parallax"].pc-spatial-media .pc-spatial-depth-mid{opacity:.3}
html.prime-mobile-spatial [data-pc-spatial-style="parallax"].pc-spatial-media .pc-spatial-depth-near{opacity:.36}

html.prime-mobile-spatial #portfolio .gallery-rail-card.pc-spatial-media{
  perspective:850px;
  transform:perspective(850px) translate3d(var(--pc-spatial-x,0px),var(--pc-spatial-y,0px),var(--pc-spatial-z,0px)) rotateX(var(--pc-spatial-tilt-x,0deg)) rotateY(var(--pc-spatial-tilt-y,0deg)) rotateZ(var(--pc-spatial-yaw,0deg));
  transform-origin:50% 50%;
}
html.prime-mobile-spatial .pc-spatial-section>.pc-spatial-section-field{
  transform:translate3d(var(--pc-section-x,0px),var(--pc-section-y,0px),var(--pc-section-z,0px)) rotateZ(var(--pc-section-yaw,0deg));
}
html.prime-mobile-spatial #pcBookReader.pc-spatial-reader .pc-spatial-reader-field{
  transform:translate3d(var(--pc-reader-x,0px),var(--pc-reader-y,0px),var(--pc-reader-z,0px)) rotateZ(var(--pc-reader-yaw,0deg));
}

html[data-prime-spatial-tier="low"] :is(.pc-spatial-section-field,#pcBookReader .pc-spatial-reader-field,#portfolio .gallery-rail-card.pc-spatial-media,.pc-spatial-source){transform:none!important}
html[data-prime-spatial-tier="low"] :is(.pc-spatial-eye,.pc-spatial-depth-plane){display:none!important}

@media(prefers-reduced-motion:reduce){
  html.prime-mobile-spatial :is(.pc-spatial-section-field,#pcBookReader .pc-spatial-reader-field,#portfolio .gallery-rail-card.pc-spatial-media,.pc-spatial-source){transform:none!important}
  html.prime-mobile-spatial :is(.pc-spatial-eye,.pc-spatial-depth-plane){display:none!important}
}
