/* Portal (/): the four parts of the system. Ink hero with the GalaXy, paper grid of cards. */
.home-body { background: var(--viv-bg); min-height: 100vh; }
.home-hero { position: relative; overflow: hidden; margin-top: 54px; background: var(--xt-ink); color: var(--xt-on-ink-fg, #f6f4ee); padding: 52px 32px 76px; }
[data-bs-theme="dark"] .home-hero { background: linear-gradient(180deg, #121212 0%, #171717 100%); border-bottom: 1px solid rgba(246, 244, 238, 0.07); }
.home-galaxy { position: absolute; right: -40px; top: 50%; transform: translateY(-50%); width: 520px; height: 520px; opacity: 0.55; pointer-events: none; }
.home-hero-inner { position: relative; max-width: 1180px; margin: 0 auto; }
.home-eyebrow { font-family: var(--xt-font-mono); font-size: var(--xt-text-xs); letter-spacing: var(--xt-tracking-caps-tight); text-transform: uppercase; color: var(--xt-signal-soft); margin-bottom: 14px; }
.home-title { font-family: var(--xt-font-sans); font-weight: var(--xt-weight-semibold); font-size: clamp(2rem, 4.4vw, 3.4rem); letter-spacing: var(--xt-tracking-tight); line-height: 1.05; margin: 0 0 14px; }
.home-lede { max-width: 620px; font-size: 1.05rem; line-height: 1.55; color: rgba(246, 244, 238, 0.72); margin: 0; }

.home-main { max-width: 1180px; margin: -36px auto 48px; padding: 0 32px; position: relative; }
.home-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.home-grid > .home-card:last-child:nth-child(odd) { grid-column: 1 / -1; }
/* three parts (one hidden by HIDE_DISCHARGE_STUDY): one row of three on wide screens */
@media (min-width: 992px) {
  .home-grid:has(> .home-card:nth-child(3):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .home-grid:has(> .home-card:nth-child(3):last-child) > .home-card:last-child { grid-column: auto; }
}
.home-card {
  display: flex; flex-direction: column; min-height: 250px; padding: 24px 26px 20px; border-radius: var(--xt-radius-lg);
  background: var(--viv-card-bg); border: 1px solid var(--viv-card-border); color: var(--viv-text); text-decoration: none;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04); transition: transform 0.18s var(--xt-ease-out, ease), box-shadow 0.18s ease, border-color 0.18s ease;
}
a.home-card:hover, a.home-card:focus-visible { transform: translateY(-3px); border-color: color-mix(in srgb, var(--viv-accent) 55%, var(--viv-card-border)); box-shadow: 0 14px 34px rgba(0, 0, 0, 0.10); color: var(--viv-text); }
a.home-card:focus-visible { outline: 2px solid var(--viv-accent); outline-offset: 3px; }
.home-card-top { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 10px; }
.home-card-num { font-family: var(--xt-font-mono); font-size: var(--xt-text-xs); color: var(--viv-text-muted); letter-spacing: 0.08em; }
.home-card-icon svg { width: 28px; height: 28px; }
.home-card-icon { display: inline-flex; align-items: center; justify-content: center; width: 54px; height: 54px; border-radius: 14px; background: var(--viv-accent-soft); color: var(--viv-accent); transition: background 0.18s ease, color 0.18s ease; }
a.home-card:hover .home-card-icon { background: var(--viv-accent); color: #fff; }
.home-card-eyebrow { font-family: var(--xt-font-mono); font-size: var(--xt-text-xs); letter-spacing: var(--xt-tracking-caps-tight); text-transform: uppercase; color: var(--viv-text-muted); margin-bottom: 6px; }
.home-card-title { font-family: var(--xt-font-sans); font-size: 1.45rem; font-weight: var(--xt-weight-semibold); letter-spacing: var(--xt-tracking-tight); margin: 0 0 8px; }
.home-card-desc { font-size: var(--xt-text-sm); line-height: 1.55; color: var(--viv-text-muted); margin: 0; flex: 1; }
.home-card-foot { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 20px; padding-top: 14px; border-top: 1px solid var(--viv-card-border); }
.home-card-path { font-family: var(--xt-font-mono); font-size: var(--xt-text-xs); color: var(--viv-text-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.home-card-cta { font-size: var(--xt-text-sm); font-weight: var(--xt-weight-semibold); color: var(--viv-accent); white-space: nowrap; }
.home-card-arrow { display: inline-block; transition: transform 0.18s ease; }
a.home-card:hover .home-card-arrow { transform: translateX(4px); }
.home-card.locked { opacity: 0.6; cursor: not-allowed; }
.home-card.locked .home-card-icon { background: var(--ds-track, rgba(0, 0, 0, 0.05)); color: var(--viv-text-muted); }
.home-card.locked .home-card-cta { color: var(--viv-text-muted); }

@media (max-width: 767px) {
  .home-hero { padding: 32px 16px 60px; }
  .home-galaxy { width: 320px; height: 320px; right: -110px; opacity: 0.35; }
  .home-main { padding: 0 16px; }
  .home-grid { grid-template-columns: 1fr; }
  .home-card { min-height: 0; }
}
