/* Prime Creation // canonical viewport contract v6
   PrimeViewportAuthority measures geometry. PrimeNavigation activates pages.
   This stylesheet applies shell/module geometry, page morphology and scroll ownership. */

:root{--prime-shell-bg:#020509}

html[data-prime-viewport-authority],html[data-prime-viewport-authority] body.prime-v2{
  width:100%!important;height:100%!important;min-width:0!important;min-height:0!important;margin:0!important;padding:0!important;overflow:hidden!important;overscroll-behavior:none!important;background:var(--prime-shell-bg)!important
}

html[data-prime-viewport-authority] body.prime-v2>#main[data-app-shell][data-prime-viewport-root]{
  position:fixed!important;inset:auto!important;left:var(--pf-vv-left,0px)!important;top:var(--pf-vv-top,0px)!important;width:var(--pf-vw,100vw)!important;height:var(--pf-vh,100dvh)!important;
  min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;margin:0!important;padding:0!important;overflow:hidden!important;contain:layout paint style!important;isolation:isolate!important;background:var(--prime-shell-bg)!important
}

html[data-prime-viewport-authority] #main[data-app-shell]>.ambient,
html[data-prime-viewport-authority] #main[data-app-shell]>.pc-spatial-viewport-field{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;pointer-events:none!important}
html[data-prime-viewport-authority] #main[data-app-shell]>.topbar[data-header]{position:absolute!important;z-index:900!important;top:0!important;right:0!important;left:0!important;width:100%!important;margin:0!important}
html[data-prime-viewport-authority] #main[data-app-shell]>:is(.prime-site-transition,#primeBrandIntro){position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important}
html[data-prime-viewport-authority] #main[data-app-shell]>.help[data-help]{position:absolute!important;z-index:985!important;visibility:visible!important;opacity:1!important;contain:none!important}
html[data-prime-viewport-authority] #main[data-app-shell]>.help[data-help][data-nexus-suspended="true"]{display:none!important}

html[data-prime-viewport-authority] #main[data-app-shell]>footer{display:none!important}
html[data-prime-viewport-authority][data-prime-viewport-active="contact"] #main[data-app-shell]>footer{
  display:flex!important;position:absolute!important;z-index:880!important;right:.75rem!important;bottom:calc(var(--pf-dock-reserve,var(--pf-dock-h,0px)) + .35rem)!important;left:.75rem!important;
  align-items:center!important;justify-content:space-between!important;gap:.75rem!important;margin:0!important;padding:.35rem .55rem!important;background:rgba(2,7,11,.72)!important;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)
}

html[data-prime-viewport-authority] body.prime-v2 #main[data-app-shell]>.app-window[data-prime-viewport-module]{
  position:absolute!important;inset:auto!important;left:var(--pf-module-left,0px)!important;top:var(--pf-module-top,var(--pf-content-top,0px))!important;width:var(--pf-module-width,100%)!important;height:var(--pf-module-height,var(--pf-content-h,100%))!important;
  min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;margin:0!important;box-sizing:border-box!important;container-type:inline-size;container-name:prime-page
}

html[data-prime-viewport-authority] body.prime-v2 #main[data-app-shell]>.app-window[data-prime-viewport-module][hidden],
html[data-prime-viewport-authority] body.prime-v2 #main[data-app-shell]>.app-window[data-prime-viewport-module]:not(.is-prime-viewport-active){display:none!important;visibility:hidden!important;pointer-events:none!important}
html[data-prime-viewport-authority] body.prime-v2 #main[data-app-shell]>.app-window[data-prime-viewport-module].is-prime-viewport-active:not([hidden]){content-visibility:visible!important;visibility:visible!important;opacity:1!important;pointer-events:auto!important;contain:none!important}

html[data-prime-viewport-authority] #main[data-app-shell]>#top.is-prime-viewport-active:not([hidden]){display:grid!important}
html[data-prime-viewport-authority] #main[data-app-shell]>:is(#intro,#music,#video,#book,#studio).is-prime-viewport-active:not([hidden]){display:block!important}
html[data-prime-viewport-authority] #main[data-app-shell]>:is(#portfolio,#sprite,#process,#contact).is-prime-viewport-active:not([hidden]){display:grid!important}

html[data-prime-viewport-authority] #main[data-app-shell]>:is(#top,#intro,#music,#portfolio).is-prime-viewport-active:not([hidden]){overflow:hidden!important;overscroll-behavior:none!important}
html[data-prime-viewport-authority] #main[data-app-shell]>:is(#video,#book,#sprite,#process,#studio,#contact).is-prime-viewport-active:not([hidden]){overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch!important;scrollbar-gutter:auto!important}

html[data-prime-viewport-authority] body.prime-v2 #intro>.children02-surface,
html[data-prime-viewport-authority] body.prime-v2 #music>.children03-surface{
  position:relative!important;display:block!important;width:100%!important;height:100%!important;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;margin:0!important;padding:0!important;box-sizing:border-box!important;
  overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch!important;touch-action:pan-y pinch-zoom!important
}

html[data-prime-viewport-authority] body.prime-v2 #portfolio .gallery-rail{overflow-x:auto!important;overflow-y:hidden!important;overscroll-behavior-inline:contain!important;-webkit-overflow-scrolling:touch!important;touch-action:pan-x pinch-zoom!important}
html[data-prime-viewport-authority] body.prime-v2 #top[data-prime-receptor]{overflow:hidden!important;overscroll-behavior:none!important;touch-action:manipulation!important}
html[data-prime-viewport-authority][data-prime-viewport-active="top"] #main[data-app-shell]>.topbar[data-header]{opacity:0!important;visibility:hidden!important;pointer-events:none!important}

html[data-prime-viewport-authority] body.prime-v2 #book #pcBookReader[open]{position:absolute!important;inset:.12rem!important;width:auto!important;height:auto!important;max-width:none!important;max-height:none!important;margin:0!important;z-index:980!important;overflow:hidden!important}
html[data-prime-viewport-authority] body.prime-v2 #book #pcBookReader:not([open]){display:none!important}
html[data-prime-viewport-authority] body.prime-v2 #pcBookReader .pc-book-reader-panel{height:100%!important;min-height:0!important;overflow:hidden!important}
html[data-prime-viewport-authority] body.prime-v2 #pcBookReader .pc-book-reader-scroll{min-height:0!important;overflow:auto!important;overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch!important}

html[data-prime-viewport-morphing="true"] body.prime-v2>#main[data-app-shell],
html[data-prime-viewport-morphing="true"] #main[data-app-shell]>.app-window.is-prime-viewport-active{
  transition:left 260ms cubic-bezier(.2,.72,.18,1),top 260ms cubic-bezier(.2,.72,.18,1),width 260ms cubic-bezier(.2,.72,.18,1),height 260ms cubic-bezier(.2,.72,.18,1)
}

@media(orientation:landscape) and (max-height:600px){
  html[data-prime-viewport-authority][data-prime-viewport-active="contact"] #main[data-app-shell]>footer{display:none!important}
}
@media(prefers-reduced-motion:reduce){
  html[data-prime-viewport-authority] body.prime-v2 #main[data-app-shell] *{scroll-behavior:auto!important}
  html[data-prime-viewport-morphing="true"] body.prime-v2>#main[data-app-shell],html[data-prime-viewport-morphing="true"] #main[data-app-shell]>.app-window{transition:none!important}
}
