@media (min-width: 1500px) {
  .portal-shell { grid-template-columns: 210px minmax(0, 1fr); }
  .portal-rail { align-items: stretch; }
  .portal-brand { grid-template-columns: 54px 1fr; gap: .65rem; padding: 0 1rem; place-items: center start; }
  .portal-brand__word { display: grid; line-height: 1; }
  .portal-brand__word b { font-size: 1rem; letter-spacing: .12em; }
  .portal-brand__word small { margin-top: .25rem; color: var(--text-muted); font-size: .52rem; letter-spacing: .18em; }
  .portal-nav-item { grid-template-columns: 38px 1fr; place-items: center start; padding: 0 .8rem; }
  .portal-nav-item span { font-size: .68rem; }
  .portal-rail__signal { grid-template-columns: 10px 1fr; place-items: center start; padding: 0 1.1rem; }
}

@media (max-width: 1240px) {
  .trainer-hero { grid-template-columns: minmax(230px, .75fr) minmax(330px, 1.2fr); }
  .trainer-hero__command { grid-column: 1 / -1; align-self: auto; display: grid; grid-template-columns: minmax(250px, .7fr) 1fr; gap: 1rem 1.5rem; padding-bottom: 0; }
  .trainer-hero__command > .portal-link-status { grid-column: 1 / -1; }
  .trainer-hero__party { margin-top: 0; }
  .trainer-journey { grid-template-columns: 1.2fr .8fr; }
  .recent-catch { grid-column: 1 / -1; min-height: 190px !important; display: grid; grid-template-columns: 1fr 1fr auto; align-items: center; }
  .recent-catch > div { min-height: 130px; }
  .portal-mini-specimen { grid-template-columns: auto 1fr; text-align: left; }
  .portal-mini-specimen img, .portal-mini-specimen .portal-pokemon-silhouette { width: 120px; }
  .portal-mini-specimen figcaption { text-align: left; }
}

@media (max-width: 900px) {
  .trainer-hero { grid-template-columns: .82fr 1.18fr; min-height: 650px; padding: 2rem; }
  .trainer-hero__pokemon .portal-specimen img { width: min(48vw, 430px); height: min(52vw, 480px); }
  .trainer-journey { grid-template-columns: 1fr 1fr; }
  .trainer-utilities { grid-template-columns: 1fr 1fr; }
  .society-transmission { align-items: start; flex-direction: column; }
}

@media (max-width: 767px) {
  body { padding-bottom: calc(68px + env(safe-area-inset-bottom)); }
  .portal-shell { display: block; min-height: 100vh; }
  .portal-rail { display: none; }
  .portal-topbar { position: sticky; top: 0; min-height: 62px; padding: .65rem 1rem; }
  .portal-context__eyebrow, .portal-region-button small { display: none; }
  .portal-region-button > span { font-size: .82rem; }
  .portal-live-pill b, .portal-trainer-chip span:last-child { display: none; }
  .portal-live-pill { padding: .5rem; }
  .portal-trainer-chip { min-width: auto; }
  .portal-trainer-chip__avatar { width: 36px; height: 36px; }
  .portal-stage { padding: .65rem; }
  .portal-mobile-nav { position: fixed; z-index: var(--layer-hud); display: grid; grid-template-columns: repeat(5, 1fr); left: 0; right: 0; bottom: 0; min-height: calc(64px + env(safe-area-inset-bottom)); padding: .35rem .35rem env(safe-area-inset-bottom); border-top: 1px solid var(--border); background: rgba(3,9,14,.96); backdrop-filter: blur(12px); }
  .portal-mobile-nav .portal-nav-item { min-height: 56px; padding: .2rem; }
  .portal-mobile-nav .portal-nav-item i { font-size: 1.05rem; }
  .portal-mobile-nav .portal-nav-item span { font-size: .54rem; }

  .trainer-hero { min-height: 770px; display: grid; grid-template-columns: 1fr; grid-template-rows: auto minmax(260px, 1fr) auto; gap: .5rem; padding: 1.3rem 1.1rem; }
  .trainer-hero::after { width: min(126vw, 540px); top: 47%; }
  .trainer-hero__identity { align-self: start; padding: .25rem 0 0; text-align: left; }
  .trainer-hero__location { margin: .5rem 0 1rem; font-size: .62rem; }
  .trainer-hero h1 { font-size: clamp(2rem, 11.5vw, 3.25rem); line-height: .9; }
  .trainer-hero h1 small { font-size: .62rem; }
  .trainer-hero__promise { margin-top: .75rem; font-size: .8rem; }
  .trainer-hero__pokemon { position: absolute; inset: 160px 0 235px; pointer-events: none; }
  .trainer-hero__pokemon .portal-specimen img { width: min(82vw, 350px); height: min(82vw, 350px); }
  .trainer-hero__pokemon .portal-specimen figcaption { bottom: 0; min-width: 250px; }
  .trainer-hero__orbit { width: min(88vw, 380px); }
  .portal-pokemon-silhouette { width: min(62vw, 260px); }
  .trainer-hero__command { grid-column: auto; align-self: end; display: block; padding: 0; }
  .trainer-hero__continue { margin-bottom: .4rem; }
  .portal-world-action { min-height: 78px; padding: .9rem 4rem .85rem 1rem; }
  .portal-world-action b { font-size: 1.25rem; }
  .trainer-hero__party { margin-top: .85rem; }
  .trainer-hero__party > span { margin-bottom: .35rem; }
  .portal-party-slot { aspect-ratio: 1; }
  .portal-party-slot > span b { display: none; }
  .portal-party-slot > span small { font-size: .4rem; }
  .portal-link-status { margin-bottom: .65rem; padding: .6rem .7rem; }
  .portal-link-status--inline { grid-template-columns: 1fr auto; }.portal-link-status--inline b { grid-column: 1 / -1; }

  .trainer-journey { grid-template-columns: 1fr; }
  .trainer-journey > article { min-height: 250px; }
  .recent-catch { grid-column: auto; display: flex; min-height: 250px !important; }
  .portal-mini-specimen { display: grid; grid-template-columns: 1fr; text-align: center; }.portal-mini-specimen figcaption { text-align: center; }
  .trainer-utilities { grid-template-columns: 1fr 1fr; }
  .trainer-utility { min-height: 104px; padding: .85rem; gap: .7rem; }
  .trainer-utility__icon { width: 40px; height: 40px; }
  .trainer-utility b { font-size: .84rem; }.trainer-utility em { font-size: .62rem; }
  .society-transmission { min-height: 180px; padding: 1.2rem; }
  .trainer-support { grid-template-columns: 1fr; }
  .portal-notifications { top: 60px; right: .75rem; }
}

