/* Cinematic effects belong to the conceptual model, not the inspection report. */
.cipher-mark img { width: 42px; height: 58px; }
.assembly-logo { position: absolute; width: 42px; height: 58px; left: 50%; top: 50%; transform: translate(-50%,-50%); transform-style: preserve-3d; pointer-events: none; }
.assembly-frame { position: absolute; inset: 0; transform-style: preserve-3d; pointer-events: none; }
.assembly-particle { position: absolute; left: var(--particle-x); top: var(--particle-y); width: 2px; height: 2px; border-radius: 50%; background: #c7f4ff; box-shadow: 0 0 6px #54d2ff; opacity: 0; }
.assembly-particle:nth-child(3n) { background: #c0f6dd; box-shadow: 0 0 6px #6ff0ba; }
.assembly-frame .assembly-particle { width: 2.5px; height: 2.5px; }
[data-showcase="loop"][data-assembly-ready="true"] .assembly-particle { animation: particle-assemble 16s var(--particle-delay) cubic-bezier(.25,.65,.25,1) infinite; }
[data-showcase="loop"][data-assembly-ready="true"] .cipher-mark > img { animation: mark-materialize 16s ease-in-out infinite; }
.energy-rail { position: absolute; width: 1px; height: calc(152px * var(--loop-scale)); top: 16%; left: 8%; transform: rotateX(90deg) scaleY(.74); transform-origin: center top; background: linear-gradient(180deg,#7bdff021,#7bdff092 38%,#96c5ff73 76%,#7bdff021); opacity: .65; overflow: hidden; pointer-events: none; transition: transform 1.2s var(--motion-ease),opacity .7s; }
.rail-b { left: 92%; }
.rail-c { top: 89%; }
.rail-d { left: 92%; top: 89%; }
.rail-c,.rail-d { background: linear-gradient(180deg,#85e5b72b,#a1eec993 48%,#9acff573 76%,#85e5b72b); }
.energy-rail i { position: absolute; top: 0; left: 0; width: 100%; height: 27%; background: linear-gradient(180deg,transparent,#e4fbff 70%,#fff); animation: energy-flow 3.2s linear infinite; }
.rail-b i { animation-delay: -.8s; }
.rail-c i { animation-delay: -1.6s; }
.rail-d i { animation-delay: -2.4s; }
[data-spread="expanded"] .energy-rail { transform: rotateX(90deg) scaleY(1.1); }
[data-showcase="loop"] .energy-rail { animation: energy-span 16s cubic-bezier(.45,0,.3,1) infinite; }
.layer-viewer[data-focused="true"] .layer-model { animation: none; transform: translate(-50%,-46%) rotateX(22deg) rotateZ(-9deg) scale(1.06); transition: transform 1.1s cubic-bezier(.2,.8,.2,1); }
.layer-viewer[data-focused="true"] .model-plane { transform: translateZ(-44px) scale(.9); opacity: .055; }
.layer-viewer[data-focused="true"] .energy-rail { opacity: 0; }
.layer-viewer[data-focused="true"] .model-callout { opacity: .2; }
.layer-viewer[data-focused="true"] .assembly-logo,.layer-viewer[data-focused="true"] .assembly-frame { opacity: 0; }
.layer-viewer[data-focus="public"] .plane-base { transform: translateZ(52px); opacity: 1; box-shadow: 0 0 45px #58bcff25,0 20px 60px #0005; }
.layer-viewer[data-focus="encrypted"] .plane-cipher { transform: translateZ(52px); opacity: 1; box-shadow: 0 0 50px #66dbff35,0 20px 60px #0005; }
.layer-viewer[data-focus="limits"] .plane-limit { transform: translateZ(52px); opacity: 1; box-shadow: 0 0 45px #f4d5a315,0 20px 60px #0005; }
.layer-viewer[data-focus="limits"] .limit-word { opacity: 1; }
.layer-viewer[data-focused="true"] .orbital-system { opacity: .25; transition: opacity .8s; }
.orbital-system { transition: opacity .8s; }
html[data-motion="paused"] .assembly-particle { display: none; }
html[data-motion="paused"] .cipher-mark > img { opacity: .85; }
@keyframes particle-assemble {
  0%,100% { opacity: 0; transform: translate3d(var(--scatter-x),var(--scatter-y),var(--scatter-z)) scale(.35); }
  4% { opacity: .75; transform: translate3d(var(--scatter-x),var(--scatter-y),var(--scatter-z)) scale(.75); }
  15%,22% { opacity: 1; transform: translate3d(0,0,1px) scale(1); }
  29%,81% { opacity: 0; transform: translate3d(0,0,1px) scale(.8); }
  86% { opacity: 1; transform: translate3d(0,0,1px) scale(1); }
  95% { opacity: .45; transform: translate3d(var(--scatter-x),var(--scatter-y),var(--scatter-z)) scale(.5); }
}
@keyframes mark-materialize { 0%,14%,96%,100% { opacity: 0; } 26%,81% { opacity: .9; } 92% { opacity: 0; } }
@keyframes energy-flow { 0% { transform: translateY(-120%); opacity: 0; } 14% { opacity: 1; } 80% { opacity: .85; } 100% { transform: translateY(490%); opacity: 0; } }
@keyframes energy-span { 0%,8%,92%,100% { transform: rotateX(90deg) scaleY(.38); } 34%,66% { transform: rotateX(90deg) scaleY(1); } }
@media(max-width:740px) { .assembly-frame .assembly-particle { width: 2px; height: 2px; } .layer-viewer[data-focused="true"] .layer-model { transform: translate(-50%,-46%) rotateX(18deg) rotateZ(-7deg) scale(1.05); } }
@media(prefers-reduced-motion:reduce) { .assembly-particle { display: none; } .cipher-mark > img { opacity: .85; } }
