/* Homepage only: other Auth, account and LAN login layouts remain unchanged. */
body.fuzzy-home-compact {
  --home-gap: clamp(.65rem, 1.6vw, 1.25rem);
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 100vh;
  min-height: 100svh;
  padding: max(.65rem, env(safe-area-inset-top)) max(.65rem, env(safe-area-inset-right))
    max(.4rem, env(safe-area-inset-bottom)) max(.65rem, env(safe-area-inset-left));
}

.fuzzy-home-compact .fuzzy-home-container {
  flex: 0 0 auto;
  width: min(100%, 80rem);
  max-width: none;
  padding: 0 !important; /* Override the shared Bootstrap container/pb-5 utilities. */
}

.fuzzy-home-container > main { padding-bottom: 0 !important; }
.fuzzy-home-compact .fuzzy-home-page { max-width: none; margin: 0; }
.fuzzy-home-compact .fuzzy-home-hero { height: auto; min-height: 0; border-radius: 1.25rem; }
.fuzzy-home-compact .fuzzy-home-hero-image { height: clamp(9rem, 24svh, 20rem); min-height: 0; object-position: center 48%; }
.fuzzy-home-compact .fuzzy-home-hero-copy { left: clamp(1rem, 3vw, 2rem); bottom: 1rem; }
.fuzzy-home-compact .fuzzy-home-hero-copy p { font-size: clamp(1.5rem, 3.2vw, 2.6rem); }
.fuzzy-home-compact .fuzzy-home-account { top: .65rem; right: .65rem; left: auto; max-width: calc(100% - 1.3rem); padding: .25rem .3rem .25rem .75rem; gap: .65rem; }
.fuzzy-home-compact .fuzzy-home-account > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fuzzy-home-compact .fuzzy-home-account .btn { display: inline-flex; align-items: center; min-height: 2.75rem; flex-shrink: 0; }

.fuzzy-home-compact .fuzzy-home-panel { margin-top: var(--home-gap); padding: var(--home-gap); border-radius: 1.25rem; }
.fuzzy-home-panel-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .25rem 1rem; margin-bottom: .65rem; }
.fuzzy-home-panel-heading h1 { margin: 0; color: #f4d89e; font-size: 1rem; font-weight: 750; letter-spacing: .025em; }
.fuzzy-home-signin { display: inline-flex; align-items: center; gap: .65rem; min-height: 2.75rem; padding: .35rem .8rem; border: 1px solid #7285a5; border-radius: .65rem; color: #f7f7fb; font-size: .9rem; font-weight: 650; text-decoration: none; }
.fuzzy-home-signin:hover { color: #fff; background: #294168; }
.fuzzy-home-compact .fuzzy-home-destinations { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--home-gap); }
.fuzzy-home-compact .fuzzy-home-destination {
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: stretch;
  justify-content: flex-end;
  min-width: 0;
  min-height: clamp(13rem, 32svh, 24rem);
  padding: 0;
  gap: 0;
  overflow: hidden;
  border: 1px solid #6582a6;
  border-radius: 1rem;
  background: #07162d;
  color: #fff;
  text-decoration: none;
  box-shadow: 0 .5rem 1.5rem #03071955;
  transition: border-color .18s ease, box-shadow .18s ease;
}
.fuzzy-home-tile-art { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: center 38%; }
.fuzzy-home-destination::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, #050d20 0%, #050d20e8 20%, #050d2000 66%); pointer-events: none; }
.fuzzy-home-compact .fuzzy-home-destination-catalog { border-color: #9380ba; }
.fuzzy-home-compact .fuzzy-home-destination:hover,
.fuzzy-home-compact .fuzzy-home-destination:focus-visible { border-color: #f4cb75; box-shadow: 0 0 0 2px #f4cb7560, 0 .5rem 1.5rem #03071955; }
.fuzzy-home-compact .fuzzy-home-destination-copy { display: flex; align-items: center; gap: .8rem; padding: clamp(.85rem, 2vw, 1.4rem); text-align: left; }
.fuzzy-home-destination-copy > div { min-width: 0; }
.fuzzy-home-compact .fuzzy-home-destination h2 { margin: 0 0 .2rem; font-size: clamp(1.3rem, 2.4vw, 2rem); line-height: 1.15; color: #fff; overflow-wrap: anywhere; }
.fuzzy-home-compact .fuzzy-home-destination p { color: #e0e7f4; font-size: .95rem; line-height: 1.4; text-wrap: pretty; }
.fuzzy-home-compact .site-footer { flex: 0 0 auto; margin: .55rem 0 0; padding: .35rem 0 .2rem; }
.fuzzy-home-compact .site-footer .container { max-width: none; padding: 0; }
.fuzzy-home-compact .site-footer-copyright { font-size: .8rem; }
.fuzzy-home-compact .site-footer-brand { font-size: .75rem; }
.fuzzy-home-compact .site-footer-links { margin-top: .1rem; gap: 0 .8rem; font-size: .8rem; }
.fuzzy-home-compact .site-footer-links a { display: inline-flex; align-items: center; min-height: 2.75rem; }

@media (max-width: 575.98px) {
  .fuzzy-home-compact .fuzzy-home-destinations { grid-template-columns: 1fr; }
  .fuzzy-home-compact .fuzzy-home-hero-image { height: clamp(8.5rem, 22svh, 11rem); }
  .fuzzy-home-compact .fuzzy-home-destination { min-height: clamp(8.5rem, 21svh, 13rem); }
  .fuzzy-home-compact .fuzzy-home-destination-copy { padding: .8rem; gap: .7rem; }
  .fuzzy-home-compact .fuzzy-home-destination h2 { font-size: 1.4rem; }
  .fuzzy-home-compact .fuzzy-home-destination p { font-size: .9rem; }
  .fuzzy-home-tile-art { object-position: center 35%; }
}

/* Short landscape windows use a shallow banner and side-by-side tiles. */
@media (min-width: 576px) and (max-height: 540px) {
  body.fuzzy-home-compact { --home-gap: .5rem; }
  .fuzzy-home-compact .fuzzy-home-hero-image { height: 5.5rem; }
  .fuzzy-home-compact .fuzzy-home-hero-copy { bottom: .65rem; }
  .fuzzy-home-compact .fuzzy-home-hero-copy p { font-size: 1.4rem; }
  .fuzzy-home-compact .fuzzy-home-destination { min-height: 8.5rem; }
  .fuzzy-home-panel-heading { margin-bottom: .4rem; }
  .fuzzy-home-compact .fuzzy-home-destination-copy { padding: .65rem; gap: .65rem; }
  .fuzzy-home-compact .fuzzy-home-destination h2 { font-size: 1.3rem; }
  .fuzzy-home-compact .fuzzy-home-destination p { font-size: .85rem; }
  .fuzzy-home-compact .site-footer .container { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 0 .75rem; }
  .fuzzy-home-compact .site-footer-links { margin-top: 0; }
  .fuzzy-home-compact .site-footer-brand { display: inline; margin-left: .4rem; }
  .fuzzy-home-compact .site-footer-copyright { display: inline; }
}

@media (prefers-reduced-motion: reduce) {
  .fuzzy-home-compact .fuzzy-home-destination { transition: none; }
}

@media (forced-colors: active) {
  .fuzzy-home-tile-art, .fuzzy-home-destination::after { display: none; }
}
