﻿*,*::before,*::after{box-sizing:border-box}*{margin:0}body{line-height:normal;-webkit-font-smoothing:antialiased}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}@font-face{font-display:swap;font-family:"Open Sans";font-style:normal;font-weight:400;src:url("/assets/fonts/open-sans-v44-latin-regular.woff2") format("woff2")}@font-face{font-display:swap;font-family:"Open Sans";font-style:italic;font-weight:400;src:url("/assets/fonts/open-sans-v44-latin-italic.woff2") format("woff2")}@font-face{font-display:swap;font-family:"Open Sans";font-style:normal;font-weight:700;src:url("/assets/fonts/open-sans-v44-latin-700.woff2") format("woff2")}@font-face{font-display:swap;font-family:"Caveat";font-style:normal;font-weight:400;src:url("/assets/fonts/caveat-v23-latin-regular.woff2") format("woff2")}@font-face{font-display:swap;font-family:"Caveat";font-style:normal;font-weight:700;src:url("/assets/fonts/caveat-v23-latin-700.woff2") format("woff2")}@font-face{font-display:swap;font-family:"Syne Mono";font-style:normal;font-weight:400;src:url("/assets/fonts/syne-mono-v16-latin-regular.woff2") format("woff2")}.spread{display:flex;justify-content:space-between;align-items:center;gap:4px}.split{display:grid;grid-template-columns:1fr 1fr;gap:16px}.center{display:flex;justify-content:center;align-items:center}.gap{display:flex;flex-direction:column;gap:var(--gap)}.wind-direction{display:inline-block;min-width:max-content}.wind-direction svg{width:24px;height:24px;transform:rotate(var(--direction))}.menu-link{text-decoration:none;font-weight:bold}.dottable{position:relative}.dottable .dot{position:absolute;top:0;right:0;width:15px;height:15px;background-color:#c00000;border-radius:50%}.inline-dot{display:inline-block;width:15px;height:15px;vertical-align:middle;background-color:#c00000;border-radius:50%}.text-numeric{font-family:"Syne Mono",monospace}.text-marker{font-family:"Caveat",cursive}.text-center{text-align:center}.text-right{text-align:right}.text-large-intro{font-size:48px}.text-small{font-size:14px;color:#006494}.text-positive{color:green}.text-negative{color:red}.text-red{color:#c00000}.form{display:flex;flex-direction:column;align-items:stretch;gap:16px}.input-field{display:flex;flex-direction:column}.input-field label{font-size:16px;font-weight:bold;color:#13293d}.input-field label .hint{font-size:14px;font-weight:normal}.input-field input[type=text],.input-field input[type=password]{outline:none;padding:8px;border:1px solid #247ba0;border-radius:4px}.input-field input[type=text]:focus,.input-field input[type=password]:focus{box-shadow:0 0 3px #1b98e0}.input-box{display:grid;grid-template-columns:auto 1fr;column-gap:4px}input[type=radio],input[type=checkbox]{margin:0;padding:0;width:24px;height:24px;accent-color:#1b98e0}.button{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:36px;padding:4px 8px;background-color:#006494;border:1px solid #006494;border-radius:8px;font-size:16px;text-decoration:none}.button,.button:visited{color:#fff}.button.wide{width:100%}.button.smol{min-height:auto;font-size:14px}.button.secondary{background-color:#7cb0b6;border-color:#7cb0b6}.button.subtle{background-color:rgba(0,0,0,0);color:#000}.button.red{background-color:#c00000;color:#fff;border-color:#fff}.button:disabled,.button.disabled{background-color:rgba(0,0,0,0);color:rgba(0,0,0,.45);border-color:rgba(0,0,0,.45);pointer-events:none}[v-cloak]{visibility:hidden}#flDebug,#flDebug *{overflow-y:auto}html{scroll-behavior:smooth}body{margin-bottom:50px;background-color:#e8f1f2;font-family:"Open Sans",sans-serif;font-optical-sizing:auto;font-weight:400;font-style:normal;font-variation-settings:"wdth" 100;color:#000}a,a:visited{color:#000}hr{border-top:1px solid #1b98e0;border-bottom:none}.contain,.flash.floating{margin-left:auto;margin-right:auto;max-width:800px}.main{position:relative;z-index:1}.page:not(.no-padding){padding:8px}.breadcrumb{display:flex;gap:var(--gap);align-items:center;padding:8px;--gap: 8px}.breadcrumb div{display:flex;align-items:center;gap:var(--gap)}.breadcrumb div:not(:last-of-type)::after{content:"›"}.breadcrumb a{display:block;text-decoration:none;background-color:#7cb0b6;color:#fff;border-radius:8px;padding:4px 8px}.vue-vm-nav{position:relative;z-index:2}nav{position:fixed;left:0;right:0;bottom:0;height:50px;display:flex;flex-direction:column}nav .bar{flex-grow:1;position:relative;z-index:5;display:grid;grid-template-columns:1fr 60px;align-items:stretch;border-top:2px solid #7cb0b6;background-color:#fff}nav .bar .icon{color:#7cb0b6}nav .bar .current{display:flex;gap:4px;align-items:center;padding:8px 16px;font-size:14px}nav .bar .current.active{filter:blur(1px)}nav .bar .more{display:flex;justify-content:center;gap:4px;border-left:2px solid #7cb0b6;align-items:center;text-align:center;color:#7cb0b6}nav .bar .more.active{background-color:#1b98e0;color:#e8f1f2}nav .menu{position:fixed;z-index:4;bottom:50px;transform:translateY(100%);width:100%;max-height:calc(90dvh - 50px);transition:transform .3s ease;overflow:auto;display:flex;flex-direction:column;border-top-left-radius:16px;border-top-right-radius:16px;background-color:#fff;padding-top:16px}nav .menu.active{transform:translateY(0)}nav .menu .item{display:flex;justify-content:flex-start;align-items:center;gap:4px;padding:16px 16px;text-decoration:none;font-size:14px}nav .menu .item.active{background-color:#13293d;color:#fff}nav .menu .item.active .icon{color:#fff}nav .menu .item .icon{color:#7cb0b6}nav .dottable .dot{transform:translate(40%, -50%)}nav .overlay{z-index:3;position:fixed;inset:0;background:rgba(0,0,0,0);pointer-events:none;transition:background .15s}nav .overlay.active{background:rgba(0,0,0,.6);pointer-events:all;filter:blur(1px)}.flash{z-index:1000;padding:16px;border-radius:8px;font-size:16px}.flash.closeable{display:grid;grid-template-columns:1fr auto;gap:16px}.flash.floating{position:fixed;left:20px;right:20px;bottom:70px}.flash.good{background-color:#557c55;color:#fff}.flash.good a{color:#fff;text-decoration:underline}.flash.neutral{background-color:#1b98e0;color:#fff}.flash.neutral a{color:#fff;text-decoration:underline}.flash.bad{background-color:#8d0000;color:#fff}.flash.bad a{color:#fff;text-decoration:underline}.page.auth cap-widget{--cap-widget-width: 100%}.page.auth .locale-selector{position:fixed;left:0;right:0;bottom:0;padding:8px;height:50px;display:grid;grid-template-columns:repeat(3, 1fr);align-items:center;gap:4px;background-color:#fff}.page.forecast .day{display:grid;grid-template-columns:4ch 1fr;gap:8px}.page.forecast .day .date{display:flex;flex-direction:column;align-self:start;position:sticky;top:0}.page.forecast .day .date .datenumber{display:flex;justify-content:center;align-items:center;aspect-ratio:1;font-size:20px}.page.forecast .day .date .datenumber.today{border-radius:50%;background-color:#006494;color:#fff}.page.forecast .no-kiting{padding:8px;background-color:#fff;border-radius:8px}.page.forecast .kiteable{display:flex;flex-direction:column;background-color:#fff;border-radius:8px;text-decoration:none}.page.forecast .kiteable .header{padding:4px 8px;border-radius:8px;background-color:#006494;color:#fff}.page.forecast .kiteable .header .right{align-self:start;display:flex;align-items:center;gap:8px;text-align:right}.page.forecast .kiteable .header .hours{font-size:20px;font-weight:bold}.page.forecast .kiteable .wind{display:flex;align-items:center;gap:4px}.page.forecast .kiteable .wind .wind-speed{min-width:max-content}.page.forecast .kiteable .expanded{padding:8px}.page.forecast .kiteable .expanded .hourly-forecast{display:grid;grid-template-columns:auto repeat(5, 1fr);align-items:stretch;justify-items:stretch;column-gap:4px}.page.forecast .kiteable .expanded .hourly-forecast .cell{display:flex;flex-direction:column;justify-content:space-around;align-items:stretch}.page.forecast .kiteable .expanded .hourly-forecast .cell.center{align-items:center}.page.forecast .kiteable .expanded .hourly-forecast .hours{padding-left:8px;padding-right:8px}.page.forecast .kiteable .expanded .hourly-forecast .line{justify-self:stretch;grid-column:1/span 6;border-top:2px solid #e8f1f2}.page.forecast .kiteable .expanded .hourly-forecast .good{background-color:rgba(0,255,0,.12)}.page.forecast .kiteable .expanded .hourly-forecast .bad{background-color:rgba(255,0,0,.12)}.page.forecast .kiteable .expanded .alert{display:grid;grid-template-columns:auto 1fr;gap:4px;align-items:center}.page.forecast .vertical-center{display:flex;flex-direction:column;gap:16px;justify-content:center;align-items:center;min-height:calc(100dvh - 50px);color:#006494;font-size:18px}.page.spots .spot{text-decoration:none}.page.spots .spot .name{font-size:18px}.page.spots .spot .label{padding:2px 6px;width:max-content;border-radius:8px;background-color:#7cb0b6;color:#fff;font-size:14px;font-weight:bold}.page.spots .spot .label.red{background-color:#c00000;color:#fff}.page.spots .spot .map{min-height:100px}.page.spot-shared .section-header{display:flex;align-items:center;gap:4px;font-size:20px}.page.spot-shared .section-header .border{flex-grow:1;height:2px;background-color:#7cb0b6}.page.spot-shared .map{width:100%;max-height:250px;aspect-ratio:1}.page.spot-shared .wind-direction-control{align-self:center;display:inline-grid;grid-template-columns:repeat(3, 60px);gap:16px;justify-items:stretch;align-items:center}.page.spot-shared .wind-direction-control .dir{display:flex;align-items:center;justify-content:center;gap:2px;aspect-ratio:1;font-size:20px;border-radius:50%;user-select:none;border:1px solid #7cb0b6;color:rgba(0,0,0,.45)}.page.spot-shared .wind-direction-control .dir.selected{border:1px solid #7cb0b6;background-color:#7cb0b6;color:#fff}.page.spot .actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:start}.page.spot .weather-forecast .loading{display:flex;justify-content:center;align-items:center;margin:16px 0}.page.spot .weather-forecast .day{display:grid;grid-template-columns:4ch 1fr;align-items:start;gap:8px}.page.spot .weather-forecast .day .date{display:flex;flex-direction:column;align-self:start;position:sticky;top:0}.page.spot .weather-forecast .day .date .datenumber{display:flex;justify-content:center;align-items:center;aspect-ratio:1;font-size:20px}.page.spot .weather-forecast .day .date .datenumber.today{border-radius:50%;background-color:#006494;color:#fff}.page.spot .weather-forecast .day .loading-forecast{padding:12px;border-radius:8px;background-color:#fff}.page.spot .weather-forecast .day .forecast{display:flex;flex-direction:column;border-radius:8px;background-color:#fff;overflow:hidden}.page.spot .weather-forecast .day .forecast.kiteable .header{border-radius:8px;background-color:#006494;color:#fff}.page.spot .weather-forecast .day .forecast.flash-in{z-index:5;animation:1.6s ease-in-out highlight}@keyframes highlight{0%{filter:contrast(100%);box-shadow:0 0 0 #1b98e0}25%{filter:contrast(100%);box-shadow:0 0 0 #1b98e0}50%{filter:contrast(115%);box-shadow:0 0 32px #1b98e0}100%{filter:contrast(100%);box-shadow:0 0 0 #1b98e0}}.page.spot .weather-forecast .day .forecast .header{padding:8px}.page.spot .weather-forecast .day .forecast .header .hours{font-size:20px;font-weight:bold}.page.spot .weather-forecast .day .forecast .header .day-average{display:flex;gap:8px}.page.spot .weather-forecast .day .forecast .header .day-average .wind{display:flex;align-items:center;gap:4px}.page.spot .weather-forecast .day .forecast .header .day-average .wind-speed{min-width:max-content}.page.spot .weather-forecast .day .forecast .expanded{padding:8px}.page.spot .weather-forecast .day .forecast .expanded .hourly-forecast{display:grid;grid-template-columns:repeat(var(--columns), auto);align-items:stretch;justify-items:stretch;column-gap:4px}.page.spot .weather-forecast .day .forecast .expanded .hourly-forecast .cell{display:flex;flex-direction:column;justify-content:space-around;align-items:stretch}.page.spot .weather-forecast .day .forecast .expanded .hourly-forecast .cell.center{align-items:center}.page.spot .weather-forecast .day .forecast .expanded .hourly-forecast .line{justify-self:stretch;grid-column:1/span var(--columns);border-top:2px solid #e8f1f2}.page.spot .weather-forecast .day .forecast .expanded .hourly-forecast .good{background-color:rgba(0,255,0,.12)}.page.spot .weather-forecast .day .forecast .expanded .hourly-forecast .bad{background-color:rgba(255,0,0,.12)}.page.spots-search{min-height:calc(100dvh - 50px)}.page.spots-search .breadcrumb{padding:0}.page.spots-search .search .input-wrapper{position:sticky;top:8px;display:flex;align-items:center;gap:8px;padding:0 8px;background-color:#fff}.page.spots-search .search .input-wrapper input{flex:1 0 auto;padding:8px 0;border:none;font-size:16px;outline:none}.page.spots-search .search .results{display:flex;flex-direction:column}.page.spots-search .search .results .result{padding:16px 0;border-bottom:1px solid #7cb0b6}.page.spots-search .search .results .result .name{font-size:18px}.page.spots-search .search .results .result .following{color:#247ba0}.page.spots-search .search .results .result .buttons{display:flex;align-items:center;justify-content:left;gap:4px}.page.spots-search .filters{display:grid;grid-template-columns:repeat(var(--columns), 1fr);gap:4px;align-items:center;justify-items:stretch}.page.spots-search .map{width:100%;z-index:1;flex-grow:1}.page.spots-search .create-personal-spot-popup .leaflet-popup-content-wrapper{padding:0;background-color:#006494}.page.spots-search .create-personal-spot-popup .leaflet-popup-content-wrapper .leaflet-popup-content{margin:0}.page.spots-search .create-personal-spot-popup .leaflet-popup-content-wrapper .create-personal-spot .button{padding:16px 32px;color:#fff !important}.page.spots-search .create-personal-spot-popup .leaflet-popup-close-button{color:#fff}.page.spots-search .create-personal-spot-popup .leaflet-popup-tip{background-color:#006494}.page.spots-search .spot-marker{position:relative}.page.spots-search .spot-marker img{width:60px;height:60px;border-radius:50%;border:2px solid #7cb0b6;background-color:#e8f1f2}.page.spots-search .spot-marker .text{position:absolute;bottom:0;left:50%;width:max-content;transform:translateX(-50%) translateY(100%);padding:4px 8px;border-radius:16px;font-size:16px;color:#fff;backdrop-filter:blur(4px);text-shadow:0 0 5px #13293d}.page.spots-search .spot-marker.userspot img{border:2px solid #ff9b6a;background-color:#ff9b6a;filter:invert(1)}.page.spots-search .spot-marker.userspot .text{color:#fff;background-color:#13293d;backdrop-filter:none;text-shadow:none}.page.spots-search .spot-popup .name{font-size:18px}.page.spots-search .spot-popup .following{color:#247ba0}.page.spots-search .spot-popup .buttons{display:flex;flex-direction:column;align-items:center;gap:4px}.page.spots-search .spot-popup .buttons .button{min-width:200px;color:#fff !important}.page.spots-search .spot-popup .buttons .button.subtle{color:#000 !important}.page.spots-search .create-spot-modal-overlay{z-index:1000;position:fixed;inset:0;background:rgba(0,0,0,0);pointer-events:none;transition:background .15s}.page.spots-search .create-spot-modal-overlay.active{background:rgba(0,0,0,.6);pointer-events:all}.page.spots-search .create-spot-modal{z-index:1001;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);padding:16px;border-radius:8px;width:min(80dvw,300px);background-color:#fff;opacity:0;pointer-events:none;transition:opacity .15s}.page.spots-search .create-spot-modal.active{opacity:1;pointer-events:all}.page.spots-search .create-spot-modal .close{align-self:flex-start}.page.alerts .section-header{display:flex;align-items:center;gap:4px;font-size:20px}.page.alerts .section-header .border{flex-grow:1;height:2px;background-color:#7cb0b6}.page.alerts select.rounded{outline:none;padding:0 4px;width:max-content;background-color:#fff;border:2px solid #7cb0b6;border-radius:12px}.page.alerts .alert-changes-grid{display:grid;grid-template-columns:repeat(2, 1fr);gap:4px}.page.alerts .icon-left{display:grid;grid-template-columns:auto 1fr;gap:4px}.page.alerts-choose .container{overflow-x:auto}.page.alerts-choose .container .grid{display:grid;grid-template-columns:repeat(var(--columns), max-content);gap:4px}.page.alerts-choose .container .grid .alertable{padding:8px;background-color:#fff;border-radius:8px}.page.alerts-choose .container .grid .alertable.active{background-color:#1b98e0;color:#fff}.page.account .section-header{display:flex;align-items:center;gap:4px;font-size:20px}.page.account .section-header .border{flex-grow:1;height:2px;background-color:#7cb0b6}.page.account .locales{display:grid;grid-template-columns:repeat(3, 1fr);gap:4px}.page.preferences .section-header{display:flex;align-items:center;gap:4px;font-size:20px}.page.preferences .section-header .border{flex-grow:1;height:2px;background-color:#7cb0b6}.page.preferences label{display:flex;align-items:center;gap:4px}.page.preferences select.rounded{outline:none;padding:0 4px;width:max-content;background-color:#fff;border:2px solid #7cb0b6;border-radius:12px}.page.preferences .height-hack{min-height:26px}.page.preferences .hours,.page.preferences .winds{display:flex;align-items:center;gap:4px}.page.preferences .hours .to,.page.preferences .winds .to{font-size:14px;color:#7cb0b6}.page.about .header{font-weight:bold}.page.about .kudos{position:relative;border:none;background:rgba(0,0,0,0);padding:0;margin:8px 0;cursor:pointer;outline-offset:4px;transition:filter 250ms}.page.about .kudos .shadow{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:12px;background:rgba(0,0,0,.25);will-change:transform;transform:translateY(2px);transition:transform 600ms cubic-bezier(0.3, 0.7, 0.4, 1)}.page.about .kudos .edge{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:12px;background:linear-gradient(to left, #1b98e0 0%, #13293d 100%)}.page.about .kudos .front{display:block;position:relative;padding:12px 42px;border-radius:12px;font-size:1.25rem;color:#fff;background:#1b98e0;will-change:transform;transform:translateY(-4px);transition:transform 600ms cubic-bezier(0.3, 0.7, 0.4, 1)}.page.about .kudos:hover{filter:brightness(110%)}.page.about .kudos:hover .front{transform:translateY(-6px);transition:transform 250ms cubic-bezier(0.3, 0.7, 0.4, 1.5)}.page.about .kudos:hover .shadow{transform:translateY(4px);transition:transform 250ms cubic-bezier(0.3, 0.7, 0.4, 1.5)}.page.about .kudos:active .front{transform:translateY(-2px);transition:transform 34ms}.page.about .kudos:active .shadow{transform:translateY(1px);transition:transform 34ms}.page.about .kudos:focus:not(:focus-visible){outline:none}.page.about .kudos .icon{opacity:0;transition:opacity 600ms ease}.page.about .kudos .icon.visible{opacity:1}.page.thanks .work{display:grid;grid-template-columns:1fr 120px;gap:16px;padding:8px;border-radius:8px;background-color:#fff}.page.thanks .work .work-name{margin-bottom:16px;font-weight:bold}.page.thanks .work .description{color:#006494}.page.thanks .work .sample{align-self:center;justify-self:right}.page.thanks .work .sample.font-awesome{color:#006494}.page.thanks .work .sample.font-sample{font-size:24px;text-decoration:none;text-align:right}.page.thanks .work .sample.font-sample.open-sans{font-family:"Open Sans",sans-serif}.page.thanks .work .sample.font-sample.syne-mono{font-family:"Syne Mono",monospace}.page.thanks .work .sample.font-sample.caveat{font-family:"Caveat",cursive}.page.error .header{display:flex;justify-content:center;align-items:center;gap:16px}.page.error .header img{justify-self:right}/*# sourceMappingURL=style.css.map */
