/* Broken sections are masked copies of the approved hull; the original image is untouched. */
.cwvVisual { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 6; overflow: visible; pointer-events: none; filter: drop-shadow(0 3px 3px #000a); }
.cwvActive .cwvLiveHull { visibility: hidden !important; }
.cwvActive :is(.carrierEffectsV6300,.fapUnderlight,.fapHullLighting,.carrierEngineOverlay,.thruster) { display: none !important; }
.cwvActive .fapVisual { animation: none !important; transform: none !important; }
.cwvFragment, .cwvFragmentPaint { position: absolute; inset: 0; width: 100%; height: 100%; }
.cwvFragment { transform-origin: 50% 52%; }
.cwvFragmentPaint {
  background: var(--cwv-image) center/100% 100% no-repeat;
  -webkit-mask: var(--cwv-mask) center/100% 100% no-repeat;
  mask: var(--cwv-mask) center/100% 100% no-repeat; mask-mode: alpha;
  filter: grayscale(1) brightness(.64) contrast(1.3);
}
.cwvFragmentPaint::after { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 32%,#000e 0 4%,transparent 15%),radial-gradient(ellipse at 43% 48%,#090707d9 0 5%,transparent 22%),radial-gradient(ellipse at 57% 70%,#000d 0 7%,transparent 23%),linear-gradient(115deg,#0003,transparent 43%,#0007); }
.cwvFragment[data-wreck-part="bow"] { clip-path: polygon(0 0,100% 0,100% 30%,62% 30%,55% 33%,47% 30%,40% 34%,0 31%); transform: translate(-1%,-2.4%) rotate(-3deg); }
.cwvFragment[data-wreck-part="port"] { clip-path: polygon(0 33%,39% 36%,47% 33%,48% 45%,44% 51%,48% 62%,42% 65%,0 63%); transform: translate(-3.8%,.6%) rotate(-5deg); }
.cwvFragment[data-wreck-part="starboard"] { clip-path: polygon(53% 35%,63% 32%,100% 32%,100% 65%,70% 68%,56% 64%,51% 55%,55% 48%); transform: translate(3.8%,1.2%) rotate(5deg); }
.cwvFragment[data-wreck-part="aft-port"] { clip-path: polygon(0 66%,41% 68%,49% 66%,47% 79%,49% 100%,0 100%); transform: translate(-2%,3.2%) rotate(-4deg); }
.cwvFragment[data-wreck-part="aft-starboard"] { clip-path: polygon(54% 68%,69% 71%,100% 68%,100% 100%,53% 100%,52% 80%); transform: translate(3%,3.2%) rotate(6deg); }
.cwvScars { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.cwvCrack { fill: none; stroke: #090a0c; stroke-width: 15; stroke-linejoin: bevel; }
.cwvHotSeam { fill: none; stroke: #b96536; stroke-width: 3.2; opacity: .62; }
.cwvDebris { position: absolute; inset: 0; }
.cwvDebris i { position: absolute; width: 3.5%; height: 1.7%; background: linear-gradient(140deg,#9c9d99,#34383b 38%,#0d1013 75%); clip-path: polygon(15% 0,100% 25%,66% 100%,0 67%); }
.cwvDebris i:nth-child(1) { left: 23%; top: 31%; transform: rotate(29deg); }
.cwvDebris i:nth-child(2) { left: 78%; top: 39%; transform: rotate(-39deg); }
.cwvDebris i:nth-child(3) { left: 8%; top: 61%; transform: rotate(67deg); width: 2.4%; }
.cwvDebris i:nth-child(4) { left: 86%; top: 76%; transform: rotate(18deg); }
.cwvDebris i:nth-child(5) { left: 35%; top: 101%; transform: rotate(-42deg); }
.cwvDebris i:nth-child(6) { left: 68%; top: 95%; transform: rotate(76deg); width: 2%; }
.cwvSmoke, .cwvEmbers { position: absolute; inset: 0; overflow: visible; }
.cwvSmoke i { position: absolute; left: 39%; top: 36%; width: 21%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(ellipse,#59606568,#20242848 40%,transparent 71%); filter: blur(2px); opacity: 0; animation: cwvSmokeRise 7.5s ease-out infinite; }
.cwvSmoke i:nth-child(2) { left: 48%; top: 62%; animation-delay: -2.7s; animation-duration: 8.5s; }
.cwvSmoke i:nth-child(3) { left: 36%; top: 48%; animation-delay: -5.2s; width: 17%; }
.cwvEmber { position: absolute; left: 46%; top: 43%; width: 1.1%; height: .8%; border-radius: 50%; background: #dd7b3c; box-shadow: 0 0 3px #d04b2b99; opacity: .3; animation: cwvEmberFade 4.6s ease-in-out infinite; }
.cwvEmber:nth-child(2) { left: 56%; top: 65%; animation-delay: -1.8s; }
.cwvEmber:nth-child(3) { left: 43%; top: 73%; animation-delay: -3.2s; width: .7%; }
.cwvGhost { position: absolute; width: 154px; height: 198px; transform: translate(-50%,-50%); pointer-events: none; z-index: 19; }
.cwvGhost[hidden] { display: none !important; }
[data-cwv-paused="true"] :is(.cwvSmoke i,.cwvEmber), .cwvActive[hidden] :is(.cwvSmoke i,.cwvEmber) { animation-play-state: paused !important; }
@keyframes cwvSmokeRise { 0% { opacity: 0; transform: translate(0,0) scale(.55); } 18% { opacity: .58; } 70% { opacity: .2; } 100% { opacity: 0; transform: translate(-20%,-110%) scale(1.65); } }
@keyframes cwvEmberFade { 0%,100% { opacity: .12; } 35% { opacity: .58; } 68% { opacity: .24; } }
@media (prefers-reduced-motion: reduce) {
  .cwvSmoke i, .cwvEmber { animation: none !important; }
  .cwvSmoke i { opacity: .13; }
  .cwvEmber { opacity: .26; }
}
