/* The dock leaves the footer readable on every page. */
.tyne-page-dock{bottom:calc(42px + env(safe-area-inset-bottom))}
.sheet:is(.is-map,.is-about,.is-demo){top:calc((100dvh - 100px)/2)}
footer{display:flex}

@media(max-width:900px){
 .sheet:is(.is-map,.is-about,.is-demo){top:10px;width:calc(100vw - 20px);height:calc(100dvh - 118px - env(safe-area-inset-bottom));transform:translate(-50%,8px) scale(.98)}
 .sheet:is(.is-map,.is-about,.is-demo){--workspace-visual-height:clamp(160px,calc(100dvh - 500px),330px)}
 .sheet:is(.is-map,.is-about,.is-demo).show{transform:translate(-50%,0)}
 .sheet:is(.is-map,.is-about,.is-demo) .sheet-body{padding:42px 14px 14px;overscroll-behavior:contain;scroll-padding-block:12px;scrollbar-width:none}
 .sheet:is(.is-map,.is-about,.is-demo) .sheet-body::-webkit-scrollbar{display:none}
 .sheet:is(.is-map,.is-about,.is-demo) .sheet-close{top:5px;right:7px;width:38px;height:38px}
 .tyne-map-layout.is-mobile-layout,.sheet.is-about .about-intro.is-mobile-layout{display:flex;flex-direction:column;gap:12px;height:auto;min-height:0}
 .sheet.is-map .is-mobile-layout>h2,.sheet.is-about .about-intro.is-mobile-layout>h2{font:500 32px/1.05 var(--serif);letter-spacing:-.025em;margin:0;color:var(--map-ink);max-width:100%}
 .is-mobile-layout>h2 em{white-space:normal}
 .tyne-map-layout.is-mobile-layout>.tyne-map-copy{display:none}
 .tyne-map-layout.is-mobile-layout>.tyne-map-stage{height:var(--workspace-visual-height);min-height:0;flex:none;width:100%;border-radius:11px}
 .tyne-map-layout.is-mobile-layout>[data-map-form]{display:flex;flex-direction:column;width:100%;min-width:0}
 .is-mobile-layout .tyne-map-field{padding:8px 51px 8px 12px;margin-bottom:8px;border-radius:9px}
 .is-mobile-layout .tyne-map-field.has-location{padding-right:95px}
 .is-mobile-layout .tyne-map-field>span{font-size:11px;line-height:13px;margin-bottom:2px}
 .is-mobile-layout .tyne-map-field input{font-size:16px;line-height:27px;padding-left:24px}
 .is-mobile-layout .tyne-map-field>svg{left:12px;bottom:13px;width:15px;height:19px}
 .is-mobile-layout .tyne-map-locate,.is-mobile-layout .tyne-map-clear{width:44px;height:44px;bottom:3px}
 .is-mobile-layout .tyne-map-locate{right:46px}.is-mobile-layout .tyne-map-clear{right:3px}
 .is-mobile-layout .tyne-map-check{min-height:44px;padding:9px 14px;font-size:16px;margin-top:2px;border-radius:9px}
 .is-mobile-layout .tyne-map-options{gap:6px;margin-bottom:8px}.is-mobile-layout .tyne-map-option{min-height:36px;padding:7px 12px}
 .tyne-mobile-notes{border-top:1px solid color-mix(in srgb,var(--map-muted) 18%,transparent);color:var(--map-muted);font:13px/1.5 var(--sans)}
 .tyne-mobile-notes>summary{min-height:40px;padding:10px 0;cursor:pointer;color:var(--map-ink)}
 .tyne-mobile-notes .tyne-map-intro,.tyne-mobile-notes .tyne-map-workflow{font-size:14px;line-height:1.6;margin:0 0 16px;max-width:none}
 .tyne-mobile-notes .tyne-map-support{display:flex;justify-content:flex-start;flex-wrap:wrap;gap:18px;margin:4px 0 12px;font-size:10px}
 .tyne-mobile-notes .tyne-map-info{position:static;font-size:12px;line-height:1.6}
 .tyne-mobile-notes .tyne-map-info>summary{display:flex;align-items:center;min-height:40px;width:auto;height:auto;background:none;font-size:0;color:var(--map-ink)}
 .tyne-mobile-notes .tyne-map-info>summary::after{content:'Sources & credits';font:13px/1.5 var(--sans);text-decoration:underline;text-underline-offset:3px}
 .tyne-mobile-notes .tyne-map-info>div{position:static;width:auto;max-width:none;padding:0 0 12px;background:transparent;box-shadow:none}
 .is-mobile-layout .tyne-map-tools{top:8px;right:8px;gap:2px;padding:3px;max-width:calc(100% - 54px)}
 .is-mobile-layout .tyne-map-tools button{min-height:34px;padding:6px;font-size:11px}
 .is-mobile-layout [data-map-3d],.is-mobile-layout [data-map-relief]{display:none}
 .is-mobile-layout [data-map-expand]{width:32px;font-size:0!important}
 .is-mobile-layout [data-map-expand]::after{content:'↗';font:19px/1 var(--sans)}
 .is-mobile-layout [data-map-expand][aria-pressed="true"]::after{content:'↙'}
 .is-mobile-layout .maplibregl-ctrl-group button{width:34px;height:34px}
 .is-mobile-layout .tyne-map-canvas{bottom:36px}.is-mobile-layout .no-flow-lines .tyne-map-canvas{bottom:0}
 .is-mobile-layout .tyne-map-key{height:36px;padding:4px 8px;gap:3px 8px;flex-wrap:wrap;font-size:8px;white-space:normal;line-height:11px}
 .is-mobile-layout .tyne-journey-preview{bottom:36px;padding:35px 16px 30px}.is-mobile-layout .no-flow-lines .tyne-journey-preview{bottom:0;padding-bottom:38px}
 .is-mobile-layout .tyne-journey-preview h3{font-size:27px}.is-mobile-layout .tyne-journey-preview.is-delay h3{font:400 13px/1.35 var(--sans)}.is-mobile-layout .tyne-journey-metric{font-size:34px}
 .is-mobile-layout .tyne-journey-preview.is-delay .tyne-journey-metric{font-size:25px}
 .is-mobile-layout .tyne-journey-skip{right:16px;bottom:30px}.is-mobile-layout .no-flow-lines .tyne-journey-skip{bottom:38px}
 .is-mobile-layout .tyne-map-info{bottom:47px}.is-mobile-layout .no-flow-lines .tyne-map-info{bottom:10px}
 .is-mobile-layout .tyne-map-drag-hint{font-size:20px;gap:15px;padding:18px}.is-mobile-layout .tyne-map-drag-hint svg{width:96px;height:96px}
 .sheet.is-map.is-map-expanded .sheet-body{padding:42px 12px 12px}
 .sheet.is-map-expanded .tyne-map-layout.is-mobile-layout{height:100%;display:block}
 .sheet.is-map-expanded .is-mobile-layout>h2,.sheet.is-map-expanded .is-mobile-layout>form,.sheet.is-map-expanded .tyne-mobile-notes{display:none}
 .sheet.is-map-expanded .tyne-map-layout.is-mobile-layout>.tyne-map-stage{height:100%}
 .sheet.is-about .about-intro.is-mobile-layout .about-founders-photo{height:var(--workspace-visual-height);min-height:0;width:100%;max-width:none;flex:none;border-radius:11px}
 .sheet.is-about .about-intro.is-mobile-layout .about-founders-photo img{height:100%;object-position:center 8%}
 .sheet.is-about .about-intro.is-mobile-layout .about-copy{display:flex;gap:0;min-height:0;padding-bottom:70px}
 .sheet.is-about .about-intro.is-mobile-layout .about-actions{position:fixed;left:14px;right:14px;bottom:14px;z-index:5;margin:0;padding-top:10px;background:linear-gradient(transparent,var(--map-paper) 22%)}
 .sheet.is-about .about-intro.is-mobile-layout .about-copy>*{order:0}
 .sheet.is-about .about-intro.is-mobile-layout .lede{font-size:15px;line-height:1.6;margin:0 0 18px}
 .sheet.is-about .about-intro.is-mobile-layout .founders-grid{margin:0;padding:4px 0 0;grid-template-columns:1fr;gap:12px}
 .sheet.is-about .about-intro.is-mobile-layout .founder-card{grid-template-columns:68px minmax(0,1fr);padding:16px;gap:12px}
 .sheet.is-about .about-intro.is-mobile-layout .founder-avatar{width:68px;height:68px}
 .sheet.is-about .about-intro.is-mobile-layout .founder-link{min-height:38px;font-size:13px;padding:9px 12px}
 .sheet.is-about .about-intro.is-mobile-layout .about-contact-button{width:100%;min-height:46px}
}

