/* PRIME /prime-language-diorama.css */
/* Prime floating language globe optics // mounted nests retired r14.
   Retain the transparent Earth renderer and accessible globe without any
   additional optical flight lane, socket, clamp, material or page mutation. */
body.prime-v2 #primeLanguageSearch .prime-language-search__globe--solo{
  position:relative!important;
  border-radius:50%!important;
  transform-style:preserve-3d!important;
  isolation:auto!important;
}
body.prime-v2 #primeLanguageSearch .prime-language-search__globe--solo::before{
  content:"";
  position:absolute;inset:5px;
  border-radius:50%;
  background:radial-gradient(circle at 31% 25%,
    rgba(240,251,255,.32),rgba(124,213,246,.16) 27%,
    rgba(44,104,145,.15) 47%,rgba(4,23,47,.11) 73%,transparent 82%);
  transform:translateZ(-2px) scale(.9);
  pointer-events:none;
}
body.prime-v2 #primeLanguageSearch .prime-language-search__globe--solo::after{
  content:"";
  position:absolute;
  width:8px;height:14px;
  top:7px;left:11px;
  border-radius:50%;
  background:radial-gradient(ellipse,rgba(255,255,255,.69),transparent 72%);
  transform:translateZ(5px) rotate(-29deg);
  pointer-events:none;
}
body.prime-v2 #primeLanguageSearch .prime-language-search__globe--solo svg{
  position:relative;
  transform:translateZ(3px);
  backface-visibility:visible;
}
/* PRIME // Retina holographic world: only illuminated geometry contains pixels. */
body.prime-v2 #primeLanguageSearch .prime-language-search__globe[data-prime-holo-ready="true"]{
 position:relative!important;isolation:isolate;overflow:visible!important;
}
body.prime-v2 #primeLanguageSearch .prime-language-search__globe[data-prime-holo-ready="true"] .prime-language-globe-vector{
 opacity:0!important;
}
body.prime-v2 #primeLanguageSearch .prime-language-hologram-canvas{
 position:absolute!important;inset:0!important;width:100%!important;height:100%!important;
 display:block!important;pointer-events:none!important;background:transparent!important;border:0!important;
 image-rendering:auto;
 filter:drop-shadow(0 0 2px rgba(123,220,255,.58)) drop-shadow(0 0 4px rgba(42,174,242,.28));
 transform:translateZ(3px);
 backface-visibility:visible;
}




@media(prefers-reduced-motion:reduce){
 body.prime-v2 #primeLanguageSearch .prime-language-hologram-canvas{animation:none!important;transition:none!important}
}
@media(forced-colors:active){
 body.prime-v2 #primeLanguageSearch .prime-language-hologram-canvas{display:none!important}
 body.prime-v2 #primeLanguageSearch .prime-language-search__globe[data-prime-holo-ready="true"] .prime-language-globe-vector{opacity:1!important}
}
/* No faux solid lens: the globe exposes real transparent interior lattice cells. */
body.prime-v2 #primeLanguageSearch .prime-language-search__globe--solo[data-prime-holo-ready="true"]::before,
body.prime-v2 #primeLanguageSearch .prime-language-search__globe--solo[data-prime-holo-ready="true"]::after{
 content:none!important;display:none!important;
}

/* PRIME /prime-text-sfx.css */
/* Prime Creation | Text SFX v5
   20 bespoke mechanisms, not 20 variants of the same glitch.
   Original word remains in the DOM and is returned untouched.
   Three tiny vector planes max, no canvas, body transforms, sensors or animation loops.
*/
html body .prime-text-sfx-atom{
 position:relative!important;display:inline!important;white-space:nowrap!important;
 color:inherit!important;-webkit-text-fill-color:currentColor!important;
 text-shadow:inherit!important;background:none!important;box-shadow:none!important;
 isolation:auto!important;transform-style:preserve-3d!important;
}
html body .prime-text-sfx-atom>.prime-text-sfx-plane{
 position:absolute!important;inset:0!important;display:block!important;
 width:100%!important;height:100%!important;margin:0!important;padding:0!important;
 border:0!important;box-sizing:border-box!important;
 font:inherit!important;font-size:inherit!important;font-weight:inherit!important;
 font-style:inherit!important;line-height:inherit!important;letter-spacing:inherit!important;
 text-align:inherit!important;text-transform:inherit!important;text-decoration:none!important;
 white-space:nowrap!important;background:none!important;box-shadow:none!important;
 text-shadow:none!important;filter:none!important;mix-blend-mode:normal!important;
 pointer-events:none!important;user-select:none!important;backface-visibility:visible!important;
 transform-origin:50% 50%!important;opacity:0;
 color:var(--prime-text-sfx-ink,currentColor)!important;
 -webkit-text-fill-color:var(--prime-text-sfx-ink,currentColor)!important;
}
html body .prime-text-sfx-atom>.prime-text-sfx-plane-primary{z-index:1!important}
html body .prime-text-sfx-atom>.prime-text-sfx-plane-secondary{z-index:2!important}
html body .prime-text-sfx-atom>.prime-text-sfx-plane-tertiary{z-index:3!important}
html body .prime-text-sfx-atom .prime-text-sfx-glyph{
 position:relative!important;display:inline-block!important;
 transform-origin:center center!important;transform-style:preserve-3d!important;
 white-space:pre!important;will-change:auto!important;
}
html body .prime-text-sfx-atom[data-prime-text-sfx-morph="true"]{
 color:transparent!important;-webkit-text-fill-color:transparent!important;text-shadow:none!important;
}
html body .prime-text-sfx-atom[data-prime-text-sfx-morph="true"]>.prime-text-sfx-plane{
 color:var(--prime-text-sfx-ink,#e6e6e6)!important;
 -webkit-text-fill-color:var(--prime-text-sfx-ink,#e6e6e6)!important;
}
html body .prime-text-sfx-image-mask{
 position:absolute!important;inset:0!important;z-index:5!important;
 display:block!important;overflow:hidden!important;pointer-events:none!important;
 background:transparent!important;border:0!important;transform:none!important;filter:none!important;
}
html body .prime-text-sfx-image-mask>.prime-text-sfx-image-plane{
 display:block!important;position:absolute!important;inset:0!important;
 width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;
 object-fit:contain!important;object-position:center!important;pointer-events:none!important;
 border:0!important;margin:0!important;padding:0!important;filter:none!important;box-shadow:none!important;
 opacity:0;
}
html body .prime-text-sfx-image-mask>.prime-text-sfx-plane-primary{
 animation:prime-v5-wordmark 780ms steps(1,end) both!important;
}
html body .prime-text-sfx-image-mask>.prime-text-sfx-plane-secondary,
html body .prime-text-sfx-image-mask>.prime-text-sfx-plane-tertiary{display:none!important}
@keyframes prime-v5-wordmark{
 0%,100%{opacity:0;clip-path:inset(0);transform:none}
 18%{opacity:.42;clip-path:inset(43% 0 50% 0);transform:translateX(2px)}
 32%{opacity:.25;clip-path:inset(68% 0 27% 0);transform:translateX(-2px)}
 55%{opacity:.5;clip-path:inset(12% 0 79% 0);transform:translateX(1px)}
 82%{opacity:0;transform:none}
}
/* Native Spatial supplies the pose. SFX only adds under-2px local optical depth. */
html[data-prime-spatial-system-enabled="true"][data-prime-spatial-enabled="true"]
 .prime-text-sfx-atom>.prime-text-sfx-plane-primary{translate:0 0 .45px!important}
html[data-prime-spatial-system-enabled="true"][data-prime-spatial-enabled="true"]
 .prime-text-sfx-atom>.prime-text-sfx-plane-secondary{translate:0 0 1px!important}
html[data-prime-spatial-system-enabled="true"][data-prime-spatial-enabled="true"]
 .prime-text-sfx-atom>.prime-text-sfx-plane-tertiary{translate:0 0 1.6px!important}
html[data-prime-spatial-unified-suspended="true"] .prime-text-sfx-plane{animation-play-state:paused!important}
@media (prefers-reduced-motion:reduce),print{
 html body .prime-text-sfx-atom[data-prime-text-sfx-morph="true"]{
  color:inherit!important;-webkit-text-fill-color:currentColor!important;
 }
 html body .prime-text-sfx-atom>.prime-text-sfx-plane,
 html body .prime-text-sfx-image-mask{display:none!important;animation:none!important}
}

/* SINE-CARRIER | Traveling oscillation deforms individual glyph baselines */
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="sine-carrier"]>.prime-text-sfx-plane-primary{animation:prime-v5-sine-glow 810ms steps(1,end) both!important;}
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="sine-carrier"]>.prime-text-sfx-plane-primary>.prime-text-sfx-glyph{animation:prime-v5-sine-glyph 810ms ease-in-out both!important;animation-delay:calc(var(--sfx-i) * -87ms)!important;}
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="sine-carrier"]>.prime-text-sfx-plane-secondary{animation:prime-v5-sine-harmonic 810ms steps(1,end) both!important;}

