.page-home-v2 .freight-stage {
  position: relative;
  width: min(100%, 580px);
  aspect-ratio: 1 / .95;
  justify-self: end;
  overflow: hidden;
  border: 1px solid var(--line);
  background:
    linear-gradient(180deg, rgba(247, 198, 23, .035), transparent 30%),
    linear-gradient(135deg, rgba(255,255,255,.04), rgba(255,255,255,.01));
  box-shadow: inset 0 0 100px rgba(0,0,0,.58), 0 35px 90px rgba(0,0,0,.32);
  transform: perspective(1200px) rotateY(-3deg) rotateX(1deg);
}

.page-home-v2 .freight-grid {
  position: absolute;
  inset: 0;
  opacity: .26;
  background-image:
    linear-gradient(var(--line) 1px, transparent 1px),
    linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size: 44px 44px;
  mask-image: linear-gradient(to bottom, #000, transparent 96%);
}

.page-home-v2 .freight-route {
  position: absolute;
  top: 60px;
  right: 20px;
  left: 20px;
  height: 250px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.07);
  background:
    radial-gradient(circle at 14% 70%, rgba(247,198,23,.1), transparent 20%),
    linear-gradient(180deg, rgba(9,10,12,.35), rgba(9,10,12,.82));
}

.page-home-v2 .ocean-lanes {
  position: absolute;
  inset: 0;
  opacity: .7;
  background:
    repeating-linear-gradient(171deg, transparent 0 20px, rgba(247,198,23,.065) 21px 22px, transparent 23px 42px),
    repeating-linear-gradient(6deg, transparent 0 36px, rgba(255,255,255,.03) 37px 38px);
  animation: ocean-drift 12s linear infinite;
}

.page-home-v2 .ocean-lanes::before {
  position: absolute;
  right: 8%;
  bottom: 21%;
  left: 8%;
  height: 1px;
  background: repeating-linear-gradient(90deg, var(--yellow) 0 8px, transparent 8px 16px);
  box-shadow: 0 0 14px rgba(247,198,23,.2);
  content: "";
  opacity: .5;
}

.page-home-v2 .port-node {
  position: absolute;
  z-index: 4;
  display: grid;
  grid-template-columns: 16px 1fr;
  grid-template-rows: auto auto;
  align-items: center;
  column-gap: 8px;
  color: #c9ccd1;
  font: 8px/1.3 ui-monospace, monospace;
  letter-spacing: .08em;
}

.page-home-v2 .port-node > i {
  grid-row: 1 / 3;
  width: 10px;
  height: 10px;
  border: 2px solid var(--yellow);
  background: #101216;
  box-shadow: 0 0 0 5px rgba(247,198,23,.07), 0 0 15px rgba(247,198,23,.36);
  transform: rotate(45deg);
}

