/* Prime Crystal Optics r7. One CSS-only optical coat per visible glass host.
   Optical pose is computed once by PrimePrismaticSubsystem (Fresnel/Schlick,
   Snell and Cauchy dispersion). No raytracing, duplicated media or blur passes.
   Dispersion is a bounded edge approximation, not background pixel tracing. */
:root {
  --prime-crystal-rim-opacity:.32;
  --prime-crystal-specular-opacity:.22;
  --prime-crystal-red-offset:0px;
  --prime-crystal-blue-offset:0px;
  --prime-crystal-dispersion-px:0px;
}
/* Eliminate the old fixed 118deg stripe from Prime machine materials.
   Preserve each skin's existing chassis/base color, not a new colored glass. */
html body.prime-v2 {
  --machine-reflection:radial-gradient(ellipse 42% 46% at var(--prime-prismatic-pose-x,50%) var(--prime-prismatic-pose-y,43%),rgba(232,247,255,.11),transparent 72%);
  --machine-glass:linear-gradient(180deg,rgba(16,35,44,.80),rgba(4,11,19,.88));
}
html[data-prime-viewport-motion] body.prime-v2 #main[data-app-shell]>.app-window[data-prime-motion-active="true"]{
  --machine-glass:linear-gradient(180deg,rgba(16,35,44,.23),rgba(4,11,19,.34))!important;
  --machine-reflection:radial-gradient(ellipse 42% 46% at var(--prime-prismatic-pose-x,50%) var(--prime-prismatic-pose-y,43%),rgba(232,247,255,.075),transparent 72%)!important;
}
html[data-prime-skin="glass"]{
  --prime-optic-light:radial-gradient(ellipse 44% 40% at var(--prime-prismatic-pose-x,50%) var(--prime-prismatic-pose-y,43%),rgba(244,252,255,.09),transparent 72%);
}
/* All typography remains ABOVE the coating. No transforms or clipping on
   buttons or their hitboxes; the existing card geometry remains authoritative. */
body.prime-v2 [data-prime-prismatic-chrome="true"]:not([data-prime-z-screen="true"]){position:relative;isolation:isolate}
html:not([data-prime-spatial-enabled="true"]) body.prime-v2 [data-prime-prismatic-chrome="true"][data-prime-z-screen="true"]{position:relative;isolation:isolate}
html[data-prime-spatial-enabled="true"] body.prime-v2 [data-prime-prismatic-chrome="true"][data-prime-z-screen="true"]{position:relative;isolation:auto;transform-style:preserve-3d}
body.prime-v2 [data-prime-prismatic-chrome="true"]:not([data-prime-z-screen="true"])>:not(.prime-prismatic-chrome-optics){position:relative;z-index:1}
html:not([data-prime-spatial-enabled="true"]) body.prime-v2 [data-prime-prismatic-chrome="true"][data-prime-z-screen="true"]>:not(.prime-prismatic-chrome-optics){position:relative;z-index:1}
body.prime-v2 [data-prime-prismatic-chrome="true"]>.prime-prismatic-chrome-optics{
  position:absolute!important;inset:0!important;display:block!important;
  pointer-events:none!important;box-sizing:border-box!important;z-index:0!important;
  border-radius:inherit!important;border:1px solid rgba(225,243,252,.32)!important;
  background:none!important;box-shadow:none!important;opacity:1!important;
  backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  mix-blend-mode:normal!important;filter:none!important;
  transform:none!important;animation:none!important;transition:none!important;
  contain:paint;
}
/* Thin rim only. Linear gradient pigments are confined to bevel pixels,
   with their RGB exit points offset using wavelength-specific Snell angles.
   Mask excludes card centers, so text and imagery are not tinted. */