@keyframes prime-v5-sine-glow{0%,100%{opacity:0}15%,70%{opacity:.28}85%{opacity:0}}
@keyframes prime-v5-sine-glyph{0%,100%{transform:translateY(0) rotate(0)}22%{transform:translateY(-2.8px) rotate(-3deg)}52%{transform:translateY(1.8px) rotate(2deg)}75%{transform:translateY(-1px) rotate(-1deg)}}
@keyframes prime-v5-sine-harmonic{0%,100%{opacity:0;transform:none;clip-path:inset(0)}30%{opacity:.24;transform:translateY(-2px);clip-path:inset(10% 0 74% 0)}55%{opacity:.25;transform:translateY(2px);clip-path:inset(70% 0 19% 0)}}


/* CODE-BREAK | Ciphertext mutation in two encoding passes, followed by restored glyphs */
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="code-break"]>.prime-text-sfx-plane-primary{animation:prime-v5-cipher-a 680ms steps(1,end) both!important;}
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="code-break"]>.prime-text-sfx-plane-secondary{animation:prime-v5-cipher-b 680ms steps(1,end) both!important;}
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="code-break"]>.prime-text-sfx-plane-tertiary{animation:prime-v5-cipher-c 680ms steps(1,end) both!important;}

@keyframes prime-v5-cipher-a{0%,100%{opacity:0}10%,26%{opacity:1}28%{opacity:0}35%{opacity:.6;transform:translateX(1.3px)}39%{opacity:0}}
@keyframes prime-v5-cipher-b{0%,100%{opacity:0}29%,50%{opacity:.94;letter-spacing:.05em}52%{opacity:0}58%{opacity:.38;transform:translateX(-1px)}62%{opacity:0}}
@keyframes prime-v5-cipher-c{0%,7%,64%{opacity:0}8%{opacity:.9}10%{opacity:0}67%,100%{opacity:1}}


/* EVENT-HORIZON | Gravitational lens crushes typography into a single axis */
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="event-horizon"]>.prime-text-sfx-plane-primary{animation:prime-v5-horizon-collapse 910ms cubic-bezier(.21,.04,.7,1) both!important;transform-origin:50% 50%!important;}
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="event-horizon"]>.prime-text-sfx-plane-secondary{animation:prime-v5-horizon-accretion 910ms steps(1,end) both!important;}

@keyframes prime-v5-horizon-collapse{0%,100%{opacity:0;transform:scale(1)}18%{opacity:.6;transform:scaleY(.85) scaleX(1.04)}41%{opacity:.95;transform:scaleY(.05) scaleX(1.32)}56%{opacity:.45;transform:scaleY(.02) scaleX(.38)}78%{opacity:.2;transform:scaleY(1.08) scaleX(.94)}}
@keyframes prime-v5-horizon-accretion{0%,100%{opacity:0;clip-path:inset(0)}25%{opacity:.35;clip-path:inset(48% 0 48% 0);transform:scaleX(1.4)}44%{opacity:.8;clip-path:inset(49% 0 49% 0);transform:scaleX(.2)}65%{opacity:.15;transform:scaleX(1.3);clip-path:inset(45% 0 45% 0)}}


/* PRISM-RIFT | Clean opposing polygonal prisms open on diagonal axes */
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="prism-rift"]>.prime-text-sfx-plane-primary{animation:prime-v5-prism-left 830ms cubic-bezier(.15,.77,.3,1) both!important;}
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="prism-rift"]>.prime-text-sfx-plane-secondary{animation:prime-v5-prism-right 830ms cubic-bezier(.15,.77,.3,1) both!important;}