@media(max-width:760px){
 .mobile-bottom-nav{display:none!important}
 .hero .cta-row{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:10px}
 .hero .cta-row .btn{width:100%;min-width:0;min-height:50px;padding:12px 10px;font-size:14px}
}

@media(max-width:900px){
 footer{display:flex;position:fixed;left:0;right:0;bottom:calc(7px + env(safe-area-inset-bottom));z-index:160;width:100%;height:22px;margin:0;padding:0 8px;border:0;font-size:10px;line-height:1.2;pointer-events:none}
 footer .footer-line{text-align:center;text-shadow:0 1px 4px var(--paper)}
}

@media(max-width:900px) and (max-height:680px){
 .sheet:is(.is-map,.is-about,.is-demo){--workspace-visual-height:140px}
 .sheet:is(.is-map,.is-about,.is-demo) .sheet-body{padding-top:38px;padding-bottom:10px}
 .sheet.is-map .is-mobile-layout>h2,.sheet.is-about .about-intro.is-mobile-layout>h2{font-size:27px}
 .tyne-map-layout.is-mobile-layout{gap:9px}
 .is-mobile-layout .tyne-map-field{padding-top:5px;padding-bottom:5px;margin-bottom:6px}
 .is-mobile-layout .tyne-map-field input{line-height:25px}
 .is-mobile-layout .tyne-map-check{min-height:42px;padding:8px 12px}
 .is-mobile-layout .tyne-journey-preview{padding-top:12px}
 .is-mobile-layout .tyne-journey-preview h3{font-size:18px}
 .is-mobile-layout .tyne-journey-metric{font-size:24px}
 .is-mobile-layout .tyne-journey-preview.is-delay h3{font-size:12px}
 .is-mobile-layout .tyne-journey-preview.is-delay .tyne-journey-metric{font-size:21px}
 .is-mobile-layout .tyne-map-drag-hint{font-size:15px;gap:7px;padding:10px}.is-mobile-layout .tyne-map-drag-hint svg{width:64px;height:64px}
}

