/* Compact release article. Preserve the portal's Alagard / Instrument Sans,
   void / purple / gold identity. Design variance 5, motion 2, density 3.
   Image frames and dialog use 8px corners; controls use 6px. */
.fifty-quests { color-scheme:dark; overflow-x:visible; }
.fq-story { width:min(1160px,calc(100% - 64px)); margin-inline:auto; padding:20px 0 40px; }
.fq-story .back-link { margin-bottom:8px; }
.fq-upcoming { margin:6px 0 24px; color:var(--muted); font-size:14px; }
.fq-story p { line-height:1.65; }
.fq-story strong { color:var(--text); font-weight:600; }
.fq-hero { display:grid; grid-template-columns:1fr 1.15fr; align-items:center; gap:40px; }
.fq-hero h1 { margin:0 0 18px; color:var(--gold-hi); font:400 clamp(40px,4.2vw,60px)/1.08 var(--display); text-wrap:balance; }
.fq-deck { color:var(--text); font-size:21px; }
.fq-quest-copy { display:grid; grid-template-columns:1fr 1fr; gap:48px; margin:26px 0 24px; color:#c9bdd8; }
.fq-quest-copy p { margin:0; }
.fq-nav { display:flex; flex-wrap:wrap; gap:0 30px; padding-block:8px; border-block:1px solid var(--article-rule); }
.fq-nav a { display:inline-flex; align-items:center; min-height:44px; font-size:14px; text-underline-offset:5px; text-decoration:none; }
.fq-nav a:hover { color:var(--gold-hi); text-decoration:underline; }
.fq-section { padding:38px 0; border-bottom:1px solid var(--article-rule); }
.fq-story :is(section,aside,[id]) { scroll-margin-top:94px; }
.fq-section h2,.fq-also h2 { margin:0 0 14px; color:var(--text); font:400 clamp(28px,2.7vw,38px)/1.12 var(--display); text-wrap:balance; }
.fq-section p { margin:0 0 14px; max-width:65ch; color:#c9bdd8; }
.fq-section p:last-child { margin-bottom:0; }
.fq-shot { margin:0; min-width:0; border:1px solid var(--article-rule); border-radius:8px; overflow:hidden; background:#100c19; }
.fq-shot a { display:block; }
.fq-shot img,.fq-shot video { display:block; width:100%; height:auto; }
.fq-shot a:focus-visible { outline-offset:-4px; }
.fq-shot figcaption { color:var(--muted); font-size:12px; line-height:1.5; padding:9px 12px; }
.fq-hero .fq-shot { align-self:start; }
.fq-menus { display:grid; grid-template-columns:0.8fr 1.4fr; gap:36px; align-items:center; }
.fq-menu-shots { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.fq-menu-shots figcaption { text-align:center; }
.fq-everyday { display:grid; grid-template-columns:1fr 1fr; gap:48px; }
.fq-everyday .fq-section { display:flex; flex-direction:column; }
.fq-everyday .fq-shot { margin-top:auto; }
.fq-everyday p { margin-bottom:22px; }
.fq-everyday img { aspect-ratio:1.42; object-fit:contain; }
.fq-gear { display:grid; grid-template-columns:1.1fr 1fr; gap:40px; align-items:center; }
.fq-travel { display:grid; grid-template-columns:1fr 1.1fr; gap:40px; align-items:center; }
.fq-travel .fq-shot { align-self:center; }
.fq-also { display:grid; grid-template-columns:0.6fr 1.6fr; gap:36px; padding:28px 0; }
.fq-also ul { display:grid; grid-template-columns:1fr 1fr; gap:8px 28px; padding-left:18px; color:#c9bdd8; font-size:15px; }
.fq-also li::marker { color:var(--purple-hi); }
.fq-provenance { color:var(--muted); font-size:12px; margin:0; }

/* Native dialog traps focus. The shared navigation and skip link keep their layers. */
.fq-lightbox { color:var(--text); background:var(--void); border:1px solid var(--article-rule); border-radius:8px; padding:20px; width:fit-content; max-width:calc(100vw - 32px); max-height:calc(100dvh - 32px); margin:auto; }
.fq-lightbox::backdrop { background:rgba(11,8,18,.94); }
.fq-lightbox form { display:flex; justify-content:flex-end; margin-bottom:12px; }
.fq-lightbox button { background:var(--void-2); color:var(--text); border:1px solid var(--purple-hi); border-radius:6px; min-height:44px; padding:8px 18px; font:600 14px var(--body); cursor:pointer; }
.fq-lightbox button:focus-visible { outline:2px solid var(--gold-hi); outline-offset:3px; }
.fq-lightbox img { max-width:100%; max-height:calc(100dvh - 180px); width:auto; height:auto; display:block; margin:auto; object-fit:contain; }
.fq-lightbox p { font-size:14px; line-height:1.6; margin:16px 0 0; max-width:80ch; }
.fifty-quests .vs-nav-play { color:#211624; }

@media (max-width:1024px) {
  .fq-hero { gap:24px; }
  .fq-menus { grid-template-columns:1fr; gap:22px; }
  .fq-menu-shots { max-width:720px; }
  .fq-everyday { gap:28px; }
  .fq-gear,.fq-travel { gap:28px; }
}
@media (max-width:767px) {
  .fq-story { width:calc(100% - 32px); padding-top:12px; }
  .fq-upcoming { margin-bottom:20px; }
  .fq-hero,.fq-quest-copy,.fq-menus,.fq-everyday,.fq-gear,.fq-travel,.fq-also { grid-template-columns:minmax(0,1fr); gap:20px; }
  .fq-hero h1 { font-size:clamp(36px,10.6vw,52px); max-width:520px; margin-bottom:12px; }
  .fq-deck { font-size:19px; }
  .fq-quest-copy { margin:22px 0; gap:16px; }
  .fq-nav { gap:0 22px; }
  .fq-section { padding:28px 0; }
  .fq-everyday { gap:0; }
  .fq-menu-shots { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .fq-menu-shots .fq-shot:first-child { grid-column:1 / -1; }
  .fq-menu-shots figcaption { padding:7px 4px; }
  .fq-gear > div { grid-row:1; }
  .fq-also { padding:24px 0; gap:4px; }
  .fq-also ul { grid-template-columns:minmax(0,1fr); }
  .fq-lightbox { padding:12px; }
}
@media (prefers-reduced-motion:reduce) {
  html:has(.fifty-quests) { scroll-behavior:auto; }
  .fifty-quests *, .fifty-quests *::before, .fifty-quests *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}
