.fhh-response{width:100%;display:flex;align-items:center;gap:24px;padding:23px;border:1px solid #cdb5a5;border-radius:8px;background:#eee1d4;color:#523a30;text-align:left;cursor:pointer;font:inherit}
.fhh-response>svg{width:140px;flex:0 0 140px;fill:none;stroke:#704b3c;stroke-width:2;stroke-linejoin:round}
.fhh-road{stroke:#d3c8b9;stroke-width:14}
.fhh-route{stroke:#a7553e;stroke-width:3;stroke-dasharray:4 4}
.fhh-building{fill:#d8b6a2}
.fhh-truck{fill:#a5513e}
.fhh-call{fill:#fcfbf7}
.fhh-response strong{display:block;font-size:24px;font-weight:600;letter-spacing:-.025em;margin-bottom:8px}
.fhh-response>span>span{display:block;max-width:35ch;font-size:14px;line-height:1.5}
.fhh-response>b{margin-left:auto;font-size:24px;font-weight:400}
.fhh-response:hover{background:#e6d5c6}
.fhh-status{font-size:13px;line-height:1.5;color:#62493c;margin:12px 0 0}
.fhh-tools{display:grid;grid-template-columns:1fr 1fr;column-gap:28px;margin-top:22px}
.fhh-tools>button,.fhh-tools>a{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:82px;padding:15px 4px;background:none;border:0;border-bottom:1px solid #dce1d6;text-align:left;text-decoration:none;color:#294b4b;font:inherit;cursor:pointer}
.fhh-tools strong{display:block;font-size:16px;font-weight:600;margin-bottom:5px}
.fhh-tools small{display:block;font-size:12px;color:#596c63;line-height:1.45}
.fhh-tools b{font-size:19px;font-weight:400}
.fhh-tools>button:hover,.fhh-tools>a:hover{color:#0e6471;background:#f0f3eb}
.fhh-back{display:block;min-height:44px;padding:8px 0;margin:0 0 12px;border:0;background:none;font:inherit;font-size:14px;color:#294b4b;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
@media(max-width:540px){.fhh-response{gap:14px;padding:17px}.fhh-response>svg{width:68px;flex-basis:68px}.fhh-response strong{font-size:20px}.fhh-response>span>span{font-size:13px}.fhh-response>b{display:none}.fhh-tools{grid-template-columns:1fr;margin-top:12px}.fhh-tools>button,.fhh-tools>a{min-height:73px}.fhh-tools strong{font-size:15px}}
/* Live Waterloo demos: problem, what to try, result. External, synthetic, new tab. */
.fhh-live{margin-top:22px}.fhh-live h3{font-size:15px;font-weight:600;color:#294b4b;margin:0 0 10px}.fhh-live h3 small{display:block;font-size:12px;font-weight:400;color:#596c63;margin-top:3px}
.fhh-live{display:grid;grid-template-columns:1fr 1fr;gap:12px}.fhh-live h3{grid-column:1/-1}
.fhh-demo{display:block;padding:14px 16px;border:1px solid #cfd9cf;border-radius:8px;background:#f6f8f2;color:#294b4b;text-decoration:none}.fhh-demo:hover{border-color:#6e8f86;background:#eef3ec}.fhh-demo:focus-visible{outline:3px solid #2765a2;outline-offset:3px}
.fhh-demo-head{display:grid;grid-template-columns:1fr auto;column-gap:10px}.fhh-demo-head strong{font-size:16px}.fhh-demo-head small{grid-column:1;font-size:12px;color:#596c63;margin-top:2px}.fhh-demo-head b{grid-column:2;grid-row:1/3;align-self:center;font-size:19px;font-weight:400}
.fhh-demo dl{margin:10px 0 0;display:grid;gap:4px}.fhh-demo dl div{display:grid;grid-template-columns:62px 1fr;gap:8px}.fhh-demo dt{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#7a5a48;padding-top:1px}.fhh-demo dd{margin:0;font-size:13px;line-height:1.4}
@media(max-width:540px){.fhh-live{grid-template-columns:1fr;margin-top:14px}}
/* Phone: the building strip sits directly under the town and its controls; Fire Hall keeps its short sub-label. */
.exhibit-nav-title{display:none}.exhibit-sub{display:none}
@media(max-width:760px){
 .workshop{grid-template-areas:"scene" "controls" "projects" "residents" "panel"}
 .exhibit-nav [data-exhibit="firehall"]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-weight:600}
 .exhibit-sub{display:block;font-size:10px;font-weight:400;color:#7a5141}
 .residents-dock{margin-top:10px}
}
/* Hydrant drill showcase: one sample run. Fire Hall's brick palette; motion is a short reveal, removed under reduced motion. */
.fhh-showcase{margin:0 0 26px}
.fds-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 14px}
.fds-head h3{margin:0;font-size:20px;font-weight:600;letter-spacing:-.02em;color:var(--ink)}
.fds-label{margin:0;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#7a5141}
.fds-context{margin:6px 0 14px;font-size:14px;line-height:1.5;color:#40544b;max-width:62ch}
.fds-run{padding:18px 18px 14px;border:1px solid #d9c6b8;border-radius:8px;background:#fbf8f3}
.fds-track{position:relative;height:46px;margin:14px 6px 4px;border-bottom:2px solid #d8cabd}
.fds-fill{position:absolute;left:0;bottom:-2px;height:2px;background:#a5513e;transition:width .6s ease}
.fds-tick{position:absolute;bottom:-7px;width:12px;height:12px;margin-left:-6px;border-radius:50%;background:#a5513e;border:2px solid #fbf8f3;animation:fds-in .35s ease both}
.fds-tick b{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);font-size:11px;font-weight:600;color:#523a30;white-space:nowrap}
.fds-ready{background:#704b3c}
.fds-flag{background:#fbf8f3;border:2px solid #a5513e}.fds-flag b{bottom:-22px;color:#a5513e}
.fds-span{position:absolute;bottom:6px;height:6px;border-radius:3px;background:#e7cfc0;animation:fds-in .35s ease both}
.fds-scale{position:absolute;left:0;right:0;bottom:-22px;display:flex;justify-content:space-between;font-size:10px;color:#7a6b62}.fds-scale i{font-style:normal}
@keyframes fds-in{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}
.fds-meta{margin:30px 0 12px;font-size:12px;color:#5c6b64}.fds-meta output{font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink)}
.fds-step{margin:0 0 10px;font-size:14px;line-height:1.5;color:#294b4b}
.fds-step b,.fds-note label b{display:inline-grid;place-items:center;width:22px;height:22px;margin-right:8px;border-radius:50%;background:#704b3c;color:#fff;font-size:12px}
.fds-primary,.fds-secondary{min-height:44px;padding:10px 16px;border-radius:6px;font:inherit;font-size:14px;cursor:pointer}
.fds-primary{border:0;background:#a5513e;color:#fff}.fds-primary:hover{background:#8e4433}
.fds-secondary{border:1px solid #b9a597;background:#fff;color:#523a30}.fds-secondary:hover{background:#f4ece4}
.fds-note{display:grid;gap:8px}.fds-note label{font-size:14px;color:#294b4b}.fds-note label small{margin-left:8px;font-size:12px;color:#7a5141}
.fds-note textarea{width:100%;border:1px solid #cdbcae;border-radius:6px;padding:10px;font:inherit;font-size:14px;resize:vertical}.fds-note button{justify-self:start}
.fds-result{display:grid;gap:14px;animation:fds-in .35s ease both}
.fds-interval{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:0;padding:12px 14px;border-left:4px solid #a5513e;background:#f4ece4}
.fds-interval span{font-size:13px;color:#523a30}.fds-interval strong{font-size:28px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink)}.fds-interval small{font-size:12px;color:#7a6b62}
.fds-report h4{margin:0 0 6px;font-size:15px}.fds-report h4 small{margin-left:8px;font-size:11px;font-weight:400;color:#7a5141}
.fds-report table{width:100%;border-collapse:collapse;font-size:13px}.fds-report th,.fds-report td{text-align:left;padding:7px 8px;border-bottom:1px solid #e6dbd1}.fds-report thead th{font-size:11px;font-weight:600;color:#5c6b64}
.fds-report td{font-variant-numeric:tabular-nums}
.fds-flagline{margin:10px 0 0;font-size:13px;line-height:1.5;color:#523a30}.fds-flagline q{color:#294b4b}
.fds-judgment{margin:8px 0 0;font-size:12px;line-height:1.5;color:#5c6b64}
.fds-status{margin:10px 0 0;min-height:18px;font-size:12px;color:#5c6b64}
.fds-real{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 20px;margin-top:14px}
.fds-real p{margin:0;flex:1 1 320px;font-size:13px;line-height:1.5;color:#40544b}.fds-real .we-open{margin-top:0}
.fhh-more{margin:16px 0 0;font-size:13px;color:#40544b}.fhh-more button{min-height:44px;border:0;background:none;padding:0 4px;font:inherit;color:#523a30;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.fhh-concepts .fhh-response{padding:16px;gap:16px}.fhh-concepts .fhh-response>svg{width:96px;flex-basis:96px}.fhh-concepts .fhh-response strong{font-size:19px;margin-bottom:4px}
@media(max-width:540px){.fds-run{padding:14px 12px 12px}.fds-head h3{font-size:18px}.fds-interval strong{font-size:24px}.fds-report th,.fds-report td{padding:6px 5px}}
