/* Evidence and location links follow the Doctor Who minisite's reading pattern. */
.lab-source-cite{font-size:14px;color:#55585f;white-space:normal}
.lab-source-cite a{text-decoration:none}
.lab-source-cite code{font:12px/1.5 ui-monospace,monospace;background:#2f3136;color:#fff;border-radius:4px;padding:2px 6px;white-space:nowrap}
.lab-source-cite a:hover code,.lab-source-cite a:focus-visible code{background:#1f5fa8}
sup.lab-fn{font-size:.7em;line-height:0;margin-left:2px}
sup.lab-fn a{text-decoration:none;padding:1px 2px}
.lab-place-link{display:inline-flex;align-items:center;vertical-align:-3px;margin:0 3px;color:#c25a00;text-decoration:none}
.lab-pin-symbol{display:block;width:14px;height:18px;flex:none;background:currentColor;-webkit-mask:url(map-pin.svg) center/contain no-repeat;mask:url(map-pin.svg) center/contain no-repeat}
.lab-place-link:hover{color:#2f3136}
.lab-place-link:focus-visible{outline:2px solid #1f5fa8;outline-offset:4px;border-radius:2px}
.lab-link-key{font-size:14px;color:#55585f;margin:18px 0}
.lab-reference-list li{scroll-margin-top:100px}
.lab-reference-list li:target{background:#fff0c2;border-radius:4px}
#captured-scene{scroll-margin-top:calc(var(--tabs-h,76px) + 100px)}
.lab-scene-reading{font-size:15px;margin:14px 0}
#control-reference table{width:100%;border-collapse:collapse;font-size:15px}
#control-reference th,#control-reference td{text-align:left;vertical-align:top;padding:10px;border-bottom:1px solid #d5d3cc}
#control-reference th{color:#55585f}
@media(max-width:600px){#control-reference table{font-size:13px}#control-reference th,#control-reference td{padding:7px 4px}}

/* City workflow on Maps / levels. */
.lab-flow-scroll{overflow-x:auto;border:1px solid #d5d3cc;background:#fff;border-radius:10px}
.lab-flow-svg{display:block;width:100%;min-width:640px;height:auto}
.lab-flow-node rect{fill:#eef5fa;stroke:#1f5fa8;stroke-width:2}
.lab-flow-node text{fill:#25384a;font-size:19px;font-weight:600}
.lab-flow-edge path{fill:none;stroke-width:3}
.lab-flow-edge text{font-size:14px;fill:#2f3136;paint-order:stroke;stroke:white;stroke-width:5px;stroke-linejoin:round}
.lab-flow-edge[data-kind=move] path{stroke:#1f5fa8}
.lab-flow-edge[data-kind=action] path{stroke:#a65a19;stroke-dasharray:7 4}
.lab-flow-node:focus rect,.lab-flow-node:hover rect,.lab-flow-node[aria-current=true] rect{fill:#d2e9f9;stroke-width:4}
.lab-flow-edge[data-kind=sequence] path{stroke:#59616b;stroke-dasharray:2 5}
.lab-flow-edge:focus path,.lab-flow-edge:hover path,.lab-flow-edge[aria-current=true] path{stroke-width:6}
.lab-flow-detail{margin-top:16px;padding:20px;background:#fff;border:1px solid #d5d3cc;border-radius:10px}
.lab-flow-detail h3{margin-top:0}
.lab-flow-detail blockquote{white-space:pre-wrap;margin:10px 0;font:16px/1.5 ui-monospace,monospace}
.lab-flow-legend{font-size:14px}
.lab-flow-detail:focus{outline:2px solid #1f5fa8}

/* Gameplay keeps the route guide optional and links each area to its companion pages. */
.lab-journey-guide{margin:18px 0}
.lab-journey-guide>summary{font-size:15px;font-weight:600}
.lab-journey a[aria-current=location]{border-color:#1f5fa8;background:#edf4f8}
.lab-area-links{display:flex;gap:8px 18px;flex-wrap:wrap;font-size:13px;margin:0;grid-column:1/-1}
.lab-area-links[hidden]{display:none}
.lab-area-links a{padding:4px 0;text-underline-offset:3px}

#lab-response-filter{display:block;width:100%;font:inherit;padding:9px 12px;margin:8px 0;border:1px solid #aaa;border-radius:5px;background:white;color:#2f3136}
#lab-response-text{overflow-wrap:anywhere}
#lab-response-count{margin:8px 0 16px}

/* Captured rooms remain a visual index, with the capture method visible. */
.lab-scene-index{margin-top:28px;scroll-margin-top:calc(var(--tabs-h,76px) + 24px)}
.lab-scene-index>summary{font-weight:650}
.lab-scene-index ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;list-style:none;padding:0;margin:18px 0}
.lab-scene-index li{margin:0;min-width:0}
.lab-scene-index a{display:flex;flex-direction:column;height:100%;padding:10px;border:2px solid #d5d3cc;border-radius:8px;background:#fff;text-decoration:none;color:#2f3136}
.lab-scene-index a:hover,.lab-scene-index a:focus-visible{border-color:#1f5fa8}
.lab-scene-index a[aria-current=true]{border-color:#1f5fa8;background:#edf4f8}
.lab-scene-index img{display:block;width:100%;height:auto;image-rendering:pixelated;background:black;margin-bottom:10px}
.lab-scene-index strong{font-size:15px;line-height:1.4}
.lab-scene-index span{font-size:12px;line-height:1.5;color:#55585f;margin-top:5px}
@media(max-width:760px){.lab-scene-index ul{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:380px){.lab-scene-index ul{grid-template-columns:1fr}}

.lab-scene-index figure{margin:0;padding:0;border:0;border-radius:0;background:none;height:100%}
.lab-scene-index figcaption{margin:0;font:inherit;color:inherit}
.lab-scene-index figcaption span{display:block}

/* Reading direction and visible location coverage. */
.lab-start-reading{margin:24px 0;padding:20px;border:1px solid #b8c5cf;border-radius:9px;background:#f6fafc}
.lab-primary-link{display:inline-block;padding:10px 16px;border-radius:6px;background:#1f5fa8;color:#fff;text-decoration:none;font-weight:650}
.lab-primary-link:hover,.lab-primary-link:focus-visible{background:#164575}
.lab-start-reading p:last-child{margin-bottom:0}
.lab-page-jumps{display:flex;gap:12px 24px;flex-wrap:wrap;margin:24px 0}
.lab-page-roles dt{font-weight:650;margin-top:14px}
.lab-page-roles dd{margin-left:0;color:#55585f}
.lab-location-status{display:inline-block;padding:4px 9px;border-radius:5px;font-size:13px;font-weight:650;line-height:1.5;background:#f2eee5;color:#65522c}
.lab-location-status[data-status=verified]{background:#e3eee4;color:#315339}
.lab-location-status[data-status=code]{background:#e8ebf2;color:#33405c}
.lab-scene-index .lab-location-status{align-self:flex-start;color:#65522c}
.lab-scene-index .lab-location-status[data-status=verified]{color:#315339}
#lab-scene-title{font-size:24px;line-height:1.3;margin:12px 0}
#lab-scene-status{margin:0 0 8px}
#lab-scene-scope{font-size:15px;margin:6px 0 18px}

/* Each gameplay area starts with its local interactions and connections. */
.lab-area-brief{margin:20px 0 28px;padding:20px 24px;border:1px solid #c9c7c1;border-radius:9px;background:#f8f7f3}
.lab-area-purpose{font-size:19px;font-weight:650;margin:0 0 16px}
.lab-area-brief dl{display:grid;grid-template-columns:145px 1fr;gap:10px 18px;margin:0}
.lab-area-brief dt{font-weight:650}.lab-area-brief dd{margin:0}
.lab-area-scope{font-size:14px;color:#55585f;margin:18px 0 0;border-top:1px solid #d5d3cc;padding-top:12px}
@media(max-width:600px){.lab-area-brief{padding:16px}.lab-area-brief dl{grid-template-columns:1fr;gap:4px}.lab-area-brief dd{margin-bottom:10px}}

/* Areas overview: a grid of small screenshots. */
.lab-area-cards{list-style:none;margin:20px 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:20px 16px}
.lab-area-cards figure{margin:0;padding:0;border:0;background:none;display:flex;flex-direction:column;gap:4px;height:100%}
.lab-area-cards a{text-decoration:none;color:#2f3136}
.lab-card-pic{display:block}
.lab-area-cards figcaption{display:flex;flex-direction:column;gap:4px;margin:0}
.lab-card-name:hover b,.lab-card-name:focus b{text-decoration:underline}
.lab-area-cards img{display:block;width:100%;height:auto;image-rendering:pixelated;background:#000;border:1px solid #d5d3cc;margin-bottom:4px}
.lab-area-cards b{font-size:15px;line-height:1.35;color:#1f5fa8}
.lab-area-status{font-size:13px;color:#55585f}
.lab-area-purpose-line{font-size:13px;line-height:1.4;color:#2f3136}
.lab-dot{display:inline-block;width:11px;height:11px;margin-right:6px;border:1.5px solid #55585f;border-radius:50%;vertical-align:-1px;box-sizing:border-box}
.lab-dot-full{background:#55585f}
.lab-dot-half{background:linear-gradient(90deg,#55585f 50%,transparent 50%)}
