.route-slide{padding-top:105px;padding-bottom:85px}.route-slide h2{font-size:60px;margin-bottom:32px}.route-layout{display:grid;grid-template-columns:520px 1fr;gap:64px;align-items:start}.route-brief{font-size:22px}.route-question{font-size:28px;font-weight:600;margin-bottom:22px}.route-brief label{display:block;font-size:18px;color:var(--muted);margin:12px 0 8px}.route-brief select{width:100%;background:var(--ink-2);color:var(--lab-text);border:1px solid var(--line);border-radius:10px;padding:12px;font:inherit;font-size:20px}.route-prompt{font-size:21px;line-height:1.5;margin:14px 0;color:var(--cyan-soft);min-height:72px}#routeSuggest{margin:20px 0 16px;padding:14px 24px;border-radius:100px;background:var(--cyan);color:var(--ink);font:inherit;font-weight:700;border:0;cursor:pointer}.route-brief :focus-visible{outline:3px solid var(--cyan);outline-offset:4px}#routeEmpty{color:var(--muted);font-size:20px;line-height:1.5}.route-summary{font-size:20px;color:var(--cyan-soft)}#routeResult ol{list-style:none;padding:0;margin:12px 0;display:grid;gap:8px}#routeResult li{display:flex;gap:14px;font-size:20px}#routeResult li[hidden],.route-slide [hidden]{display:none!important}#routeResult li b{color:var(--cyan)}#routeResult small{display:block;font-size:17px;color:var(--muted);margin-top:4px}.route-map{background:var(--ink-2);border:1px solid var(--line);border-radius:24px;padding:28px}.route-map-heading{display:flex;justify-content:space-between;font-size:19px;color:var(--muted)}.route-map-heading b{color:var(--cyan);letter-spacing:3px}.route-map svg{width:100%;height:auto;margin-top:12px}.route-floor{fill:var(--ink);stroke:var(--line)}.route-aisle{fill:none;stroke:var(--line);stroke-width:16;stroke-linejoin:round}.route-booth rect{fill:var(--ink-2);stroke:var(--muted);stroke-opacity:.4}.route-booth text{fill:var(--muted);font:600 20px var(--font)}.route-booth .route-booth-name{font-size:16px;font-weight:400}.route-booth.selected rect{stroke:var(--cyan);stroke-width:3}.route-booth.selected text{fill:var(--cyan-soft)}#routeLine{fill:none;stroke:var(--cyan);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2200;stroke-dashoffset:2200}#routeLine.show{animation:route-draw 1.4s ease both}.route-entry{fill:var(--cyan)}.route-entry-label{fill:var(--cyan-soft);font:16px var(--font)}.route-map-note{font-size:21px;line-height:1.5;color:var(--muted)}.route-disclaimer{margin-top:24px;font-size:17px;color:var(--muted)}@keyframes route-draw{to{stroke-dashoffset:0}}@media(prefers-reduced-motion:reduce){#routeLine.show{animation:none;stroke-dashoffset:0}}@container presentation (max-width:760px){.route-layout{grid-template-columns:1fr;gap:24px}.route-slide h2{font-size:34px}.route-map{padding:14px}.route-map-heading{font-size:13px}.route-disclaimer{font-size:13px}.route-map-note{font-size:15px}}
/* Inactive interactive slides must not intercept this demo's controls. */
.slide:not(.active),.slide:not(.active) *{pointer-events:none!important}
/* Exhibition hall: quiet booth grid, bright visitor journey. */
.route-map{background:radial-gradient(ellipse at 75% 15%,rgba(0,194,255,.07),transparent 60%),var(--ink-2)}
.route-zone{fill:var(--muted);font:600 11px var(--font);letter-spacing:1px}
.route-aisle{stroke:var(--line);stroke-width:1;stroke-dasharray:3 8;opacity:.6}
.route-booth rect{fill:rgba(228,233,255,.045);stroke:rgba(228,233,255,.18);transition:fill .35s,stroke .35s}
.route-booth text{font-size:13px;fill:var(--muted)}
.route-booth-edge{fill:none;stroke:var(--line);stroke-width:2}
.route-booth.selected rect{fill:rgba(0,194,255,.18);stroke:var(--cyan);stroke-width:1.5}
.route-booth.selected .route-booth-edge{stroke:var(--cyan)}
#routeLine{stroke-width:3;stroke-dasharray:none;stroke-dashoffset:0;opacity:0;transition:opacity .5s}
#routeLine.show{animation:none;opacity:1}
#routeHalo{fill:none;stroke:var(--cyan);stroke-width:10;filter:url(#routeGlow);opacity:0;transition:opacity .5s}
#routeHalo.show{opacity:.35}
.route-stop{opacity:0;transition:opacity .4s;pointer-events:none}
.route-stop.selected{opacity:1}
.route-stop circle{fill:var(--cyan);stroke:var(--ink);stroke-width:3}
.route-stop text{fill:var(--ink);font:700 15px var(--font)}
.route-entry-label{font-size:11px;letter-spacing:1px}
@media(prefers-reduced-motion:reduce){#routeLine,#routeHalo,.route-stop,.route-booth rect{transition:none}}
/* Keep native selects aligned inside the scaled slide on macOS. */
.route-brief select{
 appearance:none;
 -webkit-appearance:none;
 box-sizing:border-box;
 height:56px;
 padding:0 48px 0 16px;
 line-height:normal;
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%23c6cee8' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
 background-repeat:no-repeat;
 background-position:right 16px center;
 background-size:16px 16px;
}
/* Reveal follows the SVG path; keep the glow in sync with the line. */
#routeLine,#routeHalo{transition:none;stroke-linecap:round;stroke-linejoin:round}
