/* Maintained references: subject, facts, practical sections and image gallery. */
.ps-featured-hub:has(.ps-reference-detail) .ps-hub-strip { height: 136px; }
.ps-reference-detail {
  --ps-reference-nav-top: calc(var(--ps-header-height) + 1.25rem);
  display: grid;
  grid-template-columns: 156px minmax(0, 1fr) 236px;
  gap: 2rem;
  align-items: start;
}
.ps-reference-detail:not(:has(> .ps-reference-related)) { grid-template-columns: 156px minmax(0, 1fr); }
/* Detail patterns share the stationary reading-card material, not the page tiles. */
.ps-reference-detail, .ps-mission-layout {
  --ps-detail-space: 1.1rem;
  --ps-detail-muted: var(--ps-detail-text-body);
  --ps-muted: var(--ps-detail-text-body);
  --ps-text-heading: var(--ps-detail-text-heading);
  --ps-text-support: var(--ps-detail-text-support);
  --ps-detail-edge: var(--ps-detail-divider);
  --ps-detail-surface: #0b1721;
  --ps-detail-card-padding: 24px;
  --ps-detail-sidebar-padding: 14px;
}
.ps-reference-article, .ps-mission-article,
.ps-reference-contents, .ps-reference-related, .ps-mission-peers {
  background: var(--ps-detail-card-bg);
  border: 1px solid var(--ps-detail-card-border);
  border-top-color: var(--ps-detail-card-border-top);
  border-left-color: var(--ps-detail-card-border-left);
  border-radius: var(--ps-card-material-radius);
  box-shadow: var(--ps-card-material-shadow);
}
.ps-reference-article, .ps-mission-article {
  position: relative;
  min-width: 0;
  padding: var(--ps-detail-card-padding);
}
.ps-reference-article::before, .ps-mission-article::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: var(--ps-card-material-edge-light);
  opacity: .45;
  pointer-events: none;
}
.ps-service-locations { --ps-service-thumb:96px; }
.ps-service-locations__list { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,350px),1fr)); gap:0 1.4rem; }
.ps-service-location { display:grid; grid-template-columns:var(--ps-service-thumb) minmax(0,1fr); align-items:start; gap:.85rem; padding:.85rem 0; color:var(--ps-text); border-bottom:1px solid var(--ps-detail-edge); text-decoration:none; }
.ps-service-location:focus-visible { outline:2px solid var(--ps-link); outline-offset:3px; }
.ps-service-location__image { width:var(--ps-service-thumb); height:var(--ps-service-thumb); object-fit:cover; border-radius:6px; }
.ps-service-location__map { position:relative; display:block; width:var(--ps-service-thumb); height:var(--ps-service-thumb); }
.ps-service-location__map--pin::after { content:""; position:absolute; left:50%; top:50%; width:8px; height:8px; transform:translate(-50%,-50%); border:2px solid #081710; border-radius:50%; background:var(--ps-lime); box-shadow:0 0 0 1px var(--ps-lime); }
.ps-service-location > div { min-width:0; }
.ps-service-location h3 { margin:0 0 .25rem; font-family:var(--ps-display); font-weight:var(--ps-weight-heading); font-size:.98rem; line-height:1.3; color:var(--ps-text-heading); }
.ps-service-location:hover h3 { color:var(--ps-link-hover); text-decoration:underline; text-underline-offset:3px; }
.ps-service-location p { font-size:.83rem; line-height:1.45; }
.ps-service-location__meta { display:flex; flex-wrap:wrap; gap:.2rem .75rem; margin-top:.35rem; font-size:.74rem; line-height:1.4; color:var(--ps-detail-muted); font-variant-numeric:tabular-nums; }
.ps-service-location__link { color:var(--ps-text-heading); }
.ps-reference-map-location__meta { display:flex; align-items:start; flex-wrap:wrap; gap:.4rem 1rem; font-variant-numeric:tabular-nums; }
.ps-reference-box .ps-reference-map-location__meta { font-size:.8rem; line-height:1.5; }
.ps-reference-map-location__meta a { color:var(--ps-link); text-decoration:underline; text-underline-offset:3px; }
@media(max-width:600px) { .ps-service-locations { --ps-service-thumb:80px; } .ps-service-location { gap:.7rem; } }
.ps-reference-breadcrumb { display: flex; flex-wrap: wrap; gap: .65rem; margin: 0 0 1.5rem; color: var(--ps-muted); font-size: .8rem; }
.ps-reference-breadcrumb a { color: var(--ps-pink); text-decoration: underline; text-underline-offset: 4px; }
.ps-reference-contents { position: sticky; top: var(--ps-reference-nav-top); display: flex; flex-direction: column; padding: var(--ps-detail-sidebar-padding) 0; color-scheme: dark; scrollbar-color: #36505f transparent; }
.ps-reference-contents > strong { margin: 0 0 .7rem; padding-left: .9rem; font-size: .72rem; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; color: var(--ps-detail-text-support); }
.ps-reference-contents a { padding: .65rem .9rem; min-height: 44px; border-left: 2px solid transparent; margin-left: -1px; font-size: .84rem; line-height: 1.5; color: var(--ps-detail-muted); transition: color .15s, background .15s; }
.ps-reference-contents a:hover { color: var(--ps-text); background: #10202c; }
.ps-reference-contents a[aria-current] { color: var(--ps-pink); border-left-color: var(--ps-pink); background: linear-gradient(90deg, #a4ff1610, transparent); }
.ps-reference-overview { display: grid; grid-template-columns: clamp(220px, 20vw, 300px) minmax(0, 1fr); gap: 1.2rem; align-items: start; padding: 0 0 1.1rem; }
.ps-reference-media > .ps-reference-picture { aspect-ratio: 1; border-radius: 12px; background: radial-gradient(ellipse at 50% 60%, #23383a55, transparent 72%); }
.ps-reference-media > .ps-reference-picture--illustration { background: transparent; }
.ps-reference-media > .ps-reference-picture--tile { aspect-ratio: var(--ps-subject-ratio, 1); max-width: min(100%, var(--ps-subject-width, 360px)); background: transparent; align-self: start; }
.ps-reference-picture--hero:focus-visible { outline: 2px solid var(--ps-link); outline-offset: 4px; }
.ps-reference-overview:has(> .ps-reference-media > .ps-reference-picture--icon) { grid-template-columns: 132px minmax(0, 1fr); }
.ps-reference-media > .ps-reference-picture--icon { border: 1px solid var(--ps-detail-edge); border-radius: 16px; background: radial-gradient(ellipse, #1a303b, #0a141e); }
.ps-reference-media { min-width: 0; }
.ps-reference-media > .ps-reference-picture { width: 100%; }
.ps-reference-summary { container-type: inline-size; }
.ps-reference-intro { margin: 0 0 1.25rem; }
.ps-reference-context { display: flex; align-items: center; gap: .6rem; margin: 0 0 .55rem; font-size: .7rem; line-height: 1.4; letter-spacing: .1em; text-transform: uppercase; color: var(--ps-detail-accent); font-weight: 600; }
.ps-reference-context .ps-reference-identity-icon { width: 30px; height: 26px; flex: 0 0 30px; object-fit: contain; padding: 3px; border: 1px solid var(--ps-detail-edge); border-radius: 5px; background: #0b1620; }
.ps-reference-title-row { display: flex; align-items: center; flex-wrap: wrap; gap: .55rem .85rem; }
.ps-reference-intro h1 { margin: 0; font-size: clamp(1.75rem, 2.5vw, 2.65rem); line-height: 1.12; letter-spacing: -.035em; font-weight: var(--ps-weight-heading); text-wrap: balance; }
.ps-reference-title-row .ps-reference-rarity { align-self: center; }
.ps-reference-lede { margin: .85rem 0 0; max-width: 65ch; font-size: .96rem; line-height: 1.65; color: var(--ps-detail-text-body); }
/* Item facts follow the approved reference: two compact aligned panels. */
.ps-reference-fact-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:1rem; align-items:start; }
@container (min-width: 420px) {
 .ps-reference-fact-grid:has(.ps-reference-effects) { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
}
.ps-reference-ui-icon { display: inline-block; width: 20px; height: 20px; flex: 0 0 20px; vertical-align: middle; }
.ps-reference-box { margin: 0 0 var(--ps-detail-space); padding: 1.3rem 0 0; border-top: 0; scroll-margin-top: calc(var(--ps-header-height) + 1.25rem); }
.ps-reference-box h2, .ps-reference-screenshots > h2 { display: flex; align-items: center; gap: .6rem; margin: 0 0 .85rem; font-size: 1rem; line-height: 1.35; font-weight: var(--ps-weight-heading); letter-spacing: -.01em; }
.ps-reference-box h2 > svg, .ps-reference-screenshots > h2 > svg { color: var(--ps-detail-accent); }
.ps-reference-box p { margin: 0; color: var(--ps-detail-muted); font-size: .9rem; line-height: 1.75; }
.ps-reference-fact-grid > .ps-reference-box { margin: 0; }
.ps-reference-effects { padding: .2rem 0 0; border: 0; }
.ps-reference-effects ul { list-style: none; padding: 0; margin: 0; }
.ps-reference-effects li { display: flex; gap: .65rem; align-items: center; padding: .45rem 0; font-size: .9rem; line-height: 1.45; }
.ps-reference-effects li > svg { width: 22px; height: 22px; flex: 0 0 22px; color: var(--ps-lime); }
.ps-reference-stats { padding: .75rem 0 0; background: none; border: 0; border-radius: 0; }
.ps-reference-stats > h2 { margin-bottom: .85rem; font-size: .78rem; color: var(--ps-detail-text-heading); font-weight: var(--ps-weight-heading); }
.ps-reference-stats dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 155px), 1fr)); gap: .6rem 1.2rem; margin: 0; }
.ps-reference-stats dl > div { display: flex; flex-direction: column; gap: .25rem; padding: .1rem 0; }
.ps-reference-stats dt { font-size: .72rem; color: var(--ps-detail-text-support); font-weight: 400; line-height: 1.45; }
.ps-reference-stats dd { margin: 0; font-size: .95rem; color: #eef4f9; font-weight: 550; line-height: 1.45; overflow-wrap: anywhere; }
.ps-reference-stats dd a { color:var(--ps-link); text-decoration:underline; text-underline-offset:3px; }
.ps-reference-stats dd .ps-reference-rarity { display: inline; border: 0; border-radius: 0; padding: 0; background: none; font-size: inherit; line-height: inherit; }
.ps-reference-stats dd .ps-reference-rarity--common { --ps-rarity: #80858b; font-weight: 750; }
.ps-reference-stats .ps-reference-stat--wide { grid-column: 1 / -1; }
.ps-reference-stats .ps-reference-stat--number dd { font-size: 1.12rem; font-variant-numeric: tabular-nums; letter-spacing: -.015em; }
.ps-reference-stats--unknown { border: 0; background: none; padding: .2rem 0; }
.ps-reference-stats--unknown h2 { margin-bottom: .4rem; }
.ps-reference-box .ps-reference-unknown { color: #8ea3b9; font-size: .73rem; line-height: 1.65; margin-top: .65rem; }
.ps-reference-box .ps-reference-note { margin-top: .75rem; color: var(--ps-detail-text-support); font-size: .77rem; line-height: 1.6; }
.ps-reference-tradeoffs > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.ps-reference-tradeoffs > div > div { padding: .9rem 1rem; border: 1px solid #92db3625; border-radius: 8px; background: linear-gradient(130deg, #8dd13d0b, transparent); }
.ps-reference-tradeoffs > div > .ps-reference-tradeoffs__cons { border-color: #ff7e8c25; background: linear-gradient(130deg, #ff7e8c09, transparent); }
.ps-reference-tradeoffs h3 { display: flex; align-items: center; margin: 0 0 .6rem; font-size: .78rem; font-weight: var(--ps-weight-heading); color: #aff45b; }
.ps-reference-tradeoffs .ps-reference-tradeoffs__cons h3 { color: #ff939f; }
.ps-reference-tradeoffs ul { list-style: none; padding: 0; margin: 0; }
.ps-reference-tradeoffs li { display: flex; align-items: baseline; gap: .55rem; padding: .25rem 0; font-size: .87rem; line-height: 1.5; }
.ps-reference-tradeoffs li::before { content: '+'; color: var(--ps-lime); }
.ps-reference-tradeoffs__cons li::before { content: 'Ã¢Ë†â€™'; color: #ff939f; }
.ps-reference-tradeoffs > div p { font-size: .84rem; }
.ps-reference-crafting { background: linear-gradient(110deg, #0f2330, #0b1822); border: 1px solid var(--ps-detail-edge); border-radius: 10px; padding: .8rem 1rem; }
.ps-reference-recipe { display: flex; flex-wrap: wrap; align-items: center; gap: .85rem; }
.ps-reference-ingredient { display: flex; align-items: center; gap: .65rem; padding: .4rem .1rem; color: var(--ps-text); }
.ps-reference-ingredient > span:last-child { display: flex; flex-direction: column; gap: .15rem; font-size: .83rem; }
.ps-reference-ingredient strong { font-size: 1.1rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.ps-reference-ingredient + .ps-reference-ingredient::before { content: '+'; margin-right: .4rem; color: #8298ae; font-weight: 300; font-size: 1.4rem; }
.ps-reference-ingredient-picture { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; flex: 0 0 40px; background: none; }
.ps-reference-ingredient-picture svg.ps-reference-frame-crop { width: 100%; height: 100%; }
.ps-reference-station { display: flex; align-items: center; gap: .65rem; padding-left: 1rem; border-left: 1px solid var(--ps-detail-edge); margin-left: auto; color: var(--ps-link); font-size: .85rem; }
.ps-reference-station > span:last-child { display: flex; flex-direction: column; gap: .3rem; }
.ps-reference-station small { color: #8fa5ba; font-size: .72rem; }
.ps-reference-action-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.ps-reference-action-grid > section { margin-bottom: 1.3rem; }
.ps-reference-connections { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .8rem; font-size: .8rem; }
.ps-reference-connections a { color: var(--ps-link); border-bottom: 1px solid #a2f83044; padding-bottom: .15rem; }
.ps-reference-objectives { list-style: none; margin: .85rem 0 0; padding: 0; counter-reset: objective; }
.ps-reference-objectives li { display: flex; gap: .75rem; align-items: center; padding: .7rem 0; border-top: 1px solid #263b4c88; font-size: .9rem; line-height: 1.5; counter-increment: objective; }
.ps-reference-objectives li::before { content: counter(objective, decimal-leading-zero); flex: 0 0 27px; color: var(--ps-lime); font-size: .73rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.ps-reference-functions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.ps-reference-functions h3 { font-size: 1rem; margin: 0 0 .7rem; }
.ps-reference-screenshots { --ps-shot-max-height: 350px; padding-top: 1.2rem; border-top: 0; margin-top: .5rem; scroll-margin-top: calc(var(--ps-header-height) + 1.25rem); }
.ps-reference-screenshots > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.1rem; align-items: start; }
.ps-reference-screenshots figure { margin: 0; min-width: 0; }
.ps-reference-screenshots .ps-reference-screenshot--wide { grid-column: 1 / -1; }
.ps-reference-screenshots figure > a { display: block; position: relative; width: min(100%, var(--ps-shot-width), calc(var(--ps-shot-max-height) * var(--ps-shot-ratio))); border: 1px solid var(--ps-detail-edge); border-radius: 8px; background: #080e14; overflow: hidden; cursor: zoom-in; }
.ps-reference-screenshots img { display: block; width: 100%; height: auto; object-fit: contain; }
.ps-reference-screenshots figcaption { padding: .6rem 0; color: var(--ps-detail-text-support); font-size: .74rem; line-height: 1.5; }
.ps-reference-gallery-open { display: flex; padding: .4rem; position: absolute; right: .5rem; top: .5rem; color: #f0f6fc; border-radius: 5px; background: #07101bd9; border: 1px solid #334653; }
.ps-reference-screenshots a:hover { border-color: #829b57; }
.ps-reference-related { padding-top: .3rem; scroll-margin-top: calc(var(--ps-header-height) + 1.25rem); }
.ps-reference-related > h2 { margin: 0 0 .75rem; font-size: .78rem; font-weight: var(--ps-weight-heading); color: var(--ps-detail-text-support); }
.ps-reference-related .ps-reference-grid { grid-template-columns: minmax(0, 1fr); gap: 0; }
.ps-reference-related .ps-reference-grid .ps-reference-card { display: grid; grid-template-columns: 68px minmax(0, 1fr); gap: .75rem; align-items: start; padding: .9rem 0; border: 0; border-top: 1px solid var(--ps-detail-edge); background: transparent; border-radius: 0; }
.ps-reference-related .ps-reference-picture { width:100%; height:auto; max-width:100%; aspect-ratio: 1; border: 1px solid var(--ps-detail-edge); border-radius: 7px; }
.ps-reference-related .ps-reference-card strong { font-size: .9rem; font-weight: var(--ps-weight-heading); line-height: 1.4; }
.ps-reference-related .ps-reference-card__body { min-width:0; padding: 0; gap: .3rem; }
.ps-reference-reward-fact { display:flex; align-items:center; gap:1rem; }
.ps-reference-reward-fact p { margin:0; }
.ps-reference-related .ps-reference-card__description { font-size: .76rem; line-height: 1.55; color: #8fa4ba; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ps-reference-related .ps-reference-rarity { font-size: .68rem; }
.ps-reference-related .ps-reference-card:hover strong { color: var(--ps-lime); }
.ps-reference-related .ps-reference-illustration-label { font-size: .5rem !important; right: .1rem; bottom: .15rem; padding: .05rem .15rem; }
.ps-reference-detail--landscape .ps-reference-overview { grid-template-columns: minmax(220px, .9fr) minmax(0, 1.1fr); }
.ps-reference-detail--landscape .ps-reference-media > .ps-reference-picture { aspect-ratio: var(--ps-subject-ratio, 16 / 10); border: 1px solid var(--ps-detail-edge); border-radius: 10px; }
.ps-reference-detail--landscape .ps-reference-fact-grid { grid-template-columns: minmax(0, 1fr); }
.ps-reference-detail--landscape .ps-reference-picture svg.ps-reference-frame-crop { width: 100%; height: auto; aspect-ratio: inherit; }
/* Compact item panels, not large dashboard statistic tiles. */
.ps-reference-detail:not(.ps-reference-detail--landscape) .ps-reference-fact-grid > .ps-reference-box { padding:0; border:0; border-radius:0; background:transparent; }
.ps-reference-detail:not(.ps-reference-detail--landscape) .ps-reference-fact-grid h2 { padding:var(--ps-fact-heading-padding); margin:0; border-bottom:1px solid var(--ps-detail-edge); font-size:var(--ps-title-subsection); color:var(--ps-text); font-weight:var(--ps-weight-heading); }
.ps-reference-detail:not(.ps-reference-detail--landscape) .ps-reference-fact-grid h2 > svg { display:none; }
.ps-reference-effects li { padding:var(--ps-fact-row-padding); border-bottom:var(--ps-fact-divider); font-size:.84rem; min-height:var(--ps-fact-row-min); }
.ps-reference-effects li:last-child { border-bottom:var(--ps-fact-divider); }
.ps-reference-effects p + ul { border-top:var(--ps-fact-divider); }
.ps-reference-detail:not(.ps-reference-detail--landscape) .ps-reference-effects > p { padding: 10px 0; }
.ps-reference-detail:not(.ps-reference-detail--landscape) .ps-reference-stats dl { display:block; }
.ps-reference-detail:not(.ps-reference-detail--landscape) .ps-reference-stats dl > div { display:grid; grid-template-columns:minmax(80px,.85fr) minmax(0,1.15fr); gap:10px; padding:var(--ps-fact-row-padding); border-bottom:var(--ps-fact-divider); min-height:var(--ps-fact-row-min); align-items:baseline; }
.ps-reference-detail:not(.ps-reference-detail--landscape) .ps-reference-stats dt,
.ps-reference-detail:not(.ps-reference-detail--landscape) .ps-reference-stats dd { font-size:.82rem; line-height:1.45; font-weight:400; }
.ps-reference-detail:not(.ps-reference-detail--landscape) .ps-reference-stats .ps-reference-unknown { margin:0; padding:7px 0; font-size:.7rem; }
.ps-reference-crafting { padding:0; border-radius:5px; }
.ps-reference-crafting > h2 { padding:10px 14px; border-bottom:1px solid var(--ps-detail-edge); margin:0; }
.ps-reference-crafting > .ps-reference-recipe { padding:10px 14px; gap:12px; }
.ps-reference-crafting > .ps-reference-note { margin:0; padding:0 14px 10px; font-size:.73rem; }
.ps-reference-ingredient strong { font-size:.95rem; }
.ps-reference-related { padding:var(--ps-detail-sidebar-padding); }
.ps-reference-related > h2 { padding:0; margin:0 0 .75rem; font-size:.9rem; line-height:1.4; color:var(--ps-text); }
.ps-reference-related .ps-reference-grid { border:0; background:none; }
.ps-reference-related .ps-reference-grid .ps-reference-card { padding:12px 0; grid-template-columns:72px minmax(0,1fr); gap:12px; }
.ps-reference-related .ps-reference-picture { height:72px; width:72px; }
@media (min-width: 1550px) {
  .ps-reference-detail { grid-template-columns: 170px minmax(0, 1fr) 260px; gap: 2.25rem; }
}
@media (max-width: 1250px) {
  .ps-reference-detail, .ps-reference-detail:not(:has(> .ps-reference-related)) { grid-template-columns: 145px minmax(0, 1fr); gap: 1.5rem; }
  .ps-reference-related { grid-column: 2; }
  .ps-reference-related .ps-reference-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
  .ps-reference-overview { grid-template-columns: 185px minmax(0, 1fr); gap: 1.2rem; }
}
@media (max-width: 1000px) {
  .ps-reference-detail--landscape .ps-reference-overview { grid-template-columns: minmax(0, 1fr); }
  .ps-reference-detail--landscape .ps-reference-media > .ps-reference-picture { max-width: 620px; }
}
@media (max-width: 760px) {
  .ps-featured-hub:has(.ps-reference-detail) .ps-hub-strip { height: 120px; }
  .ps-reference-detail, .ps-reference-detail:not(:has(> .ps-reference-related)) { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
  .ps-reference-breadcrumb { margin-bottom: 1rem; font-size: .75rem; }
  .ps-reference-contents { position: static; flex-direction: row; gap: .2rem; overflow-x: auto; white-space: nowrap; padding: 0; scrollbar-width: thin; }
  .ps-reference-contents > strong { display: none; }
  .ps-reference-contents a { flex: 0 0 auto; padding: .65rem .7rem; margin: 0; font-size: .8rem; border: 0; border-bottom: 2px solid transparent; }
  .ps-reference-contents a[aria-current] { border-bottom-color: var(--ps-lime); background: none; }
  .ps-reference-overview, .ps-reference-overview:has(> .ps-reference-media > .ps-reference-picture--icon) { grid-template-columns: 136px minmax(0, 1fr); gap: .9rem; padding-bottom: 1.3rem; }
  .ps-reference-summary, .ps-reference-intro { display: contents; }
  .ps-reference-identity { align-self: start; }
  .ps-reference-context { margin: 0 0 .45rem; font-size: .64rem; letter-spacing: .07em; }
  .ps-reference-title-row { gap: .55rem; }
  .ps-reference-intro h1 { font-size: 1.65rem; line-height: 1.15; letter-spacing: -.025em; overflow-wrap: anywhere; }
  .ps-reference-title-row .ps-reference-rarity { font-size: .7rem; }
  .ps-reference-lede { grid-column: 1 / -1; font-size: .9rem; line-height: 1.7; margin: .1rem 0 .35rem; }
  .ps-reference-fact-grid { grid-column: 1 / -1; gap: 1rem; }
  .ps-reference-stats dl { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem 1rem; }
  .ps-reference-stats dl > div:only-child { grid-column: 1 / -1; }
  .ps-reference-stats { padding: .7rem 0 0; }
  .ps-reference-stats dd { font-size: .88rem; }
  .ps-reference-stats .ps-reference-stat--number dd { font-size: 1.04rem; }
  .ps-reference-effects ul { display: flex; flex-direction: column; }
  .ps-reference-box { --ps-detail-space: 1.2rem; padding-top: 1.1rem; }
  .ps-reference-crafting { padding: 0; }
  .ps-reference-action-grid, .ps-reference-functions { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .ps-reference-tradeoffs > div { grid-template-columns: minmax(0, 1fr); gap: .6rem; }
  .ps-reference-tradeoffs > div > div { padding: .8rem .9rem; }
  .ps-reference-recipe { gap: .4rem .75rem; }
  .ps-reference-ingredient-picture { width: 42px; height: 48px; flex-basis: 42px; }
  .ps-reference-ingredient + .ps-reference-ingredient::before { margin-right: 0; font-size: 1.1rem; }
  .ps-reference-ingredient > span:last-child { font-size: .75rem; }
  .ps-reference-ingredient strong { font-size: .95rem; }
  .ps-reference-station { width: 100%; margin: .5rem 0 0; padding: .6rem 0 0; border-left: 0; border-top: 1px solid var(--ps-detail-edge); }
  .ps-reference-screenshots > div { grid-template-columns: minmax(0, 1fr); gap: .8rem; }
  .ps-reference-screenshots { --ps-shot-max-height: 430px; }
  .ps-reference-related { grid-column: auto; }
  .ps-reference-related .ps-reference-grid { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .ps-reference-related .ps-reference-grid .ps-reference-card { grid-template-columns: 72px minmax(0, 1fr); }
  .ps-reference-detail--landscape .ps-reference-overview { grid-template-columns: minmax(0, 1fr); }
  .ps-reference-detail--landscape .ps-reference-identity { margin-top: .3rem; }
}
@media (max-width: 359px) {
  .ps-reference-overview, .ps-reference-overview:has(> .ps-reference-media > .ps-reference-picture--icon) { grid-template-columns: 88px minmax(0, 1fr); gap: .8rem; }
  .ps-reference-intro h1 { font-size: 1.45rem; }
  .ps-reference-stats dl { grid-template-columns: minmax(0, 1fr); }
  .ps-reference-detail--landscape .ps-reference-overview { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .ps-reference-contents a { transition: none; }
}

/* Briefing pattern: one content column plus compact rewards/preparation. */
.ps-mission-layout { display:grid; grid-template-columns:210px minmax(0,1fr); gap:28px; align-items:start; }
.ps-mission-article, .ps-mission-primary, .ps-mission-utility { min-width:0; }
.ps-mission-peers { position:sticky; top:90px; padding:var(--ps-detail-sidebar-padding); }
.ps-mission-peers > a { display:flex; align-items:center; gap:10px; padding:12px 0; border-bottom:1px solid var(--ps-line); color:var(--ps-text); font-size:.86rem; line-height:1.4; }
.ps-mission-peers .ps-reference-picture { flex:0 0 40px; width:40px; height:48px; margin:0; border-radius:4px; }
.ps-mission-peers .ps-reference-picture img { object-fit:contain; }
.ps-mission-peers small { display:block; margin-top:4px; color:var(--ps-muted); font-size:.72rem; }
.ps-mission-peers > .ps-mission-back { color:var(--ps-lime); font-size:.78rem; }
.ps-mission-hero { display:flex; gap:22px; align-items:center; padding-bottom:24px; border-bottom:0; }
.ps-mission-hero > .ps-reference-picture { width:140px; height:166px; flex:0 0 140px; margin:0; border-radius:8px; }
.ps-mission-hero > .ps-reference-picture img { object-fit:contain; }
.ps-mission-hero h1 { font-size:clamp(1.7rem,2.5vw,2.8rem); line-height:1.15; margin:8px 0 12px; letter-spacing:-.025em; }
.ps-mission-hero p { margin-bottom:0; }
.ps-mission-meta { display:flex; gap:10px 18px; flex-wrap:wrap; color:var(--ps-muted); font-size:.83rem; }
.ps-mission-threat { color:var(--ps-orange); }
.ps-mission-summary, .ps-mission-chapter { font-size:.88rem; line-height:1.6; color:var(--ps-muted); margin-top:12px; }
.ps-mission-body { display:grid; grid-template-columns:minmax(0,1fr) 260px; gap:28px; margin-top:22px; }
.ps-mission-panel { margin-bottom:24px; scroll-margin-top:90px; }
.ps-mission-panel h2 { font-size:1.05rem; margin:0 0 12px; padding-bottom:10px; border-bottom:0; }
.ps-mission-panel p, .ps-mission-step p { font-size:.9rem; line-height:1.7; color:var(--ps-muted); margin:0; }
.ps-mission-step { padding:12px 0; }
.ps-mission-step h3 { font-size:.9rem; margin:0 0 6px; }
.ps-mission-utility .ps-mission-panel { background:var(--ps-panel); border:1px solid var(--ps-line); border-radius:var(--ps-radius); padding:16px; margin-bottom:14px; }
.ps-mission-utility dl { margin:0; }
.ps-mission-utility dl > div { display:flex; justify-content:space-between; align-items:baseline; gap:14px; padding:7px 0; border-bottom:1px solid var(--ps-line); font-size:.78rem; }
.ps-mission-utility dt { color:var(--ps-muted); font-weight:400; }
.ps-mission-utility dd { margin:0; text-align:right; }
.ps-mission-rewards, .ps-mission-article .ps-guide-checklist { list-style:none; margin:0; padding:0; }
.ps-mission-rewards li + li { border-top:1px solid var(--ps-line); margin-top:12px; padding-top:12px; }
.ps-mission-rewards li { display:flex; align-items:center; gap:12px; }
.ps-mission-rewards li > div { min-width:0; }
.ps-mission-reward-image { flex:0 0 56px; width:56px; height:56px; }
.ps-mission-reward-image svg { display:block; width:100%; height:100%; border-radius:4px; }
.ps-mission-rewards strong { font-size:.95rem; color:var(--ps-lime); }
.ps-mission-rewards a { color:var(--ps-lime); text-decoration:underline; text-underline-offset:3px; }
.ps-mission-rewards small { display:block; font-size:.72rem; color:var(--ps-muted); line-height:1.5; margin-top:4px; }
.ps-mission-article .ps-guide-checklist li { padding:12px; margin:8px 0; background:var(--ps-panel); border:1px solid var(--ps-line); border-radius:6px; font-size:.88rem; line-height:1.5; display:flex; align-items:center; gap:12px; }
.ps-mission-article .ps-guide-checklist label { cursor:pointer; flex:1; }
.ps-mission-article .ps-guide-checklist input { width:18px; height:18px; accent-color:var(--ps-lime); flex-shrink:0; }
.ps-mission-article .ps-guide-checklist .is-complete { border-color:var(--ps-lime); }
.ps-mission-article .ps-guide-checklist-controls { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; color:var(--ps-muted); font-size:.73rem; margin-bottom:12px; }
.ps-mission-article .ps-guide-checklist-controls button { background:transparent; color:var(--ps-lime); border:1px solid var(--ps-line); border-radius:5px; padding:6px 10px; font-size:.72rem; }
.ps-mission-article .ps-guide-checklist-controls button:disabled { opacity:.45; }
.ps-mission-links { display:grid; gap:10px; font-size:.83rem; }
.ps-mission-links a { color:var(--ps-link); }
.ps-mission-gallery > div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; align-items:start; }
.ps-mission-gallery figure { margin:0; }
.ps-mission-gallery figure > a { display:block; width:fit-content; max-width:100%; }
.ps-mission-gallery .ps-reference-frame-crop { display:block; width:100%; height:auto; border-radius:6px; }
.ps-mission-gallery img { display:block; max-height:340px; width:auto; max-width:100%; border-radius:6px; }
.ps-mission-gallery figcaption { font-size:.72rem; color:var(--ps-muted); margin-top:8px; }
@media(max-width:1100px) {
 .ps-mission-layout { grid-template-columns:minmax(0,1fr); }
 .ps-mission-peers { position:static; display:flex; gap:18px; flex-wrap:wrap; padding:var(--ps-detail-sidebar-padding); order:2; }
 .ps-mission-peers > .ps-kicker { width:100%; margin-bottom:0; }
 .ps-mission-peers > a { max-width:220px; }
}
@media(max-width:760px) {
 .ps-mission-body { display:flex; flex-direction:column; gap:0; margin-top:18px; }
 .ps-mission-hero { gap:14px; align-items:start; padding-bottom:18px; }
 .ps-mission-hero > .ps-reference-picture { flex-basis:78px; width:78px; height:94px; }
 .ps-mission-hero h1 { font-size:1.55rem; margin:6px 0 10px; overflow-wrap:anywhere; }
 .ps-mission-hero .ps-kicker { font-size:.65rem; }
 .ps-mission-meta { font-size:.75rem; gap:6px; }
 .ps-mission-summary { font-size:.82rem; }
 .ps-mission-utility { display:grid; grid-template-columns:minmax(0,1fr); }
 .ps-mission-article .ps-guide-checklist label { padding:4px 0; min-height:28px; }
 .ps-mission-article .ps-guide-checklist-controls button { min-height:44px; }
 .ps-mission-gallery > div { grid-template-columns:minmax(0,1fr); }
}

.ps-mission-hero h1, .ps-mission-panel h2, .ps-mission-step h3 { font-family:var(--ps-display); font-weight:var(--ps-weight-heading); }
.ps-mission-hero > .ps-reference-picture { background:none; }

.ps-reference-fact-section { grid-column:1/-1; min-width:0; }
.ps-reference-fact-section > p + p,.ps-reference-fact-section > ul { margin-top:10px; }
.ps-reference-fact-section ul { padding-left:20px; margin-bottom:0; }
.ps-reference-fact-section li { margin-bottom:6px; color:var(--ps-muted); font-size:.88rem; line-height:1.65; }
.ps-reference-fact-table { overflow-x:auto; max-width:100%; margin:12px 0 0; }
.ps-reference-fact-table table { width:100%; border-collapse:collapse; margin:0; font-size:.82rem; }
.ps-reference-fact-table th,.ps-reference-fact-table td { padding:9px 10px; border:0; border-bottom:1px solid var(--ps-line); text-align:left; vertical-align:top; overflow-wrap:anywhere; }
.ps-reference-fact-table thead th { color:var(--ps-text); font-weight:600; }
.ps-reference-fact-table tbody th { width:30%; color:var(--ps-muted); font-weight:400; }
.ps-reference-screenshots .ps-reference-frame-crop { display:block; width:min(100%,var(--ps-shot-width)); max-width:100%; height:auto; border-radius:6px; }

.ps-reference-labels { margin: .5rem 0 1rem; color: var(--ps-muted); font-size: .8rem; line-height: 1.6; }
.ps-reference-labels > span { color: var(--ps-text); margin-right: .35rem; }

.ps-reference-labels a { color: var(--ps-link); text-decoration: underline; text-underline-offset: .2em; }

/* Phone reading sizes: shared by all reference and mission detail pages. */
@media (max-width: 760px) {
  .ps-reference-detail { --ps-detail-muted: var(--ps-detail-text-body); }
  .ps-reference-box p, .ps-reference-effects li, .ps-reference-lede,
  .ps-reference-fact-section li, .ps-reference-tradeoffs li, .ps-reference-tradeoffs > div p,
  .ps-mission-panel p, .ps-mission-step p,
  .ps-mission-article .ps-guide-checklist li { font-size: 1rem; line-height: 1.65; }
  .ps-reference-detail:not(.ps-reference-detail--landscape) .ps-reference-stats :is(dt, dd),
  .ps-reference-stats :is(dt, dd), .ps-reference-fact-table table,
  .ps-mission-utility dl > div { font-size: .9375rem; line-height: 1.5; }
  .ps-reference-detail:not(.ps-reference-detail--landscape) .ps-reference-fact-grid h2,
  .ps-reference-box h2, .ps-reference-related > h2,
  .ps-mission-panel h2, .ps-mission-step h3 { font-size: 1.0625rem; }
  .ps-reference-tradeoffs h3, .ps-mission-peers > .ps-kicker { font-size: .875rem; }
  .ps-reference-context, .ps-reference-breadcrumb, .ps-reference-contents a,
  .ps-reference-labels, .ps-reference-title-row .ps-reference-rarity,
  .ps-reference-related .ps-reference-rarity,
  .ps-reference-box .ps-reference-note, .ps-reference-box .ps-reference-unknown,
  .ps-reference-detail:not(.ps-reference-detail--landscape) .ps-reference-stats .ps-reference-unknown,
  .ps-reference-screenshots figcaption, .ps-reference-ingredient > span:last-child,
  .ps-mission-meta, .ps-mission-summary, .ps-mission-chapter,
  .ps-mission-peers small, .ps-mission-rewards small, .ps-mission-gallery figcaption,
  .ps-mission-article .ps-guide-checklist-controls,
  .ps-mission-article .ps-guide-checklist-controls button,
  .ps-mission-links, .ps-mission-hero .ps-kicker { font-size: .875rem; line-height: 1.5; }
  .ps-reference-context { letter-spacing: .04em; }
  .ps-reference-stats dt, .ps-reference-screenshots figcaption,
  .ps-reference-box .ps-reference-note, .ps-reference-box .ps-reference-unknown { color: var(--ps-detail-text-body); }
  .ps-reference-related .ps-reference-card strong { font-size: 1rem; }
  .ps-reference-related .ps-reference-card .ps-reference-card__description { font-size: .9375rem; color: var(--ps-detail-text-body); }
  .ps-reference-ingredient strong { font-size: 1rem; }
  .ps-reference-media, .ps-reference-identity, .ps-mission-hero > div { min-width: 0; }
  .ps-reference-title-row .ps-reference-rarity { max-width: 100%; }
}

/* Let phone labels use the row below the image and title. */
@media (max-width:760px) {
 .ps-reference-detail:not(.ps-reference-detail--landscape) .ps-reference-media { display:contents; }
 .ps-reference-detail:not(.ps-reference-detail--landscape) .ps-reference-media > .ps-reference-picture { grid-column:1; grid-row:1; }
 .ps-reference-detail:not(.ps-reference-detail--landscape) .ps-reference-identity { grid-column:2; grid-row:1; }
 .ps-reference-detail:not(.ps-reference-detail--landscape) .ps-reference-media > .ps-reference-labels { grid-column:1/-1; grid-row:2; margin:0; }
}
/* Consistent readable detail-section subtitles at every viewport. */
.ps-reference-detail .ps-reference-box h2,
.ps-reference-detail:not(.ps-reference-detail--landscape) .ps-reference-fact-grid h2,
.ps-reference-detail .ps-reference-screenshots > h2,
.ps-reference-detail .ps-reference-related > h2 { font-size:var(--ps-title-subsection); line-height:var(--ps-title-subsection-leading); font-weight:var(--ps-weight-heading); }
/* Desktop section rail shares the breadcrumb edge; no inset card treatment. */
@media(min-width:761px){
 .ps-reference-contents{border:0;gap:2px}
 .ps-reference-contents>strong{padding:0;margin:0 0 .75rem;font-size:var(--ps-rail-heading-size);line-height:1.4;font-weight:650;letter-spacing:0;text-transform:none;color:var(--ps-text)}
 .ps-reference-contents a{position:relative;padding:.625rem 1rem .625rem 0;margin:0;border:0;font-size:var(--ps-rail-link-size);font-weight:500;background:none}
 .ps-reference-contents a:hover{background:none;color:var(--ps-text)}
 .ps-reference-contents a[aria-current]{background:none;color:var(--ps-pink);font-weight:650}
 .ps-reference-contents a[aria-current]::after{content:"";position:absolute;left:-10px;top:50%;width:3px;height:16px;transform:translateY(-50%);border-radius:2px;background:var(--ps-pink)}
}
@media(max-width:760px){.ps-reference-contents a[aria-current]{color:var(--ps-pink);border-bottom-color:var(--ps-pink)}}

.ps-reference-breadcrumb{padding-left:var(--ps-hub-text-inset)}
@media(min-width:761px){.ps-reference-contents{padding-left:var(--ps-hub-text-inset)}}

/* Article-style sticky section navigation on phones. */
@media(max-width:760px){
 .ps-reference-contents{position:sticky;top:var(--ps-reference-nav-top);z-index:35;background:var(--ps-detail-card-bg);backdrop-filter:none;border:1px solid var(--ps-detail-card-border);border-top-color:var(--ps-detail-card-border-top);border-radius:var(--ps-card-material-radius);padding:.34rem;scrollbar-width:none;overscroll-behavior-inline:contain}
 .ps-reference-contents a{font-size:.875rem;min-height:44px}
}

/* Shared desktop alignment: image/title top, fact rules and image bottom. */
@media(min-width:761px){
 .ps-reference-detail:not(.ps-reference-detail--landscape) .ps-reference-overview{grid-template-rows:auto auto auto;row-gap:0}
 .ps-reference-detail:not(.ps-reference-detail--landscape) .ps-reference-summary,
 .ps-reference-detail:not(.ps-reference-detail--landscape) .ps-reference-media{display:contents}
 .ps-reference-detail:not(.ps-reference-detail--landscape) .ps-reference-intro{grid-column:2;grid-row:1}
 .ps-reference-detail:not(.ps-reference-detail--landscape) .ps-reference-fact-grid{grid-column:2;grid-row:2}
 .ps-reference-detail:not(.ps-reference-detail--landscape) .ps-reference-media>.ps-reference-picture{grid-column:1;grid-row:1/3;height:100%;min-height:0;aspect-ratio:auto;contain:size;align-self:stretch}
 .ps-reference-detail:not(.ps-reference-detail--landscape) .ps-reference-media>.ps-reference-picture img{height:100%;width:100%;object-fit:contain;object-position:left top}
 .ps-reference-detail:not(.ps-reference-detail--landscape) .ps-reference-labels{grid-column:1;grid-row:3}
 .ps-reference-contents>strong{line-height:var(--ps-detail-heading-leading);margin-top:0}
 .ps-reference-detail:not(.ps-reference-detail--landscape) .ps-reference-fact-grid:has(.ps-reference-effects ul):has(.ps-reference-stats dl){grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto repeat(var(--ps-fact-count),minmax(var(--ps-fact-row-min),auto));column-gap:var(--ps-fact-column-gap);row-gap:0;align-items:stretch}
 .ps-reference-detail:not(.ps-reference-detail--landscape) .ps-reference-fact-grid:has(.ps-reference-effects ul):has(.ps-reference-stats dl)>section{display:grid;grid-row:1/-1;grid-template-rows:subgrid;min-width:0}
 .ps-reference-detail:not(.ps-reference-detail--landscape) .ps-reference-fact-grid:has(.ps-reference-effects ul):has(.ps-reference-stats dl)>.ps-reference-effects{grid-column:1}
 .ps-reference-detail:not(.ps-reference-detail--landscape) .ps-reference-fact-grid:has(.ps-reference-effects ul):has(.ps-reference-stats dl)>.ps-reference-stats{grid-column:2}
 .ps-reference-detail:not(.ps-reference-detail--landscape) .ps-reference-fact-grid:has(.ps-reference-effects ul):has(.ps-reference-stats dl) ul,
 .ps-reference-detail:not(.ps-reference-detail--landscape) .ps-reference-fact-grid:has(.ps-reference-effects ul):has(.ps-reference-stats dl) dl{display:contents}
}

/* Media variants: square tiles align to facts; native icons and wide frames keep their own scale. */
.ps-reference-detail { --ps-media-tile-desktop:320px; --ps-media-tile-max:380px; --ps-media-summary-min:340px; --ps-media-tile-mobile:136px; }
@media(min-width:761px){
 .ps-reference-detail:not(.ps-reference-detail--landscape) .ps-reference-overview.ps-reference-overview--square-tile { grid-template-columns:var(--ps-media-tile-size,var(--ps-media-tile-desktop)) minmax(0,1fr);grid-template-rows:max-content auto auto; }
 .ps-reference-overview--square-tile .ps-reference-media>.ps-reference-picture--tile { max-width:none;min-height:var(--ps-media-tile-size,var(--ps-media-tile-desktop)); }
}
@media(max-width:760px) and (min-width:360px){
 .ps-reference-overview.ps-reference-overview--square-tile { grid-template-columns:var(--ps-media-tile-mobile) minmax(0,1fr); }
}

@media(min-width:761px){.ps-reference-detail:not(.ps-reference-detail--landscape) .ps-reference-overview--square-tile .ps-reference-fact-grid{align-self:stretch}}

@media(min-width:761px){
 .ps-reference-detail:not(.ps-reference-detail--landscape) .ps-reference-overview--square-tile .ps-reference-media>.ps-reference-picture--tile { height:var(--ps-media-tile-size,var(--ps-media-tile-desktop));min-height:var(--ps-media-tile-size,var(--ps-media-tile-desktop));max-width:none; }
}

/* Shared product roles and service-page pattern; site navigation is unchanged. */
.ps-reference-breadcrumb:has(+ .ps-reference-detail--service) a{color:var(--ps-link-context)}
.ps-reference-detail--service{--ps-detail-muted:var(--ps-text-support);--ps-detail-space:var(--ps-space-4)}
.ps-reference-detail--service .ps-reference-box{margin-bottom:var(--ps-space-6)}
.ps-reference-detail--service .ps-service-locations{--ps-service-thumb:var(--ps-size-media-compact)}
.ps-reference-detail--service .ps-service-locations__list{column-gap:var(--ps-space-6)}
.ps-reference-detail--service .ps-service-location{align-items:start;padding-block:var(--ps-space-3);gap:0 var(--ps-space-3);color:var(--ps-text-body)}
.ps-reference-detail--service .ps-service-location h3{color:var(--ps-text-heading);font-size:var(--ps-type-row-title);line-height:var(--ps-leading-row-title);margin:0;padding:0;font-weight:var(--ps-weight-heading)}
.ps-reference-detail--service .ps-service-location:hover h3{color:var(--ps-link-context-hover)}
.ps-reference-detail--service .ps-service-location p{font-size:var(--ps-type-row-body);line-height:1.45;margin:0;padding:0;color:var(--ps-text-body)}
.ps-reference-detail--service .ps-service-location__meta{font-size:var(--ps-type-row-meta);color:var(--ps-text-support);margin:0;padding:0;align-items:baseline;gap:var(--ps-space-2)}
.ps-reference-detail--service .ps-service-location__meta .ps-service-location__square{color:var(--ps-text-label);font-weight:500}
.ps-reference-detail--service .ps-service-location__link{margin-left:auto;color:var(--ps-link-context);font-size:1rem;line-height:1}
.ps-reference-detail--service .ps-reference-box h2,.ps-reference-detail--service .ps-reference-related h2{color:var(--ps-text-heading)}
.ps-reference-detail--service a:not(.ps-service-location):not(.ps-reference-card):not(.ps-reference-picture){color:var(--ps-link-context)}
.ps-reference-detail--service .ps-reference-connections a,.ps-reference-detail--service .ps-reference-map-location__meta a{border:0;text-decoration:underline;text-underline-offset:3px}
.ps-reference-detail--service .ps-reference-stats dd a{font-size:inherit}
.ps-reference-detail--service .ps-reference-contents a[aria-current],.ps-reference-detail--service .ps-reference-contents a.is-active{color:var(--ps-text-heading)}
.ps-reference-detail--service .ps-reference-card strong{color:var(--ps-text-heading)}
.ps-reference-detail--service .ps-reference-related .ps-reference-grid .ps-reference-card{border:0;border-bottom:1px solid var(--ps-divider-subtle);border-radius:0;background:none;box-shadow:none}
.ps-reference-detail--service .ps-reference-related .ps-reference-grid{border:0;background:none}
.ps-reference-detail--service .ps-location-caption{margin-top:var(--ps-space-2);font-size:var(--ps-type-row-meta);line-height:1.5;color:var(--ps-text-support)}
.ps-reference-detail--service .ps-location-caption p{margin:0 0 var(--ps-space-1);font-size:inherit}
.ps-reference-detail--service .ps-location-caption .ps-reference-map-location__meta{gap:var(--ps-space-2) var(--ps-space-3)}
.ps-reference-detail--service a:focus-visible{outline:2px solid var(--ps-focus-ring);outline-offset:3px}
.ps-reference-detail--service .ps-reference-map-location__meta{font-size:var(--ps-type-row-meta);gap:var(--ps-space-2) var(--ps-space-4)}
.ps-reference-detail--service .ps-reference-map-location__meta .ps-service-location__square{font-weight:500;color:var(--ps-text-label)}
.ps-reference-detail--service .ps-reference-overview{align-items:start}
.ps-reference-detail--service .ps-reference-overview{grid-template-areas:"map intro" "map facts";row-gap:var(--ps-space-4)}
.ps-reference-detail--service .ps-reference-summary{display:contents}
.ps-reference-detail--service .ps-reference-media{grid-area:map}
.ps-reference-detail--service .ps-reference-intro{grid-area:intro;display:block;margin:0}
.ps-reference-detail--service .ps-reference-fact-grid{grid-area:facts;align-self:start}
@supports(grid-template-rows:subgrid){
 .ps-reference-detail--service .ps-service-location{grid-row:span 3;grid-template-rows:subgrid}
 .ps-reference-detail--service .ps-service-location__map{grid-row:1/span 3;align-self:start}
 .ps-reference-detail--service .ps-service-location>div{grid-row:1/span 3;display:grid;grid-template-rows:subgrid;row-gap:var(--ps-space-1)}
 .ps-reference-detail--service .ps-service-location h3{align-self:start}
 .ps-reference-detail--service .ps-service-location p{align-self:start}
 .ps-reference-detail--service .ps-service-location__meta{align-self:end}
}

.ps-service-locations .ps-service-locations__legend{margin:0 0 var(--ps-space-2);padding:0;color:var(--ps-text-support);font-size:var(--ps-type-row-meta);line-height:1.5}
@media(max-width:1000px){.ps-reference-detail--service .ps-reference-overview{grid-template-columns:minmax(0,1fr);grid-template-areas:"intro" "map" "facts"}.ps-reference-detail--service .ps-reference-media{max-width:360px;width:100%}}
@media(max-width:600px){.ps-reference-detail--service .ps-service-locations{--ps-service-thumb:var(--ps-size-media-compact-mobile)}}

/* Map index: one readable map, followed by native linked area/service details. */
.ps-reference-detail--map .ps-reference-overview{display:flex;flex-direction:column;gap:var(--ps-space-4)}
.ps-reference-detail--map .ps-reference-summary{display:contents}
.ps-reference-detail--map .ps-reference-intro{display:block;order:0;margin:0}
.ps-reference-detail--map .ps-reference-media{display:block;order:1;width:100%}
.ps-reference-detail--map .ps-reference-media>.ps-reference-picture{width:100%;max-width:none;height:auto;aspect-ratio:16/9;contain:none}
.ps-reference-detail--map .ps-reference-media>.ps-reference-picture img{width:100%;height:100%;object-fit:contain}
.ps-reference-detail--map .ps-reference-box h2{color:var(--ps-text-heading)}
.ps-reference-detail--map .ps-reference-contents a,.ps-reference-detail--map .entry-content a,.ps-reference-breadcrumb:has(+ .ps-reference-detail--map) a{color:var(--ps-link-context)}
.ps-map-places{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--ps-space-6)}
.ps-map-place{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--ps-space-1) var(--ps-space-2);padding:var(--ps-space-3) 0;min-height:44px;border-bottom:1px solid var(--ps-divider-subtle);align-content:start;color:var(--ps-text-heading)}
.ps-map-place strong{font-family:var(--ps-display);font-size:var(--ps-type-row-title);font-weight:var(--ps-weight-heading);line-height:var(--ps-leading-row-title)}
.ps-map-place__meta{grid-column:1/-1;font-size:var(--ps-type-row-body);line-height:1.45;color:var(--ps-text-support)}
.ps-map-place__arrow{color:var(--ps-link-context)}
.ps-map-place:hover strong{color:var(--ps-link-context-hover);text-decoration:underline;text-underline-offset:3px}
.ps-map-place:focus-visible{outline:2px solid var(--ps-focus-ring);outline-offset:3px}
@media(max-width:600px){.ps-map-places{grid-template-columns:minmax(0,1fr)}}

/* Linked official-source service-map crop; marker hit areas remain usable on phones. */
.ps-service-map { --ps-map-pin-size:32px; --ps-map-target-size:44px; }
.ps-service-map__canvas { position:relative; width:100%; max-width:960px; margin-top:var(--ps-space-3); }
.ps-service-map__base { display:block; width:100%; height:auto; border-radius:var(--ps-card-media-radius); }
.ps-service-map__pin { position:absolute; width:var(--ps-map-target-size); height:var(--ps-map-target-size); display:grid; place-items:center; transform:translate(-50%,-50%); border:0; }
.ps-service-map__pin img { display:block; width:var(--ps-map-pin-size); height:var(--ps-map-pin-size); filter:drop-shadow(0 1px 3px #0009); }
.ps-service-map__pin:hover { z-index:2; }
.ps-service-map__pin:focus-visible { z-index:3; outline:2px solid var(--ps-link-context); outline-offset:1px; border-radius:6px; }
.ps-service-map__legend { display:flex; flex-wrap:wrap; gap:var(--ps-space-2) var(--ps-space-4); padding:0; margin:var(--ps-space-3) 0 0; list-style:none; }
.ps-service-map__legend a { display:inline-flex; align-items:center; gap:var(--ps-space-2); min-height:32px; font-size:var(--ps-type-row-meta); }
.ps-service-map__legend img { display:block; width:24px; height:24px; }
.ps-service-map .ps-service-map__note,.ps-service-map .ps-service-map__credit { color:var(--ps-text-support); font-size:var(--ps-type-row-meta); line-height:1.5; }
@media(max-width:600px) { .ps-service-map { --ps-map-pin-size:28px; } }

/* Shared viewer uses the existing product palette and self-hosted typography. */
.ps-media-trigger { cursor: zoom-in; }
.ps-media-trigger:focus-visible, .ps-media-gallery a:focus-visible { outline: 2px solid var(--ps-focus-ring); outline-offset: 4px; }
:is(.ps-reference-screenshots, .ps-mission-gallery) > .ps-media-gallery {
  display: flex; overflow-x: auto; gap: .75rem; align-items: start;
  padding: .25rem 0 .65rem; scroll-snap-type: x proximity;
  scrollbar-width: thin; scrollbar-color: #789655 var(--ps-panel);
}
.ps-media-gallery > figure { flex: 0 0 180px; scroll-snap-align: start; }
.ps-media-gallery .ps-reference-screenshot--wide { grid-column: auto; }
.ps-media-gallery figure > a {
  display: flex; align-items: center; justify-content: center;
  width: 100%; height: 126px; background: var(--ps-panel); border-radius: var(--ps-radius);
}
.ps-media-gallery img,
.ps-media-gallery .ps-reference-frame-crop {
  width: auto; max-width: 100%; max-height: 124px; height: auto; object-fit: contain;
}
.ps-media-gallery figcaption {
  color: var(--ps-text-support); font-size: .75rem; line-height: 1.4; padding: .45rem 0 0;
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
}
.ps-media-gallery .ps-reference-gallery-open {
  width: 16px; height: 16px; padding: 0; top: .4rem; right: .4rem;
  border: 0; border-radius: 0; background: none; color: var(--ps-text-heading);
  filter: drop-shadow(0 1px 2px #050717); pointer-events: none;
}
.ps-media-gallery .ps-reference-gallery-open svg { width: 16px; height: 16px; }
@media (hover: hover) and (pointer: fine) {
  .ps-media-gallery .ps-reference-gallery-open { opacity: .55; }
  .ps-media-gallery a:hover .ps-reference-gallery-open,
  .ps-media-gallery a:focus-visible .ps-reference-gallery-open { opacity: 1; }
}

/* One horizontal gallery pattern for references and mission briefings.
   Native overflow works without JS; arrows enhance it without loading the viewer. */
.ps-reference-screenshots, .ps-mission-gallery { position: relative; }
.ps-gallery-has-controls > h2 { padding-right: 84px; min-height: 36px; align-content: center; }
:is(.ps-reference-screenshots, .ps-mission-gallery) > .ps-gallery-controls { position: absolute; right: 0; top: 1.2rem; display: flex; gap: 4px; }
.ps-mission-gallery .ps-gallery-controls { top: 0; }
.ps-gallery-controls[hidden] { display: none; }
.ps-gallery-controls button {
  display: grid; place-items: center; padding: 0; width: 36px; height: 36px;
  color: var(--ps-text); background: var(--ps-panel);
  border: 1px solid var(--ps-card-material-border-top); border-radius: 5px;
}
.ps-gallery-controls svg { width: 18px; height: 18px; pointer-events: none; }
.ps-gallery-controls button:disabled { opacity: .35; cursor: default; }
.ps-gallery-controls button:focus-visible, .ps-media-gallery:focus-visible {
  outline: 2px solid var(--ps-focus-ring); outline-offset: 3px;
}
.ps-media-gallery > figure { margin: 0; min-width: 0; }
.ps-media-gallery figure > a { box-sizing: border-box; max-width: 100%; margin-inline: auto; }
.ps-mission-gallery .ps-media-gallery figcaption { margin-top: 0; }
@media (max-width: 760px) {
  .ps-reference-detail, .ps-mission-layout { --ps-detail-card-padding: 16px; --ps-detail-sidebar-padding: 12px; }
  .ps-gallery-controls { gap: 0; }
  .ps-gallery-controls button { width: 40px; height: 44px; }
  .ps-gallery-has-controls > h2 { min-height: 44px; }
}
