aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGuilhem Moulin <guilhem@fripost.org>2025-06-12 13:32:40 +0200
committerGuilhem Moulin <guilhem@fripost.org>2025-06-12 13:33:02 +0200
commit35528bea06784737e614339e56537d335dd87c22 (patch)
tree0c45872a87f73d9f715893d5a6d877a237dc1070 /src
parentf84b38b2f6e8412a613c4c3ff0865e1230d920b5 (diff)
Move *.css files to ./src.
Diffstat (limited to 'src')
-rw-r--r--src/style.css621
-rw-r--r--src/style2.css50
2 files changed, 671 insertions, 0 deletions
diff --git a/src/style.css b/src/style.css
new file mode 100644
index 0000000..672610d
--- /dev/null
+++ b/src/style.css
@@ -0,0 +1,621 @@
+@import "~bootstrap/dist/css/bootstrap.css";
+@import "~bootstrap-icons/font/bootstrap-icons.css";
+@import "~ol/ol.css";
+
+html, body {
+ margin: 0;
+ height: 100%;
+ --ol-foreground-color: var(--bs-body-color);
+ --ol-background-color: var(--bs-body-bg);
+
+ /* highlight non-bootstrapy style */
+ --ol-accent-background-color: red;
+ --ol-subtle-background-color: red;
+ --ol-partial-background-color: red;
+ --ol-subtle-foreground-color: red;
+ --ol-brand-color: red;
+}
+
+#map {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ width: 100%;
+ --map-container-padding: 1rem;
+}
+
+body.inprogress {
+ cursor: wait;
+}
+
+#map-control-container {
+ --map-menu-spacing: .5em;
+ position: absolute;
+ padding: var(--map-container-padding);
+ display: flex;
+ justify-content: flex-end;
+ width: 100%;
+ height: 100%;
+}
+@media screen and (max-width: 767px), screen and (max-height: 767px) {
+ #map {
+ --map-container-padding: .5rem;
+ }
+}
+
+#zoom-control {
+ position: absolute;
+ margin-left: var(--map-container-padding);
+ margin-top: var(--map-container-padding);
+}
+#zoom-control .ol-zoom {
+ position: relative;
+ display: block;
+ width: revert;
+ top: auto;
+ left: auto;
+ pointer-events: auto;
+}
+#zoom-control .ol-zoomslider {
+ margin-top: .5rem;
+ position: relative;
+ display: block;
+ width: revert;
+ top: auto;
+ left: auto;
+ padding: 10px 0;
+
+ background-color: RGBA(var(--bs-body-bg-rgb), .95);
+ border-radius: var(--bs-modal-border-radius);
+ border: var(--bs-modal-border-width) solid var(--bs-modal-border-color);
+ overflow-y: hidden;
+ z-index: 0;
+}
+#zoom-control .ol-zoomslider::after {
+ content: "";
+ position: absolute;
+ top: 3%;
+ left: calc(50% - 3px);
+ width: 6px;
+ height: 94%;
+ background-color: RGBA(211, 212, 213, .4);
+ border-radius: 5px;
+ border: var(--bs-modal-border-width) solid var(--bs-modal-border-color);
+ cursor: pointer;
+ pointer-events: auto;
+}
+#zoom-control button.ol-zoomslider-thumb {
+ z-index: 10;
+ height: 10px;
+ width: 80%;
+ margin: 0 auto;
+ padding: 0;
+ pointer-events: auto;
+}
+
+.ol-scale-line {
+ display: block;
+ width: revert;
+ height: revert;
+ top: auto;
+ bottom: var(--map-container-padding);
+ left: var(--map-container-padding);
+ z-index: 0;
+
+ padding: .5rem;
+ background-color: RGBA(var(--bs-body-bg-rgb), .95);
+ background-clip: padding-box;
+ border: var(--bs-modal-border-width) solid var(--bs-modal-border-color);
+ border-radius: var(--bs-modal-border-radius);
+ pointer-events: auto;
+}
+.ol-scale-line-inner {
+ border: 1px solid var(--bs-body-color);
+ border-top: none;
+ color: var(--bs-body-color);
+ font-size: 80%;
+ margin: 0;
+}
+
+#map-menu {
+ position: relative;
+}
+@media screen and (min-width: 576px) {
+ #map-menu > .ol-control > button {
+ font-size: 150%;
+ }
+}
+@media screen and (min-width: 768px) {
+ #map-menu > .ol-control > button {
+ font-size: 200%;
+ }
+ #zoom-control > .ol-zoom > button {
+ font-size: 120%;
+ }
+}
+#map-menu > * {
+ margin-bottom: var(--map-menu-spacing);
+ pointer-events: auto;
+}
+@media screen and (max-width: 767px) {
+ #map-control-container {
+ --map-menu-spacing: .25rem;
+ }
+ .ol-scale-line-inner {
+ font-size: 70%;
+ }
+}
+
+#map-menu > .ol-control {
+ position: relative;
+ inset: initial;
+}
+
+.ol-control {
+ background: none;
+ border: none;
+ outline: none;
+}
+.ol-control button.btn {
+ --bs-btn-padding-x: 0.5rem;
+ --bs-btn-padding-y: 0.5rem;
+ display: block;
+ margin: 0;
+ padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x);
+ width: auto;
+ height: auto;
+ font-weight: bold;
+ text-decoration: none;
+ font-size: inherit;
+ text-align: center;
+ color: var(--bs-btn-color);
+ background-color: var(--bs-btn-bg);
+ border-radius: var(--bs-btn-border-radius);
+ border: var(--bs-btn-border-width) solid var(--bs-btn-border-color);
+}
+.ol-control button.btn:focus:not(:focus-visible, :hover) {
+ text-decoration: none;
+ color: var(--bs-btn-color);
+ background-color: var(--bs-btn-bg);
+ border-color: var(--bs-btn-border-color);
+ outline: none;
+}
+.ol-control button.btn:hover,
+.ol-control button.btn:focus-visible {
+ text-decoration: none;
+ color: var(--bs-btn-hover-color);
+ background-color: var(--bs-btn-hover-bg);
+ border-color: var(--bs-btn-hover-border-color);
+ outline: none;
+}
+.btn-light, .btn-dark {
+ --bs-btn-border-color: var(--bs-btn-hover-border-color);
+}
+
+#map-control-container[aria-hidden="true"],
+#layer-selection-panel[aria-hidden="true"],
+#map-legend-panel[aria-hidden="true"] {
+ display: none;
+}
+#layer-selection-panel,
+#map-legend-panel {
+ position: relative;
+ margin-left: 0;
+ margin-right: var(--map-menu-spacing);
+ font-size: medium;
+ z-index: 11;
+ height: max-content;
+ max-height: 100%;
+ pointer-events: auto;
+ --bs-modal-color: var(--bs-body-color);
+ --bs-modal-padding: .75rem;
+}
+#layer-selection-panel {
+ /*min-width: min-content;*/
+ /*max-width: 35%;*/
+ /*width: revert;*/
+ max-width: 360px;
+}
+#map-legend-panel {
+ max-width: 410px;
+}
+@keyframes fade-in {
+ from {
+ opacity: 0;
+ }
+ to {
+ opacity: 1;
+ }
+}
+#map-legend-panel .modal-body {
+ -webkit-user-select: text;
+ -moz-user-select: text;
+ user-select: text;
+}
+#layer-selection-panel[aria-hidden="false"],
+#map-legend-panel[aria-hidden="false"] {
+ animation: fade-in .25s ease-in-out both;
+ display: block;
+}
+
+@media screen and (max-aspect-ratio: .75), screen and (max-width: 460px) {
+ /* 4/3 in portrait mode, likely mobile in portrait mode */
+ #map-control-container {
+ flex-direction: column-reverse;
+ }
+ #map-menu {
+ display: flex;
+ justify-content: flex-end;
+ }
+ #map-menu > * {
+ margin-bottom: 0;
+ margin-left: var(--map-menu-spacing);
+ }
+ #map-menu .ol-full-screen {
+ display: none;
+ }
+ #layer-selection-panel,
+ #map-legend-panel {
+ margin: var(--map-menu-spacing) 0 0 auto;
+ }
+}
+
+#map-legend-button.disabled button {
+ color: rgb(from var(--bs-btn-color) r g b / calc(alpha*.25));
+ pointer-events: none;
+}
+@media screen and (max-width: 200px) {
+ #layer-selection-button,
+ #map-legend-button,
+ #age-filter-button,
+ #export-to-image,
+ #layer-selection-panel,
+ #map-legend-panel,
+ #map-menu .ol-full-screen {
+ display: none;
+ }
+}
+@media screen and (max-height: 576px), screen and (max-width: 500px) {
+ #zoom-control .ol-zoomslider {
+ display: none;
+ }
+}
+@media screen and (max-width: 300px), screen and (max-height: 300px) {
+ body {
+ --bs-body-font-size: .8rem;
+ }
+ .ol-control button.btn {
+ --bs-btn-padding-x: 0.4rem;
+ --bs-btn-padding-y: 0.4rem;
+ }
+}
+#info-modal {
+ /* close the modal when clicking the backdrop */
+ pointer-events: none;
+ -webkit-user-select: text;
+ -moz-user-select: text;
+ user-select: text;
+ --bs-modal-header-padding: 1rem;
+ --modal-info-padding-x: var(--bs-modal-header-padding);
+ --modal-info-padding-y: .5rem;
+ --modal-info-bg-light: rgba(0, 0, 0, .08);
+}
+#info-modal .modal-header {
+ padding: var(--modal-info-padding-y) var(--modal-info-padding-x);
+}
+#info-modal .list-group-item,
+#info-modal {
+ --bs-list-group-border-width: 1px;
+}
+#info-accordion {
+ --bs-accordion-active-bg: var(--bs-accordion-bg);
+ --bs-accordion-active-color: var(--bs-body-color);
+ --bs-accordion-btn-padding-x: 0;
+ --bs-accordion-btn-padding-y: .025rem;
+ --bs-accordion-btn-focus-box-shadow: none;
+ --bs-accordion-body-padding-x: 0;
+ --bs-accordion-body-padding-y: 0;
+ --bs-accordion-btn-active-bg: var(--modal-info-bg-light);
+ padding: 0 var(--modal-info-padding-x);
+}
+#info-modal .accordion-item {
+ border: none;
+}
+#info-modal .accordion-header > .accordion-button[aria-expanded="false"]:hover {
+ background-color: rgb(from var(--modal-info-bg-light) r g b / calc(alpha*.4));
+}
+#info-modal .accordion-header > .accordion-button[aria-expanded="true"] {
+ background-color: var(--bs-accordion-btn-active-bg);
+}
+#info-modal ul.list-group > li.list-group-item {
+ padding: .3rem 0;
+ border: none;
+}
+#info-modal ul.list-group > li.list-group-item:last-child {
+ padding-bottom: var(--modal-info-padding-y);
+}
+#info-body > ul.list-group {
+ margin-top: var(--modal-info-padding-y);
+ border-top: var(--bs-list-group-border-width) solid var(--modal-info-bg-light);
+ padding: 0 var(--modal-info-padding-x);
+}
+#info-modal ul.list-group > li.list-group-item:not(:first-child) {
+ border-top: var(--bs-list-group-border-width) solid var(--modal-info-bg-light);
+}
+#info-accordion > .accordion-item:not(:last-child) ul.list-group > li.list-group-item:last-child {
+ border-bottom: var(--bs-list-group-border-width) solid var(--modal-info-bg-light);
+}
+#info-modal .modal-body ul.list-group > li.list-group-item:not(.text-muted):hover {
+ background-color: rgb(from var(--modal-info-bg-light) r g b / calc(alpha*.4));
+}
+#info-body {
+ padding: var(--modal-info-padding-y) 0;
+}
+#info-body > ul.list-group > li.list-group-item p,
+#info-modal .accordion-body ul.list-group > li.list-group-item p {
+ margin: 0;
+}
+#info-body > ul.list-group > li.list-group-item h6,
+#info-modal .accordion-body ul.list-group > li.list-group-item h6 {
+ margin: .05rem 0 .15rem 0;
+ font-size: 1.15rem;
+}
+#info-modal .modal-body a {
+ color: inherit;
+ text-decoration: none;
+}
+#info-modal .modal-body a:hover {
+ opacity: .8;
+ text-decoration: underline;
+}
+#info-modal .modal-body .info-credits {
+ border-top: var(--bs-list-group-border-width) solid var(--modal-info-bg-light);
+ padding: var(--modal-info-padding-y) var(--modal-info-padding-x) 0 var(--modal-info-padding-x);
+ margin: 0;
+}
+
+.ol-overlaycontainer-stopevent .modal-backdrop.show {
+ pointer-events: auto;
+}
+
+#layer-selection-panel .accordion {
+ --bs-accordion-active-bg: var(--bs-accordion-bg);
+ --bs-accordion-active-color: var(--bs-body-color);
+ --bs-accordion-btn-padding-x: 0;
+ --bs-accordion-btn-padding-y: 0;
+ --bs-accordion-btn-focus-box-shadow: none;
+ --bs-accordion-body-padding-x: 0;
+ --bs-accordion-body-padding-y: 0;
+}
+#layer-selection-panel .accordion-item {
+ border: none;
+}
+#layer-selection-panel .accordion-body .list-group {
+ padding-left: 1.5em;
+}
+#layer-selection-panel .accordion .list-group.list-group-flush > .list-group-item {
+ padding: 0;
+ border: none;
+}
+#layer-selection-panel .accordion-item .form-check {
+ padding-left: 0;
+ margin: 0.125rem 0 0 0;
+}
+#layer-selection-panel .accordion-item:first-child .form-check {
+ margin-top: 0;
+}
+#layer-selection-panel .accordion-header > .accordion-button[aria-expanded="true"] {
+ padding-bottom: 0.125rem;
+ margin-bottom: 0.125rem;
+}
+#layer-selection-panel .accordion-header > .accordion-button > .form-check > .form-check-input,
+#layer-selection-panel .accordion > .accordion-item > .form-check > .form-check-input {
+ margin-left: 0;
+ float: none;
+}
+#layer-selection-panel .accordion-item .form-check > .form-check-input,
+#layer-selection-panel .accordion-item .list-group-item > .d-inline-flex > .form-check-input {
+ margin-right: .5em !important;
+}
+#layer-selection-panel .accordion-header > .accordion-button > .form-check > .form-check-label,
+#layer-selection-panel .accordion-item .form-check > .form-check-label {
+ display: inline;
+}
+#map-legend-panel .list-group-flush > .list-group-item {
+ border: none;
+ padding: 0;
+}
+#map-legend-panel .modal-body > ul.list-group > li.list-group-item:not(.d-none) ~ li.list-group-item:not(.d-none) {
+ border-top: var(--bs-list-group-border-width) solid var(--bs-list-group-border-color);
+ margin-top: .5rem;
+ padding-top: .5rem;
+}
+#map-legend-panel .list-group .list-group-item.h4,
+#map-legend-panel .list-group .list-group-item.h5,
+#map-legend-panel .list-group .list-group-item.h6 {
+ margin: 0 0 .25rem 0;
+}
+#map-legend-panel .list-group .list-group-item:not(.d-none) ~ .list-group-item.h5:not(.d-none) {
+ margin-top: .125rem;
+}
+#map-legend-panel .list-group .list-group-item.h4 {
+ font-size: 1.3rem;
+}
+#map-legend-panel .list-group .list-group-item.h5 {
+ font-size: 1.05rem;
+}
+#map-legend-panel .list-group .list-group-item.h6 {
+ font-size: 1rem;
+}
+#map-legend-panel .list-group .list-group-item .map-legend-symbol {
+ /* 24px */
+ height: calc(var(--bs-body-line-height) * var(--bs-body-font-size)) !important;
+}
+#map-legend-panel .list-group .list-group-item .map-legend-symbol > * {
+ width: 32px;
+ margin-right: .5rem;
+}
+#map-legend-panel .list-group .list-group-item .map-legend-symbol img {
+ margin-left: auto;
+ margin-right: auto;
+ display: block;
+}
+#map-legend-panel .list-group .list-group-item:not(.h4,.h5,.h6):hover {
+ background-color: var(--bs-list-group-action-hover-bg);
+}
+
+#age-filter-modal .modal-body .btn-group {
+ width: 100%;
+}
+#age-filter-modal .age-filter-infotext {
+ margin: 0 0 var(--bs-modal-padding) 0;
+}
+#age-filter-form .age-filter-settings .age-filter-settings-desc {
+ margin: var(--bs-modal-padding) 0;
+}
+#age-filter-form .age-filter-settings {
+ margin: 0 0 var(--bs-modal-padding) 0;
+}
+#age-filter-form .age-filter-settings p.text-muted {
+ margin: 0;
+}
+#age-filter-modal p {
+ -webkit-user-select: text;
+ -moz-user-select: text;
+ user-select: text;
+}
+
+.popover {
+ --bs-popover-header-padding-x: .75rem;
+ --bs-popover-header-padding-y: .5rem;
+ --bs-popover-body-padding-x: .45rem;
+ --bs-popover-body-padding-y: .5rem;
+ --bs-popover-header-bg: var(--bs-popover-bg);
+ --bs-popover-zindex: 1000;
+ --bs-popover-max-width: 450px;
+ width: var(--bs-popover-max-width);
+ pointer-events: auto;
+}
+.popover.inprogress > .popover-header,
+.popover.inprogress > .popover-body {
+ filter: opacity(70%);
+ pointer-events: none;
+}
+.popover-header {
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ user-select: none;
+ --bs-heading-color: var(--bs-popover-header-color);
+}
+.popover-body {
+ -webkit-user-select: text;
+ -moz-user-select: text;
+ user-select: text;
+ max-height: 40vh;
+ overflow: auto auto;
+}
+.popover-body h6, .popover-body h5 {
+ margin-bottom: .25rem;
+ margin-left: calc(var(--bs-popover-header-padding-x) - var(--bs-popover-body-padding-x));
+ margin-right: calc(var(--bs-popover-header-padding-x) - var(--bs-popover-body-padding-x));
+}
+.popover-body .table {
+ --bs-table-bg: none;
+ --bs-table-hover-bg: rgba(0, 0, 0, 0.04);
+ margin: 0;
+}
+.popover-body table > tbody > tr > td:first-child {
+ font-style: italic;
+ width: 9.75em;
+ padding-right: .75em;
+}
+.popover-body table > tbody > tr > td {
+ padding: 0.1rem 0.3rem;
+}
+.feature-attr-mrr-license-id, .feature-attr-dnr, .feature-objid, .feature-orgnr {
+ font-family: var(--bs-font-monospace);
+ word-wrap: break-word;
+}
+
+.popover-header h6 {
+ margin: 0;
+}
+/* inspired from bootstrap's .btn-close */
+.popover-header .popover-button {
+ box-sizing: content-box;
+ width: 1em;
+ height: 1em;
+ padding: 0.25em 0.25em;
+ color: #000;
+ background: transparent var(--popover-button-icon) center/1em auto no-repeat;
+ border: 0;
+ border-radius: 0.375rem;
+ opacity: .5;
+}
+.popover-header .popover-button:hover {
+ text-decoration: none;
+ opacity: .75;
+}
+.popover-header .popover-button:focus {
+ outline: 0;
+ box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
+ opacity: 1;
+}
+.popover-header .popover-button:disabled, .popover-header .popover-button.disabled {
+ pointer-events: none;
+ opacity: .25;
+}
+
+/* SVG from bootstrap icons v1.11.0 (released under MIT License) */
+.popover-header .popover-button-prev {
+ --popover-button-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath transform='scale(1.3799) translate(-2.2025 -2.2025)' d='M10 12.796V3.204L4.519 8zm-.659.753-5.48-4.796a1 1 0 0 1 0-1.506l5.48-4.796A1 1 0 0 1 11 3.204v9.592a1 1 0 0 1-1.659.753'/%3e%3c/svg%3e");
+}
+.popover-header .popover-button-next {
+ --popover-button-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath transform='scale(1.3799) translate(-2.2025 -2.2025)' d='M6 12.796V3.204L11.481 8zm.659.753 5.48-4.796a1 1 0 0 0 0-1.506L6.66 2.451C6.011 1.885 5 2.345 5 3.204v9.592a1 1 0 0 0 1.659.753'/%3e%3c/svg%3e");
+}
+.popover-header .popover-button-expand {
+ --popover-button-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M5.828 10.172a.5.5 0 0 0-.707 0l-4.096 4.096V11.5a.5.5 0 0 0-1 0v3.975a.5.5 0 0 0 .5.5H4.5a.5.5 0 0 0 0-1H1.732l4.096-4.096a.5.5 0 0 0 0-.707m4.344-4.344a.5.5 0 0 0 .707 0l4.096-4.096V4.5a.5.5 0 1 0 1 0V.525a.5.5 0 0 0-.5-.5H11.5a.5.5 0 0 0 0 1h2.768l-4.096 4.096a.5.5 0 0 0 0 .707'/%3e%3c/svg%3e");
+}
+.popover-header .popover-button-reduce {
+ --popover-button-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.172 15.828a.5.5 0 0 0 .707 0l4.096-4.096V14.5a.5.5 0 1 0 1 0v-3.975a.5.5 0 0 0-.5-.5H1.5a.5.5 0 0 0 0 1h2.768L.172 15.121a.5.5 0 0 0 0 .707M15.828.172a.5.5 0 0 0-.707 0l-4.096 4.096V1.5a.5.5 0 1 0-1 0v3.975a.5.5 0 0 0 .5.5H14.5a.5.5 0 0 0 0-1h-2.768L15.828.879a.5.5 0 0 0 0-.707'/%3e%3c/svg%3e");
+}
+.popover-header .popover-button-close {
+ --popover-button-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath transform='scale(1.3332) translate(-2 -2)' d='M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8z'/%3e%3c/svg%3e");
+}
+
+.popover:not(.popover-maximized) .grabbing-area {
+ cursor: move; /* fallback if grab cursor is unsupported */
+ cursor: grab;
+ cursor: -moz-grab;
+ cursor: -webkit-grab;
+}
+.popover:not(.popover-maximized) .grabbing-area.grabbing-area-grabbed {
+ cursor: grabbing;
+ cursor: -moz-grabbing;
+ cursor: -webkit-grabbing;
+}
+.popover.popover-detached > .popover-arrow,
+.popover.popover-maximized > .popover-arrow {
+ display: none;
+}
+.popover.popover-maximized {
+ position: relative !important;
+ inset: 0 !important;
+ transform: none !important;
+ margin: calc(.75*var(--map-container-padding)) auto !important;
+ --bs-popover-max-width: calc(100vw - 1.5*var(--map-container-padding));
+ height: calc(100vh - 1.5*var(--map-container-padding));
+ animation: fade-in .25s ease-in-out both;
+}
+@media screen and (min-width: 1280px) {
+ .popover.popover-maximized {
+ --bs-popover-max-width: 1280px;
+ }
+}
+@media screen and (min-height: 1920px) {
+ .popover.popover-maximized {
+ height: 1920px;
+ margin-top: calc(50vh - 960px) !important;
+ margin-bottom: calc(50vh - 960px) !important;
+ }
+}
diff --git a/src/style2.css b/src/style2.css
new file mode 100644
index 0000000..dfeaee5
--- /dev/null
+++ b/src/style2.css
@@ -0,0 +1,50 @@
+body {
+ text-align: center;
+ max-width: 960px;
+ font-family: "Helvetica Neue", Arial, "Noto Sans", sans-serif;
+ padding: 0;
+ margin: 0 auto;
+ height: 100vh;
+ --margin-y: 1em;
+ --margin-x: 0;
+}
+#wrapper {
+ height: 100%;
+ display: flex;
+ flex-flow: column;
+ margin: 0 var(--margin-x);
+}
+#desc {
+ margin: var(--margin-y) 0;
+}
+#desc > p:first-child {
+ margin-top: 0;
+}
+#desc > p:last-child {
+ margin-bottom: 0;
+}
+#map {
+ border: 1px solid black;
+ width: 500px;
+ max-height: 600px;
+ margin: 0 auto var(--margin-y) auto;
+ flex: 1;
+}
+@media screen and (max-width: 500px) {
+ body {
+ --margin-x: .25em;
+ }
+ #map {
+ width: 100%;
+ }
+}
+@media screen and (max-height: 1280px) {
+ body {
+ --margin-y: .5em;
+ }
+}
+@media screen and (max-height: 600px) {
+ body {
+ --margin-y: .25em;
+ }
+}