@keyframes prime-v5-prism-left{0%,100%{opacity:0;transform:none}19%{opacity:.85;clip-path:polygon(0 0,75% 0,25% 100%,0 100%);transform:translate3d(-2px,-1px,1px) rotateZ(-2deg)}43%{opacity:.75;clip-path:polygon(0 0,65% 0,18% 100%,0 100%);transform:translate3d(-4px,-2px,3px) rotateZ(-4deg)}77%{opacity:.14;transform:none;clip-path:polygon(0 0,70% 0,30% 100%,0 100%)}}
@keyframes prime-v5-prism-right{0%,100%{opacity:0;transform:none}20%{opacity:.7;clip-path:polygon(75% 0,100% 0,100% 100%,25% 100%);transform:translate3d(2px,1px,-1px) rotateZ(2deg)}45%{opacity:.75;clip-path:polygon(65% 0,100% 0,100% 100%,18% 100%);transform:translate3d(4px,2px,-2px) rotateZ(4deg)}75%{opacity:.14;transform:none}}


/* PACKET-LOSS | Structured network dropout with entirely missing rectangular data chunks */
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="packet-loss"]>.prime-text-sfx-plane-primary{animation:prime-v5-packet-miss 650ms steps(1,end) both!important;}
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="packet-loss"]>.prime-text-sfx-plane-tertiary{animation:prime-v5-packet-resend 650ms steps(1,end) both!important;-webkit-mask-image:repeating-conic-gradient(#000 0 25%,transparent 0 50%)!important;mask-image:repeating-conic-gradient(#000 0 25%,transparent 0 50%)!important;-webkit-mask-size:8px 8px!important;mask-size:8px 8px!important;}

@keyframes prime-v5-packet-miss{0%,100%{opacity:0;transform:none;clip-path:inset(0)}12%{opacity:1;clip-path:polygon(0 0,29% 0,29% 35%,65% 35%,65% 60%,100% 60%,100% 100%,0 100%)}26%{opacity:0}40%{opacity:.9;clip-path:polygon(0 0,80% 0,80% 27%,42% 27%,42% 75%,100% 75%,100% 100%,0 100%);transform:translateX(2px)}54%{opacity:0}71%{opacity:.2;clip-path:inset(47% 0 47% 0)}}
@keyframes prime-v5-packet-resend{0%,100%{opacity:0}35%{opacity:.95;clip-path:inset(0 0 35% 0)}43%{opacity:.2}61%{opacity:.75;clip-path:inset(34% 0 0 0)}80%{opacity:0}}


/* QUANTUM-STEP | Independent glyph teleport between discretized XYZ coordinates */
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="quantum-step"]>.prime-text-sfx-plane-primary{animation:prime-v5-quantum-field 730ms steps(1,end) both!important;}
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="quantum-step"]>.prime-text-sfx-plane-primary>.prime-text-sfx-glyph{animation:prime-v5-quantum-glyph 730ms steps(1,end) both!important;animation-delay:calc(var(--sfx-i) * -61ms)!important;}
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="quantum-step"]>.prime-text-sfx-plane-secondary{animation:prime-v5-quantum-ghost 730ms steps(1,end) both!important;}

@keyframes prime-v5-quantum-field{0%,100%{opacity:0}12%,83%{opacity:.8}}
@keyframes prime-v5-quantum-glyph{0%,100%{transform:translate3d(0,0,0)}18%{transform:translate3d(4px,-2px,3px)}19%{transform:translate3d(-3px,2px,-4px)}37%{transform:translate3d(0,0,0)}56%{transform:translate3d(-2px,-3px,5px)}58%{transform:translate3d(2px,1px,-1px)}76%{transform:translate3d(0,0,0)}}
@keyframes prime-v5-quantum-ghost{0%,100%{opacity:0;transform:none;clip-path:inset(0)}22%{opacity:.18;transform:translate3d(-3px,1px,-2px);clip-path:inset(3% 0 64% 0)}63%{opacity:.22;transform:translate3d(2px,-1px,2px);clip-path:inset(68% 0 6% 0)}}


/* SCANLINE-TEAR | Single razor-thin CRT read line traverses the height, bending ink in transit */
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="scanline-tear"]>.prime-text-sfx-plane-primary{animation:prime-v5-crt-raster 760ms steps(1,end) both!important;}
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="scanline-tear"]>.prime-text-sfx-plane-secondary{animation:prime-v5-crt-counter 760ms steps(1,end) both!important;-webkit-mask-image:repeating-linear-gradient(0deg,#000 0 1px,transparent 1px 4px)!important;mask-image:repeating-linear-gradient(0deg,#000 0 1px,transparent 1px 4px)!important;}

@keyframes prime-v5-crt-raster{0%,100%{opacity:0;clip-path:inset(0)}9%{opacity:.8;clip-path:inset(1% 0 92% 0);transform:translateX(3px)}24%{clip-path:inset(23% 0 70% 0);transform:translateX(-4px)}40%{clip-path:inset(41% 0 52% 0);transform:translateX(2px)}61%{clip-path:inset(68% 0 24% 0);transform:translateX(-2px)}76%{opacity:.4;clip-path:inset(90% 0 5% 0);transform:none}}
@keyframes prime-v5-crt-counter{0%,100%{opacity:0}14%{opacity:.28;transform:translateX(-1px)}35%{opacity:.17;transform:translateX(1px)}67%{opacity:.38;transform:translateX(-2px)}82%{opacity:0}}


/* VOXEL-RISE | Coarse architectural pixel voxels assemble upward letter by letter */
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="voxel-rise"]>.prime-text-sfx-plane-primary{animation:prime-v5-voxel-layer 890ms steps(1,end) both!important;-webkit-mask-image:repeating-conic-gradient(#000 0 25%,transparent 0 50%)!important;mask-image:repeating-conic-gradient(#000 0 25%,transparent 0 50%)!important;-webkit-mask-size:5px 5px!important;mask-size:5px 5px!important;}
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="voxel-rise"]>.prime-text-sfx-plane-primary>.prime-text-sfx-glyph{animation:prime-v5-voxel-glyph 890ms steps(1,end) both!important;animation-delay:calc(var(--sfx-i) * 38ms)!important;}
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="voxel-rise"]>.prime-text-sfx-plane-secondary{animation:prime-v5-voxel-final 890ms steps(1,end) both!important;}

@keyframes prime-v5-voxel-layer{0%,100%{opacity:0}13%{opacity:.85}75%{opacity:.15}}
@keyframes prime-v5-voxel-glyph{0%,100%{transform:none}15%{transform:translateY(9px) scaleY(.48)}36%{transform:translateY(2px) scaleY(.74)}61%{transform:translateY(-2px) scaleY(1)}80%{transform:none}}
@keyframes prime-v5-voxel-final{0%,100%{opacity:0;clip-path:inset(0)}50%{opacity:.2;clip-path:inset(68% 0 0 0)}71%{opacity:.48;clip-path:inset(29% 0 0 0)}85%{opacity:0;clip-path:inset(0)}}


/* PHASE-INVERSION | Photographic negative of the original glyphs with temporal polarity switching */
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="phase-inversion"]>.prime-text-sfx-plane-primary{animation:prime-v5-polarity-field 700ms steps(1,end) both!important;mix-blend-mode:difference!important;color:#fff!important;-webkit-text-fill-color:#fff!important;}
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="phase-inversion"]>.prime-text-sfx-plane-secondary{animation:prime-v5-polarity-wipe 700ms steps(1,end) both!important;mix-blend-mode:difference!important;}

