/* Screen enhancements are independent of the printable match package. */
.stage-nav, .map-expand { display:none; }
.map-viewer:not([open]) { display:none; }
@media screen {
  .map-expand { display:block; margin:10px 0; min-height:44px; border-radius:4px; }
  .map.iso-map { cursor:zoom-in; }
  .map-viewer { width:100vw; max-width:none; height:100dvh; max-height:none; margin:0; padding:0; border:0; background:#f8f8f4; color:#20252b; }
  .map-viewer[open] { display:flex; flex-direction:column; }
  .map-viewer::backdrop { background:#0009; }
  .map-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding:12px; background:#242029; color:#fff; }
  .map-toolbar h2 { flex:1 1 220px; font-size:18px; margin:0; }
  .map-controls { display:flex; flex-wrap:wrap; gap:8px; }
  .map-controls button { min-width:44px; min-height:44px; padding:8px 12px; border-radius:4px; }
  .map-scroll { flex:1; overflow:auto; min-height:0; overscroll-behavior:contain; }
  .map-scroll .map { display:block; margin:0; border:0; max-width:none; max-height:none!important; width:100%; height:auto; cursor:default; }
  .map-help { font:14px/1.4 sans-serif; padding:8px 12px; margin:0; background:#e8e8e2; }
  body.map-is-open { overflow:hidden; }
}
@media screen and (max-width:700px) {
  .wrap { padding:16px 12px 36px; }
  nav { gap:8px; margin-bottom:18px; letter-spacing:.4px; }
  nav a { display:flex; align-items:center; min-height:44px; padding:8px; }
  .hero,.rules-box,.stage-box,.organizer,.sheet { padding:18px 14px; }
  .hero h1 { font-size:clamp(40px,13vw,66px); letter-spacing:-2px; }
  .lead { font-size:17px; }
  .mission-brief { margin-top:20px; }
  .stage-head { gap:10px; align-items:flex-start; }
  .stage-head h2 { font-size:clamp(21px,6vw,27px); overflow-wrap:anywhere; }
  .stage-head .number { font-size:34px; flex-shrink:0; }
  .procedure { padding-left:20px; }
  .procedure li { margin:12px 0; padding-left:0; }
  .legend { padding-left:12px; }
  .sheet h1 { font-size:26px; }
  th,td { overflow-wrap:anywhere; padding:6px 4px; }
  .stage-nav { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:5px; position:sticky; top:0; z-index:10; padding:8px 0; margin:12px 0; background:var(--bg,#17151a); }
  .stage-nav a { justify-content:center; text-decoration:none; border:1px solid var(--line,#675365); border-radius:4px; padding:8px 0; font:700 15px/1 sans-serif; color:var(--ink,#fff); }
  .stage-nav a.bonus-link { border-style:dashed; color:var(--accent,#f3bc68); }
  .stage-box { scroll-margin-top:76px; }
  .map-expand { width:100%; }
  .poem-pair .ritual { padding:20px 8px; }
  .poem-pair .ritual p { font-size:clamp(16px,4.5vw,20px); }
  .map-toolbar { padding:10px; }
  .map-toolbar h2 { flex-basis:100%; }
}
@media print { .stage-nav,.map-expand,.map-viewer { display:none!important; } }
