/* Local review: the Home index and three destination cards only. */
.home-index {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  padding-block: 0;
  border: 0;
  background: transparent;
}
.home-index::before, .home-index::after { display: none; }
.home-index-link {
  position: relative;
  min-width: 0;
  min-height: 90px;
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 18px 26px;
  text-decoration: none;
}
.home-index-link:first-child { padding-left: 0; }
.home-index-link:last-child { padding-right: 0; }
.home-index-link + .home-index-link::before {
  position: absolute;
  content: "";
  width: 1px;
  height: 24px;
  left: 0;
  background: linear-gradient(transparent, #ba8f424f, transparent);
}
.home-index .home-index-number { color: #e5bd62; font-size: .875rem; letter-spacing: .04em; }
.home-index .home-index-label { color: #f1eee7; font-size: .875rem; font-weight: 500; }
.home-index svg.home-index-icon { display: block; margin-left: auto; flex: 0 0 38px; width: 38px; height: 38px; overflow: visible; fill: none; stroke: none; filter: drop-shadow(0 2px 3px #b8862515); }
.home-index-link:focus-visible { outline: 2px solid #e5bd62; outline-offset: -4px; border-radius: 4px; }
.home-index-link:hover .home-index-label { color: #ffdf95; }

.home-portals.world-rows { gap: 24px; border: 0; }
.home-portals .home-portal:nth-child(n) {
  --portal-glow: #648ce020;
  --portal-edge: #b3c9e77a;
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  min-height: 480px;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 22px;
  background: radial-gradient(ellipse at 28% 0%, var(--portal-glow), transparent 62%) padding-box,
    linear-gradient(160deg, #171c26, #101219 48%, #13151d) padding-box,
    linear-gradient(145deg, var(--portal-edge), #454b6430 38%, #20243140 60%, #7e83934a) border-box;
  box-shadow: 0 22px 46px -34px #000, inset 0 1px 0 #f0f5ff0a;
  transition: border-color .24s, box-shadow .24s, transform .24s;
}
.home-portals .logistics-portal:nth-child(n) { --portal-glow: #8066be28; --portal-edge: #bab0e580; }
.home-portals .profile-portal:nth-child(n) { --portal-glow: #aab1da16; --portal-edge: #cad2e37a; }
.portal-number { position: absolute; top: 25px; left: 28px; z-index: 2; color: #b5c0dc; font-size: .8125rem; font-weight: 500; letter-spacing: .08em; }
.portal-art { position: relative; height: 264px; width: 100%; flex: 0 0 auto; overflow: hidden; }
.portal-art img { display: block; max-width: none; width: 100%; height: 100%; object-fit: cover; }
.creator-portal-art img { object-position: center 48%; }
.logistics-portal-art img { object-position: center 53%; }
.creator-portal-art, .logistics-portal-art { mask-image: linear-gradient(0deg, transparent, #000 17%, #000 86%, transparent); }
.profile-portal-art img { position: absolute; width: 105%; height: auto; left: -2.5%; top: -16%; -webkit-mask-image: linear-gradient(#000 69%, transparent 80%); mask-image: linear-gradient(#000 69%, transparent 80%); }
.profile-portal-art { mask-image: linear-gradient(0deg, transparent 1%, #000 24%, #000 84%, transparent 100%); }
.portal-art::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #121722, transparent 10%, transparent 90%, #12151c); opacity: .6; pointer-events: none; }
.portal-content { position: relative; display: flex; flex: 1; flex-direction: column; padding: 8px 28px 26px; }
.home-portals .home-portal h3 { font-family: 'Manrope', Arial, sans-serif; color: #f3f5fc; font-weight: 550; font-size: clamp(1.75rem, 2.6vw, 2.125rem); letter-spacing: -.045em; line-height: 1.2; margin: 0 0 15px; overflow-wrap: normal; }
.home-portals .home-portal p { color: #b8becd; font-size: 1rem; line-height: 1.7; margin: 0 0 24px; max-width: 335px; }
.portal-open { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 19px; border-top: 1px solid #525a7738; color: #d4ddf4; font-size: .875rem; font-weight: 600; }
.portal-open > svg { flex: 0 0 18px; width: 18px; height: 18px; }
@media (hover: hover) {
  .home-portals .home-portal:hover { filter: none; transform: translateY(-4px); box-shadow: 0 28px 46px -32px #000, inset 0 1px 0 #e3edff15; border-color: #8d9abb60; }
  .home-portal:hover .portal-open { color: #fff; }
}
@media (max-width: 1000px) and (min-width: 681px) {
  .home-portals.world-rows { gap: 16px; }
  .portal-number { left: 22px; }
  .portal-content { padding-inline: 22px; }
  .portal-art { height: 215px; }
  .home-portals .home-portal:nth-child(n) { min-height: 470px; }
  .home-index-link { gap: 12px; padding-inline: 18px; }
  .home-index svg.home-index-icon { flex-basis: 30px; width: 30px; height: 30px; }
}
@media (max-width: 680px) {
  .home-index { grid-template-columns: 1fr; gap: 0; padding-block: 5px; }
  .home-index::before, .home-index::after { left: 25px; right: 25px; }
  .home-index-link, .home-index-link:first-child, .home-index-link:last-child { min-height: 64px; padding: 12px 0; gap: 18px; }
  .home-index-link + .home-index-link::before { top: 0; left: 0; width: 100%; height: 1px; background: linear-gradient(90deg, #b68a3d22, #d2ab5766 78%, #b68a3d0d); }
  .home-index .home-index-label { font-size: .875rem; }
  .home-index svg.home-index-icon { flex-basis: 38px; width: 38px; height: 38px; }
  .home-portals.world-rows { gap: 22px; }
  .home-portals .home-portal:nth-child(n) { min-height: 0; border-radius: 20px; }
  .portal-art { height: clamp(230px, 65vw, 340px); }
  .portal-number { left: 25px; top: 23px; }
  .portal-content { padding: 4px 25px 25px; }
  .home-portals .home-portal h3 { font-size: 2rem; margin-bottom: 12px; }
  .home-portals .home-portal p { font-size: 1rem; max-width: 34ch; margin-bottom: 21px; }
  .portal-open { padding-top: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .home-portals .home-portal { transition: none; }
  .home-portals .home-portal:hover { transform: none; }
}
@media (forced-colors: active) {
  .home-portals .home-portal:nth-child(n) { border: 1px solid ButtonText; background: Canvas; box-shadow: none; }
  .portal-art { display: none; }
  .portal-content { padding-top: 64px; }
  .portal-number, .home-portals .home-portal h3, .home-portals .home-portal p, .portal-open,
  .home-index .home-index-number, .home-index .home-index-label { color: CanvasText; }
}
@media print {
  .home-portals .home-portal:nth-child(n) { background: transparent; box-shadow: none; border-color: #999; }
  .home-portals .home-portal h3, .home-portals .home-portal p, .portal-number, .portal-open,
  .home-index .home-index-number, .home-index .home-index-label { color: #111; }
}