@keyframes prime-v5-polarity-field{0%,100%{opacity:0;filter:none}17%{opacity:.9;clip-path:inset(0);filter:invert(1)}28%{opacity:.05}37%{opacity:.8;clip-path:inset(25% 0 43% 0);filter:invert(0)}57%{opacity:.65;clip-path:inset(0);filter:invert(1)}72%{opacity:.15}}
@keyframes prime-v5-polarity-wipe{0%,100%{opacity:0;clip-path:inset(0)}21%{opacity:.8;clip-path:inset(2% 0 72% 0)}47%{opacity:.75;clip-path:inset(35% 0 34% 0)}68%{opacity:.8;clip-path:inset(78% 0 5% 0)}}


/* DATA-RAIN | Cipher glyphs fall downward in cascading vertical columns */
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="data-rain"]>.prime-text-sfx-plane-primary{animation:prime-v5-rain-code 880ms steps(1,end) both!important;}
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="data-rain"]>.prime-text-sfx-plane-primary>.prime-text-sfx-glyph{animation:prime-v5-rain-drop 880ms steps(1,end) both!important;animation-delay:calc(var(--sfx-i) * 39ms)!important;}
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="data-rain"]>.prime-text-sfx-plane-secondary{animation:prime-v5-rain-lag 880ms steps(1,end) both!important;}
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="data-rain"]>.prime-text-sfx-plane-tertiary{animation:prime-v5-rain-recover 880ms steps(1,end) both!important;}

@keyframes prime-v5-rain-code{0%,100%{opacity:0}7%,34%{opacity:.95}}
@keyframes prime-v5-rain-drop{0%{opacity:0;transform:translateY(-9px)}22%{opacity:1;transform:translateY(-1px)}40%{opacity:.1;transform:translateY(6px)}100%{opacity:0;transform:translateY(12px)}}
@keyframes prime-v5-rain-lag{0%,100%{opacity:0;transform:none}28%{opacity:.9;transform:translateY(-5px)}48%{opacity:.4;transform:translateY(6px)}62%{opacity:0;transform:translateY(10px)}}
@keyframes prime-v5-rain-recover{0%,54%{opacity:0}60%{opacity:.3;clip-path:inset(0 0 61% 0)}75%,100%{opacity:1;clip-path:inset(0)}}


/* RECURSIVE-ECHO | Shrinking self-similar nested copies converge from two different scales */
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="recursive-echo"]>.prime-text-sfx-plane-primary{animation:prime-v5-recursive-inner 940ms ease-in-out both!important;}
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="recursive-echo"]>.prime-text-sfx-plane-secondary{animation:prime-v5-recursive-outer 940ms ease-in-out both!important;}
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="recursive-echo"]>.prime-text-sfx-plane-tertiary{animation:prime-v5-recursive-third 940ms ease-in-out both!important;}

@keyframes prime-v5-recursive-inner{0%,100%{opacity:0;transform:scale(.75)}21%{opacity:.2;transform:scale(.77)}48%{opacity:.43;transform:scale(.9)}74%{opacity:.08;transform:scale(1)}}
@keyframes prime-v5-recursive-outer{0%,100%{opacity:0;transform:scale(1.22)}28%{opacity:.32;transform:scale(1.18)}59%{opacity:.46;transform:scale(1.07)}82%{opacity:.05;transform:scale(1)}}
@keyframes prime-v5-recursive-third{0%,100%{opacity:0;transform:scale(.55)}32%{opacity:.25;transform:scale(.65)}67%{opacity:.38;transform:scale(.97)}84%{opacity:0;transform:scale(1)}}


/* MAGNETIC-COLLAPSE | Electromagnetic attraction pulls the complete word toward its midline */
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="magnetic-collapse"]>.prime-text-sfx-plane-primary{animation:prime-v5-magnetic-in 820ms cubic-bezier(.64,.01,.21,1.05) both!important;transform-origin:50% 50%!important;}
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="magnetic-collapse"]>.prime-text-sfx-plane-secondary{animation:prime-v5-magnetic-after 820ms steps(1,end) both!important;}

@keyframes prime-v5-magnetic-in{0%,100%{opacity:0;transform:scaleX(1)}18%{opacity:.35;transform:scaleX(1.17)}38%{opacity:.8;transform:scaleX(.44)}49%{opacity:.99;transform:scaleX(.09)}59%{opacity:.5;transform:scaleX(.36)}76%{opacity:.21;transform:scaleX(1.11)}}
@keyframes prime-v5-magnetic-after{0%,100%{opacity:0;transform:none}38%{opacity:.4;transform:scaleX(1.4)}52%{opacity:.65;transform:scaleX(.27)}68%{opacity:.14;transform:scaleX(1.25)}}