body.prime-v2 [data-prime-prismatic-chrome="true"]>.prime-prismatic-chrome-optics::before{
  content:""!important;position:absolute!important;inset:0!important;
  box-sizing:border-box!important;padding:3px!important;border-radius:inherit!important;
  pointer-events:none!important;
  background:
    radial-gradient(ellipse 44% 42% at calc(var(--prime-prismatic-pose-x,50%) + var(--prime-crystal-red-offset,0px)) var(--prime-prismatic-pose-y,43%),rgba(255,174,146,.78),transparent 72%),
    radial-gradient(ellipse 44% 42% at calc(var(--prime-prismatic-pose-x,50%) + var(--prime-crystal-blue-offset,0px)) var(--prime-prismatic-pose-y,43%),rgba(130,191,255,.75),transparent 72%),
    radial-gradient(ellipse 46% 44% at var(--prime-prismatic-pose-x,50%) var(--prime-prismatic-pose-y,43%),rgba(255,255,255,.95),rgba(235,248,255,.30) 30%,transparent 72%)!important;
  background-blend-mode:screen!important;
  -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0)!important;
  -webkit-mask-composite:xor!important;
  mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0)!important;
  mask-composite:exclude!important;
  opacity:var(--prime-crystal-rim-opacity,.32)!important;
  mix-blend-mode:screen!important;filter:none!important;animation:none!important;
}
/* Fresnel lobe: just one very small moving specular highlight, not a
   diagonal reflection drawn across the full glass. */
body.prime-v2 [data-prime-prismatic-chrome="true"]>.prime-prismatic-chrome-optics::after{
  content:""!important;position:absolute!important;inset:0!important;
  pointer-events:none!important;border-radius:inherit!important;
  background:radial-gradient(ellipse 13% 9% at var(--prime-prismatic-pose-x,50%) var(--prime-prismatic-pose-y,43%),rgba(255,255,255,.83),rgba(217,242,255,.18) 35%,transparent 74%)!important;
  opacity:var(--prime-crystal-specular-opacity,.22)!important;
  mix-blend-mode:screen!important;filter:none!important;animation:none!important;
}
/* Replace old source-skin static five-band/full-surface prism paint, while
   preserving image pixels on Page 04 and the publication cover. */
html body.prime-v2 [data-prime-prismatic-surface="true"]:not(.prime-deck-bubble-loop)::before,
html body.prime-v2 #primeCommandDeck[data-prime-prismatic-surface="true"]::before,
html body.prime-v2 #main[data-app-shell] #portfolio .page04-work[data-active="true"]>.page04-work-bezel::before,
html body.prime-v2 #main[data-app-shell] #book .pc-book-mark.pc-book-cover::before{
  background:radial-gradient(ellipse 15% 10% at var(--prime-prismatic-pose-x,50%) var(--prime-prismatic-pose-y,43%),rgba(255,255,255,.62),rgba(238,251,255,.16) 32%,transparent 76%)!important;
  background-size:100% 100%!important;background-blend-mode:normal!important;
  mix-blend-mode:soft-light!important;filter:none!important;
  opacity:var(--prime-crystal-specular-opacity,.22)!important;
  animation:none!important;transform:none!important;
}
html body.prime-v2 [data-prime-prismatic-surface="true"]:not(.prime-deck-bubble-loop)::after,
html body.prime-v2 #primeCommandDeck[data-prime-prismatic-surface="true"]::after,
html body.prime-v2 #main[data-app-shell] #portfolio .page04-work[data-active="true"]>.page04-work-bezel::after,
html body.prime-v2 #main[data-app-shell] #book .pc-book-mark.pc-book-cover::after{
  box-sizing:border-box!important;border-radius:inherit!important;
  background:
    radial-gradient(ellipse 45% 44% at calc(var(--prime-prismatic-pose-x,50%) + var(--prime-crystal-red-offset,0px)) var(--prime-prismatic-pose-y,43%),rgba(255,181,143,.32),transparent 75%),
    radial-gradient(ellipse 45% 44% at calc(var(--prime-prismatic-pose-x,50%) + var(--prime-crystal-blue-offset,0px)) var(--prime-prismatic-pose-y,43%),rgba(130,190,255,.36),transparent 75%)!important;
  background-blend-mode:screen!important;mix-blend-mode:screen!important;
  opacity:var(--prime-crystal-rim-opacity,.32)!important;
  filter:none!important;animation:none!important;transform:none!important;
  border:1px solid rgba(225,243,252,.28)!important;
  box-shadow:inset 0 1px 0 rgba(247,253,255,.28),inset 0 -1px 0 rgba(176,221,243,.12)!important;
}
html[data-prime-performance-mode="light"]{--prime-crystal-rim-opacity:.18;--prime-crystal-specular-opacity:.11}
@media(prefers-reduced-motion:reduce){
  body.prime-v2 .prime-prismatic-chrome-optics::after{display:none!important}
}
@media(forced-colors:active){
  body.prime-v2 .prime-prismatic-chrome-optics{display:none!important}
}


