body, html { padding: 0; margin: 0; font-family: sans-serif; } body { pointer-events: none; display: flex; flex-direction: column; justify-content: flex-start; align-items: stretch; min-height: 100vh; } body > * { pointer-events: all; } body > hr { border: none; padding: 0; margin: 0; flex: 1; min-height: 50vh; flex-shrink: 0; pointer-events: none; } /* HEADER and NAV */ #main-header { display: flex; justify-content: start; align-items: stretch; flex-direction: row; background: radial-gradient(black, transparent 50%); background-size: 40rem 20rem; background-repeat: no-repeat; background-position: -15rem -10rem; padding: 15px; padding-bottom: 30px; pointer-events: none; & > * { pointer-events: all; } } @media screen and (max-width: 600px) { #main-header { flex-direction: column; align-items: center; background: linear-gradient(to bottom, black, transparent); } } #main-header #logo { max-height: clamp(2rem, 10vh, 5rem); filter: drop-shadow(rgba(0,0,0,0.5) 0 0 10px); } /* MAP */ #map { width: 100vw; height: 100vh; position: fixed; top: 0; left: 0; z-index: -1; } .leaflet-container .leaflet-control-attribution { background: rgba(0, 0, 0, 0.5); color: white; padding: 5px; border-bottom-left-radius: 5px; & a { color: inherit; text-decoration: underline; } } #map .highlight-point-icon > * { width: fit-content; height: fit-content; transform: translateX(-50%) translateY(-50%); display: flex; flex-direction: column; justify-content: center; align-items: center; position: relative; } #map .highlight-point-icon > a { text-decoration: none; color: inherit; } #map .highlight-point-icon h3 { width: max-content; max-width: min(25vw, 100px); text-align: center; margin: 0; color: white; font-size: 1em; line-height: 1; --outline-size: 1px; text-shadow: 0px var(--outline-size) 0px var(--symbol-border-color), var(--outline-size) 0px 0px var(--symbol-border-color), var(--outline-size) var(--outline-size) 0px var(--symbol-border-color), calc(var(--outline-size) * -1) calc(var(--outline-size) * -1) 0px var(--symbol-border-color), 0px calc(var(--outline-size) * -1) 0px var(--symbol-border-color), calc(var(--outline-size) * -1) 0px 0px var(--symbol-border-color) ; opacity: clamp(0, calc( var(--zoom-level) - 18 ), 1) ; } #map .highlight-point-icon img ~ h3 { position: absolute; bottom: 0; left: 50%; transform: translateX(-50%) translateY(100%); margin-top: 1ex; } #map .highlight-point-icon:not(.active) { opacity: 0; pointer-events: none; } .map-amenity-icon .map-amenity-icon-container { transform: translateX(-50%) translateY(-50%); width: fit-content; display: grid; grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(2, min-content); justify-content: center; align-items: center; gap: 5px; & > img { width: 2rem; transform: scale( clamp(0.5, calc( var(--zoom-level) - 19 ), 1) ); transform-origin: 50% 50%; } & > * { opacity: clamp(0, calc( var(--zoom-level) - 19 ), 1) ; } & > .drinking-water { grid-row: 1; grid-column: 1; opacity: clamp(0, calc( var(--zoom-level) - 18 ), 1) ; } &.active > * { opacity: 1; } } #map .center-marker img { width: min(50vw, 200px); transform: translateX(-50%) translateY(-50%); filter: drop-shadow(0 0 10px black); opacity: clamp(0, calc( 1 - ( var(--zoom-level) - 12 ) ), 1) ; pointer-events: none; } #map .map-hilight-area:not(.active) { opacity: 0; } /* SAERCH FORM */ #search-section { border: solid 10px black; border-image: url("../assets/button-stepped-border-image.svg") 16 15 fill; z-index: 100; margin-bottom: 5px; margin-left: 5px; width: fit-content; max-width: 100%; background: black; background-clip: content-box; color: white; display: grid; grid-template-columns: min-content 1fr; grid-template-rows: 1fr; } #search-section:has( ~ dialog:not([open])) { position: fixed; bottom: 5px; left: 5px; } #search-section input { background: black; font-size: 1em; color: inherit; font-family: monospace; border: none; padding: 1ex; grid-column: 2; grid-row: 1; } #search-section button { background: transparent; border: none; padding: 1ex; grid-column: 1; grid-row: 1; cursor: pointer; } #search-section label { grid-column: 2; grid-row: 1; padding: 1ex; align-self: flex-end; } #search-section button img { height: 1.5em; } /* PANEL */ #result-panel-dialog { display: block; position: relative; padding: 0; margin: 0; border: none; width: 100%; } #result-panel-dialog:not([open]) { display: none; } #result-panel-dialog #close-result-panel-btn { position: sticky; top: 0px; right: 0px; padding: 15px; border: none; background: none; cursor: pointer; z-index: 100; margin-left: auto; margin-bottom: calc( ( 1.5em + 30px ) * -1); display: block; } #close-result-panel-btn img { height: 1.5em; display: block; } #result-panel { background: black; border-image: url("../assets/neon-border-image.svg") 12; border-top: 5.5px white solid; color: white; } #result-panel > * { padding: 1em; margin: 0; } #result-panel::part(navigation-panel) { background: black; color: white; box-shadow: 0 0 10px black; border-top: solid 1px rgba(255, 255, 255, 0.5); } #result-panel::part(dot), #result-panel::part(dot-active) { border-radius: 0; width: 1ex; height: 1ex; margin-top: 0.5ex; } #result-panel::part(dot-active) { transform-origin: 0% 100%; transform: scaleX(1) scaleY(1.5); } camp-feature-short-header { display: grid; grid-template-rows: 1fr min-content; grid-template-columns: 3em 1fr; gap: 0.5ex 0.5em; vertical-align: center; } camp-feature-short-header .feature-legend { grid-row: 1 / 3; height: 3em; align-self: flex-start; } camp-feature-short-header h2 { margin: 0; padding: 0; font-size: 1em; font-weight: bold; } camp-feature-short-header .feature-location { margin: 0; padding: 0; font-size: 0.6em; opacity: 0.75; } #search-result { list-style-type: none; } #search-result > li:not(:first-child) { margin-top: 1em; } #search-result > li:not(:last-child) { margin-bottom: 1em; } #search-result > li > a { text-decoration: none; color: inherit; } /* FEATURE */ camp-feature { min-height: 25vh; font-family: sans-serif; } camp-feature .feature-header { margin-bottom: 1.5em; } camp-feature .feature-widgets { display: grid; grid-template-columns: max-content minmax(50%, 1fr); grid-auto-rows: max-content; grid-auto-flow: column; } camp-feature .feature-widgets > * { grid-column: 1 / 3; margin-bottom: 2em; } camp-feature .widget > :first-child { margin-top: 0; } camp-feature .widget > :last-child { margin-bottom: 0; } camp-feature .widget > h2 { font-size: 1em; text-transform: uppercase; margin-bottom: 1ex; } camp-feature .widget > p { margin-top: 1ex; margin-bottom: 1ex; line-height: 1.5; } .table-widget { display: grid; grid-template-columns: max-content minmax(50%, 1fr); column-gap: 1ex; row-gap: 1ex; } camp-feature .table-widget { grid-template-columns: subgrid; grid-column: 1 / 3; } .table-widget > * { margin: 0 !important; } .table-widget > * { grid-column: 2; } .table-widget > h2 { grid-column: 1; } camp-feature .table-widget > h2 { text-transform: none; } .box-widget { --box-color: white; border: solid 3px var(--box-color); padding: 10px; box-sizing: border-box; } .box-widget h2 { float: left; background-color: var(--box-color); color: white; padding: 5px 10px; display: block; width: fit-content; position: relative; font-size: 1em; } .box-widget p:first-of-type { margin-top: 0; } .box-widget h2::after { content: ""; width: 0; height: 0; border-style: solid; border-width: calc(1em + 17.667px) calc(1em + 10px) 0px 0px; border-color: var(--box-color) transparent transparent transparent; position: absolute; right: calc((1em + 9px) * -1); top: 0; } camp-feature .box-widget h2:first-child, .box-widget h2 { margin-left: -10px; margin-top: -10px; margin-right: 2em; } /* TALKS */ camp-upcoming-talks > * { margin-bottom: 1em; display: block; color: inherit; text-decoration: inherit; } camp-talk { display: block; --track-color: white; border: solid 1px var(--track-color); border-left-width: 5px; border-radius: 2.5px; padding: 5px 10px; box-sizing: border-box; } camp-talk .track-name { font-weight: bold; color: var(--track-color); } camp-talk > * { margin: 0; } camp-talk > p:not(:last-child) { margin-top: 1ex; margin-bottom: 1ex; } camp-talk[data-track-id="36"] { --track-color: #33d8d8; } camp-talk[data-track-id="35"] { --track-color: #ffbf3e; } camp-talk[data-track-id="33"] { --track-color: #ff4e00; } camp-talk[data-track-id="34"] { --track-color: #8800ff; } @keyframes active-talk { from { box-shadow: 0px 0px 0px var(--track-color), 0px 0px 0px var(--track-color); } 25% { box-shadow: 0px 0px 10px var(--track-color), 0px 0px 0px var(--track-color); } 100% { box-shadow: 0px 0px 15px var(--track-color), 0px 0px 7px var(--track-color); } } camp-talk.active { animation: active-talk 1.5s alternate-reverse infinite linear; }