From 9f6b90919c84e4089774f731e69bf51b2e15a874 Mon Sep 17 00:00:00 2001 From: Matt Walsh Date: Sun, 5 Apr 2026 23:58:50 -0500 Subject: [PATCH] hourly enhanced #188 #195 #196 #193 #194 --- server/images/backgrounds/1-chart-wide.png | Bin 0 -> 6729 bytes server/images/gimp/1-chart-wide.xcf | Bin 0 -> 264758 bytes server/scripts/modules/hourly-graph.mjs | 59 ++++++++++++--- server/scripts/modules/hourly.mjs | 2 +- server/scripts/modules/settings.mjs | 20 +++++ server/styles/scss/_current-weather.scss | 9 ++- server/styles/scss/_hourly-graph.scss | 83 ++++++++++++++------- server/styles/scss/_local-forecast.scss | 7 ++ server/styles/scss/_page.scss | 8 +- server/styles/scss/_progress.scss | 12 ++- server/styles/scss/_spc-outlook.scss | 1 + server/styles/scss/_weather-display.scss | 54 +++++++++++--- server/styles/scss/shared/_positions.scss | 11 +++ server/styles/ws.min.css | 2 +- server/styles/ws.min.css.map | 2 +- views/partials/hourly-graph.ejs | 8 +- 16 files changed, 211 insertions(+), 67 deletions(-) create mode 100644 server/images/backgrounds/1-chart-wide.png create mode 100644 server/images/gimp/1-chart-wide.xcf create mode 100644 server/styles/scss/shared/_positions.scss diff --git a/server/images/backgrounds/1-chart-wide.png b/server/images/backgrounds/1-chart-wide.png new file mode 100644 index 0000000000000000000000000000000000000000..17387c26c439e3399892bb29f3fadea6a037a880 GIT binary patch literal 6729 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 literal 0 HcmV?d00001 diff --git a/server/images/gimp/1-chart-wide.xcf b/server/images/gimp/1-chart-wide.xcf new file mode 100644 index 0000000000000000000000000000000000000000..46d6288606bcf9ccd77c589269974ea11e7e1244 GIT binary patch literal 264758 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 literal 0 HcmV?d00001 diff --git a/server/scripts/modules/hourly-graph.mjs b/server/scripts/modules/hourly-graph.mjs index bef1c75..4a99150 100644 --- a/server/scripts/modules/hourly-graph.mjs +++ b/server/scripts/modules/hourly-graph.mjs @@ -5,10 +5,30 @@ import getHourlyData from './hourly.mjs'; import WeatherDisplay from './weatherdisplay.mjs'; import { registerDisplay, timeZone } from './navigation.mjs'; import { DateTime } from '../vendor/auto/luxon.mjs'; +import settings from './settings.mjs'; -// get available space -const availableWidth = 532; -const availableHeight = 285; +// set up spacing and scales +const scaling = () => { + const available = { + width: 532, + height: 285, + }; + const dataLength = { + hours: 36, + xTicks: 4, + }; + + if (settings.wide?.value && settings.enhancedScreens?.value) { + available.width = available.width + 107 + 107; + available.height = 285; + dataLength.hours = 48; + dataLength.xTicks = 6; + } + return { + available, + dataLength, + }; +}; class HourlyGraph extends WeatherDisplay { constructor(navId, elemId, defaultActive) { @@ -46,28 +66,43 @@ class HourlyGraph extends WeatherDisplay { skyCover, temperature, probabilityOfPrecipitation, temperatureUnit: data[0].temperatureUnit, dewpoint, }; + // get the data length for current settings + const { dataLength } = scaling(); + + // clamp down the data to the allowed size + Object.entries(this.data).forEach(([key, value]) => { + if (Array.isArray(value)) { + this.data[key] = value.slice(0, dataLength.hours); + } + }); + this.setStatus(STATUS.loaded); } drawCanvas() { + // get scaling parameters + const { dataLength, available } = scaling(); + + // get the image if (!this.image) this.image = this.elem.querySelector('.chart img'); - this.image.width = availableWidth; - this.image.height = availableHeight; + // set up image + this.image.width = available.width; + this.image.height = available.height; // get context const canvas = document.createElement('canvas'); - canvas.width = availableWidth; - canvas.height = availableHeight; + canvas.width = available.width; + canvas.height = available.height; const ctx = canvas.getContext('2d'); ctx.imageSmoothingEnabled = false; // calculate time scale - const timeScale = calcScale(0, 5, this.data.temperature.length - 1, availableWidth); - const timeStep = this.data.temperature.length / 4; + const timeScale = calcScale(0, 5, this.data.temperature.length - 1, available.width); + const timeStep = this.data.temperature.length / (dataLength.xTicks); const startTime = DateTime.now().startOf('hour'); let prevTime = startTime; - Array(5).fill().forEach((val, idx) => { + Array(dataLength.xTicks + 1).fill().forEach((val, idx) => { // track the previous label so a day of week can be added when it changes const label = formatTime(startTime.plus({ hour: idx * timeStep }), prevTime); prevTime = label.ts; @@ -77,7 +112,7 @@ class HourlyGraph extends WeatherDisplay { // order is important last line drawn is on top // clouds - const percentScale = calcScale(0, availableHeight - 10, 100, 10); + const percentScale = calcScale(0, available.height - 10, 100, 10); const cloud = createPath(this.data.skyCover, timeScale, percentScale); drawPath(cloud, ctx, { strokeStyle: 'lightgrey', @@ -97,7 +132,7 @@ class HourlyGraph extends WeatherDisplay { const thirdScale = (maxScale - minScale) / 3; const midScale1 = Math.round(minScale + thirdScale); const midScale2 = Math.round(minScale + (thirdScale * 2)); - const tempScale = calcScale(minScale, availableHeight - 10, maxScale, 10); + const tempScale = calcScale(minScale, available.height - 10, maxScale, 10); // dewpoint const dewpointPath = createPath(this.data.dewpoint, timeScale, tempScale); diff --git a/server/scripts/modules/hourly.mjs b/server/scripts/modules/hourly.mjs index bd4b1c7..29c787e 100644 --- a/server/scripts/modules/hourly.mjs +++ b/server/scripts/modules/hourly.mjs @@ -238,7 +238,7 @@ const determineIcon = async (skyCover, weather, iceAccumulation, probabilityOfPr }; // expand a set of values with durations to an hour-by-hour array -const expand = (data, maxHours = 36) => { +const expand = (data, maxHours = 48) => { const startOfHour = DateTime.utc().startOf('hour').toMillis(); const result = []; // resulting expanded values data.forEach((item) => { diff --git a/server/scripts/modules/settings.mjs b/server/scripts/modules/settings.mjs index 8809a34..0350f92 100644 --- a/server/scripts/modules/settings.mjs +++ b/server/scripts/modules/settings.mjs @@ -32,6 +32,25 @@ const wideScreenChange = (value) => { window.dispatchEvent(new Event('resize')); }; +const enhancedScreenChange = (value) => { + const container = document.querySelector('#divTwc'); + if (!container) { + // DOM not ready; defer enabling if set + if (value) { + deferredDomSettings.add('enhanced'); + } + return; + } + + if (value) { + container.classList.add('enhanced'); + } else { + container.classList.remove('enhanced'); + } + // Trigger resize to recalculate scaling for new width + window.dispatchEvent(new Event('resize')); +}; + const kioskChange = (value) => { const body = document.querySelector('body'); if (!body) { @@ -138,6 +157,7 @@ const init = () => { settings.enhancedScreens = new Setting('enhancedScreens', { name: 'Enhanced Screens', defaultValue: false, + changeAction: enhancedScreenChange, sticky: true, }); settings.kiosk = new Setting('kiosk', { diff --git a/server/styles/scss/_current-weather.scss b/server/styles/scss/_current-weather.scss index 4606de3..ce59402 100644 --- a/server/styles/scss/_current-weather.scss +++ b/server/styles/scss/_current-weather.scss @@ -1,8 +1,10 @@ -@use 'shared/_colors' as c; -@use 'shared/_utils' as u; +@use 'shared/_colors'as c; +@use 'shared/_utils'as u; +@use 'shared/positions'as p; .weather-display .main.current-weather { &.main { + width: calc(p.$standard-width - (2 * p.$blue-box-margin)); .col { height: 50px; @@ -17,7 +19,6 @@ &.left { font-family: 'Star4000 Extended'; font-size: 24pt; - } &.right { @@ -92,4 +93,4 @@ text-wrap: nowrap; } } -} +} \ No newline at end of file diff --git a/server/styles/scss/_hourly-graph.scss b/server/styles/scss/_hourly-graph.scss index b138806..d1d62db 100644 --- a/server/styles/scss/_hourly-graph.scss +++ b/server/styles/scss/_hourly-graph.scss @@ -4,6 +4,12 @@ #hourly-graph-html { background-image: url(../images/backgrounds/1-chart.png); + // change background for wide-enhanced + .wide.enhanced & { + background-image: url(../images/backgrounds/1-chart-wide.png); + background-position-x: 0px; + } + .header { .right { position: absolute; @@ -84,10 +90,51 @@ &.l-5 { left: calc(532px / 4 * 4); } + + // adjust when enhanced + .wide.enhanced & { + + &.l-1 { + left: 0px; + } + + &.l-2 { + left: calc(726px / 6 * 1); + } + + &.l-3 { + left: calc(726px / 6 * 2); + } + + &.l-4 { + left: calc(726px / 6 * 3); + } + + &.l-5 { + left: calc(726px / 6 * 4); + } + + &.l-6 { + left: calc(726px / 6 * 5); + } + + &.l-7 { + left: calc(726px / 6 * 6); + } + } + + // only in wide + enhanced + &.l-6, + &.l-7 { + display: none; + + .wide.enhanced & { + display: block; + } + } + } - - } .chart { @@ -97,6 +144,11 @@ img { width: 532px; height: 285px; + + // wide and enhanced + .wide.enhanced & { + width: 746px; + } } } @@ -128,32 +180,5 @@ } } - .column-headers { - background-color: c.$column-header; - height: 20px; - position: absolute; - width: 100%; - } - - .column-headers { - position: sticky; - top: 0px; - z-index: 5; - - - .temp { - left: 355px; - } - - .like { - left: 435px; - } - - .wind { - left: 535px; - } - } - - } } \ No newline at end of file diff --git a/server/styles/scss/_local-forecast.scss b/server/styles/scss/_local-forecast.scss index e2e5f07..3bd0b05 100644 --- a/server/styles/scss/_local-forecast.scss +++ b/server/styles/scss/_local-forecast.scss @@ -1,7 +1,14 @@ @use 'shared/_colors'as c; @use 'shared/_utils'as u; +@use 'shared/positions'as p; .weather-display .local-forecast { + + // clamp width to standard + &.main { + width: calc(p.$standard-width - (2 * p.$blue-box-margin)); + } + .container { position: relative; top: 15px; diff --git a/server/styles/scss/_page.scss b/server/styles/scss/_page.scss index f9ed163..82733b0 100644 --- a/server/styles/scss/_page.scss +++ b/server/styles/scss/_page.scss @@ -1,5 +1,6 @@ @use 'shared/_utils'as u; @use 'shared/_colors'as c; +@use 'shared/positions'as p; @font-face { font-family: "Star4000"; @@ -345,8 +346,7 @@ body { } .wide #container { - padding-left: 107px; - padding-right: 107px; + width: p.$wide-width; background: url(../images/backgrounds/1-wide.png); background-repeat: no-repeat; } @@ -368,6 +368,10 @@ body { text-align: center; justify-content: center; + .wide & { + margin-left: p.$wide-margin; + } + .title { font-family: Star4000 Large; font-size: 36px; diff --git a/server/styles/scss/_progress.scss b/server/styles/scss/_progress.scss index 98a3c6c..5572ac6 100644 --- a/server/styles/scss/_progress.scss +++ b/server/styles/scss/_progress.scss @@ -1,11 +1,17 @@ -@use 'shared/_colors' as c; -@use 'shared/_utils' as u; +@use 'shared/_colors'as c; +@use 'shared/_utils'as u; +@use 'shared/positions'as p; .weather-display .progress { @include u.text-shadow(); font-family: 'Star4000 Extended'; font-size: 19pt; + // clamp width to standard + &.main { + width: calc(p.$standard-width - (2 * p.$blue-box-margin)); + } + .container { position: relative; top: 15px; @@ -118,4 +124,4 @@ transition: width 1s steps(6); } } -} +} \ No newline at end of file diff --git a/server/styles/scss/_spc-outlook.scss b/server/styles/scss/_spc-outlook.scss index 4e5e26c..38433f5 100644 --- a/server/styles/scss/_spc-outlook.scss +++ b/server/styles/scss/_spc-outlook.scss @@ -1,5 +1,6 @@ @use 'shared/_colors'as c; @use 'shared/_utils'as u; +@use 'shared/positions'as p; #spc-outlook-html.weather-display { background-image: url('../images/backgrounds/6.png'); diff --git a/server/styles/scss/_weather-display.scss b/server/styles/scss/_weather-display.scss index c677cde..88b2985 100644 --- a/server/styles/scss/_weather-display.scss +++ b/server/styles/scss/_weather-display.scss @@ -1,29 +1,43 @@ @use 'shared/_colors'as c; @use 'shared/_utils'as u; +@use 'shared/positions'as p; .weather-display { - width: 640px; - height: 480px; + width: p.$standard-width; + height: p.$standard-height; overflow: hidden; position: relative; background-image: url(../images/backgrounds/1.png); + // adjust for wide + .wide & { + width: p.$wide-width; + background-position-x: p.$wide-margin; + background-repeat: no-repeat; + } + /* this method is required to hide blocks so they can be measured while off screen */ height: 0px; &.show { - height: 480px; + height: p.$standard-height; } .template { display: none; } - .header { - width: 640px; + >.header { + width: p.$standard-width; height: 60px; + position: relative; padding-top: 30px; + // adjust for wide + .wide & { + left: p.$wide-margin; + } + .title { color: c.$title-color; @include u.text-shadow(3px, 1.5px); @@ -92,8 +106,21 @@ .main { position: relative; + // adjust for wide + .wide & { + left: p.$wide-margin; + } + + // adjust for enhanced when possible + .wide.enhanced & { + &.can-enhance { + left: 0px; + width: p.$wide-width; + } + } + &.has-scroll { - width: 640px; + width: p.$standard-width; margin-top: 0; height: 310px; overflow: hidden; @@ -117,7 +144,7 @@ #container>.scroll { display: none; @include u.text-shadow(3px, 1.5px); - width: 640px; + width: p.$standard-width; height: 77px; overflow: hidden; margin-top: 3px; @@ -125,12 +152,17 @@ bottom: 0px; z-index: 1; + // adjust for wide + .wide & { + left: p.$wide-margin; + } + &.hazard { background-color: rgb(112, 35, 35); } .scroll-container { - width: 640px; + width: p.$standard-width; .fixed, .scroll-header { @@ -156,7 +188,7 @@ position: relative; // the following added by js code as it is dependent on the content of the element // transition: left (x)s; - // left: calc((elem width) - 640px); + // left: calc((elem width) - p.$standard-width); } } } @@ -167,9 +199,9 @@ .wide #container>.scroll { width: 854px; - margin-left: -107px; + margin-left: -1*p.$wide-margin; .scroll-container { - margin-left: 107px; + margin-left: p.$wide-margin; } } \ No newline at end of file diff --git a/server/styles/scss/shared/_positions.scss b/server/styles/scss/shared/_positions.scss new file mode 100644 index 0000000..6f1996a --- /dev/null +++ b/server/styles/scss/shared/_positions.scss @@ -0,0 +1,11 @@ +// standard positioning +$standard-width: 640px; +$standard-height: 480px; + +// blue box size +$blue-box-margin: 64px; + +// wide screen positioning +$wide-padding: 107px; +$wide-margin: 107px; +$wide-width: 854px; \ No newline at end of file diff --git a/server/styles/ws.min.css b/server/styles/ws.min.css index ee94890..1a4271f 100644 --- a/server/styles/ws.min.css +++ b/server/styles/ws.min.css @@ -1 +1 @@ -@font-face{font-family:"Star4000";src:url("../fonts/Star4000.woff") format("woff");font-display:swap}body{font-family:"Star4000";margin:0}@media(prefers-color-scheme: dark){body{background-color:#000;color:#fff}}@media(prefers-color-scheme: dark){body a{color:#add8e6}}body.kiosk{margin:0px;padding:0px;overflow:hidden;width:100vw;background-color:#000 !important}#divQuery{max-width:640px;padding:8px}#divQuery .buttons{display:inline-block;width:150px;text-align:right}#divQuery .buttons #imgGetGps{height:13px;vertical-align:middle}#divQuery .buttons button{font-size:16pt;border:1px solid #a9a9a9}@media(prefers-color-scheme: dark){#divQuery .buttons button{background-color:#000;color:#fff}}#divQuery .buttons #btnGetGps img.dark{display:none}@media(prefers-color-scheme: dark){#divQuery .buttons #btnGetGps img.dark{display:inline-block}}@media(prefers-color-scheme: dark){#divQuery .buttons #btnGetGps img.light{display:none}}#divQuery .buttons #btnGetGps.active{background-color:#000}@media(prefers-color-scheme: dark){#divQuery .buttons #btnGetGps.active{background-color:#fff}}#divQuery .buttons #btnGetGps.active img{filter:invert(1)}#divQuery input,#divQuery button{font-family:"Star4000"}#divQuery #txtLocation{width:calc(100% - 170px);max-width:490px;font-size:16pt;min-width:200px;display:inline-block;background-color:#fff;color:#000;border:2px inset gray}@media(prefers-color-scheme: dark){#divQuery #txtLocation{background-color:#000;color:#fff;border:2px inset gray}}.autocomplete-suggestions{background-color:#fff;border:1px solid #000;position:absolute;z-index:9999}@media(prefers-color-scheme: dark){.autocomplete-suggestions{background-color:#000}}.autocomplete-suggestions div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:16pt}.autocomplete-suggestions div.selected{background-color:blue;color:#fff}#divTwc{display:block;background-color:#000;color:#fff;width:100%;max-width:640px;margin:0}#divTwc.wide{max-width:854px}.content-wrapper{padding:8px}#divTwcMain{width:640px;height:480px;position:relative}.wide #divTwcMain{width:854px}.kiosk #divTwc{max-width:unset}#divTwcLeft{display:none;text-align:right;flex-direction:column;vertical-align:middle}#divTwcLeft>div{flex:1;padding-right:12px;display:flex;flex-direction:column;justify-content:center}#divTwcRight{text-align:left;display:none;flex-direction:column;vertical-align:middle}#divTwcRight>div{flex:1;padding-left:12px;display:flex;flex-direction:column;justify-content:center}#divTwcBottom{display:flex;flex-direction:row;background-color:#000;color:#fff;width:640px}.wide #divTwcBottom{width:854px}@media(prefers-color-scheme: dark){#divTwcBottom{background-color:#303030}}#divTwcBottom>div{padding-left:6px;padding-right:6px}@media(max-width: 550px){#divTwcBottom>div{font-size:.9em}}@media(max-width: 500px){#divTwcBottom>div{font-size:.8em}}@media(max-width: 450px){#divTwcBottom>div{font-size:.7em}}@media(max-width: 400px){#divTwcBottom>div{font-size:.6em}}@media(max-width: 350px){#divTwcBottom>div{font-size:.5em}}#divTwcBottomLeft{flex:1;text-align:left}#divTwcBottomMiddle{flex:0;text-align:center}#divTwcBottomRight{flex:1;text-align:right}#divTwcNavContainer{display:none}#divTwcNav{width:100%;display:flex;flex-direction:row;background-color:#000;color:#fff;max-width:640px}#divTwcNav>div{padding-left:6px;padding-right:6px}#divTwcNavLeft{flex:1;text-align:left}#divTwcNavMiddle{flex:0;text-align:center}#divTwcNavRight{flex:1;text-align:right}#imgPause1x{visibility:hidden;position:absolute}.HideCursor{cursor:none !important}#txtScrollText{width:475px}@font-face{font-family:"Star4000 Extended";src:url("../fonts/Star4000 Extended.woff") format("woff");font-display:swap}@font-face{font-family:"Star4000 Large";src:url("../fonts/Star4000 Large.woff") format("woff");font-display:swap}@font-face{font-family:"Star4000 Small";src:url("../fonts/Star4000 Small.woff") format("woff");font-display:swap}#display{font-family:"Star4000";margin:0 0 0 0;width:100%}#container{position:relative;width:640px;height:480px;background-image:url(../images/backgrounds/1.png);transform-origin:0 0;background-repeat:no-repeat}.wide #container{padding-left:107px;padding-right:107px;background:url(../images/backgrounds/1-wide.png);background-repeat:no-repeat}#divTwc:fullscreen #container,.kiosk #divTwc #container{width:unset;height:unset}#loading{width:640px;height:480px;max-width:100%;text-shadow:4px 4px #000;display:flex;align-items:center;text-align:center;justify-content:center}#loading .title{font-family:Star4000 Large;font-size:36px;color:#ff0;margin-bottom:0px}#loading .version{margin-bottom:35px}#loading .instructions{font-size:18pt}.heading{font-weight:bold;margin-top:15px}#settings{margin-bottom:15px}#enabledDisplays,#settings{margin-bottom:15px}#enabledDisplays .loading,#enabledDisplays .retrying,#settings .loading,#settings .retrying{color:#ff0}#enabledDisplays .press-here,#settings .press-here{color:lime;cursor:pointer}#enabledDisplays .failed,#settings .failed{color:red}#enabledDisplays .no-data,#settings .no-data{color:silver}#enabledDisplays .disabled,#settings .disabled{color:silver}#enabledDisplays .press-here,#settings .press-here{color:#fff}@media(prefers-color-scheme: light){#enabledDisplays .loading,#enabledDisplays .retrying,#settings .loading,#settings .retrying{color:#990}#enabledDisplays .press-here,#settings .press-here{color:#000;cursor:pointer}#enabledDisplays .failed,#settings .failed{color:#900}#enabledDisplays .no-data,#settings .no-data{color:hsl(0,0%,30%)}#enabledDisplays .disabled,#settings .disabled{color:hsl(0,0%,30%)}}#enabledDisplays label,#settings label{display:block;max-width:-moz-fit-content;max-width:fit-content;cursor:pointer}#enabledDisplays label .alert,#settings label .alert{display:none}#enabledDisplays label .alert.show,#settings label .alert.show{display:inline;color:red}#divTwcBottom img{transform:scale(0.75)}@media(max-width: 550px){.wide #divTwcBottom img{transform:scale(1)}}#divTwc:fullscreen,.kiosk #divTwc{display:flex;align-items:center;justify-content:center;align-content:center}#divTwc:fullscreen.no-cursor,.kiosk #divTwc.no-cursor{cursor:none}#divTwc:fullscreen #display,.kiosk #divTwc #display{position:relative}#divTwc:fullscreen #divTwcBottom,.kiosk #divTwc #divTwcBottom{display:flex;flex-direction:row;background-color:rgba(0,0,0,.5);color:#fff;width:100%;position:absolute;bottom:0px}.kiosk #divTwc #divTwcBottom{display:none}.navButton{cursor:pointer}#ToggleScanlines{display:inline-block}#ToggleScanlines .on{display:none}#ToggleScanlines .off{display:inline-block}#ToggleScanlines.on .on{display:inline-block}#ToggleScanlines.on .off{display:none}.visible{visibility:visible;opacity:1;transition:opacity .1s linear}#divTwc:fullscreen .hidden{visibility:hidden;opacity:0;transition:visibility 0s 1s,opacity 1s linear}.github-links{width:610px;max-width:calc(100vw - 30px);display:flex;justify-content:space-evenly;flex-wrap:wrap}.github-links span a{text-decoration:none;outline:0}.github-links span .widget{display:inline-block;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;font-size:0;line-height:0;white-space:nowrap}.github-links span .btn,.github-links span .social-count{position:relative;display:inline-block;display:inline-flex;height:14px;padding:2px 5px;font-size:11px;font-weight:600;line-height:14px;vertical-align:bottom;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-repeat:repeat-x;background-position:-1px -1px;background-size:110% 110%;border:1px solid}.github-links span .btn{border-radius:.25em}.github-links span .btn:not(:last-child){border-radius:.25em 0 0 .25em}.github-links span .social-count{border-left:0;border-radius:0 .25em .25em 0}.github-links span .widget-lg .btn,.github-links span .widget-lg .social-count{height:16px;padding:5px 10px;font-size:12px;line-height:16px}.github-links span .octicon{display:inline-block;vertical-align:text-top;fill:currentColor;overflow:visible}.github-links span .btn:focus-visible,.github-links span .social-count:focus-visible{outline:2px solid #0969da;outline-offset:-2px}.github-links span .btn{color:#24292f;background-color:#ebf0f4;border-color:#ccd1d5;border-color:rgba(27,31,36,.15);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg'%3e%3clinearGradient id='o' x2='0' y2='1'%3e%3cstop stop-color='%23f6f8fa'/%3e%3cstop offset='90%25' stop-color='%23ebf0f4'/%3e%3c/linearGradient%3e%3crect width='100%25' height='100%25' fill='url(%23o)'/%3e%3c/svg%3e");background-image:linear-gradient(180deg, #f6f8fa, #ebf0f4 90%);filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr="#FFF6F8FA", endColorstr="#FFEAEFF3")}.github-links span :root .btn{filter:none}.github-links span .btn:hover,.github-links span .btn:focus{background-color:#e9ebef;background-position:0 -0.5em;border-color:#caccd1;border-color:rgba(27,31,36,.15);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg'%3e%3clinearGradient id='o' x2='0' y2='1'%3e%3cstop stop-color='%23f3f4f6'/%3e%3cstop offset='90%25' stop-color='%23e9ebef'/%3e%3c/linearGradient%3e%3crect width='100%25' height='100%25' fill='url(%23o)'/%3e%3c/svg%3e");background-image:linear-gradient(180deg, #f3f4f6, #e9ebef 90%);filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr="#FFF3F4F6", endColorstr="#FFE8EAEE")}.github-links span :root .btn:hover,.github-links span :root .btn:focus{filter:none}.github-links span .btn:active{background-color:#e5e9ed;border-color:#c7cbcf;border-color:rgba(27,31,36,.15);box-shadow:inset 0 .15em .3em rgba(27,31,36,.15);background-image:none;filter:none}.github-links span .social-count{color:#24292f;background-color:#fff;border-color:#ddddde;border-color:rgba(27,31,36,.15)}.github-links span .social-count:hover,.github-links span .social-count:focus{color:#0969da}.github-links span .octicon-heart{color:#bf3989}@media(prefers-color-scheme: light){.github-links span .btn:focus-visible,.github-links span .social-count:focus-visible{outline:2px solid #0969da;outline-offset:-2px}.github-links span .btn{color:#24292f;background-color:#ebf0f4;border-color:#ccd1d5;border-color:rgba(27,31,36,.15);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg'%3e%3clinearGradient id='o' x2='0' y2='1'%3e%3cstop stop-color='%23f6f8fa'/%3e%3cstop offset='90%25' stop-color='%23ebf0f4'/%3e%3c/linearGradient%3e%3crect width='100%25' height='100%25' fill='url(%23o)'/%3e%3c/svg%3e");background-image:linear-gradient(180deg, #f6f8fa, #ebf0f4 90%);filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr="#FFF6F8FA", endColorstr="#FFEAEFF3")}.github-links span :root .btn{filter:none}.github-links span .btn:hover,.github-links span .btn:focus{background-color:#e9ebef;background-position:0 -0.5em;border-color:#caccd1;border-color:rgba(27,31,36,.15);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg'%3e%3clinearGradient id='o' x2='0' y2='1'%3e%3cstop stop-color='%23f3f4f6'/%3e%3cstop offset='90%25' stop-color='%23e9ebef'/%3e%3c/linearGradient%3e%3crect width='100%25' height='100%25' fill='url(%23o)'/%3e%3c/svg%3e");background-image:linear-gradient(180deg, #f3f4f6, #e9ebef 90%);filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr="#FFF3F4F6", endColorstr="#FFE8EAEE")}.github-links span :root .btn:hover,.github-links span :root .btn:focus{filter:none}.github-links span .btn:active{background-color:#e5e9ed;border-color:#c7cbcf;border-color:rgba(27,31,36,.15);box-shadow:inset 0 .15em .3em rgba(27,31,36,.15);background-image:none;filter:none}.github-links span .social-count{color:#24292f;background-color:#fff;border-color:#ddddde;border-color:rgba(27,31,36,.15)}.github-links span .social-count:hover,.github-links span .social-count:focus{color:#0969da}.github-links span .octicon-heart{color:#bf3989}}@media(prefers-color-scheme: dark){.github-links span .btn:focus-visible,.github-links span .social-count:focus-visible{outline:2px solid #58a6ff;outline-offset:-2px}.github-links span .btn{color:#c9d1d9;background-color:#1a1e23;border-color:#2f3439;border-color:rgba(240,246,252,.1);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg'%3e%3clinearGradient id='o' x2='0' y2='1'%3e%3cstop stop-color='%2321262d'/%3e%3cstop offset='90%25' stop-color='%231a1e23'/%3e%3c/linearGradient%3e%3crect width='100%25' height='100%25' fill='url(%23o)'/%3e%3c/svg%3e");background-image:linear-gradient(180deg, #21262d, #1a1e23 90%);filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr="#FF21262D", endColorstr="#FF191D22")}.github-links span :root .btn{filter:none}.github-links span .btn:hover,.github-links span .btn:focus{background-color:#292e33;background-position:0 -0.5em;border-color:#8b949e;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg'%3e%3clinearGradient id='o' x2='0' y2='1'%3e%3cstop stop-color='%2330363d'/%3e%3cstop offset='90%25' stop-color='%23292e33'/%3e%3c/linearGradient%3e%3crect width='100%25' height='100%25' fill='url(%23o)'/%3e%3c/svg%3e");background-image:linear-gradient(180deg, #30363d, #292e33 90%);filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr="#FF30363D", endColorstr="#FF282D32")}.github-links span :root .btn:hover,.github-links span :root .btn:focus{filter:none}.github-links span .btn:active{background-color:#161719;border-color:#8b949e;box-shadow:inset 0 .15em .3em rgba(1,4,9,.15);background-image:none;filter:none}.github-links span .social-count{color:#c9d1d9;background-color:#0d1117;border-color:#24282e;border-color:rgba(240,246,252,.1)}.github-links span .social-count:hover,.github-links span .social-count:focus{color:#58a6ff}.github-links span .octicon-heart{color:#db61a2}}#share-link-copied{color:#990;display:none}#share-link-instructions{display:none}body.kiosk #loading .instructions{display:none !important}.kiosk>*:not(#divTwc){display:none !important}#divInfo{display:grid;grid-template-columns:1fr 1fr;max-width:250px}.weather-display{width:640px;height:480px;overflow:hidden;position:relative;background-image:url(../images/backgrounds/1.png);height:0px}.weather-display.show{height:480px}.weather-display .template{display:none}.weather-display .header{width:640px;height:60px;padding-top:30px}.weather-display .header .title{color:#ff0;text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000;font-family:"Star4000";font-size:24pt;position:absolute;width:250px}.weather-display .header .title.single{left:170px;top:25px}.weather-display .header .title.dual{left:170px}.weather-display .header .title.dual>div{position:absolute}.weather-display .header .title.dual .top{top:-3px}.weather-display .header .title.dual .bottom{top:26px}.weather-display .header .logo{top:30px;left:50px;position:absolute;z-index:10}.weather-display .header .noaa-logo{position:absolute;top:39px;left:356px}.weather-display .header .title.single{top:40px}.weather-display .header .date-time{white-space:pre;color:#fff;font-family:"Star4000 Small";font-size:24pt;text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000;left:415px;width:170px;text-align:right;position:absolute}.weather-display .header .date-time.date{padding-top:22px}.weather-display .main{position:relative}.weather-display .main.has-scroll{width:640px;margin-top:0;height:310px;overflow:hidden}.weather-display .main.has-scroll.no-header{height:400px;margin-top:0}.weather-display .main.has-box{margin-left:64px;margin-right:64px;width:calc(100% - 128px)}#container>.scroll{display:none;text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000;width:640px;height:77px;overflow:hidden;margin-top:3px;position:absolute;bottom:0px;z-index:1}#container>.scroll.hazard{background-color:#702323}#container>.scroll .scroll-container{width:640px}#container>.scroll .scroll-container .fixed,#container>.scroll .scroll-container .scroll-header{margin-left:55px;margin-right:55px;overflow:hidden;white-space:nowrap}#container>.scroll .scroll-container .scroll-header{height:26px;font-family:"Star4000 Small";font-size:20pt;margin-top:-10px}#container>.scroll .scroll-container .fixed{font-family:"Star4000";font-size:24pt}#container>.scroll .scroll-container .fixed .scroll-area{text-wrap:nowrap;position:relative}.wide #container>.scroll{width:854px;margin-left:-107px}.wide #container>.scroll .scroll-container{margin-left:107px}.weather-display .main.current-weather.main .col{height:50px;width:255px;display:inline-block;margin-top:10px;padding-top:10px;position:absolute;text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000}.weather-display .main.current-weather.main .col.left{font-family:"Star4000 Extended";font-size:24pt}.weather-display .main.current-weather.main .col.right{right:0px;font-family:"Star4000 Large";font-size:20px;font-weight:bold;line-height:24px}.weather-display .main.current-weather.main .col.right .row{margin-bottom:12px}.weather-display .main.current-weather.main .col.right .row .label,.weather-display .main.current-weather.main .col.right .row .value{display:inline-block}.weather-display .main.current-weather.main .col.right .row .label{margin-left:20px}.weather-display .main.current-weather.main .col.right .row .value{float:right;margin-right:10px}.weather-display .main.current-weather.main .center{text-align:center}.weather-display .main.current-weather.main .temp{font-family:"Star4000 Large";font-size:24pt}.weather-display .main.current-weather.main .icon img{margin:0 auto;display:block}.weather-display .main.current-weather.main .wind-container{margin-left:10px;display:flex}.weather-display .main.current-weather.main .wind-container>div{width:50%}.weather-display .main.current-weather.main .wind-container .wind{text-align:right}.weather-display .main.current-weather.main .wind-gusts{text-align:right;font-size:28px}.weather-display .main.current-weather.main .location{color:#ff0;max-height:32px;margin-bottom:10px;padding-top:4px;overflow:hidden;text-wrap:nowrap}#extended-forecast-html.weather-display{background-image:url("../images/backgrounds/2.png")}.weather-display .main.extended-forecast .day-container{margin-top:16px;margin-left:27px}.weather-display .main.extended-forecast .day{text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000;padding:5px;height:285px;width:155px;display:inline-block;margin:0px 15px;font-family:"Star4000";font-size:24pt}.weather-display .main.extended-forecast .day .date{text-transform:uppercase;text-align:center;color:#ff0}.weather-display .main.extended-forecast .day .condition{text-align:center;height:74px;margin-top:5px}.weather-display .main.extended-forecast .day .icon{text-align:center;height:75px}.weather-display .main.extended-forecast .day .icon img{max-height:75px}.weather-display .main.extended-forecast .day .temperatures{width:100%}.weather-display .main.extended-forecast .day .temperatures .temperature-block{display:inline-block;width:44%;vertical-align:top}.weather-display .main.extended-forecast .day .temperatures .temperature-block>div{text-align:center}.weather-display .main.extended-forecast .day .temperatures .temperature-block .value{font-family:"Star4000 Large";margin-top:4px}.weather-display .main.extended-forecast .day .temperatures .temperature-block.lo .label{color:#8080ff}.weather-display .main.extended-forecast .day .temperatures .temperature-block.hi .label{color:#ff0}.weather-display .main.hourly.main{overflow-y:hidden}.weather-display .main.hourly.main .column-headers{background-color:#200057;height:20px;position:absolute;width:100%}.weather-display .main.hourly.main .column-headers{position:sticky;top:0px;z-index:5}.weather-display .main.hourly.main .column-headers div{display:inline-block;font-family:"Star4000 Small";font-size:24pt;color:#ff0;position:absolute;top:-14px;z-index:5;text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000}.weather-display .main.hourly.main .column-headers .temp{left:355px}.weather-display .main.hourly.main .column-headers .like{left:435px}.weather-display .main.hourly.main .column-headers .wind{left:535px}.weather-display .main.hourly.main .hourly-lines{min-height:338px;padding-top:10px;background:repeating-linear-gradient(0deg, #001040 0px, #102080 136px, #102080 202px, #001040 338px)}.weather-display .main.hourly.main .hourly-lines .hourly-row{font-family:"Star4000 Large";font-size:24pt;height:72px;color:#ff0;text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000;position:relative}.weather-display .main.hourly.main .hourly-lines .hourly-row>div{position:absolute;white-space:pre;top:8px}.weather-display .main.hourly.main .hourly-lines .hourly-row .hour{left:25px}.weather-display .main.hourly.main .hourly-lines .hourly-row .icon{left:255px;width:70px;text-align:center;top:unset}.weather-display .main.hourly.main .hourly-lines .hourly-row .temp{left:355px}.weather-display .main.hourly.main .hourly-lines .hourly-row .like{left:425px}.weather-display .main.hourly.main .hourly-lines .hourly-row .like.heat-index{color:#e00}.weather-display .main.hourly.main .hourly-lines .hourly-row .like.wind-chill{color:#8080ff}.weather-display .main.hourly.main .hourly-lines .hourly-row .wind{left:505px;width:100px;text-align:right}#hourly-graph-html{background-image:url(../images/backgrounds/1-chart.png)}#hourly-graph-html .header .right{position:absolute;top:35px;right:60px;width:360px;font-family:"Star4000 Small";font-size:28px;text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000;text-align:right}#hourly-graph-html .header .right div{margin-top:-18px}#hourly-graph-html .header .right .temperature{color:red}#hourly-graph-html .header .right .dewpoint{color:green}#hourly-graph-html .header .right .cloud{color:#d3d3d3}#hourly-graph-html .header .right .rain{color:aqua}.weather-display .main.hourly-graph.main>div{position:absolute}.weather-display .main.hourly-graph.main .label{font-family:"Star4000 Small";font-size:24pt;color:#ff0;text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000;margin-top:-15px;position:absolute}.weather-display .main.hourly-graph.main .x-axis{bottom:0px;left:54px;width:532px;height:20px}.weather-display .main.hourly-graph.main .x-axis .label{text-align:center;transform:translateX(-50%);white-space:nowrap}.weather-display .main.hourly-graph.main .x-axis .label.l-1{left:0px}.weather-display .main.hourly-graph.main .x-axis .label.l-2{left:133px}.weather-display .main.hourly-graph.main .x-axis .label.l-3{left:266px}.weather-display .main.hourly-graph.main .x-axis .label.l-4{left:399px}.weather-display .main.hourly-graph.main .x-axis .label.l-5{left:532px}.weather-display .main.hourly-graph.main .chart{top:0px;left:50px}.weather-display .main.hourly-graph.main .chart img{width:532px;height:285px}.weather-display .main.hourly-graph.main .y-axis{top:0px;left:0px;width:50px;height:285px}.weather-display .main.hourly-graph.main .y-axis .label{text-align:right;right:0px}.weather-display .main.hourly-graph.main .y-axis .label.l-1{top:0px}.weather-display .main.hourly-graph.main .y-axis .label.l-2{top:93.3333333333px}.weather-display .main.hourly-graph.main .y-axis .label.l-3{bottom:82.3333333333px}.weather-display .main.hourly-graph.main .y-axis .label.l-4{bottom:0px}.weather-display .main.hourly-graph.main .column-headers{background-color:#200057;height:20px;position:absolute;width:100%}.weather-display .main.hourly-graph.main .column-headers{position:sticky;top:0px;z-index:5}.weather-display .main.hourly-graph.main .column-headers .temp{left:355px}.weather-display .main.hourly-graph.main .column-headers .like{left:435px}.weather-display .main.hourly-graph.main .column-headers .wind{left:535px}.weather-display .main.travel.main{overflow-y:hidden}.weather-display .main.travel.main .column-headers{background-color:#200057;height:20px;position:sticky;top:0px;width:100%;z-index:5;overflow:hidden}.weather-display .main.travel.main .column-headers div{display:inline-block;font-family:"Star4000 Small";font-size:24pt;color:#ff0;position:absolute;top:-14px;z-index:5;text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000}.weather-display .main.travel.main .column-headers .temp{width:50px;text-align:center}.weather-display .main.travel.main .column-headers .temp.low{left:455px}.weather-display .main.travel.main .column-headers .temp.high{left:510px;width:60px}.weather-display .main.travel.main .travel-lines{min-height:338px;padding-top:10px;background:repeating-linear-gradient(0deg, #001040 0px, #102080 136px, #102080 202px, #001040 338px)}.weather-display .main.travel.main .travel-lines .travel-row{font-family:"Star4000 Large";font-size:24pt;height:72px;color:#ff0;text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000;position:relative}.weather-display .main.travel.main .travel-lines .travel-row>div{position:absolute;white-space:pre;top:8px}.weather-display .main.travel.main .travel-lines .travel-row .city{left:80px}.weather-display .main.travel.main .travel-lines .travel-row .icon{left:330px;width:70px;text-align:center;top:unset}.weather-display .main.travel.main .travel-lines .travel-row .icon img{max-width:47px}.weather-display .main.travel.main .travel-lines .travel-row .temp{width:50px;text-align:center}.weather-display .main.travel.main .travel-lines .travel-row .temp.low{left:455px}.weather-display .main.travel.main .travel-lines .travel-row .temp.high{left:510px;width:60px}.weather-display .latest-observations.main{overflow-y:hidden}.weather-display .latest-observations.main .column-headers{height:20px;position:absolute;width:100%}.weather-display .latest-observations.main .column-headers{top:0px}.weather-display .latest-observations.main .column-headers div{display:inline-block;font-family:"Star4000 Small";font-size:24pt;position:absolute;top:-14px;text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000}.weather-display .latest-observations.main .column-headers .temp{display:none}.weather-display .latest-observations.main .column-headers .temp.show{display:inline-block}.weather-display .latest-observations.main .temp{left:230px}.weather-display .latest-observations.main .weather{left:280px}.weather-display .latest-observations.main .wind{left:430px}.weather-display .latest-observations.main .observation-lines{min-height:338px;padding-top:10px}.weather-display .latest-observations.main .observation-lines .observation-row{font-family:"Star4000";font-size:24pt;text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000;position:relative;height:40px}.weather-display .latest-observations.main .observation-lines .observation-row>div{position:absolute;top:8px}.weather-display .latest-observations.main .observation-lines .observation-row .wind{white-space:pre;text-align:right}.weather-display .local-forecast .container{position:relative;top:15px;margin:0px 10px;box-sizing:border-box;height:280px;overflow:hidden}.weather-display .local-forecast .forecasts{position:relative}.weather-display .local-forecast .forecast{font-family:"Star4000";font-size:24pt;text-transform:uppercase;text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000;min-height:280px;line-height:40px}.weather-display .progress{text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000;font-family:"Star4000 Extended";font-size:19pt}.weather-display .progress .container{position:relative;top:15px;margin:0px 10px;box-sizing:border-box;height:310px;overflow:hidden;line-height:28px}.weather-display .progress .container .item{position:relative}.weather-display .progress .container .item .name{white-space:nowrap}.weather-display .progress .container .item .name::after{content:"........................................................................"}.weather-display .progress .container .item .links{position:absolute;text-align:right;right:0px;top:0px}.weather-display .progress .container .item .links>div{background-color:#26235a;display:none;padding-left:4px}.weather-display .progress .container .item .links .loading,.weather-display .progress .container .item .links .retrying{color:#ff0}.weather-display .progress .container .item .links .press-here{color:lime;cursor:pointer}.weather-display .progress .container .item .links .failed{color:red}.weather-display .progress .container .item .links .no-data{color:silver}.weather-display .progress .container .item .links .disabled{color:silver}.weather-display .progress .container .item .links.loading .loading,.weather-display .progress .container .item .links.press-here .press-here,.weather-display .progress .container .item .links.failed .failed,.weather-display .progress .container .item .links.no-data .no-data,.weather-display .progress .container .item .links.disabled .disabled,.weather-display .progress .container .item .links.retrying .retrying{display:block}@keyframes progress-scroll{0%{background-position:-40px 0}100%{background-position:40px 0}}#progress-html.weather-display .scroll .progress-bar-container{border:2px solid #000;background-color:#fff;margin:20px auto;width:524px;position:relative;display:none}#progress-html.weather-display .scroll .progress-bar-container.show{display:block}#progress-html.weather-display .scroll .progress-bar-container .progress-bar{height:20px;margin:2px;width:520px;background:repeating-linear-gradient(90deg, #09246f 0px, #09246f 5px, #364ac0 5px, #364ac0 10px, #4f99f9 10px, #4f99f9 15px, #8ffdfa 15px, #8ffdfa 20px, #4f99f9 20px, #4f99f9 25px, #364ac0 25px, #364ac0 30px, #09246f 30px, #09246f 40px);animation-duration:2s;animation-fill-mode:forwards;animation-iteration-count:infinite;animation-name:progress-scroll;animation-timing-function:steps(8, end)}#progress-html.weather-display .scroll .progress-bar-container .cover{position:absolute;top:0px;right:0px;background-color:#fff;width:100%;height:24px;transition:width 1s steps(6)}#radar-html.weather-display{background-image:url("../images/backgrounds/4.png")}#radar-html.weather-display .header{height:83px}#radar-html.weather-display .header .title.dual{color:#fff;font-family:"Arial",sans-serif;font-weight:bold;font-size:28pt;left:155px}#radar-html.weather-display .header .title.dual .top{top:-4px}#radar-html.weather-display .header .title.dual .bottom{top:31px}#radar-html.weather-display .header .right{position:absolute;right:0px;width:360px;margin-top:2px;font-family:"Star4000";font-size:18pt;font-weight:bold;text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000;text-align:center}#radar-html.weather-display .header .right .scale>div{display:inline-block}#radar-html.weather-display .header .right .scale-table{display:table-row;border-collapse:collapse}#radar-html.weather-display .header .right .scale-table .box{display:table-cell;border:2px solid #000;width:17px;height:24px;padding:0}#radar-html.weather-display .header .right .scale-table .box-1{background-color:#31d216}#radar-html.weather-display .header .right .scale-table .box-2{background-color:#1c8a12}#radar-html.weather-display .header .right .scale-table .box-3{background-color:#145a0f}#radar-html.weather-display .header .right .scale-table .box-4{background-color:#0a280a}#radar-html.weather-display .header .right .scale-table .box-5{background-color:#c4b346}#radar-html.weather-display .header .right .scale-table .box-6{background-color:#be4813}#radar-html.weather-display .header .right .scale-table .box-7{background-color:#ab0e0e}#radar-html.weather-display .header .right .scale-table .box-8{background-color:#731f04}#radar-html.weather-display .header .right .scale .text{position:relative;top:-5px}#radar-html.weather-display .header .right .time{position:relative;font-weight:normal;top:-14px;font-family:"Star4000 Small";font-size:24pt}.weather-display .main.radar{overflow:hidden;height:367px}.weather-display .main.radar .container .tiles{position:absolute;width:1400px}.weather-display .main.radar .container .tiles img{vertical-align:middle}.weather-display .main.radar .container .scroll-area{position:relative}.wide.radar #container{background:url(../images/backgrounds/4-wide.png)}#regional-forecast-html.weather-display{background-image:url("../images/backgrounds/5.png")}.weather-display .main.regional-forecast{position:relative}.weather-display .main.regional-forecast .map{position:absolute;transform-origin:0 0}.weather-display .main.regional-forecast .location{position:absolute;width:140px;margin-left:-40px;margin-top:-35px}.weather-display .main.regional-forecast .location>div{position:absolute;text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000}.weather-display .main.regional-forecast .location .icon{top:26px;left:44px}.weather-display .main.regional-forecast .location .icon img{max-height:32px}.weather-display .main.regional-forecast .location .temp{font-family:"Star4000 Large";font-size:28px;padding-top:2px;color:#ff0;top:28px;text-align:right;width:40px}.weather-display .main.regional-forecast .location .city{font-family:Star4000;font-size:20px}#almanac-html.weather-display{background-image:url("../images/backgrounds/3.png")}.weather-display .main.almanac{font-family:"Star4000";font-size:24pt;text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000}.weather-display .main.almanac .sun{display:grid;grid-template-columns:auto auto auto;grid-template-rows:auto auto auto;gap:0px 90px;margin:3px auto 5px auto;width:-moz-fit-content;width:fit-content;line-height:30px}.weather-display .main.almanac .sun .grid-item{width:auto;height:auto;padding:0;margin:0;position:relative}.weather-display .main.almanac .sun .grid-item.header{color:#ff0;text-align:center}.weather-display .main.almanac .sun .grid-item.row-label{text-align:right}.weather-display .main.almanac .sun .grid-item.time{text-align:center}.weather-display .main.almanac .moon{position:relative;padding:7px 50px;line-height:36px}.weather-display .main.almanac .moon .title{color:#ff0;padding-left:13px}.weather-display .main.almanac .moon .day{display:inline-block;text-align:center;width:132px}.weather-display .main.almanac .moon .day .icon{padding-left:10px}.weather-display .main.almanac .moon .day .date{position:relative;top:-10px}#hazards-html.weather-display{background-image:url("../images/backgrounds/7.png")}.weather-display .main.hazards.main{overflow-y:hidden;height:480px;background-color:#702323}.weather-display .main.hazards.main .hazard-lines{min-height:400px;padding-top:10px}.weather-display .main.hazards.main .hazard-lines .hazard{font-family:"Star4000";font-size:24pt;color:#fff;text-shadow:0px 0px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000;position:relative;text-transform:uppercase;margin-top:10px;margin-left:80px;margin-right:80px;padding-bottom:10px}.wide.hazards #container{background:url(../images/backgrounds/7-wide.png)}.media{display:none}#ToggleMediaContainer{display:none;position:relative}#ToggleMediaContainer.available{display:inline-block}#ToggleMediaContainer.available img.on{display:none}#ToggleMediaContainer.available img.off{display:block}#ToggleMediaContainer.available.playing img.on{display:block}#ToggleMediaContainer.available.playing img.off{display:none}#ToggleMediaContainer .volume-slider{display:none;position:absolute;top:0px;transform:translateY(-100%);width:100%;background-color:#000;text-align:center;z-index:100}@media(prefers-color-scheme: dark){#ToggleMediaContainer .volume-slider{background-color:#303030}}#ToggleMediaContainer .volume-slider input[type=range]{writing-mode:vertical-lr;direction:rtl;margin-top:20px;margin-bottom:20px}#ToggleMediaContainer .volume-slider.show{display:block}#spc-outlook-html.weather-display{background-image:url("../images/backgrounds/6.png")}.weather-display .spc-outlook .container{position:relative;top:0px;margin:0px 10px;box-sizing:border-box;height:300px;overflow:hidden}.weather-display .spc-outlook .risk-levels{position:absolute;left:206px;font-family:"Star4000 Small";font-size:32px;text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000}.weather-display .spc-outlook .risk-levels .risk-level{position:relative;top:-14px;height:20px}.weather-display .spc-outlook .risk-levels .risk-level:nth-child(1){left:100px}.weather-display .spc-outlook .risk-levels .risk-level:nth-child(2){left:80px}.weather-display .spc-outlook .risk-levels .risk-level:nth-child(3){left:60px}.weather-display .spc-outlook .risk-levels .risk-level:nth-child(4){left:40px}.weather-display .spc-outlook .risk-levels .risk-level:nth-child(5){left:20px}.weather-display .spc-outlook .risk-levels .risk-level:nth-child(6){left:0px}.weather-display .spc-outlook .days{position:absolute;top:120px}.weather-display .spc-outlook .days .day{height:60px}.weather-display .spc-outlook .days .day .day-name{position:absolute;font-family:"Star4000";font-size:24pt;width:200px;text-align:right;text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000;padding-top:20px}.weather-display .spc-outlook .days .day .risk-bar{position:absolute;width:150px;height:40px;left:210px;margin-top:20px;border:3px outset hsl(0,0%,70%);background:linear-gradient(0deg, hsl(0, 0%, 40%) 0%, hsl(0, 0%, 60%) 50%, hsl(0, 0%, 40%) 100%)}.scanlines{position:relative;overflow:hidden}.scanlines:before,.scanlines:after{display:block;pointer-events:none;content:"";position:absolute}.scanlines:before{width:100%;height:1px;z-index:2147483649;background:rgba(0,0,0,.3);opacity:.75;animation:scanline 6s linear infinite}.scanlines:after{top:0;right:0;bottom:0;left:0;z-index:2147483648;background:repeating-linear-gradient(to bottom, transparent 0, transparent 1px, rgba(0, 0, 0, 0.3) 1px, rgba(0, 0, 0, 0.3) 2px);animation:none;image-rendering:crisp-edges;image-rendering:pixelated}.scanlines:before{height:var(--scanline-thickness, 1px)}.scanlines:after{background:repeating-linear-gradient(to bottom, transparent 0, transparent var(--scanline-thickness, 1px), rgba(0, 0, 0, 0.3) var(--scanline-thickness, 1px), rgba(0, 0, 0, 0.3) calc(var(--scanline-thickness, 1px) * 2))}@keyframes scanline{0%{transform:translate3d(0, 200000%, 0)}}@keyframes scanlines{0%{background-position:0 50%}}/*# sourceMappingURL=ws.min.css.map */ \ No newline at end of file +@font-face{font-family:"Star4000";src:url("../fonts/Star4000.woff") format("woff");font-display:swap}body{font-family:"Star4000";margin:0}@media(prefers-color-scheme: dark){body{background-color:#000;color:#fff}}@media(prefers-color-scheme: dark){body a{color:#add8e6}}body.kiosk{margin:0px;padding:0px;overflow:hidden;width:100vw;background-color:#000 !important}#divQuery{max-width:640px;padding:8px}#divQuery .buttons{display:inline-block;width:150px;text-align:right}#divQuery .buttons #imgGetGps{height:13px;vertical-align:middle}#divQuery .buttons button{font-size:16pt;border:1px solid #a9a9a9}@media(prefers-color-scheme: dark){#divQuery .buttons button{background-color:#000;color:#fff}}#divQuery .buttons #btnGetGps img.dark{display:none}@media(prefers-color-scheme: dark){#divQuery .buttons #btnGetGps img.dark{display:inline-block}}@media(prefers-color-scheme: dark){#divQuery .buttons #btnGetGps img.light{display:none}}#divQuery .buttons #btnGetGps.active{background-color:#000}@media(prefers-color-scheme: dark){#divQuery .buttons #btnGetGps.active{background-color:#fff}}#divQuery .buttons #btnGetGps.active img{filter:invert(1)}#divQuery input,#divQuery button{font-family:"Star4000"}#divQuery #txtLocation{width:calc(100% - 170px);max-width:490px;font-size:16pt;min-width:200px;display:inline-block;background-color:#fff;color:#000;border:2px inset gray}@media(prefers-color-scheme: dark){#divQuery #txtLocation{background-color:#000;color:#fff;border:2px inset gray}}.autocomplete-suggestions{background-color:#fff;border:1px solid #000;position:absolute;z-index:9999}@media(prefers-color-scheme: dark){.autocomplete-suggestions{background-color:#000}}.autocomplete-suggestions div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:16pt}.autocomplete-suggestions div.selected{background-color:blue;color:#fff}#divTwc{display:block;background-color:#000;color:#fff;width:100%;max-width:640px;margin:0}#divTwc.wide{max-width:854px}.content-wrapper{padding:8px}#divTwcMain{width:640px;height:480px;position:relative}.wide #divTwcMain{width:854px}.kiosk #divTwc{max-width:unset}#divTwcLeft{display:none;text-align:right;flex-direction:column;vertical-align:middle}#divTwcLeft>div{flex:1;padding-right:12px;display:flex;flex-direction:column;justify-content:center}#divTwcRight{text-align:left;display:none;flex-direction:column;vertical-align:middle}#divTwcRight>div{flex:1;padding-left:12px;display:flex;flex-direction:column;justify-content:center}#divTwcBottom{display:flex;flex-direction:row;background-color:#000;color:#fff;width:640px}.wide #divTwcBottom{width:854px}@media(prefers-color-scheme: dark){#divTwcBottom{background-color:#303030}}#divTwcBottom>div{padding-left:6px;padding-right:6px}@media(max-width: 550px){#divTwcBottom>div{font-size:.9em}}@media(max-width: 500px){#divTwcBottom>div{font-size:.8em}}@media(max-width: 450px){#divTwcBottom>div{font-size:.7em}}@media(max-width: 400px){#divTwcBottom>div{font-size:.6em}}@media(max-width: 350px){#divTwcBottom>div{font-size:.5em}}#divTwcBottomLeft{flex:1;text-align:left}#divTwcBottomMiddle{flex:0;text-align:center}#divTwcBottomRight{flex:1;text-align:right}#divTwcNavContainer{display:none}#divTwcNav{width:100%;display:flex;flex-direction:row;background-color:#000;color:#fff;max-width:640px}#divTwcNav>div{padding-left:6px;padding-right:6px}#divTwcNavLeft{flex:1;text-align:left}#divTwcNavMiddle{flex:0;text-align:center}#divTwcNavRight{flex:1;text-align:right}#imgPause1x{visibility:hidden;position:absolute}.HideCursor{cursor:none !important}#txtScrollText{width:475px}@font-face{font-family:"Star4000 Extended";src:url("../fonts/Star4000 Extended.woff") format("woff");font-display:swap}@font-face{font-family:"Star4000 Large";src:url("../fonts/Star4000 Large.woff") format("woff");font-display:swap}@font-face{font-family:"Star4000 Small";src:url("../fonts/Star4000 Small.woff") format("woff");font-display:swap}#display{font-family:"Star4000";margin:0 0 0 0;width:100%}#container{position:relative;width:640px;height:480px;background-image:url(../images/backgrounds/1.png);transform-origin:0 0;background-repeat:no-repeat}.wide #container{width:854px;background:url(../images/backgrounds/1-wide.png);background-repeat:no-repeat}#divTwc:fullscreen #container,.kiosk #divTwc #container{width:unset;height:unset}#loading{width:640px;height:480px;max-width:100%;text-shadow:4px 4px #000;display:flex;align-items:center;text-align:center;justify-content:center}.wide #loading{margin-left:107px}#loading .title{font-family:Star4000 Large;font-size:36px;color:#ff0;margin-bottom:0px}#loading .version{margin-bottom:35px}#loading .instructions{font-size:18pt}.heading{font-weight:bold;margin-top:15px}#settings{margin-bottom:15px}#enabledDisplays,#settings{margin-bottom:15px}#enabledDisplays .loading,#enabledDisplays .retrying,#settings .loading,#settings .retrying{color:#ff0}#enabledDisplays .press-here,#settings .press-here{color:lime;cursor:pointer}#enabledDisplays .failed,#settings .failed{color:red}#enabledDisplays .no-data,#settings .no-data{color:silver}#enabledDisplays .disabled,#settings .disabled{color:silver}#enabledDisplays .press-here,#settings .press-here{color:#fff}@media(prefers-color-scheme: light){#enabledDisplays .loading,#enabledDisplays .retrying,#settings .loading,#settings .retrying{color:#990}#enabledDisplays .press-here,#settings .press-here{color:#000;cursor:pointer}#enabledDisplays .failed,#settings .failed{color:#900}#enabledDisplays .no-data,#settings .no-data{color:hsl(0,0%,30%)}#enabledDisplays .disabled,#settings .disabled{color:hsl(0,0%,30%)}}#enabledDisplays label,#settings label{display:block;max-width:-moz-fit-content;max-width:fit-content;cursor:pointer}#enabledDisplays label .alert,#settings label .alert{display:none}#enabledDisplays label .alert.show,#settings label .alert.show{display:inline;color:red}#divTwcBottom img{transform:scale(0.75)}@media(max-width: 550px){.wide #divTwcBottom img{transform:scale(1)}}#divTwc:fullscreen,.kiosk #divTwc{display:flex;align-items:center;justify-content:center;align-content:center}#divTwc:fullscreen.no-cursor,.kiosk #divTwc.no-cursor{cursor:none}#divTwc:fullscreen #display,.kiosk #divTwc #display{position:relative}#divTwc:fullscreen #divTwcBottom,.kiosk #divTwc #divTwcBottom{display:flex;flex-direction:row;background-color:rgba(0,0,0,.5);color:#fff;width:100%;position:absolute;bottom:0px}.kiosk #divTwc #divTwcBottom{display:none}.navButton{cursor:pointer}#ToggleScanlines{display:inline-block}#ToggleScanlines .on{display:none}#ToggleScanlines .off{display:inline-block}#ToggleScanlines.on .on{display:inline-block}#ToggleScanlines.on .off{display:none}.visible{visibility:visible;opacity:1;transition:opacity .1s linear}#divTwc:fullscreen .hidden{visibility:hidden;opacity:0;transition:visibility 0s 1s,opacity 1s linear}.github-links{width:610px;max-width:calc(100vw - 30px);display:flex;justify-content:space-evenly;flex-wrap:wrap}.github-links span a{text-decoration:none;outline:0}.github-links span .widget{display:inline-block;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;font-size:0;line-height:0;white-space:nowrap}.github-links span .btn,.github-links span .social-count{position:relative;display:inline-block;display:inline-flex;height:14px;padding:2px 5px;font-size:11px;font-weight:600;line-height:14px;vertical-align:bottom;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-repeat:repeat-x;background-position:-1px -1px;background-size:110% 110%;border:1px solid}.github-links span .btn{border-radius:.25em}.github-links span .btn:not(:last-child){border-radius:.25em 0 0 .25em}.github-links span .social-count{border-left:0;border-radius:0 .25em .25em 0}.github-links span .widget-lg .btn,.github-links span .widget-lg .social-count{height:16px;padding:5px 10px;font-size:12px;line-height:16px}.github-links span .octicon{display:inline-block;vertical-align:text-top;fill:currentColor;overflow:visible}.github-links span .btn:focus-visible,.github-links span .social-count:focus-visible{outline:2px solid #0969da;outline-offset:-2px}.github-links span .btn{color:#24292f;background-color:#ebf0f4;border-color:#ccd1d5;border-color:rgba(27,31,36,.15);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg'%3e%3clinearGradient id='o' x2='0' y2='1'%3e%3cstop stop-color='%23f6f8fa'/%3e%3cstop offset='90%25' stop-color='%23ebf0f4'/%3e%3c/linearGradient%3e%3crect width='100%25' height='100%25' fill='url(%23o)'/%3e%3c/svg%3e");background-image:linear-gradient(180deg, #f6f8fa, #ebf0f4 90%);filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr='#FFF6F8FA', endColorstr='#FFEAEFF3')}.github-links span :root .btn{filter:none}.github-links span .btn:hover,.github-links span .btn:focus{background-color:#e9ebef;background-position:0 -0.5em;border-color:#caccd1;border-color:rgba(27,31,36,.15);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg'%3e%3clinearGradient id='o' x2='0' y2='1'%3e%3cstop stop-color='%23f3f4f6'/%3e%3cstop offset='90%25' stop-color='%23e9ebef'/%3e%3c/linearGradient%3e%3crect width='100%25' height='100%25' fill='url(%23o)'/%3e%3c/svg%3e");background-image:linear-gradient(180deg, #f3f4f6, #e9ebef 90%);filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr='#FFF3F4F6', endColorstr='#FFE8EAEE')}.github-links span :root .btn:hover,.github-links span :root .btn:focus{filter:none}.github-links span .btn:active{background-color:#e5e9ed;border-color:#c7cbcf;border-color:rgba(27,31,36,.15);box-shadow:inset 0 .15em .3em rgba(27,31,36,.15);background-image:none;filter:none}.github-links span .social-count{color:#24292f;background-color:#fff;border-color:#ddddde;border-color:rgba(27,31,36,.15)}.github-links span .social-count:hover,.github-links span .social-count:focus{color:#0969da}.github-links span .octicon-heart{color:#bf3989}@media(prefers-color-scheme: light){.github-links span .btn:focus-visible,.github-links span .social-count:focus-visible{outline:2px solid #0969da;outline-offset:-2px}.github-links span .btn{color:#24292f;background-color:#ebf0f4;border-color:#ccd1d5;border-color:rgba(27,31,36,.15);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg'%3e%3clinearGradient id='o' x2='0' y2='1'%3e%3cstop stop-color='%23f6f8fa'/%3e%3cstop offset='90%25' stop-color='%23ebf0f4'/%3e%3c/linearGradient%3e%3crect width='100%25' height='100%25' fill='url(%23o)'/%3e%3c/svg%3e");background-image:linear-gradient(180deg, #f6f8fa, #ebf0f4 90%);filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr='#FFF6F8FA', endColorstr='#FFEAEFF3')}.github-links span :root .btn{filter:none}.github-links span .btn:hover,.github-links span .btn:focus{background-color:#e9ebef;background-position:0 -0.5em;border-color:#caccd1;border-color:rgba(27,31,36,.15);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg'%3e%3clinearGradient id='o' x2='0' y2='1'%3e%3cstop stop-color='%23f3f4f6'/%3e%3cstop offset='90%25' stop-color='%23e9ebef'/%3e%3c/linearGradient%3e%3crect width='100%25' height='100%25' fill='url(%23o)'/%3e%3c/svg%3e");background-image:linear-gradient(180deg, #f3f4f6, #e9ebef 90%);filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr='#FFF3F4F6', endColorstr='#FFE8EAEE')}.github-links span :root .btn:hover,.github-links span :root .btn:focus{filter:none}.github-links span .btn:active{background-color:#e5e9ed;border-color:#c7cbcf;border-color:rgba(27,31,36,.15);box-shadow:inset 0 .15em .3em rgba(27,31,36,.15);background-image:none;filter:none}.github-links span .social-count{color:#24292f;background-color:#fff;border-color:#ddddde;border-color:rgba(27,31,36,.15)}.github-links span .social-count:hover,.github-links span .social-count:focus{color:#0969da}.github-links span .octicon-heart{color:#bf3989}}@media(prefers-color-scheme: dark){.github-links span .btn:focus-visible,.github-links span .social-count:focus-visible{outline:2px solid #58a6ff;outline-offset:-2px}.github-links span .btn{color:#c9d1d9;background-color:#1a1e23;border-color:#2f3439;border-color:rgba(240,246,252,.1);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg'%3e%3clinearGradient id='o' x2='0' y2='1'%3e%3cstop stop-color='%2321262d'/%3e%3cstop offset='90%25' stop-color='%231a1e23'/%3e%3c/linearGradient%3e%3crect width='100%25' height='100%25' fill='url(%23o)'/%3e%3c/svg%3e");background-image:linear-gradient(180deg, #21262d, #1a1e23 90%);filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr='#FF21262D', endColorstr='#FF191D22')}.github-links span :root .btn{filter:none}.github-links span .btn:hover,.github-links span .btn:focus{background-color:#292e33;background-position:0 -0.5em;border-color:#8b949e;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg'%3e%3clinearGradient id='o' x2='0' y2='1'%3e%3cstop stop-color='%2330363d'/%3e%3cstop offset='90%25' stop-color='%23292e33'/%3e%3c/linearGradient%3e%3crect width='100%25' height='100%25' fill='url(%23o)'/%3e%3c/svg%3e");background-image:linear-gradient(180deg, #30363d, #292e33 90%);filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr='#FF30363D', endColorstr='#FF282D32')}.github-links span :root .btn:hover,.github-links span :root .btn:focus{filter:none}.github-links span .btn:active{background-color:#161719;border-color:#8b949e;box-shadow:inset 0 .15em .3em rgba(1,4,9,.15);background-image:none;filter:none}.github-links span .social-count{color:#c9d1d9;background-color:#0d1117;border-color:#24282e;border-color:rgba(240,246,252,.1)}.github-links span .social-count:hover,.github-links span .social-count:focus{color:#58a6ff}.github-links span .octicon-heart{color:#db61a2}}#share-link-copied{color:#990;display:none}#share-link-instructions{display:none}body.kiosk #loading .instructions{display:none !important}.kiosk>*:not(#divTwc){display:none !important}#divInfo{display:grid;grid-template-columns:1fr 1fr;max-width:250px}.weather-display{width:640px;height:480px;overflow:hidden;position:relative;background-image:url(../images/backgrounds/1.png)}.wide .weather-display{width:854px;background-position-x:107px;background-repeat:no-repeat}.weather-display{height:0px}.weather-display.show{height:480px}.weather-display .template{display:none}.weather-display>.header{width:640px;height:60px;position:relative;padding-top:30px}.wide .weather-display>.header{left:107px}.weather-display>.header .title{color:#ff0;text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000;font-family:"Star4000";font-size:24pt;position:absolute;width:250px}.weather-display>.header .title.single{left:170px;top:25px}.weather-display>.header .title.dual{left:170px}.weather-display>.header .title.dual>div{position:absolute}.weather-display>.header .title.dual .top{top:-3px}.weather-display>.header .title.dual .bottom{top:26px}.weather-display>.header .logo{top:30px;left:50px;position:absolute;z-index:10}.weather-display>.header .noaa-logo{position:absolute;top:39px;left:356px}.weather-display>.header .title.single{top:40px}.weather-display>.header .date-time{white-space:pre;color:#fff;font-family:"Star4000 Small";font-size:24pt;text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000;left:415px;width:170px;text-align:right;position:absolute}.weather-display>.header .date-time.date{padding-top:22px}.weather-display .main{position:relative}.wide .weather-display .main{left:107px}.wide.enhanced .weather-display .main.can-enhance{left:0px;width:854px}.weather-display .main.has-scroll{width:640px;margin-top:0;height:310px;overflow:hidden}.weather-display .main.has-scroll.no-header{height:400px;margin-top:0}.weather-display .main.has-box{margin-left:64px;margin-right:64px;width:calc(100% - 128px)}#container>.scroll{display:none;text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000;width:640px;height:77px;overflow:hidden;margin-top:3px;position:absolute;bottom:0px;z-index:1}.wide #container>.scroll{left:107px}#container>.scroll.hazard{background-color:#702323}#container>.scroll .scroll-container{width:640px}#container>.scroll .scroll-container .fixed,#container>.scroll .scroll-container .scroll-header{margin-left:55px;margin-right:55px;overflow:hidden;white-space:nowrap}#container>.scroll .scroll-container .scroll-header{height:26px;font-family:"Star4000 Small";font-size:20pt;margin-top:-10px}#container>.scroll .scroll-container .fixed{font-family:"Star4000";font-size:24pt}#container>.scroll .scroll-container .fixed .scroll-area{text-wrap:nowrap;position:relative}.wide #container>.scroll{width:854px;margin-left:-107px}.wide #container>.scroll .scroll-container{margin-left:107px}.weather-display .main.current-weather.main{width:512px}.weather-display .main.current-weather.main .col{height:50px;width:255px;display:inline-block;margin-top:10px;padding-top:10px;position:absolute;text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000}.weather-display .main.current-weather.main .col.left{font-family:"Star4000 Extended";font-size:24pt}.weather-display .main.current-weather.main .col.right{right:0px;font-family:"Star4000 Large";font-size:20px;font-weight:bold;line-height:24px}.weather-display .main.current-weather.main .col.right .row{margin-bottom:12px}.weather-display .main.current-weather.main .col.right .row .label,.weather-display .main.current-weather.main .col.right .row .value{display:inline-block}.weather-display .main.current-weather.main .col.right .row .label{margin-left:20px}.weather-display .main.current-weather.main .col.right .row .value{float:right;margin-right:10px}.weather-display .main.current-weather.main .center{text-align:center}.weather-display .main.current-weather.main .temp{font-family:"Star4000 Large";font-size:24pt}.weather-display .main.current-weather.main .icon img{margin:0 auto;display:block}.weather-display .main.current-weather.main .wind-container{margin-left:10px;display:flex}.weather-display .main.current-weather.main .wind-container>div{width:50%}.weather-display .main.current-weather.main .wind-container .wind{text-align:right}.weather-display .main.current-weather.main .wind-gusts{text-align:right;font-size:28px}.weather-display .main.current-weather.main .location{color:#ff0;max-height:32px;margin-bottom:10px;padding-top:4px;overflow:hidden;text-wrap:nowrap}#extended-forecast-html.weather-display{background-image:url("../images/backgrounds/2.png")}.weather-display .main.extended-forecast .day-container{margin-top:16px;margin-left:27px}.weather-display .main.extended-forecast .day{text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000;padding:5px;height:285px;width:155px;display:inline-block;margin:0px 15px;font-family:"Star4000";font-size:24pt}.weather-display .main.extended-forecast .day .date{text-transform:uppercase;text-align:center;color:#ff0}.weather-display .main.extended-forecast .day .condition{text-align:center;height:74px;margin-top:5px}.weather-display .main.extended-forecast .day .icon{text-align:center;height:75px}.weather-display .main.extended-forecast .day .icon img{max-height:75px}.weather-display .main.extended-forecast .day .temperatures{width:100%}.weather-display .main.extended-forecast .day .temperatures .temperature-block{display:inline-block;width:44%;vertical-align:top}.weather-display .main.extended-forecast .day .temperatures .temperature-block>div{text-align:center}.weather-display .main.extended-forecast .day .temperatures .temperature-block .value{font-family:"Star4000 Large";margin-top:4px}.weather-display .main.extended-forecast .day .temperatures .temperature-block.lo .label{color:#8080ff}.weather-display .main.extended-forecast .day .temperatures .temperature-block.hi .label{color:#ff0}.weather-display .main.hourly.main{overflow-y:hidden}.weather-display .main.hourly.main .column-headers{background-color:#200057;height:20px;position:absolute;width:100%}.weather-display .main.hourly.main .column-headers{position:sticky;top:0px;z-index:5}.weather-display .main.hourly.main .column-headers div{display:inline-block;font-family:"Star4000 Small";font-size:24pt;color:#ff0;position:absolute;top:-14px;z-index:5;text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000}.weather-display .main.hourly.main .column-headers .temp{left:355px}.weather-display .main.hourly.main .column-headers .like{left:435px}.weather-display .main.hourly.main .column-headers .wind{left:535px}.weather-display .main.hourly.main .hourly-lines{min-height:338px;padding-top:10px;background:repeating-linear-gradient(0deg, #001040 0px, #102080 136px, #102080 202px, #001040 338px)}.weather-display .main.hourly.main .hourly-lines .hourly-row{font-family:"Star4000 Large";font-size:24pt;height:72px;color:#ff0;text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000;position:relative}.weather-display .main.hourly.main .hourly-lines .hourly-row>div{position:absolute;white-space:pre;top:8px}.weather-display .main.hourly.main .hourly-lines .hourly-row .hour{left:25px}.weather-display .main.hourly.main .hourly-lines .hourly-row .icon{left:255px;width:70px;text-align:center;top:unset}.weather-display .main.hourly.main .hourly-lines .hourly-row .temp{left:355px}.weather-display .main.hourly.main .hourly-lines .hourly-row .like{left:425px}.weather-display .main.hourly.main .hourly-lines .hourly-row .like.heat-index{color:#e00}.weather-display .main.hourly.main .hourly-lines .hourly-row .like.wind-chill{color:#8080ff}.weather-display .main.hourly.main .hourly-lines .hourly-row .wind{left:505px;width:100px;text-align:right}#hourly-graph-html{background-image:url(../images/backgrounds/1-chart.png)}.wide.enhanced #hourly-graph-html{background-image:url(../images/backgrounds/1-chart-wide.png);background-position-x:0px}#hourly-graph-html .header .right{position:absolute;top:35px;right:60px;width:360px;font-family:"Star4000 Small";font-size:28px;text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000;text-align:right}#hourly-graph-html .header .right div{margin-top:-18px}#hourly-graph-html .header .right .temperature{color:red}#hourly-graph-html .header .right .dewpoint{color:green}#hourly-graph-html .header .right .cloud{color:#d3d3d3}#hourly-graph-html .header .right .rain{color:aqua}.weather-display .main.hourly-graph.main>div{position:absolute}.weather-display .main.hourly-graph.main .label{font-family:"Star4000 Small";font-size:24pt;color:#ff0;text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000;margin-top:-15px;position:absolute}.weather-display .main.hourly-graph.main .x-axis{bottom:0px;left:54px;width:532px;height:20px}.weather-display .main.hourly-graph.main .x-axis .label{text-align:center;transform:translateX(-50%);white-space:nowrap}.weather-display .main.hourly-graph.main .x-axis .label.l-1{left:0px}.weather-display .main.hourly-graph.main .x-axis .label.l-2{left:133px}.weather-display .main.hourly-graph.main .x-axis .label.l-3{left:266px}.weather-display .main.hourly-graph.main .x-axis .label.l-4{left:399px}.weather-display .main.hourly-graph.main .x-axis .label.l-5{left:532px}.wide.enhanced .weather-display .main.hourly-graph.main .x-axis .label.l-1{left:0px}.wide.enhanced .weather-display .main.hourly-graph.main .x-axis .label.l-2{left:121px}.wide.enhanced .weather-display .main.hourly-graph.main .x-axis .label.l-3{left:242px}.wide.enhanced .weather-display .main.hourly-graph.main .x-axis .label.l-4{left:363px}.wide.enhanced .weather-display .main.hourly-graph.main .x-axis .label.l-5{left:484px}.wide.enhanced .weather-display .main.hourly-graph.main .x-axis .label.l-6{left:605px}.wide.enhanced .weather-display .main.hourly-graph.main .x-axis .label.l-7{left:726px}.weather-display .main.hourly-graph.main .x-axis .label.l-6,.weather-display .main.hourly-graph.main .x-axis .label.l-7{display:none}.wide.enhanced .weather-display .main.hourly-graph.main .x-axis .label.l-6,.wide.enhanced .weather-display .main.hourly-graph.main .x-axis .label.l-7{display:block}.weather-display .main.hourly-graph.main .chart{top:0px;left:50px}.weather-display .main.hourly-graph.main .chart img{width:532px;height:285px}.wide.enhanced .weather-display .main.hourly-graph.main .chart img{width:746px}.weather-display .main.hourly-graph.main .y-axis{top:0px;left:0px;width:50px;height:285px}.weather-display .main.hourly-graph.main .y-axis .label{text-align:right;right:0px}.weather-display .main.hourly-graph.main .y-axis .label.l-1{top:0px}.weather-display .main.hourly-graph.main .y-axis .label.l-2{top:93.3333333333px}.weather-display .main.hourly-graph.main .y-axis .label.l-3{bottom:82.3333333333px}.weather-display .main.hourly-graph.main .y-axis .label.l-4{bottom:0px}.weather-display .main.travel.main{overflow-y:hidden}.weather-display .main.travel.main .column-headers{background-color:#200057;height:20px;position:sticky;top:0px;width:100%;z-index:5;overflow:hidden}.weather-display .main.travel.main .column-headers div{display:inline-block;font-family:"Star4000 Small";font-size:24pt;color:#ff0;position:absolute;top:-14px;z-index:5;text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000}.weather-display .main.travel.main .column-headers .temp{width:50px;text-align:center}.weather-display .main.travel.main .column-headers .temp.low{left:455px}.weather-display .main.travel.main .column-headers .temp.high{left:510px;width:60px}.weather-display .main.travel.main .travel-lines{min-height:338px;padding-top:10px;background:repeating-linear-gradient(0deg, #001040 0px, #102080 136px, #102080 202px, #001040 338px)}.weather-display .main.travel.main .travel-lines .travel-row{font-family:"Star4000 Large";font-size:24pt;height:72px;color:#ff0;text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000;position:relative}.weather-display .main.travel.main .travel-lines .travel-row>div{position:absolute;white-space:pre;top:8px}.weather-display .main.travel.main .travel-lines .travel-row .city{left:80px}.weather-display .main.travel.main .travel-lines .travel-row .icon{left:330px;width:70px;text-align:center;top:unset}.weather-display .main.travel.main .travel-lines .travel-row .icon img{max-width:47px}.weather-display .main.travel.main .travel-lines .travel-row .temp{width:50px;text-align:center}.weather-display .main.travel.main .travel-lines .travel-row .temp.low{left:455px}.weather-display .main.travel.main .travel-lines .travel-row .temp.high{left:510px;width:60px}.weather-display .latest-observations.main{overflow-y:hidden}.weather-display .latest-observations.main .column-headers{height:20px;position:absolute;width:100%}.weather-display .latest-observations.main .column-headers{top:0px}.weather-display .latest-observations.main .column-headers div{display:inline-block;font-family:"Star4000 Small";font-size:24pt;position:absolute;top:-14px;text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000}.weather-display .latest-observations.main .column-headers .temp{display:none}.weather-display .latest-observations.main .column-headers .temp.show{display:inline-block}.weather-display .latest-observations.main .temp{left:230px}.weather-display .latest-observations.main .weather{left:280px}.weather-display .latest-observations.main .wind{left:430px}.weather-display .latest-observations.main .observation-lines{min-height:338px;padding-top:10px}.weather-display .latest-observations.main .observation-lines .observation-row{font-family:"Star4000";font-size:24pt;text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000;position:relative;height:40px}.weather-display .latest-observations.main .observation-lines .observation-row>div{position:absolute;top:8px}.weather-display .latest-observations.main .observation-lines .observation-row .wind{white-space:pre;text-align:right}.weather-display .local-forecast.main{width:512px}.weather-display .local-forecast .container{position:relative;top:15px;margin:0px 10px;box-sizing:border-box;height:280px;overflow:hidden}.weather-display .local-forecast .forecasts{position:relative}.weather-display .local-forecast .forecast{font-family:"Star4000";font-size:24pt;text-transform:uppercase;text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000;min-height:280px;line-height:40px}.weather-display .progress{text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000;font-family:"Star4000 Extended";font-size:19pt}.weather-display .progress.main{width:512px}.weather-display .progress .container{position:relative;top:15px;margin:0px 10px;box-sizing:border-box;height:310px;overflow:hidden;line-height:28px}.weather-display .progress .container .item{position:relative}.weather-display .progress .container .item .name{white-space:nowrap}.weather-display .progress .container .item .name::after{content:"........................................................................"}.weather-display .progress .container .item .links{position:absolute;text-align:right;right:0px;top:0px}.weather-display .progress .container .item .links>div{background-color:#26235a;display:none;padding-left:4px}.weather-display .progress .container .item .links .loading,.weather-display .progress .container .item .links .retrying{color:#ff0}.weather-display .progress .container .item .links .press-here{color:lime;cursor:pointer}.weather-display .progress .container .item .links .failed{color:red}.weather-display .progress .container .item .links .no-data{color:silver}.weather-display .progress .container .item .links .disabled{color:silver}.weather-display .progress .container .item .links.loading .loading,.weather-display .progress .container .item .links.press-here .press-here,.weather-display .progress .container .item .links.failed .failed,.weather-display .progress .container .item .links.no-data .no-data,.weather-display .progress .container .item .links.disabled .disabled,.weather-display .progress .container .item .links.retrying .retrying{display:block}@keyframes progress-scroll{0%{background-position:-40px 0}100%{background-position:40px 0}}#progress-html.weather-display .scroll .progress-bar-container{border:2px solid #000;background-color:#fff;margin:20px auto;width:524px;position:relative;display:none}#progress-html.weather-display .scroll .progress-bar-container.show{display:block}#progress-html.weather-display .scroll .progress-bar-container .progress-bar{height:20px;margin:2px;width:520px;background:repeating-linear-gradient(90deg, #09246f 0px, #09246f 5px, #364ac0 5px, #364ac0 10px, #4f99f9 10px, #4f99f9 15px, #8ffdfa 15px, #8ffdfa 20px, #4f99f9 20px, #4f99f9 25px, #364ac0 25px, #364ac0 30px, #09246f 30px, #09246f 40px);animation-duration:2s;animation-fill-mode:forwards;animation-iteration-count:infinite;animation-name:progress-scroll;animation-timing-function:steps(8, end)}#progress-html.weather-display .scroll .progress-bar-container .cover{position:absolute;top:0px;right:0px;background-color:#fff;width:100%;height:24px;transition:width 1s steps(6)}#radar-html.weather-display{background-image:url("../images/backgrounds/4.png")}#radar-html.weather-display .header{height:83px}#radar-html.weather-display .header .title.dual{color:#fff;font-family:"Arial",sans-serif;font-weight:bold;font-size:28pt;left:155px}#radar-html.weather-display .header .title.dual .top{top:-4px}#radar-html.weather-display .header .title.dual .bottom{top:31px}#radar-html.weather-display .header .right{position:absolute;right:0px;width:360px;margin-top:2px;font-family:"Star4000";font-size:18pt;font-weight:bold;text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000;text-align:center}#radar-html.weather-display .header .right .scale>div{display:inline-block}#radar-html.weather-display .header .right .scale-table{display:table-row;border-collapse:collapse}#radar-html.weather-display .header .right .scale-table .box{display:table-cell;border:2px solid #000;width:17px;height:24px;padding:0}#radar-html.weather-display .header .right .scale-table .box-1{background-color:#31d216}#radar-html.weather-display .header .right .scale-table .box-2{background-color:#1c8a12}#radar-html.weather-display .header .right .scale-table .box-3{background-color:#145a0f}#radar-html.weather-display .header .right .scale-table .box-4{background-color:#0a280a}#radar-html.weather-display .header .right .scale-table .box-5{background-color:#c4b346}#radar-html.weather-display .header .right .scale-table .box-6{background-color:#be4813}#radar-html.weather-display .header .right .scale-table .box-7{background-color:#ab0e0e}#radar-html.weather-display .header .right .scale-table .box-8{background-color:#731f04}#radar-html.weather-display .header .right .scale .text{position:relative;top:-5px}#radar-html.weather-display .header .right .time{position:relative;font-weight:normal;top:-14px;font-family:"Star4000 Small";font-size:24pt}.weather-display .main.radar{overflow:hidden;height:367px}.weather-display .main.radar .container .tiles{position:absolute;width:1400px}.weather-display .main.radar .container .tiles img{vertical-align:middle}.weather-display .main.radar .container .scroll-area{position:relative}.wide.radar #container{background:url(../images/backgrounds/4-wide.png)}#regional-forecast-html.weather-display{background-image:url("../images/backgrounds/5.png")}.weather-display .main.regional-forecast{position:relative}.weather-display .main.regional-forecast .map{position:absolute;transform-origin:0 0}.weather-display .main.regional-forecast .location{position:absolute;width:140px;margin-left:-40px;margin-top:-35px}.weather-display .main.regional-forecast .location>div{position:absolute;text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000}.weather-display .main.regional-forecast .location .icon{top:26px;left:44px}.weather-display .main.regional-forecast .location .icon img{max-height:32px}.weather-display .main.regional-forecast .location .temp{font-family:"Star4000 Large";font-size:28px;padding-top:2px;color:#ff0;top:28px;text-align:right;width:40px}.weather-display .main.regional-forecast .location .city{font-family:Star4000;font-size:20px}#almanac-html.weather-display{background-image:url("../images/backgrounds/3.png")}.weather-display .main.almanac{font-family:"Star4000";font-size:24pt;text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000}.weather-display .main.almanac .sun{display:grid;grid-template-columns:auto auto auto;grid-template-rows:auto auto auto;gap:0px 90px;margin:3px auto 5px auto;width:-moz-fit-content;width:fit-content;line-height:30px}.weather-display .main.almanac .sun .grid-item{width:auto;height:auto;padding:0;margin:0;position:relative}.weather-display .main.almanac .sun .grid-item.header{color:#ff0;text-align:center}.weather-display .main.almanac .sun .grid-item.row-label{text-align:right}.weather-display .main.almanac .sun .grid-item.time{text-align:center}.weather-display .main.almanac .moon{position:relative;padding:7px 50px;line-height:36px}.weather-display .main.almanac .moon .title{color:#ff0;padding-left:13px}.weather-display .main.almanac .moon .day{display:inline-block;text-align:center;width:132px}.weather-display .main.almanac .moon .day .icon{padding-left:10px}.weather-display .main.almanac .moon .day .date{position:relative;top:-10px}#hazards-html.weather-display{background-image:url("../images/backgrounds/7.png")}.weather-display .main.hazards.main{overflow-y:hidden;height:480px;background-color:#702323}.weather-display .main.hazards.main .hazard-lines{min-height:400px;padding-top:10px}.weather-display .main.hazards.main .hazard-lines .hazard{font-family:"Star4000";font-size:24pt;color:#fff;text-shadow:0px 0px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000;position:relative;text-transform:uppercase;margin-top:10px;margin-left:80px;margin-right:80px;padding-bottom:10px}.wide.hazards #container{background:url(../images/backgrounds/7-wide.png)}.media{display:none}#ToggleMediaContainer{display:none;position:relative}#ToggleMediaContainer.available{display:inline-block}#ToggleMediaContainer.available img.on{display:none}#ToggleMediaContainer.available img.off{display:block}#ToggleMediaContainer.available.playing img.on{display:block}#ToggleMediaContainer.available.playing img.off{display:none}#ToggleMediaContainer .volume-slider{display:none;position:absolute;top:0px;transform:translateY(-100%);width:100%;background-color:#000;text-align:center;z-index:100}@media(prefers-color-scheme: dark){#ToggleMediaContainer .volume-slider{background-color:#303030}}#ToggleMediaContainer .volume-slider input[type=range]{writing-mode:vertical-lr;direction:rtl;margin-top:20px;margin-bottom:20px}#ToggleMediaContainer .volume-slider.show{display:block}#spc-outlook-html.weather-display{background-image:url("../images/backgrounds/6.png")}.weather-display .spc-outlook .container{position:relative;top:0px;margin:0px 10px;box-sizing:border-box;height:300px;overflow:hidden}.weather-display .spc-outlook .risk-levels{position:absolute;left:206px;font-family:"Star4000 Small";font-size:32px;text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000}.weather-display .spc-outlook .risk-levels .risk-level{position:relative;top:-14px;height:20px}.weather-display .spc-outlook .risk-levels .risk-level:nth-child(1){left:100px}.weather-display .spc-outlook .risk-levels .risk-level:nth-child(2){left:80px}.weather-display .spc-outlook .risk-levels .risk-level:nth-child(3){left:60px}.weather-display .spc-outlook .risk-levels .risk-level:nth-child(4){left:40px}.weather-display .spc-outlook .risk-levels .risk-level:nth-child(5){left:20px}.weather-display .spc-outlook .risk-levels .risk-level:nth-child(6){left:0px}.weather-display .spc-outlook .days{position:absolute;top:120px}.weather-display .spc-outlook .days .day{height:60px}.weather-display .spc-outlook .days .day .day-name{position:absolute;font-family:"Star4000";font-size:24pt;width:200px;text-align:right;text-shadow:3px 3px 0 #000,-1.5px -1.5px 0 #000,0 -1.5px 0 #000,1.5px -1.5px 0 #000,1.5px 0 0 #000,1.5px 1.5px 0 #000,0 1.5px 0 #000,-1.5px 1.5px 0 #000,-1.5px 0 0 #000;padding-top:20px}.weather-display .spc-outlook .days .day .risk-bar{position:absolute;width:150px;height:40px;left:210px;margin-top:20px;border:3px outset hsl(0,0%,70%);background:linear-gradient(0deg, hsl(0, 0%, 40%) 0%, hsl(0, 0%, 60%) 50%, hsl(0, 0%, 40%) 100%)}.scanlines{position:relative;overflow:hidden}.scanlines:before,.scanlines:after{display:block;pointer-events:none;content:"";position:absolute}.scanlines:before{width:100%;height:1px;z-index:2147483649;background:rgba(0,0,0,.3);opacity:.75;animation:scanline 6s linear infinite}.scanlines:after{top:0;right:0;bottom:0;left:0;z-index:2147483648;background:repeating-linear-gradient(to bottom, transparent 0, transparent 1px, rgba(0, 0, 0, 0.3) 1px, rgba(0, 0, 0, 0.3) 2px);animation:none;image-rendering:crisp-edges;image-rendering:pixelated}.scanlines:before{height:var(--scanline-thickness, 1px)}.scanlines:after{background:repeating-linear-gradient(to bottom, transparent 0, transparent var(--scanline-thickness, 1px), rgba(0, 0, 0, 0.3) var(--scanline-thickness, 1px), rgba(0, 0, 0, 0.3) calc(var(--scanline-thickness, 1px) * 2))}@keyframes scanline{0%{transform:translate3d(0, 200000%, 0)}}@keyframes scanlines{0%{background-position:0 50%}}/*# sourceMappingURL=ws.min.css.map */ \ No newline at end of file diff --git a/server/styles/ws.min.css.map b/server/styles/ws.min.css.map index 00b6050..7983e56 100644 --- a/server/styles/ws.min.css.map +++ b/server/styles/ws.min.css.map @@ -1 +1 @@ -{"version":3,"sources":["scss/_page.scss","scss/shared/_utils.scss","scss/_weather-display.scss","scss/shared/_colors.scss","scss/_current-weather.scss","scss/_extended-forecast.scss","scss/_hourly.scss","scss/_hourly-graph.scss","scss/_travel.scss","scss/_latest-observations.scss","scss/_local-forecast.scss","scss/_progress.scss","scss/_radar.scss","scss/_regional-forecast.scss","scss/_almanac.scss","scss/_hazards.scss","scss/_media.scss","scss/_spc-outlook.scss","scss/shared/_scanlines.scss"],"names":[],"mappings":"AAGA,WACC,sBAAA,CACA,gDAAA,CACA,iBAAA,CAGD,KACC,sBAAA,CACA,QAAA,CAEA,mCAJD,KAKE,qBAAA,CACA,UAAA,CAAA,CAIA,mCADD,OAEE,aAAA,CAAA,CAIF,WACC,UAAA,CACA,WAAA,CACA,eAAA,CACA,WAAA,CAEA,gCAAA,CAIF,UACC,eAAA,CACA,WAAA,CAEA,mBACC,oBAAA,CACA,WAAA,CACA,gBAAA,CAEA,8BACC,WAAA,CACA,qBAAA,CAGD,0BACC,cAAA,CACA,wBAAA,CAEA,mCAJD,0BAKE,qBAAA,CACA,UAAA,CAAA,CAQA,uCACC,YAAA,CAEA,mCAHD,uCAIE,oBAAA,CAAA,CAKD,mCADD,wCAEE,YAAA,CAAA,CAKH,qCACC,qBAAA,CAEA,mCAHD,qCAIE,qBAAA,CAAA,CAGD,yCACC,gBAAA,CAMJ,iCAEC,sBAAA,CAGD,uBACC,wBAAA,CACA,eAAA,CACA,cAAA,CACA,eAAA,CACA,oBAAA,CAGA,qBAAA,CACA,UAAA,CACA,qBAAA,CAEA,mCAZD,uBAaE,qBAAA,CACA,UAAA,CACA,qBAAA,CAAA,CAOH,0BACC,qBAAA,CACA,qBAAA,CACA,iBAAA,CACA,YAAA,CAEA,mCAND,0BAOE,qBAAA,CAAA,CAGD,8BAEC,kBAAA,CACA,eAAA,CACA,sBAAA,CACA,cAAA,CAEA,uCACC,qBAAA,CACA,UAAA,CAMH,QACC,aAAA,CACA,qBAAA,CACA,UAAA,CACA,UAAA,CACA,eAAA,CACA,QAAA,CAEA,aACC,eAAA,CAIF,iBACC,WAAA,CAGD,YACC,WAAA,CACA,YAAA,CACA,iBAAA,CAEA,kBACC,WAAA,CAIF,eACC,eAAA,CAGD,YACC,YAAA,CACA,gBAAA,CACA,qBAAA,CACA,qBAAA,CAGD,gBACC,MAAA,CACA,kBAAA,CACA,YAAA,CACA,qBAAA,CACA,sBAAA,CAGD,aACC,eAAA,CACA,YAAA,CACA,qBAAA,CACA,qBAAA,CAGD,iBACC,MAAA,CACA,iBAAA,CACA,YAAA,CACA,qBAAA,CACA,sBAAA,CAGD,cAEC,YAAA,CACA,kBAAA,CACA,qBAAA,CAEA,UAAA,CACA,WAAA,CAEA,oBACC,WAAA,CAGD,mCAbD,cAcE,wBAAA,CAAA,CAKF,kBACC,gBAAA,CACA,iBAAA,CAIA,yBAND,kBAOE,cAAA,CAAA,CAGD,yBAVD,kBAWE,cAAA,CAAA,CAGD,yBAdD,kBAeE,cAAA,CAAA,CAGD,yBAlBD,kBAmBE,cAAA,CAAA,CAGD,yBAtBD,kBAuBE,cAAA,CAAA,CAIF,kBACC,MAAA,CACA,eAAA,CAID,oBACC,MAAA,CACA,iBAAA,CAGD,mBACC,MAAA,CACA,gBAAA,CAGD,oBACC,YAAA,CAGD,WACC,UAAA,CACA,YAAA,CACA,kBAAA,CACA,qBAAA,CACA,UAAA,CACA,eAAA,CAGD,eACC,gBAAA,CACA,iBAAA,CAGD,eACC,MAAA,CACA,eAAA,CAGD,iBACC,MAAA,CACA,iBAAA,CAGD,gBACC,MAAA,CACA,gBAAA,CAGD,YACC,iBAAA,CACA,iBAAA,CAGD,YACC,sBAAA,CAGD,eACC,WAAA,CAGD,WACC,+BAAA,CACA,yDAAA,CACA,iBAAA,CAGD,WACC,4BAAA,CACA,sDAAA,CACA,iBAAA,CAGD,WACC,4BAAA,CACA,sDAAA,CACA,iBAAA,CAGD,SACC,sBAAA,CACA,cAAA,CACA,UAAA,CAGD,WACC,iBAAA,CACA,WAAA,CACA,YAAA,CAEA,iDAAA,CACA,oBAAA,CACA,2BAAA,CAGD,iBACC,kBAAA,CACA,mBAAA,CACA,gDAAA,CACA,2BAAA,CAGD,wDAGC,WAAA,CACA,YAAA,CAGD,SACC,WAAA,CACA,YAAA,CACA,cAAA,CACA,wBAAA,CACA,YAAA,CACA,kBAAA,CACA,iBAAA,CACA,sBAAA,CAEA,gBACC,0BAAA,CACA,cAAA,CACA,UAAA,CACA,iBAAA,CAGD,kBACC,kBAAA,CAGD,uBACC,cAAA,CAIF,SACC,gBAAA,CACA,eAAA,CAGD,UACC,kBAAA,CAGD,2BAEC,kBAAA,CCzXA,4FAEC,UAAA,CAGD,mDACC,UAAA,CACA,cAAA,CAGD,2CACC,SAAA,CAGD,6CACC,YAAA,CAGD,+CACC,YAAA,CDyWD,mDACC,UAAA,CAGD,oCAEC,4FAEC,UAAA,CAGD,mDACC,UAAA,CACA,cAAA,CAGD,2CACC,UAAA,CAGD,6CACC,mBAAA,CAGD,+CACC,mBAAA,CAAA,CAIF,uCACC,aAAA,CACA,0BAAA,CAAA,qBAAA,CACA,cAAA,CAEA,qDACC,YAAA,CAEA,+DACC,cAAA,CACA,SAAA,CAMJ,kBACC,qBAAA,CAGA,yBACC,wBACC,kBAAA,CAAA,CAKH,kCAEC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,oBAAA,CAEA,sDACC,WAAA,CAIF,oDAEC,iBAAA,CAGD,8DAEC,YAAA,CACA,kBAAA,CACA,+BAAA,CACA,UAAA,CACA,UAAA,CACA,iBAAA,CACA,UAAA,CAIA,6BACC,YAAA,CAIF,WACC,cAAA,CAGD,iBACC,oBAAA,CAEA,qBACC,YAAA,CAGD,sBACC,oBAAA,CAKA,wBACC,oBAAA,CAGD,yBACC,YAAA,CAMH,SACC,kBAAA,CACA,SAAA,CACA,6BAAA,CAGD,2BACC,iBAAA,CACA,SAAA,CACA,6CAAA,CAGD,cACC,WAAA,CACA,4BAAA,CACA,YAAA,CACA,4BAAA,CACA,cAAA,CAGC,qBACC,oBAAA,CACA,SAAA,CAGD,2BACC,oBAAA,CACA,eAAA,CACA,gFAAA,CACA,WAAA,CACA,aAAA,CACA,kBAAA,CAGD,yDAEC,iBAAA,CACA,oBAAA,CACA,mBAAA,CACA,WAAA,CACA,eAAA,CACA,cAAA,CACA,eAAA,CACA,gBAAA,CACA,qBAAA,CACA,cAAA,CACA,wBAAA,CACA,qBAAA,CAEA,gBAAA,CACA,0BAAA,CACA,6BAAA,CACA,yBAAA,CACA,gBAAA,CAGD,wBACC,mBAAA,CAGD,yCACC,6BAAA,CAGD,iCACC,aAAA,CACA,6BAAA,CAGD,+EAEC,WAAA,CACA,gBAAA,CACA,cAAA,CACA,gBAAA,CAGD,4BACC,oBAAA,CACA,uBAAA,CACA,iBAAA,CACA,gBAAA,CAGD,qFAEC,yBAAA,CACA,mBAAA,CAGD,wBACC,aAAA,CACA,wBAAA,CACA,oBAAA,CACA,+BAAA,CACA,6SAAA,CAEA,8DAAA,CACA,qGAAA,CAGD,8BACC,WAAA,CAGD,4DAEC,wBAAA,CACA,4BAAA,CACA,oBAAA,CACA,+BAAA,CACA,6SAAA,CAEA,8DAAA,CACA,qGAAA,CAGD,wEAEC,WAAA,CAGD,+BACC,wBAAA,CACA,oBAAA,CACA,+BAAA,CACA,gDAAA,CACA,qBAAA,CACA,WAAA,CAGD,iCACC,aAAA,CACA,qBAAA,CACA,oBAAA,CACA,+BAAA,CAGD,8EAEC,aAAA,CAGD,kCACC,aAAA,CAGD,oCAEC,qFAEC,yBAAA,CACA,mBAAA,CAGD,wBACC,aAAA,CACA,wBAAA,CACA,oBAAA,CACA,+BAAA,CACA,6SAAA,CAEA,8DAAA,CACA,qGAAA,CAGD,8BACC,WAAA,CAGD,4DAEC,wBAAA,CACA,4BAAA,CACA,oBAAA,CACA,+BAAA,CACA,6SAAA,CAEA,8DAAA,CACA,qGAAA,CAGD,wEAEC,WAAA,CAGD,+BACC,wBAAA,CACA,oBAAA,CACA,+BAAA,CACA,gDAAA,CACA,qBAAA,CACA,WAAA,CAGD,iCACC,aAAA,CACA,qBAAA,CACA,oBAAA,CACA,+BAAA,CAGD,8EAEC,aAAA,CAGD,kCACC,aAAA,CAAA,CAIF,mCAEC,qFAEC,yBAAA,CACA,mBAAA,CAGD,wBACC,aAAA,CACA,wBAAA,CACA,oBAAA,CACA,iCAAA,CACA,6SAAA,CAEA,8DAAA,CACA,qGAAA,CAGD,8BACC,WAAA,CAGD,4DAEC,wBAAA,CACA,4BAAA,CACA,oBAAA,CACA,6SAAA,CAEA,8DAAA,CACA,qGAAA,CAGD,wEAEC,WAAA,CAGD,+BACC,wBAAA,CACA,oBAAA,CACA,6CAAA,CACA,qBAAA,CACA,WAAA,CAGD,iCACC,aAAA,CACA,wBAAA,CACA,oBAAA,CACA,iCAAA,CAGD,8EAEC,aAAA,CAGD,kCACC,aAAA,CAAA,CAMJ,mBACC,UAAA,CACA,YAAA,CAGD,yBACC,YAAA,CAID,kCACC,uBAAA,CAMA,sBACC,uBAAA,CAIF,SACC,YAAA,CACA,6BAAA,CACA,eAAA,CEnzBD,iBACC,WAAA,CACA,YAAA,CACA,eAAA,CACA,iBAAA,CACA,iDAAA,CAGA,UAAA,CAEA,sBACC,YAAA,CAGD,2BACC,YAAA,CAGD,yBACC,WAAA,CACA,WAAA,CACA,gBAAA,CAEA,gCACC,UC3BW,CFMb,wKACC,CCsBC,sBAAA,CACA,cAAA,CACA,iBAAA,CACA,WAAA,CAEA,uCACC,UAAA,CACA,QAAA,CAGD,qCACC,UAAA,CAEA,yCACC,iBAAA,CAGD,0CACC,QAAA,CAGD,6CACC,QAAA,CAMH,+BACC,QAAA,CACA,SAAA,CACA,iBAAA,CACA,UAAA,CAGD,oCACC,iBAAA,CACA,QAAA,CACA,UAAA,CAGD,uCACC,QAAA,CAGD,oCACC,eAAA,CACA,UC3ES,CD4ET,4BAAA,CACA,cAAA,CDxEF,wKACC,CCyEC,UAAA,CACA,WAAA,CACA,gBAAA,CACA,iBAAA,CAEA,yCACC,gBAAA,CAKH,uBACC,iBAAA,CAEA,kCACC,WAAA,CACA,YAAA,CACA,YAAA,CACA,eAAA,CAEA,4CACC,YAAA,CACA,YAAA,CAIF,+BACC,gBAAA,CACA,iBAAA,CACA,wBAAA,CAOH,mBACC,YAAA,CD/GA,wKACC,CCgHD,WAAA,CACA,WAAA,CACA,eAAA,CACA,cAAA,CACA,iBAAA,CACA,UAAA,CACA,SAAA,CAEA,0BACC,wBAAA,CAGD,qCACC,WAAA,CAEA,gGAEC,gBAAA,CACA,iBAAA,CACA,eAAA,CACA,kBAAA,CAGD,oDACC,WAAA,CACA,4BAAA,CACA,cAAA,CACA,gBAAA,CAGD,4CACC,sBAAA,CACA,cAAA,CAEA,yDACC,gBAAA,CACA,iBAAA,CAYJ,yBACC,WAAA,CACA,kBAAA,CAEA,2CACC,iBAAA,CEtKA,iDACC,WAAA,CACA,WAAA,CACA,oBAAA,CACA,eAAA,CACA,gBAAA,CACA,iBAAA,CHNF,wKACC,CGSC,sDACC,+BAAA,CACA,cAAA,CAID,uDACC,SAAA,CACA,4BAAA,CACA,cAAA,CACA,gBAAA,CACA,gBAAA,CAEA,4DACC,kBAAA,CAEA,sIAEC,oBAAA,CAGD,mEACC,gBAAA,CAGD,mEACC,WAAA,CACA,iBAAA,CAQJ,oDACC,iBAAA,CAGD,kDACC,4BAAA,CACA,cAAA,CAIA,sDACC,aAAA,CACA,aAAA,CAIF,4DACC,gBAAA,CACA,YAAA,CAEA,gEACC,SAAA,CAGD,kEACC,gBAAA,CAIF,wDACC,gBAAA,CACA,cAAA,CAGD,sDACC,UDtFW,CCuFX,eAAA,CACA,kBAAA,CACA,eAAA,CACA,eAAA,CACA,gBAAA,CCxFH,wCACC,mDAAA,CAIA,wDACC,eAAA,CACA,gBAAA,CAGD,8CJPA,wKACC,CIQA,WAAA,CACA,YAAA,CACA,WAAA,CACA,oBAAA,CACA,eAAA,CACA,sBAAA,CACA,cAAA,CAEA,oDACC,wBAAA,CACA,iBAAA,CACA,UF1BW,CE6BZ,yDACC,iBAAA,CACA,WAAA,CACA,cAAA,CAGD,oDACC,iBAAA,CACA,WAAA,CAEA,wDACC,eAAA,CAIF,4DACC,UAAA,CAEA,+EACC,oBAAA,CACA,SAAA,CACA,kBAAA,CAEA,mFACC,iBAAA,CAGD,sFACC,4BAAA,CACA,cAAA,CAGD,yFACC,aFhDU,CEmDX,yFACC,UFlES,CGIb,mCACC,iBAAA,CAEA,mDACC,wBHJa,CGKb,WAAA,CACA,iBAAA,CACA,UAAA,CAGD,mDACC,eAAA,CACA,OAAA,CACA,SAAA,CAEA,uDACC,oBAAA,CACA,4BAAA,CACA,cAAA,CACA,UHpBiB,CGqBjB,iBAAA,CACA,SAAA,CACA,SAAA,CLpBH,wKACC,CKuBC,yDACC,UAAA,CAGD,yDACC,UAAA,CAGD,yDACC,UAAA,CAIF,iDACC,gBAAA,CACA,gBAAA,CAEA,oGAAA,CAMA,6DACC,4BAAA,CACA,cAAA,CACA,WAAA,CACA,UHzDU,CFMb,wKACC,CKoDE,iBAAA,CAEA,iEACC,iBAAA,CACA,eAAA,CACA,OAAA,CAGD,mEACC,SAAA,CAGD,mEACC,UAAA,CACA,UAAA,CACA,iBAAA,CACA,SAAA,CAGD,mEACC,UAAA,CAGD,mEACC,UAAA,CAEA,8EACC,UAAA,CAGD,8EACC,aH5ES,CGgFX,mEACC,UAAA,CACA,WAAA,CACA,gBAAA,CC9FL,mBACC,uDAAA,CAGC,kCACC,iBAAA,CACA,QAAA,CACA,UAAA,CACA,WAAA,CACA,4BAAA,CACA,cAAA,CNPF,wKACC,CMQC,gBAAA,CAEA,sCACC,gBAAA,CAGD,+CACC,SAAA,CAGD,4CACC,WAAA,CAGD,yCACC,aAAA,CAGD,wCACC,UAAA,CASF,6CACC,iBAAA,CAGD,gDACC,4BAAA,CACA,cAAA,CACA,UJ/CkB,CFGpB,wKACC,CM6CC,gBAAA,CACA,iBAAA,CAGD,iDACC,UAAA,CACA,SAAA,CACA,WAAA,CACA,WAAA,CAEA,wDACC,iBAAA,CACA,0BAAA,CACA,kBAAA,CAEA,4DACC,QAAA,CAGD,4DACC,UAAA,CAGD,4DACC,UAAA,CAGD,4DACC,UAAA,CAGD,4DACC,UAAA,CAQH,gDACC,OAAA,CACA,SAAA,CAEA,oDACC,WAAA,CACA,YAAA,CAIF,iDACC,OAAA,CACA,QAAA,CACA,UAAA,CACA,YAAA,CAEA,wDACC,gBAAA,CACA,SAAA,CAEA,4DACC,OAAA,CAGD,4DACC,mBAAA,CAGD,4DACC,sBAAA,CAGD,4DACC,UAAA,CAKH,yDACC,wBJ/Ha,CIgIb,WAAA,CACA,iBAAA,CACA,UAAA,CAGD,yDACC,eAAA,CACA,OAAA,CACA,SAAA,CAGA,+DACC,UAAA,CAGD,+DACC,UAAA,CAGD,+DACC,UAAA,CCpJH,mCACC,iBAAA,CAEA,mDACC,wBLJa,CKKb,WAAA,CACA,eAAA,CACA,OAAA,CACA,UAAA,CACA,SAAA,CACA,eAAA,CAEA,uDACC,oBAAA,CACA,4BAAA,CACA,cAAA,CACA,ULjBiB,CKkBjB,iBAAA,CACA,SAAA,CACA,SAAA,CPjBH,wKACC,COoBC,yDACC,UAAA,CACA,iBAAA,CAEA,6DACC,UAAA,CAID,8DACC,UAAA,CACA,UAAA,CAKH,iDACC,gBAAA,CACA,gBAAA,CAEA,oGAAA,CAMA,6DACC,4BAAA,CACA,cAAA,CACA,WAAA,CACA,ULzDU,CFMb,wKACC,COoDE,iBAAA,CAEA,iEACC,iBAAA,CACA,eAAA,CACA,OAAA,CAGD,mEACC,SAAA,CAGD,mEACC,UAAA,CACA,UAAA,CACA,iBAAA,CACA,SAAA,CAEA,uEACC,cAAA,CAIF,mEACC,UAAA,CACA,iBAAA,CAEA,uEACC,UAAA,CAGD,wEACC,UAAA,CACA,UAAA,CCvFL,2CACC,iBAAA,CAEA,2DACC,WAAA,CACA,iBAAA,CACA,UAAA,CAGD,2DACC,OAAA,CAEA,+DACC,oBAAA,CACA,4BAAA,CACA,cAAA,CACA,iBAAA,CACA,SAAA,CRhBH,wKACC,CQmBC,iEAEC,YAAA,CAEA,sEACC,oBAAA,CAKH,iDACC,UAAA,CAGD,oDACC,UAAA,CAGD,iDACC,UAAA,CAGD,8DACC,gBAAA,CACA,gBAAA,CAEA,+EACC,sBAAA,CACA,cAAA,CRhDH,wKACC,CQiDE,iBAAA,CACA,WAAA,CAEA,mFACC,iBAAA,CACA,OAAA,CAGD,qFACC,eAAA,CACA,gBAAA,CC9DJ,4CACC,iBAAA,CACA,QAAA,CACA,eAAA,CACA,qBAAA,CACA,YAAA,CACA,eAAA,CAGD,4CACC,iBAAA,CAGD,2CACC,sBAAA,CACA,cAAA,CACA,wBAAA,CTdD,wKACC,CSeA,gBAAA,CACA,gBAAA,CCpBF,2BVGC,wKACC,CUFD,+BAAA,CACA,cAAA,CAEA,sCACC,iBAAA,CACA,QAAA,CACA,eAAA,CACA,qBAAA,CACA,YAAA,CACA,eAAA,CACA,gBAAA,CAEA,4CACC,iBAAA,CAEA,kDACC,kBAAA,CAEA,yDACC,kFAAA,CAIF,mDACC,iBAAA,CACA,gBAAA,CACA,SAAA,CACA,OAAA,CAEA,uDACC,wBRnBM,CQoBN,YAAA,CACA,gBAAA,CVjBJ,yHAEC,UAAA,CAGD,+DACC,UAAA,CACA,cAAA,CAGD,2DACC,SAAA,CAGD,4DACC,YAAA,CAGD,6DACC,YAAA,CUGE,gaAMC,aAAA,CAYJ,2BACC,GACC,2BAAA,CAGD,KACC,0BAAA,CAAA,CAIF,+DACC,qBAAA,CACA,qBAAA,CACA,gBAAA,CACA,WAAA,CACA,iBAAA,CACA,YAAA,CAEA,oEACC,aAAA,CAGD,6EACC,WAAA,CACA,UAAA,CACA,WAAA,CACA,4OAAA,CAiBA,qBAAA,CACA,4BAAA,CACA,kCAAA,CACA,8BAAA,CACA,uCAAA,CAGD,sEACC,iBAAA,CACA,OAAA,CACA,SAAA,CACA,qBAAA,CACA,UAAA,CACA,WAAA,CACA,4BAAA,CClHH,4BACC,mDAAA,CAEA,oCACC,WAAA,CAEA,gDACC,UAAA,CACA,8BAAA,CACA,gBAAA,CACA,cAAA,CACA,UAAA,CAEA,qDACC,QAAA,CAGD,wDACC,QAAA,CAIF,2CACC,iBAAA,CACA,SAAA,CACA,WAAA,CACA,cAAA,CACA,sBAAA,CACA,cAAA,CACA,gBAAA,CX1BF,wKACC,CW2BC,iBAAA,CAEA,sDACC,oBAAA,CAGD,wDACC,iBAAA,CACA,wBAAA,CAEA,6DACC,kBAAA,CACA,qBAAA,CACA,UAAA,CACA,WAAA,CACA,SAAA,CAGD,+DACC,wBAAA,CAGD,+DACC,wBAAA,CAGD,+DACC,wBAAA,CAGD,+DACC,wBAAA,CAGD,+DACC,wBAAA,CAGD,+DACC,wBAAA,CAGD,+DACC,wBAAA,CAGD,+DACC,wBAAA,CAKD,wDACC,iBAAA,CACA,QAAA,CAIF,iDACC,iBAAA,CACA,kBAAA,CACA,SAAA,CACA,4BAAA,CACA,cAAA,CAMJ,6BACC,eAAA,CACA,YAAA,CAIC,+CACC,iBAAA,CACA,YAAA,CAEA,mDACC,qBAAA,CAIF,qDACC,iBAAA,CAKH,uBACC,gDAAA,CC1HD,wCACC,mDAAA,CAGD,yCAGC,iBAAA,CAEA,8CACC,iBAAA,CACA,oBAAA,CAGD,mDACC,iBAAA,CACA,WAAA,CACA,iBAAA,CACA,gBAAA,CAEA,uDACC,iBAAA,CZlBF,wKACC,CYqBA,yDACC,QAAA,CACA,SAAA,CAEA,6DACC,eAAA,CAIF,yDACC,4BAAA,CACA,cAAA,CACA,eAAA,CACA,UVzCW,CU0CX,QAAA,CACA,gBAAA,CACA,UAAA,CAGD,yDACC,oBAAA,CACA,cAAA,CC9CH,8BACC,mDAAA,CAGD,+BACC,sBAAA,CACA,cAAA,CbHA,wKACC,CaKD,oCAGC,YAAA,CACA,oCAAA,CACA,iCAAA,CACA,YAAA,CACA,wBAAA,CACA,sBAAA,CAAA,iBAAA,CACA,gBAAA,CAEA,+CAEC,UAAA,CACA,WAAA,CACA,SAAA,CACA,QAAA,CACA,iBAAA,CAGA,sDACC,UX9BiB,CW+BjB,iBAAA,CAID,yDAEC,gBAAA,CAID,oDACC,iBAAA,CAKH,qCACC,iBAAA,CACA,gBAAA,CACA,gBAAA,CAEA,4CACC,UXrDkB,CWsDlB,iBAAA,CAGD,0CACC,oBAAA,CACA,iBAAA,CACA,WAAA,CAEA,gDAEC,iBAAA,CAGD,gDACC,iBAAA,CACA,SAAA,CCrEJ,8BACC,mDAAA,CAIA,oCACC,iBAAA,CACA,YAAA,CACA,wBAAA,CAGA,kDACC,gBAAA,CACA,gBAAA,CAEA,0DACC,sBAAA,CACA,cAAA,CACA,UAAA,CdfH,wKACC,CcgBE,iBAAA,CACA,wBAAA,CACA,eAAA,CACA,gBAAA,CACA,iBAAA,CACA,mBAAA,CAMJ,yBACC,gDAAA,CCnCD,OACC,YAAA,CAGD,sBACC,YAAA,CACA,iBAAA,CAEA,gCACC,oBAAA,CAEA,uCACC,YAAA,CAGD,wCACC,aAAA,CAKA,+CACC,aAAA,CAGD,gDACC,YAAA,CAQH,qCACC,YAAA,CACA,iBAAA,CACA,OAAA,CACA,2BAAA,CACA,UAAA,CACA,qBAAA,CACA,iBAAA,CACA,WAAA,CAEA,mCAVD,qCAWE,wBAAA,CAAA,CAGD,uDACC,wBAAA,CACA,aAAA,CACA,eAAA,CACA,kBAAA,CAGD,0CACC,aAAA,CCrDH,kCACC,mDAAA,CAKA,yCACC,iBAAA,CACA,OAAA,CACA,eAAA,CACA,qBAAA,CACA,YAAA,CACA,eAAA,CAGD,2CACC,iBAAA,CACA,UAAA,CACA,4BAAA,CACA,cAAA,ChBhBD,wKACC,CgBmBA,uDACC,iBAAA,CACA,SAAA,CACA,WAAA,CAEA,oEACC,UAAA,CAGD,oEACC,SAAA,CAGD,oEACC,SAAA,CAGD,oEACC,SAAA,CAGD,oEACC,SAAA,CAGD,oEACC,QAAA,CAKH,oCACC,iBAAA,CACA,SAAA,CAEA,yCACC,WAAA,CAEA,mDACC,iBAAA,CACA,sBAAA,CACA,cAAA,CACA,WAAA,CACA,gBAAA,ChB/DH,wKACC,CgBgEE,gBAAA,CAGD,mDACC,iBAAA,CACA,WAAA,CACA,WAAA,CACA,UAAA,CACA,eAAA,CACA,+BAAA,CACA,+FAAA,CC5BJ,WACC,iBAAA,CACA,eAAA,CAEA,mCAEC,aAAA,CACA,mBAAA,CACA,UAAA,CACA,iBAAA,CAID,kBAGC,UAAA,CACA,UAAA,CACA,kBAAA,CACA,yBA3DW,CA4DX,WAhDa,CAkBb,qCAAA,CAoCD,iBACC,KAAA,CACA,OAAA,CACA,QAAA,CACA,MAAA,CACA,kBAnEa,CAqEb,+HAAA,CAlDA,cAAA,CA0DA,2BAAA,CACA,yBAAA,CAQD,kBACC,qCAAA,CAGD,iBACC,0NAAA,CASF,oBACC,GACC,oCAAA,CAAA,CAKF,qBACC,GACC,yBAAA,CAAA","file":"ws.min.css"} \ No newline at end of file +{"version":3,"sources":["scss/_page.scss","scss/shared/_positions.scss","scss/shared/_utils.scss","scss/_weather-display.scss","scss/shared/_colors.scss","scss/_current-weather.scss","scss/_extended-forecast.scss","scss/_hourly.scss","scss/_hourly-graph.scss","scss/_travel.scss","scss/_latest-observations.scss","scss/_local-forecast.scss","scss/_progress.scss","scss/_radar.scss","scss/_regional-forecast.scss","scss/_almanac.scss","scss/_hazards.scss","scss/_media.scss","scss/_spc-outlook.scss","scss/shared/_scanlines.scss"],"names":[],"mappings":"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","file":"ws.min.css"} \ No newline at end of file diff --git a/views/partials/hourly-graph.ejs b/views/partials/hourly-graph.ejs index 623306a..46358ea 100644 --- a/views/partials/hourly-graph.ejs +++ b/views/partials/hourly-graph.ejs @@ -1,8 +1,8 @@ <%- include('header.ejs', {title: 'Hourly Graph' , hasTime: false }) %> -
+
Temperature
-
Dewpoint
+
Dewpoint
Cloud %
Precip %
@@ -10,7 +10,7 @@
75
65
55
-
45
+
45
@@ -21,5 +21,7 @@
12p
6p
12a
+
6a
+
12p
\ No newline at end of file