/* PRISMATIC // CRYSTAL VISIBILITY CONTRACT r8
   Facet normals give a crystalline response even at rest. The source raster
   never changes, and the coat never receives geometric Spatial transforms.
   Opaque paint stays strictly on the frame and thin directional highlights. */
html body.prime-v2 [data-prime-prismatic-chrome="true"]>.prime-prismatic-chrome-optics{
  border:1px solid rgba(231,247,255,.50)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.42),
    inset 1px 0 0 rgba(207,232,247,.22),
    inset -1px 0 0 rgba(109,169,215,.17),
    inset 0 -1px 0 rgba(4,18,31,.34),
    0 0 0 1px rgba(192,227,245,.045)!important;
}
/* Facet exits: blue and red are offset separately by the existing Cauchy
   computation, and the clear-white Fresnel stripe follows the same origin. */
html body.prime-v2 [data-prime-prismatic-chrome="true"]>.prime-prismatic-chrome-optics::before{
  padding:4px!important;
  background:
    radial-gradient(ellipse 70% 58% at calc(var(--prime-prismatic-pose-x,50%) + var(--prime-crystal-red-offset,0px)) var(--prime-prismatic-pose-y,43%),
       rgba(255,194,178,.94),rgba(255,194,178,.35) 24%,transparent 64%),
    radial-gradient(ellipse 72% 60% at calc(var(--prime-prismatic-pose-x,50%) + var(--prime-crystal-blue-offset,0px)) var(--prime-prismatic-pose-y,43%),
       rgba(165,212,255,.94),rgba(165,212,255,.30) 27%,transparent 65%),
    conic-gradient(from calc(var(--prime-prismatic-pose-angle,118deg) - 34deg) at var(--prime-prismatic-pose-x,50%) var(--prime-prismatic-pose-y,43%),
       rgba(248,255,255,.96) 0deg,transparent 27deg,rgba(190,235,255,.32) 61deg,transparent 96deg,
       rgba(253,255,255,.80) 154deg,transparent 191deg,rgba(204,238,255,.45) 263deg,transparent 302deg,rgba(248,255,255,.96) 360deg),
    linear-gradient(148deg,rgba(255,255,255,.93) 0%,rgba(214,243,255,.34) 12%,transparent 32% 74%,rgba(158,209,246,.40) 91%,rgba(255,255,255,.72) 100%)!important;
  background-blend-mode:screen!important;
  opacity:var(--prime-crystal-rim-opacity,.68)!important;
}
/* A visible set of narrow specular planes, rather than a large diffuse
   reflection that would bleach text or comic artwork. Static cost: gradients. */