/* INTERFERENCE-GRID | Overlapping subpixel interference lattice generates directional moiré */
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="interference-grid"]>.prime-text-sfx-plane-primary{animation:prime-v5-moire-a 720ms steps(1,end) both!important;-webkit-mask-image:repeating-linear-gradient(72deg,#000 0 1px,transparent 1px 3px)!important;mask-image:repeating-linear-gradient(72deg,#000 0 1px,transparent 1px 3px)!important;}
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="interference-grid"]>.prime-text-sfx-plane-secondary{animation:prime-v5-moire-b 720ms steps(1,end) both!important;-webkit-mask-image:repeating-linear-gradient(106deg,#000 0 1px,transparent 1px 3px)!important;mask-image:repeating-linear-gradient(106deg,#000 0 1px,transparent 1px 3px)!important;}

@keyframes prime-v5-moire-a{0%,100%{opacity:0;transform:none}12%{opacity:.64;transform:translateX(-.8px)}38%{opacity:.87;transform:translateX(1.4px) skewY(1.8deg)}59%{opacity:.72;transform:translateX(-1.4px) skewY(-1.8deg)}76%{opacity:.12;transform:none}}
@keyframes prime-v5-moire-b{0%,100%{opacity:0;transform:none}22%{opacity:.63;transform:translateY(1px)}45%{opacity:.8;transform:translateY(-1px) skewY(-1.6deg)}67%{opacity:.55;transform:translateY(1.4px) skewY(1.1deg)}87%{opacity:0}}


/* COMPRESSION-FRACTURE | Extreme horizontal compression produces broken letter slivers */
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="compression-fracture"]>.prime-text-sfx-plane-primary{animation:prime-v5-crush-left 790ms steps(1,end) both!important;transform-origin:12% 50%!important;}
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="compression-fracture"]>.prime-text-sfx-plane-secondary{animation:prime-v5-crush-right 790ms steps(1,end) both!important;transform-origin:88% 50%!important;}

@keyframes prime-v5-crush-left{0%,100%{opacity:0;transform:none}15%{opacity:.6;transform:scaleX(.9);clip-path:polygon(0 0,63% 0,34% 47%,71% 62%,33% 100%,0 100%)}37%{opacity:.98;transform:scaleX(.37) skewY(8deg);clip-path:polygon(0 0,70% 0,23% 44%,80% 58%,42% 100%,0 100%)}62%{opacity:.67;transform:scaleX(1.23) skewY(-3deg)}82%{opacity:.1}}
@keyframes prime-v5-crush-right{0%,100%{opacity:0;transform:none}17%{opacity:.7;clip-path:polygon(63% 0,100% 0,100% 100%,33% 100%,71% 62%,34% 47%);transform:scaleX(1.12)}42%{opacity:.98;transform:scaleX(.34) skewY(-9deg)}65%{opacity:.48;transform:scaleX(1.2) skewY(3deg)}80%{opacity:0}}


/* ORIGAMI-FOLD | Individual letters hinge backward into real perspective folds */
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="origami-fold"]>.prime-text-sfx-plane-primary{animation:prime-v5-origami-body 920ms steps(1,end) both!important;perspective:250px!important;}
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="origami-fold"]>.prime-text-sfx-plane-primary>.prime-text-sfx-glyph{animation:prime-v5-origami-letter 920ms cubic-bezier(.44,0,.36,1) both!important;animation-delay:calc(var(--sfx-i) * 32ms)!important;}
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="origami-fold"]>.prime-text-sfx-plane-secondary{animation:prime-v5-origami-edge 920ms steps(1,end) both!important;}

@keyframes prime-v5-origami-body{0%,100%{opacity:0}12%,78%{opacity:.83}}
@keyframes prime-v5-origami-letter{0%,100%{transform:rotateX(0deg) rotateY(0deg)}21%{transform:rotateX(55deg) rotateY(-14deg)}39%{transform:rotateX(-65deg) rotateY(17deg)}55%{transform:rotateX(94deg) rotateY(25deg)}78%{transform:rotateX(0deg) rotateY(0deg)}}
@keyframes prime-v5-origami-edge{0%,100%{opacity:0;clip-path:inset(0)}22%{opacity:.25;clip-path:inset(0 0 63% 0);transform:skewX(5deg)}52%{opacity:.46;clip-path:inset(61% 0 0 0);transform:skewX(-5deg)}75%{opacity:0}}


/* SONIC-RIPPLE | Expanding circular soundfronts refract glyphs in concentric rings */
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="sonic-ripple"]>.prime-text-sfx-plane-primary{animation:prime-v5-sonic-ring 860ms cubic-bezier(.1,.65,.3,1) both!important;}
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="sonic-ripple"]>.prime-text-sfx-plane-secondary{animation:prime-v5-sonic-back 860ms cubic-bezier(.1,.65,.3,1) both!important;}

@keyframes prime-v5-sonic-ring{0%,100%{opacity:0;clip-path:circle(0% at 50% 50%);transform:scale(1)}18%{opacity:.75;clip-path:circle(12% at 50% 50%);transform:scaleY(1.2)}37%{opacity:.82;clip-path:circle(32% at 50% 50%);transform:scaleX(1.09)}62%{opacity:.45;clip-path:circle(66% at 50% 50%);transform:scaleY(.96)}82%{opacity:.04;clip-path:circle(92% at 50% 50%);transform:scale(1)}}
@keyframes prime-v5-sonic-back{0%,100%{opacity:0;clip-path:circle(0% at 50% 50%)}35%{opacity:.3;clip-path:circle(5% at 50% 50%);transform:scaleY(.81)}61%{opacity:.54;clip-path:circle(39% at 50% 50%);transform:scaleX(1.16)}83%{opacity:.05;clip-path:circle(90% at 50% 50%)}}


/* PARITY-FLIP | Alternating letter faces reverse individually on the Y axis */
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="parity-flip"]>.prime-text-sfx-plane-primary{animation:prime-v5-parity-field 640ms steps(1,end) both!important;}
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="parity-flip"]>.prime-text-sfx-plane-primary>.prime-text-sfx-glyph{animation:prime-v5-parity-letter 640ms ease-in-out both!important;animation-delay:calc(var(--sfx-i) * 49ms)!important;}
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="parity-flip"]>.prime-text-sfx-plane-secondary{animation:prime-v5-parity-shadow 640ms steps(1,end) both!important;}