.page-home-v2 .port-node span { font-weight: 900; }
.page-home-v2 .port-node small { color: #666b73; font-size: 7px; letter-spacing: .13em; }
.page-home-v2 .port-origin { bottom: 31px; left: 18px; }
.page-home-v2 .port-customs { top: 38px; left: 48%; }
.page-home-v2 .port-destination { right: 18px; bottom: 31px; }
.page-home-v2 .port-customs > i { animation: checkpoint 2.1s ease-in-out infinite; }

.page-home-v2 .cargo-vessel {
  position: absolute;
  z-index: 3;
  bottom: 61px;
  left: 10%;
  width: 112px;
  height: 54px;
  filter: drop-shadow(0 12px 12px rgba(0,0,0,.55));
  animation: vessel-voyage 10s cubic-bezier(.45,.02,.55,.98) infinite;
}

.page-home-v2 .vessel-containers {
  position: absolute;
  left: 19px;
  bottom: 18px;
  display: grid;
  width: 72px;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
}

.page-home-v2 .vessel-containers i {
  height: 12px;
  border: 1px solid rgba(247,198,23,.72);
  background:
    repeating-linear-gradient(90deg, transparent 0 4px, rgba(0,0,0,.26) 4px 5px),
    #a67a00;
}

.page-home-v2 .cargo-vessel > span {
  position: absolute;
  right: 0;
  bottom: 5px;
  left: 0;
  height: 17px;
  background: linear-gradient(180deg, #d0d2d5, #62666d);
  clip-path: polygon(0 0, 100% 0, 85% 100%, 16% 100%);
}

.page-home-v2 .cargo-vessel::before {
  position: absolute;
  z-index: 2;
  right: 13px;
  bottom: 17px;
  width: 15px;
  height: 19px;
  border: 1px solid #cfd2d6;
  background: #30343a;
  content: "";
}

.page-home-v2 .cargo-vessel::after {
  position: absolute;
  right: -34px;
  bottom: -2px;
  width: 38px;
  height: 2px;
  background: linear-gradient(90deg, rgba(247,198,23,.42), transparent);
  content: "";
}

.page-home-v2 .route-progress {
  position: absolute;
  right: 10%;
  bottom: 29px;
  left: 10%;
  height: 2px;
  overflow: hidden;
  background: rgba(255,255,255,.06);
}

.page-home-v2 .route-progress::before {
  display: block;
  width: 68%;
  height: 100%;
  background: linear-gradient(90deg, var(--yellow), #e6b608);
  box-shadow: 0 0 15px rgba(247,198,23,.48);
  content: "";
  animation: route-load 5s ease-in-out infinite alternate;
}

.page-home-v2 .route-progress i {
  position: absolute;
  top: -3px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--yellow);
  box-shadow: 0 0 12px var(--yellow);
  animation: route-marker 5s ease-in-out infinite alternate;
}

.page-home-v2 .freight-manifest {
  position: absolute;
  top: 322px;
  right: 20px;
  left: 20px;
  display: grid;
  grid-template-columns: 1.2fr .8fr 1fr;
  border: 1px solid var(--line);
  background: rgba(9,10,12,.64);
}

.page-home-v2 .freight-manifest > div {
  position: relative;
  min-height: 65px;
  padding: 12px 14px;
}

.page-home-v2 .freight-manifest > div + div { border-left: 1px solid var(--line); }
.page-home-v2 .freight-manifest small { display: block; color: #656a72; font: 7px ui-monospace, monospace; letter-spacing: .14em; }
.page-home-v2 .freight-manifest strong { display: block; margin-top: 6px; color: #d2d4d8; font-size: 11px; }
.page-home-v2 .freight-manifest span { position: absolute; right: 12px; top: 26px; color: var(--yellow); font: 9px ui-monospace, monospace; }
.page-home-v2 .freight-manifest .status-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--yellow);
  box-shadow: 0 0 12px var(--yellow);
  animation: pulse 2s ease-in-out infinite;
}

.page-home-v2 .cargo-status {
  position: absolute;
  right: 20px;
  bottom: 18px;
  left: 20px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border: 1px solid var(--line);
  background: rgba(13,15,18,.9);
}

.page-home-v2 .status-item {
  position: relative;
  display: grid;
  grid-template-columns: 30px 1fr auto;
  align-items: center;
  gap: 8px;
  min-height: 88px;
  padding: 11px;
}

.page-home-v2 .status-item + .status-item { border-left: 1px solid var(--line); }
.page-home-v2 .status-item span small { display: block; color: #656a71; font-size: 7px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.page-home-v2 .status-item span strong { display: block; margin-top: 3px; color: #c8cbd0; font-size: 9px; }
.page-home-v2 .status-item > b { color: #6b7077; font: 8px ui-monospace, monospace; }
.page-home-v2 .status-complete > b, .page-home-v2 .status-active > b { color: var(--yellow); }
.page-home-v2 .status-active { background: linear-gradient(180deg, rgba(247,198,23,.07), transparent); }
.page-home-v2 .status-active::after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 2px;
  background: var(--yellow);
  box-shadow: 0 0 13px rgba(247,198,23,.6);
  content: "";
  animation: active-stage 2.4s ease-in-out infinite;
}

.page-home-v2 .mini-icon {
  position: relative;
  display: block;
  width: 28px;
  height: 28px;
  border: 1px solid rgba(247,198,23,.25);
}

.page-home-v2 .mini-icon::before,
.page-home-v2 .mini-icon::after { position: absolute; content: ""; }
.page-home-v2 .icon-doc::before { inset: 6px 7px; border: 1px solid var(--yellow); }
.page-home-v2 .icon-doc::after { left: 10px; top: 11px; width: 8px; height: 1px; background: var(--yellow); box-shadow: 0 4px 0 var(--yellow); }
.page-home-v2 .icon-customs::before { left: 7px; top: 6px; width: 12px; height: 13px; border: 1px solid var(--yellow); border-radius: 1px 1px 6px 6px; }
.page-home-v2 .icon-customs::after { left: 11px; top: 10px; width: 6px; height: 3px; border-bottom: 1px solid var(--yellow); border-left: 1px solid var(--yellow); transform: rotate(-45deg); }
.page-home-v2 .icon-container::before { inset: 8px 5px; border: 1px solid var(--yellow); background: repeating-linear-gradient(90deg, transparent 0 4px, rgba(247,198,23,.4) 4px 5px); }

.page-home-v2 .shipment-flow {
  position: relative;
  min-height: 142px;
  padding: 25px 15px 15px;
  overflow: hidden;
  background: linear-gradient(180deg, rgba(247,198,23,.035), rgba(255,255,255,.01));
}

.page-home-v2 .flow-line {
  position: absolute;
  top: 45px;
  right: 29px;
  left: 29px;
  height: 2px;
  background: rgba(255,255,255,.09);
}

.page-home-v2 .flow-line > span {
  display: block;
  width: 67%;
  height: 100%;
  background: var(--yellow);
  box-shadow: 0 0 12px rgba(247,198,23,.5);
}

.page-home-v2 .moving-container {
  position: absolute;
  top: -6px;
  left: 0;
  width: 13px;
  height: 12px;
  border: 1px solid var(--yellow);
  background: repeating-linear-gradient(90deg, #15171b 0 3px, #7e6209 3px 4px);
  animation: container-flow 5s ease-in-out infinite;
}

.page-home-v2 .shipment-flow ol {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 4px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.page-home-v2 .shipment-flow li { text-align: center; }
.page-home-v2 .shipment-flow li > span { display: block; margin-top: 11px; color: #62666d; font-size: 7px; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.page-home-v2 .shipment-flow .flow-done > span,
.page-home-v2 .shipment-flow .flow-active > span { color: #c8cbd0; }

.page-home-v2 .flow-icon {
  position: relative;
  display: block;
  width: 25px;
  height: 25px;
  margin: 8px auto 0;
  border: 1px solid #34383e;
  background: #111317;
}

.page-home-v2 .flow-done .flow-icon,
.page-home-v2 .flow-active .flow-icon { border-color: rgba(247,198,23,.58); }
.page-home-v2 .flow-active .flow-icon { box-shadow: 0 0 0 5px rgba(247,198,23,.06), 0 0 15px rgba(247,198,23,.18); animation: checkpoint 2s ease-in-out infinite; }
.page-home-v2 .flow-icon::before, .page-home-v2 .flow-icon::after { position: absolute; content: ""; }
.page-home-v2 .flow-doc::before { inset: 5px 6px; border: 1px solid var(--yellow); }
.page-home-v2 .flow-doc::after { left: 9px; top: 10px; width: 7px; height: 1px; background: var(--yellow); box-shadow: 0 3px 0 var(--yellow); }
.page-home-v2 .flow-customs::before { left: 6px; top: 5px; width: 11px; height: 12px; border: 1px solid var(--yellow); border-radius: 1px 1px 5px 5px; }
.page-home-v2 .flow-ship::before { left: 4px; bottom: 6px; width: 16px; height: 7px; background: var(--yellow); clip-path: polygon(0 0,100% 0,78% 100%,20% 100%); }
.page-home-v2 .flow-ship::after { left: 8px; bottom: 13px; width: 8px; height: 4px; border: 1px solid var(--yellow); }
.page-home-v2 .flow-delivery::before { left: 4px; top: 8px; width: 15px; height: 8px; border: 1px solid #555a62; }
.page-home-v2 .flow-delivery::after { left: 7px; top: 16px; width: 3px; height: 3px; border: 1px solid #555a62; border-radius: 50%; box-shadow: 8px 0 0 -1px #111317, 8px 0 0 0 #555a62; }

.page-home-v2 .service-lines-v2 a {
  grid-template-columns: 54px 48px 1fr auto;
  gap: 14px;
}

.page-home-v2 .service-lines-v2 a > strong { font-size: 14px; font-weight: 670; }
.page-home-v2 .service-icon {
  position: relative;
  display: block;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(247,198,23,.23);
  background: rgba(247,198,23,.025);
  font-style: normal;
  transition: border-color .25s, background .25s, transform .25s;
}

.page-home-v2 .service-lines-v2 a:hover .service-icon {
  border-color: rgba(247,198,23,.65);
  background: rgba(247,198,23,.08);
  transform: translateY(-2px);
}

.page-home-v2 .service-icon::before,
.page-home-v2 .service-icon::after,
.page-home-v2 .service-icon i::before,
.page-home-v2 .service-icon i::after { position: absolute; content: ""; }

.page-home-v2 .icon-import i,
.page-home-v2 .icon-export i {
  position: absolute;
  left: 12px;
  bottom: 8px;
  width: 18px;
  height: 11px;
  border: 1px solid var(--yellow);
  background: repeating-linear-gradient(90deg, transparent 0 4px, rgba(247,198,23,.35) 4px 5px);
}

.page-home-v2 .icon-import::before,
.page-home-v2 .icon-export::before { left: 20px; top: 7px; width: 1px; height: 13px; background: var(--yellow); }
.page-home-v2 .icon-import::after { left: 17px; top: 14px; width: 6px; height: 6px; border-right: 1px solid var(--yellow); border-bottom: 1px solid var(--yellow); transform: rotate(45deg); }
.page-home-v2 .icon-export::after { left: 17px; top: 7px; width: 6px; height: 6px; border-top: 1px solid var(--yellow); border-left: 1px solid var(--yellow); transform: rotate(45deg); }

.page-home-v2 .icon-route::before { left: 9px; top: 20px; width: 23px; height: 1px; background: var(--yellow); transform: rotate(-22deg); }
.page-home-v2 .icon-route::after { left: 8px; top: 23px; width: 5px; height: 5px; border: 1px solid var(--yellow); border-radius: 50%; box-shadow: 21px -8px 0 -1px #111317, 21px -8px 0 0 var(--yellow); }
.page-home-v2 .icon-route i::before { left: 19px; top: 16px; width: 4px; height: 4px; border-radius: 50%; background: var(--yellow); }

.page-home-v2 .icon-cargo::before { left: 9px; top: 11px; width: 10px; height: 8px; border: 1px solid var(--yellow); box-shadow: 12px 0 0 -1px #111317, 12px 0 0 0 var(--yellow), 6px 11px 0 -1px #111317, 6px 11px 0 0 var(--yellow); }
.page-home-v2 .icon-cargo::after { left: 12px; top: 14px; width: 4px; height: 1px; background: var(--yellow); box-shadow: 12px 0 var(--yellow), 6px 11px var(--yellow); }

.page-home-v2 .icon-license::before { left: 12px; top: 8px; width: 17px; height: 24px; border: 1px solid var(--yellow); }
.page-home-v2 .icon-license::after { left: 15px; top: 14px; width: 9px; height: 1px; background: var(--yellow); box-shadow: 0 4px 0 rgba(247,198,23,.65); }
.page-home-v2 .icon-license i::before { left: 18px; top: 23px; width: 7px; height: 3px; border-bottom: 1px solid var(--yellow); border-left: 1px solid var(--yellow); transform: rotate(-45deg); }

.page-home-v2 .icon-shield::before { left: 11px; top: 8px; width: 18px; height: 22px; border: 1px solid var(--yellow); border-radius: 2px 2px 10px 10px; }
.page-home-v2 .icon-shield::after { left: 17px; top: 15px; width: 8px; height: 4px; border-bottom: 1px solid var(--yellow); border-left: 1px solid var(--yellow); transform: rotate(-45deg); }

@keyframes ocean-drift {
  to { background-position: 120px 0, -80px 0; }
}

@keyframes vessel-voyage {
  0% { transform: translate(0, 2px); }
  45% { transform: translate(330px, -4px); }
  55% { transform: translate(330px, -4px); }
  100% { transform: translate(0, 2px); }
}

@keyframes route-load {
  from { width: 42%; }
  to { width: 68%; }
}

@keyframes route-marker {
  from { left: 41%; }
  to { left: 67%; }
}

@keyframes checkpoint {
  0%, 100% { box-shadow: 0 0 0 5px rgba(247,198,23,.05), 0 0 8px rgba(247,198,23,.2); }
  50% { box-shadow: 0 0 0 9px rgba(247,198,23,.09), 0 0 18px rgba(247,198,23,.55); }
}

@keyframes active-stage {
  0%,100% { opacity: .4; transform: scaleX(.35); transform-origin: left; }
  50% { opacity: 1; transform: scaleX(1); transform-origin: left; }
}

@keyframes container-flow {
  0%, 8% { left: 0; }
  48%, 58% { left: 66%; }
  92%, 100% { left: calc(100% - 13px); }
}

@media (max-width: 1120px) {
  .page-home-v2 .freight-stage { transform: none; }
}

@media (max-width: 900px) {
  .page-home-v2 .freight-stage { width: min(100%, 600px); justify-self: center; }
}

@media (max-width: 620px) {
  .page-home-v2 .freight-stage { aspect-ratio: .82; }
  .page-home-v2 .freight-route { height: 220px; }
  .page-home-v2 .cargo-vessel { animation-name: vessel-voyage-mobile; }
  .page-home-v2 .freight-manifest { top: 292px; grid-template-columns: 1fr 1fr; }
  .page-home-v2 .freight-manifest > div:nth-child(3) { display: none; }
  .page-home-v2 .cargo-status { grid-template-columns: 1fr; bottom: 14px; }
  .page-home-v2 .status-item { min-height: 48px; }
  .page-home-v2 .status-item + .status-item { border-top: 1px solid var(--line); border-left: 0; }
  .page-home-v2 .status-active::after { right: 0; bottom: 0; left: 0; }
  .page-home-v2 .service-lines-v2 a { grid-template-columns: 36px 42px 1fr auto; gap: 8px; }
  .page-home-v2 .service-lines-v2 a > strong { font-size: 12px; }
}

@keyframes vessel-voyage-mobile {
  0% { transform: translate(0, 2px) scale(.85); }
  45% { transform: translate(150px, -4px) scale(.85); }
  55% { transform: translate(150px, -4px) scale(.85); }
  100% { transform: translate(0, 2px) scale(.85); }
}

@media (prefers-reduced-motion: reduce) {
  .page-home-v2 .cargo-vessel { transform: translate(45%, 0); }
  .page-home-v2 .route-progress::before { width: 68%; }
  .page-home-v2 .route-progress i { left: 67%; }
}