html body.prime-v2 [data-prime-prismatic-chrome="true"]>.prime-prismatic-chrome-optics::after{
  background:
    radial-gradient(ellipse 17% 12% at var(--prime-prismatic-pose-x,50%) var(--prime-prismatic-pose-y,43%),
       rgba(255,255,255,1) 0%,rgba(249,254,255,.80) 12%,rgba(206,232,250,.20) 38%,transparent 76%),
    conic-gradient(from calc(var(--prime-prismatic-pose-angle,118deg) - 20deg) at var(--prime-prismatic-pose-x,50%) var(--prime-prismatic-pose-y,43%),
       transparent 0deg 35deg,rgba(240,252,255,.16) 43deg,transparent 52deg 110deg,
       rgba(182,222,253,.16) 116deg,transparent 125deg 225deg,rgba(255,255,255,.13) 233deg,transparent 245deg 360deg),
    linear-gradient(133deg,transparent 0 17%,rgba(244,254,255,.11) 17.5%,transparent 19% 51%,
       rgba(191,229,253,.075) 51.5%,transparent 53% 100%),
    linear-gradient(38deg,transparent 0 23%,rgba(245,252,255,.09) 23.5%,transparent 25% 71%,
       rgba(216,243,255,.07) 71.5%,transparent 73% 100%)!important;
  background-blend-mode:screen!important;
  opacity:var(--prime-crystal-specular-opacity,.44)!important;
}
/* Keep the user-requested flat page backing behind screens, but let its
   perimeter catch light. There is no full-page backdrop blur or 3D rotation. */
html body.prime-v2 #main[data-app-shell]>.prime-page-backing-slab[data-prime-prismatic-chrome="true"]{
  --prime-crystal-rim-opacity:.74;
  --prime-crystal-specular-opacity:.48;
}
html body.prime-v2 #main[data-app-shell]>.prime-page-backing-slab[data-prime-prismatic-chrome="true"]>.prime-prismatic-chrome-optics::after{
  background:
    radial-gradient(ellipse 16% 11% at var(--prime-prismatic-pose-x,50%) var(--prime-prismatic-pose-y,43%),
      rgba(255,255,255,.96),rgba(224,244,255,.16) 36%,transparent 76%)!important;
}
/* Canonical Prismatic surfaces remain readable in 2D too. Spatial ON
   increases their dynamic light response; it is not an ON/OFF material gate. */
html body.prime-v2 #primeCommandDeck[data-prime-prismatic-surface="true"]:not(.prime-deck-bubble-loop)::before{
  opacity:clamp(.32,var(--prime-crystal-specular-opacity,.44),.64)!important;
}
html body.prime-v2 #primeCommandDeck[data-prime-prismatic-surface="true"]:not(.prime-deck-bubble-loop)::after{
  opacity:clamp(.38,var(--prime-crystal-rim-opacity,.68),.76)!important;
}
/* Page 04 remains art-first: facets appear on its frame rather than across
   the photograph. Covers keep the existing low-wash foil response. */
html body.prime-v2 #main[data-app-shell] #portfolio .page04-work[data-active="true"]>.page04-work-bezel::after{
  border:1px solid rgba(243,252,255,.70)!important;
  box-shadow:inset 0 1px rgba(255,255,255,.53),inset 1px 0 rgba(220,246,255,.36),
             inset -1px 0 rgba(169,202,252,.25),inset 0 -1px rgba(5,17,29,.34)!important;
  opacity:clamp(.40,var(--prime-crystal-rim-opacity,.68),.72)!important;
}
@media (prefers-reduced-transparency:reduce){
  html body.prime-v2 [data-prime-prismatic-chrome="true"]>.prime-prismatic-chrome-optics::after{
    opacity:.26!important;
  }
}
@media (forced-colors:active){
  html body.prime-v2 [data-prime-prismatic-chrome="true"]>.prime-prismatic-chrome-optics{display:none!important}
}

/* ACTUATOR // RADIAL-MACHINED METALLIC BOOK FOIL r9
   Page 06 in-page book cover only. Preserve one original cover raster.
   Replaces the generic r8 micro-glint on this one surface, without changing
   Page 04 photos, comic-reader covers, frame geometry, or Spatial Z pose.
   The metal grain blends with ink using soft-light, not opaque white paint. */