@keyframes prime-v5-parity-field{0%,100%{opacity:0}10%,77%{opacity:.85}}
@keyframes prime-v5-parity-letter{0%,100%{transform:rotateY(0deg)}22%{transform:rotateY(90deg)}39%{transform:rotateY(180deg)}55%{transform:rotateY(270deg)}70%{transform:rotateY(360deg)}}
@keyframes prime-v5-parity-shadow{0%,100%{opacity:0;transform:scaleX(1)}37%{opacity:.22;transform:scaleX(-1)}58%{opacity:.4;transform:scaleX(-1)}80%{opacity:0;transform:none}}


/* TIME-ECHO | Past/future ghost images arrive early and late, like a temporal exposure */
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="time-echo"]>.prime-text-sfx-plane-primary{animation:prime-v5-past-exposure 970ms ease-out both!important;}
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="time-echo"]>.prime-text-sfx-plane-secondary{animation:prime-v5-future-exposure 970ms ease-out both!important;}
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="time-echo"]>.prime-text-sfx-plane-tertiary{animation:prime-v5-present-exposure 970ms ease-out both!important;}

@keyframes prime-v5-past-exposure{0%,100%{opacity:0;transform:none}8%{opacity:.18;transform:translateX(-9px)}29%{opacity:.38;transform:translateX(-6px)}56%{opacity:.29;transform:translateX(-2px)}82%{opacity:.04;transform:none}}
@keyframes prime-v5-future-exposure{0%,100%{opacity:0;transform:none}20%{opacity:.31;transform:translateX(10px)}42%{opacity:.46;transform:translateX(7px)}67%{opacity:.23;transform:translateX(2px)}89%{opacity:0;transform:none}}
@keyframes prime-v5-present-exposure{0%,100%{opacity:0;transform:none}33%{opacity:.1;transform:translateX(0)}59%{opacity:.47;transform:translateX(0)}76%{opacity:.14}}


/* DEPTH-SHATTER | Shards separate on three Z depths, rotating as physical fragments */
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="depth-shatter"]>.prime-text-sfx-plane-primary{animation:prime-v5-shatter-near 860ms cubic-bezier(.2,.7,.2,1) both!important;}
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="depth-shatter"]>.prime-text-sfx-plane-secondary{animation:prime-v5-shatter-far 860ms cubic-bezier(.2,.7,.2,1) both!important;}
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="depth-shatter"]>.prime-text-sfx-plane-tertiary{animation:prime-v5-shatter-center 860ms cubic-bezier(.2,.7,.2,1) both!important;}

@keyframes prime-v5-shatter-near{0%,100%{opacity:0;transform:none}18%{opacity:.9;clip-path:polygon(0 0,56% 0,42% 44%,70% 86%,27% 100%,0 100%);transform:translate3d(-1px,-1px,2px) rotateY(-4deg)}43%{opacity:.83;transform:translate3d(-6px,-3px,9px) rotateY(-23deg)}75%{opacity:.1;transform:none}}
@keyframes prime-v5-shatter-far{0%,100%{opacity:0;transform:none}20%{opacity:.9;clip-path:polygon(56% 0,100% 0,100% 100%,27% 100%,70% 86%,42% 44%);transform:translate3d(1px,1px,-2px) rotateY(4deg)}44%{opacity:.8;transform:translate3d(6px,3px,-8px) rotateY(22deg)}74%{opacity:.1;transform:none}}
@keyframes prime-v5-shatter-center{0%,100%{opacity:0;transform:none}29%{opacity:.29;clip-path:polygon(30% 13%,72% 0,90% 63%,42% 98%,10% 57%)}48%{opacity:.62;transform:translate3d(1px,-4px,12px) rotateX(14deg)}77%{opacity:0;transform:none}}


/* NANITE-REPAIR | False cipher glyphs self-assemble into the original text, progressively */
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="nanite-repair"]>.prime-text-sfx-plane-primary{animation:prime-v5-nanite-unbuilt 990ms steps(1,end) both!important;-webkit-mask-image:repeating-conic-gradient(#000 0 25%,transparent 0 50%)!important;mask-image:repeating-conic-gradient(#000 0 25%,transparent 0 50%)!important;-webkit-mask-size:3px 3px!important;mask-size:3px 3px!important;}
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="nanite-repair"]>.prime-text-sfx-plane-secondary{animation:prime-v5-nanite-construct 990ms steps(1,end) both!important;}
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="nanite-repair"]>.prime-text-sfx-plane-secondary>.prime-text-sfx-glyph{animation:prime-v5-nanite-atom 990ms steps(1,end) both!important;animation-delay:calc(var(--sfx-i) * 28ms)!important;}
html body .prime-text-sfx-atom[data-prime-text-sfx-effect="nanite-repair"]>.prime-text-sfx-plane-tertiary{animation:prime-v5-nanite-restore 990ms steps(1,end) both!important;}

@keyframes prime-v5-nanite-unbuilt{0%,100%{opacity:0;transform:none}12%{opacity:.8;clip-path:inset(0)}31%{opacity:.72;transform:translateY(-3px);clip-path:inset(0 0 40% 0)}49%{opacity:.24;transform:translateY(-5px);clip-path:inset(0 0 82% 0)}57%{opacity:0}}
@keyframes prime-v5-nanite-construct{0%,100%{opacity:0}31%{opacity:.6}52%{opacity:.9}73%{opacity:0}}
@keyframes prime-v5-nanite-atom{0%{opacity:0;transform:translateY(6px) scale(.3)}29%{opacity:.6;transform:translateY(3px) scale(.6)}61%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:none}}
@keyframes prime-v5-nanite-restore{0%,47%{opacity:0;clip-path:inset(0 100% 0 0)}59%{opacity:.9;clip-path:inset(0 62% 0 0)}76%{opacity:1;clip-path:inset(0 0 0 0)}100%{opacity:1}}



/* ZERO-LAYOUT TEXT SFX v6: native text stays untouched.
   The only generated DOM is a paint-contained, fixed viewport glyph overlay.
   It cannot change any scrollport's height, inline wrapping, focus or anchor. */