@media(min-width:500px) and (max-width:900px) and (max-height:500px){
 .sheet:is(.is-map,.is-about,.is-demo){--workspace-visual-height:max(110px,calc(100dvh - 206px))}
 .sheet:is(.is-map,.is-about,.is-demo) .sheet-body{padding-top:34px}
 .tyne-map-layout.is-mobile-layout,.sheet.is-about .about-intro.is-mobile-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:6px 12px;align-items:start}
 .sheet.is-map .is-mobile-layout>h2,.sheet.is-about .about-intro.is-mobile-layout>h2{grid-column:1/-1;font-size:22px;line-height:1}
 .tyne-map-layout.is-mobile-layout>.tyne-map-stage{grid-column:1;grid-row:2;height:calc(100dvh - 206px);min-height:110px}
 .tyne-map-layout.is-mobile-layout>form{grid-column:2;grid-row:2}
 .tyne-mobile-notes{grid-column:1/-1}
 .is-mobile-layout .tyne-map-field{padding-top:4px;padding-bottom:4px;margin-bottom:4px}
 .is-mobile-layout .tyne-map-field>span{font-size:10px;line-height:11px;margin-bottom:1px}
 .is-mobile-layout .tyne-map-field input{line-height:22px}
 .is-mobile-layout .tyne-map-check{min-height:36px;padding:6px 12px}
 .is-mobile-layout .tyne-map-locate,.is-mobile-layout .tyne-map-clear{bottom:0}
 .sheet.is-about .about-intro.is-mobile-layout .about-founders-photo{height:calc(100dvh - 206px);min-height:110px}
 .sheet.is-map-expanded .tyne-map-layout.is-mobile-layout{display:block}
 .sheet.is-map-expanded .tyne-map-layout.is-mobile-layout>.tyne-map-stage{height:100%}
}

@media(min-width:500px) and (max-width:900px) and (min-height:360px) and (max-height:500px){
 .tyne-mobile-notes:not([open]){grid-column:2;grid-row:2;align-self:end}
 .tyne-mobile-notes:not([open])>summary{min-height:32px;padding:6px 0;font-size:12px}
}