html body.prime-v2 #main[data-app-shell] #book .pc-book-mark.pc-book-cover{
  --prime-cover-metal-grain:.95;
  --prime-cover-metal-specular:.80;
}
html body.prime-v2 #main[data-app-shell] #book .pc-book-mark.pc-book-cover::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  display:block!important;
  z-index:6!important;
  border:0!important;
  border-radius:inherit!important;
  pointer-events:none!important;
  background:
    /* Lathed concentric grooves, subpixel-to-pixel alternating silver/dark. */
    repeating-radial-gradient(circle at 50% 49%,
      rgba(248,252,255,.24) 0 .46px,
      rgba(19,29,42,.17) .7px 1.05px,
      transparent 1.3px 3.6px),
    /* Fine directional brushed rays: radial, not a horizontal scratch mask. */
    repeating-conic-gradient(from 13deg at 50% 49%,
      rgba(251,254,255,.18) 0deg .24deg,
      rgba(10,20,29,.17) .28deg .46deg,
      transparent .56deg 2.45deg),
    /* Broad angular anisotropy provides silver-metal body and specular rolloff. */
    conic-gradient(from 22deg at 50% 49%,
      rgba(247,252,255,.71) 0deg,
      rgba(35,48,59,.43) 22deg,
      rgba(247,250,255,.79) 46deg,
      rgba(17,28,39,.52) 83deg,
      rgba(194,212,230,.57) 123deg,
      rgba(32,45,58,.40) 169deg,
      rgba(242,249,255,.77) 209deg,
      rgba(13,23,34,.48) 254deg,
      rgba(220,236,248,.69) 305deg,
      rgba(35,48,60,.38) 337deg,
      rgba(247,252,255,.71) 360deg),
    /* Polar bands break up the flat gloss without recoloring the original art. */
    radial-gradient(ellipse 112% 106% at 50% 49%,
      rgba(233,244,252,.17) 0 11%,
      rgba(29,43,59,.20) 23%,
      rgba(226,240,249,.23) 40%,
      rgba(27,37,49,.24) 61%,
      rgba(219,235,247,.19) 78%,
      transparent 100%)!important;
  background-size:100% 100%!important;
  background-position:center!important;
  background-repeat:no-repeat!important;
  background-blend-mode:soft-light,overlay,soft-light,normal!important;
  mix-blend-mode:soft-light!important;
  opacity:var(--prime-cover-metal-grain,.95)!important;
  filter:none!important;
  transform:none!important;
  animation:none!important;
  will-change:auto!important;
}
/* A few tight real-light catches: strong peaks but tiny coverage. No pale
   broad highlight field, vignette wash, duplicate cover or backdrop filter. */
html body.prime-v2 #main[data-app-shell] #book .pc-book-mark.pc-book-cover::after{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  display:block!important;
  z-index:7!important;
  border:1px solid rgba(236,247,255,.43)!important;
  border-radius:inherit!important;
  pointer-events:none!important;
  background:
    /* The moving optical lobe is narrow; the radial brushing above stays cached. */
    radial-gradient(ellipse 8% 4% at var(--prime-prismatic-pose-x,50%) var(--prime-prismatic-pose-y,43%),
      rgba(255,255,255,1) 0 8%,
      rgba(251,254,255,.92) 17%,
      rgba(214,238,251,.32) 34%,
      transparent 62%),
    radial-gradient(ellipse 25% 2.3% at calc(var(--prime-prismatic-pose-x,50%) - 6%) calc(var(--prime-prismatic-pose-y,43%) + 6%),
      rgba(255,255,255,.92),rgba(227,245,255,.24) 30%,transparent 72%),
    radial-gradient(ellipse 2.8% 19% at calc(var(--prime-prismatic-pose-x,50%) + 8%) calc(var(--prime-prismatic-pose-y,43%) - 7%),
      rgba(250,253,255,.72),rgba(219,239,252,.12) 37%,transparent 73%)!important;
  background-blend-mode:screen,screen,screen!important;
  mix-blend-mode:screen!important;
  opacity:var(--prime-cover-metal-specular,.66)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.72),
    inset 1px 0 0 rgba(207,234,252,.40),
    inset -1px 0 0 rgba(134,172,197,.18),
    inset 0 -1px 0 rgba(5,13,25,.38)!important;
  filter:none!important;
  transform:none!important;
  animation:none!important;
  will-change:auto!important;
}
html[data-prime-performance-mode="light"] body.prime-v2 #main[data-app-shell] #book .pc-book-mark.pc-book-cover{
  --prime-cover-metal-grain:.78;
  --prime-cover-metal-specular:.52;
}
@media(forced-colors:active){
  html body.prime-v2 #main[data-app-shell] #book .pc-book-mark.pc-book-cover::before,
  html body.prime-v2 #main[data-app-shell] #book .pc-book-mark.pc-book-cover::after{
    display:none!important;
  }
}