html body .prime-text-sfx-atom.prime-text-sfx-viewport-word{
  position:fixed!important;
  display:block!important;
  inset:auto!important;
  left:0!important;
  top:0!important;
  width:var(--prime-text-sfx-width,0px)!important;
  height:var(--prime-text-sfx-height,0px)!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  transform:translate3d(var(--prime-text-sfx-x,0px),var(--prime-text-sfx-y,0px),0)!important;
  transform-origin:top left!important;
  contain:strict!important;
  overflow:hidden!important;
  isolation:isolate!important;
  z-index:2147482000!important;
  pointer-events:none!important;
  user-select:none!important;
  -webkit-user-select:none!important;
  touch-action:none!important;
  white-space:nowrap!important;
  color:transparent!important;
  -webkit-text-fill-color:transparent!important;
  text-shadow:none!important;
  background:transparent!important;
  box-shadow:none!important;
  filter:none!important;
  will-change:auto!important;
}
html body .prime-text-sfx-atom.prime-text-sfx-viewport-word>.prime-text-sfx-plane{
  transform-origin:50% 50%!important;
  pointer-events:none!important;
  max-width:100%!important;
  max-height:100%!important;
}
/* Prevent the old sub-2px Spatial translation from moving a fixed overlay
   into a second 3D coordinate system. Word effects still animate in 2D. */
html[data-prime-spatial-system-enabled="true"][data-prime-spatial-enabled="true"]
body .prime-text-sfx-viewport-word>.prime-text-sfx-plane{
  translate:none!important;
}

/* PRIME /prime-z-space-map.css */
/* PRIME Z SPACE // one real screen per panel, portrait + landscape r2.
   Portrait / landscape values arrive from PrimeZSpaceMap. PrimeSpatialField
   is the ONLY world transform authority. No media/video transforms here. */

/* Physical chassis and its descendants share a single parent coordinate system.
   Outer bezel is Z=0 and already drawn by original site skins/materials. */
html[data-prime-spatial-system-enabled="true"][data-prime-spatial-enabled="true"]
body.prime-v2 #main[data-app-shell]>.app-window [data-prime-z-screen="true"]{
 transform-style:preserve-3d!important;
 backface-visibility:visible!important;
}

/* Physical display recession uses the real, existing four-wall slab. The
   thickness is 6px portrait and 7.5px landscape at balanced scale.
   There is no second backing canvas or cloned glass pane. */
html[data-prime-spatial-system-enabled="true"][data-prime-spatial-enabled="true"]
body.prime-v2 #main[data-app-shell]>.app-window:not(#portfolio)
[data-prime-z-screen="true"][data-prime-spatial-slab="true"]{
 --prime-slab-depth:clamp(3px,calc(var(--prime-z-space-display,-18px) * -.35),7px);
}

/* PANEL DIORAMAS r8: all eligible screen descendants receive their OWN
   recess, calculated once per route by PrimeZSpaceMap. Local Z stacks
   recursively behind existing bezel Z=0. Native XY flow and page scroll
   remain untouched; Field-owned nodes continue using ONE canonical pose. */
html[data-prime-spatial-system-enabled="true"][data-prime-spatial-enabled="true"]
body.prime-v2 #main[data-app-shell]>.app-window:not(#top)
[data-prime-z-screen="true"] [data-prime-z-screen-content]:not([data-prime-spatial-field-child="true"]){
  translate:var(--prime-z2-safe-x,0px) var(--prime-z2-safe-y,0px)
    calc(var(--prime-panel-local-z,-1.5px) * var(--prime-panel-depth-gain,1) * var(--prime-spatial-morph-progress,1))!important;
  transform-style:preserve-3d!important;
  backface-visibility:visible!important;
}
/* PRIME Z2 PHYSICAL CONTENT FIT r32.
   Only a real native, independent DIRECT child can opt into the measured
   inward gutter. Its authored layout dimensions and tap semantics stay real.
   No clip/mask/contain/overflow is placed on the 3D parent or button. */
html[data-prime-spatial-system-enabled="true"][data-prime-spatial-enabled="true"]
body.prime-v2 #main[data-app-shell]>.app-window:not(#top):not(#portfolio)
[data-prime-z-screen="true"] > [data-prime-z2-content-fit="inside"]:not([data-prime-spatial-field-child="true"]){
  scale:var(--prime-z2-fit-scale,1)!important;
  transform-origin:50% 50%!important;
  transform-style:preserve-3d!important;
}
/* A nested screen is a new aperture, recessed inside the preceding screen.
   Its OWN children begin a fresh cascade backward from that new face. */
html[data-prime-spatial-system-enabled="true"][data-prime-spatial-enabled="true"]
body.prime-v2 #main[data-app-shell]>.app-window:not(#top)
[data-prime-z-screen="true"][data-prime-z-screen-level="nested"]:not([data-prime-spatial-field-child="true"]){
  translate:0px 0px calc(var(--prime-z-space-nested,-5px) * var(--prime-spatial-morph-progress,1))!important;
  transform-style:preserve-3d!important;
}
/* Original artwork on Page04 is a single rigid source, never sliced apart
   by a text/content-layout pass. Neighboring gallery chrome may cascade. */
html[data-prime-spatial-enabled="true"]
body.prime-v2 #portfolio .page04-work [data-prime-z-screen-content]{
  translate:none!important;
}
/* Preserve the screen surface as Z=0. No appearance change in 2D mode. */
html[data-prime-spatial-enabled="false"] body.prime-v2
[data-prime-z-screen-content]{--prime-panel-depth-gain:0}
/* Media pixels (including motion video beneath the panel) and page 04 art
   remain at their own real original DOM geometry. This stylesheet never
   adds a backdrop or another glass layer over them. */
html[data-prime-spatial-enabled="false"] body.prime-v2
[data-prime-z-screen="true"]{
 --prime-z-space-nested:0px;
 --prime-z-space-scenery:0px;
 --prime-z-space-accent:0px;
 --prime-z-space-structure:0px;
 --prime-z-space-type:0px;
 --prime-z-space-controls:0px;
}

/* PAGE 07 SCROLL COMPOSITOR SAFETY r1: native scroll containers remain
   untouched, while contained items still keep a modest recessed Z cascade.
   There is no scroll-position-driven element update. */
html[data-prime-performance-mode="light"][data-prime-spatial-enabled="true"],
html[data-prime-resource-tier="low"][data-prime-spatial-enabled="true"]{
  --prime-panel-depth-gain:1;
}
html[data-prime-spatial-enabled="true"] body.prime-v2
#sprite :is([data-prime-local-scroll],[data-prime-native-scroll-host],
.page07-native-scroll-host)[data-prime-z-screen-content]{
  translate:none!important;
  will-change:auto!important;
}