@media (max-width: 430px) {
  .portal-icon-button { display: none; }
  .trainer-hero { min-height: 735px; }
  .trainer-hero__pokemon { inset-block: 150px 225px; }
  .trainer-utilities { grid-template-columns: 1fr; }
  .trainer-utility { min-height: 88px; }
}

@media (max-width: 359px) {
  .portal-topbar { padding-inline: .6rem; }
  .portal-live-pill { font-size: .56rem; }
  .portal-stage { padding: .4rem; }
  .trainer-hero { min-height: 700px; padding: 1rem .85rem; }
  .trainer-hero h1 { font-size: 2rem; }
  .trainer-hero__pokemon { inset-block: 140px 215px; }
  .trainer-hero__pokemon .portal-specimen img { width: 285px; height: 285px; }
  .portal-world-action { min-height: 72px; }
}

@media (min-width: 768px) and (max-width: 1023px) {
  .portal-stage { padding: 1rem; }
  .portal-trainer-chip { min-width: 120px; }
}

/* Shared adventure-card finish across Portal modules. */
.dex-command, .progress-hero, .inventory-hero, .activities-hero {
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--region-accent) 24%, var(--border));
  border-radius: 24px;
  background:
    radial-gradient(circle at 88% 18%, color-mix(in srgb, var(--region-secondary) 14%, transparent), transparent 30%),
    radial-gradient(circle at 14% 18%, color-mix(in srgb, var(--region-accent) 18%, transparent), transparent 40%),
    linear-gradient(135deg, color-mix(in srgb, var(--region-atmosphere) 35%, var(--surface-elevated)), var(--surface-inset));
  box-shadow: 0 20px 55px rgba(0,0,0,.24);
}
.dex-entry, .dex-detail, .region-journey, .mission-operations, .achievement-vault,
.progress-support article, .bag-storage, .ball-storage, .egg-storage, .economy-storage,
.daily-operation, .signal-stack article, .game-terminal, .activity-rankings {
  border-radius: 16px;
}
.dex-entry img { width: 94px; height: 94px; filter: drop-shadow(0 10px 14px rgba(0,0,0,.4)); }
.dex-detail__scanner i { opacity: .28; }
.dex-detail__scanner img { width: min(290px,88%); height: 290px; }
.region-journey li i { width: 24px; height: 24px; border-width: 2px; }
.ball-reserve, .egg-record, .item-group article, .shop-preview article { border-radius: 14px; }
.game-terminal { background: radial-gradient(circle at 82% 20%, color-mix(in srgb,var(--region-secondary) 13%,transparent),transparent 36%), linear-gradient(155deg,color-mix(in srgb,var(--region-accent) 10%,transparent),var(--surface-inset)); }

@media (max-width: 767px) {
  .dex-command, .progress-hero, .inventory-hero, .activities-hero { border-radius: 18px; }
  .portal-dex { padding: 12px; }
  .dex-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .dex-entry { min-height: 160px; }
}
@media (max-width: 359px) {
  .dex-grid { gap: 6px; }
  .dex-entry { min-height: 148px; padding-inline: 4px; }
  .dex-entry img { width: 78px; height: 78px; }
}