/* PRIME HARD-CRYSTAL HIGH-GLOSS r11 | dielectric facet polish.
   Compact specular peaks and bright cut edges replace broad milkiness.
   One existing CSS optical coat; preserve comic/photo media and all hit tests. */
html body.prime-v2 [data-prime-prismatic-chrome="true"]>.prime-prismatic-chrome-optics{
  border-color:rgba(240,253,255,.70)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.91),
    inset 1px 0 0 rgba(228,251,255,.44),
    inset -1px 0 0 rgba(141,209,251,.22),
    inset 0 -1px 0 rgba(4,18,31,.32),
    0 0 0 1px rgba(192,227,245,.055)!important;
}
html body.prime-v2 [data-prime-prismatic-chrome="true"]>.prime-prismatic-chrome-optics::after{
  background:
    /* Glass Fresnel glints: two constrained highlights, no broad milky wash. */
    radial-gradient(ellipse 5% 3% at var(--prime-prismatic-pose-x,50%) var(--prime-prismatic-pose-y,43%),
      rgba(255,255,255,1) 0 12%,rgba(251,255,255,.96) 19%,rgba(207,241,255,.27) 38%,transparent 67%),
    radial-gradient(ellipse 17% 1.5% at calc(var(--prime-prismatic-pose-x,50%) - 5%) calc(var(--prime-prismatic-pose-y,43%) + 4%),
      rgba(255,255,255,.81),rgba(224,248,255,.19) 34%,transparent 72%)!important;
  background-blend-mode:screen!important;
  opacity:clamp(.68,calc(var(--prime-crystal-specular-opacity,.44) * 1.3),.88)!important;
}
html body.prime-v2 #main[data-app-shell]>.prime-page-backing-slab[data-prime-prismatic-chrome="true"]>.prime-prismatic-chrome-optics::after{
  background:
    radial-gradient(ellipse 7% 5% at var(--prime-prismatic-pose-x,50%) var(--prime-prismatic-pose-y,43%),
      rgba(255,255,255,.98) 0 12%,rgba(227,247,255,.28) 34%,transparent 75%)!important;
}
@media(prefers-reduced-motion:reduce){
  html body.prime-v2 [data-prime-prismatic-chrome="true"]>.prime-prismatic-chrome-optics::after{display:none!important}
}
@media(forced-colors:active){
  html body.prime-v2 [data-prime-prismatic-chrome="true"]>.prime-prismatic-chrome-optics{display:none!important}
}

/* VIEWPORT CHASSIS REMOVAL | do not turn the backing optical host into a
   second screen machine. Preserve its Three canvas and existing foil; no
   perimeter Fresnel strip, chrome tubing, shadow or top-layer edge. */
html body.prime-v2 #main[data-app-shell]>.prime-page-backing-slab[data-prime-prismatic-chrome="true"]{
  --prime-crystal-rim-opacity:0;
  --prime-crystal-specular-opacity:0;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
}
html body.prime-v2 #main[data-app-shell]>.prime-page-backing-slab
>.prime-prismatic-chrome-optics{
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  background:transparent!important;
}
html body.prime-v2 #main[data-app-shell]>.prime-page-backing-slab
>.prime-prismatic-chrome-optics::before,
html body.prime-v2 #main[data-app-shell]>.prime-page-backing-slab
>.prime-prismatic-chrome-optics::after{
  content:none!important;
  display:none!important;
}