/* PANEL-ONLY WORLD POSE r13.
   Static page scaffolds keep authored XY. Never neutralize a Field descendant
   INSIDE an enrolled machine screen, or its inherited world Z is destroyed.
   Actual panel interiors are tier 5-15; Page 04 owns its separate rigid art. */
html[data-prime-spatial-system-enabled="true"][data-prime-spatial-enabled="true"]
body.prime-v2 #main[data-app-shell]>.app-window:not(#top):not(#portfolio)
[data-prime-spatial-field-child="true"]:not([data-prime-z-screen="true"]):not([data-prime-z-screen="true"] *){
  translate:none!important;
  rotate:none!important;
  transform:none!important;
  will-change:auto!important;
}
html[data-prime-spatial-system-enabled="true"][data-prime-spatial-enabled="true"]
body.prime-v2 #main[data-app-shell]>.app-window:not(#top):not(#portfolio)
[data-prime-z-screen="true"][data-prime-spatial-field-child="true"]{
  translate:
    clamp(-3px,var(--prime-spatial-field-x,0px),3px)
    clamp(-3px,var(--prime-spatial-field-y,0px),3px)
    clamp(-10px,var(--prime-spatial-field-z,0px),8px)!important;
  rotate:none!important;
  transform:rotateX(clamp(-4deg,var(--prime-spatial-field-pitch,0deg),4deg))
    rotateY(clamp(-4deg,var(--prime-spatial-field-yaw-y,0deg),4deg))!important;
  transform-style:preserve-3d!important;
  transform-origin:50% 50%!important;
  backface-visibility:visible!important;
}
/* Static page layout retains its original 2D transforms. This is achieved
   by declining Field enrollment, not by flattening a screen's ancestors. */
/* Keep high-fidelity glass over media, but don't allocate a permanently
   promoted compositing layer for every descendant. */
html[data-prime-spatial-system-enabled="true"][data-prime-spatial-enabled="true"]
body.prime-v2 #main[data-app-shell]>.app-window
[data-prime-z-screen-content]:not([data-prime-spatial-field-child="true"]){
  will-change:auto!important;
}

/* PRIME CLICKABLE BUTTONS BEHIND GLASS r30.
   Original native controls occupy screen-local Z -2 through -5, behind the
   transparent, pointer-inert optical glass. Their own XY click rectangles,
   listeners and keyboard semantics remain untouched. No proxy or overlay. */
html[data-prime-spatial-system-enabled="true"][data-prime-spatial-enabled="true"]
body.prime-v2 #main[data-app-shell]>.app-window:not(#top)
[data-prime-z-screen="true"]
:is(button,a[href],summary,input,textarea,select,[role="button"],[role="tab"],[role="switch"],[role="menuitem"],[role="combobox"])[data-prime-z-screen-content="controls"]:not([data-prime-spatial-field-child="true"]){
  pointer-events:auto!important;
  z-index:60!important;
}
/* The local solver and Field-owned controls share the same 2/3/4/5px
   rearward staircase. Their hardware glass never accepts pointer events.
   No global click capture, z-index takeover, parent mask or XY move. */
html[data-prime-spatial-system-enabled="true"][data-prime-spatial-enabled="true"]
body.prime-v2 #main[data-app-shell]>.app-window:not(#top):not(#portfolio)
[data-prime-z-screen="true"]
:is(button,a[href],summary,input,textarea,select,[role="button"],[role="tab"],[role="switch"],[role="menuitem"],[role="combobox"])[data-prime-z-screen-content="controls"][data-prime-spatial-field-child="true"]{
  translate:var(--prime-spatial-field-x,0px) var(--prime-spatial-field-y,0px) calc(var(--prime-spatial-field-z,0px) - 2px - var(--prime-panel-button-z-boost,0px))!important;
  z-index:60!important;
  pointer-events:auto!important;
}

/* Expanded Services popovers are native TOP LAYER views rather than
   recessed Z2 screens. The normal in-grid chamber fit cannot shrink
   their large readability-first typography once the card opens. */
html[data-prime-spatial-system-enabled="true"][data-prime-spatial-enabled="true"]
body.prime-v2 #main[data-app-shell]>#intro
.service-card:popover-open > [data-prime-z2-content-fit="inside"]{
  scale:1!important;
}

/* SMART CHILD Z2 // Layout writes absolute child depth, Field only owns
   the shared parent camera. Crisp type relief adds no duplicate texture,
   filter isolation, or new animated compositing layer. */
html[data-prime-spatial-system-enabled="true"][data-prime-spatial-enabled="true"]
body.prime-v2 #main[data-app-shell]>.app-window.is-prime-viewport-active:not(#top):not(#portfolio)
[data-prime-z-screen="true"]:not(.pc-book-cover)
:is(h1,h2,h3,h4,h5,h6,[role="heading"])[data-prime-smart-child-z2="foreground-type"]{
  text-shadow:0 1px 0 rgba(0,7,16,.66),0 0 11px color-mix(in srgb,currentColor 15%,transparent);
  transform-style:preserve-3d!important;
}
html[data-prime-spatial-system-enabled="true"][data-prime-spatial-enabled="true"]
body.prime-v2 #main[data-app-shell]>.app-window.is-prime-viewport-active:not(#top):not(#portfolio)
[data-prime-z-screen="true"]:not(.pc-book-cover)
[data-prime-smart-child-z2="type"]{
  text-shadow:0 1px 0 rgba(0,8,16,.35);
}

/* PRIME /prime-prismatic-sitewide.css */
/* 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;
}

/* PRIME /prime-three-crystal.css */
/* Shared Prime Prismatic optical coat: optional Three.js facets stay within
   the same real glass plane, behind existing accessible controls and content. */
html body.prime-v2 #primePageGlassSlab>.prime-prismatic-chrome-optics>canvas.prime-three-crystal-canvas{
  position:absolute!important;
  inset:0!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  border:0!important;
  border-radius:inherit!important;
  pointer-events:none!important;
  user-select:none!important;
  z-index:0!important;
  mix-blend-mode:screen!important;
  opacity:.92!important;
  contain:paint!important;
}
@media(forced-colors:active){
  html body.prime-v2 canvas.prime-three-crystal-canvas{display:none!important}
}
