@font-face{font-family:'DM Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url('/assets/fonts/spacer-dmsans-400700-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url('/assets/fonts/spacer-dmsans-400700-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Manrope';font-style:normal;font-weight:200 800;font-display:swap;src:url('/assets/fonts/spacer-manrope-200800-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Manrope';font-style:normal;font-weight:200 800;font-display:swap;src:url('/assets/fonts/spacer-manrope-200800-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
:root{--paper:#f3f0e8;--ink:#2d3230;--muted:#626960;--line:#cccfc4;--accent:#b8422d;--serif:Georgia,'Times New Roman',serif;--sans:'DM Sans',Arial,sans-serif;--display:'Manrope',Arial,sans-serif;color-scheme:light}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}button,select,input{font:inherit}button,a,select,input{-webkit-tap-highlight-color:transparent}button{min-height:44px;min-width:44px;cursor:pointer;border:0;color:inherit;background:transparent;border-radius:999px}button:disabled{cursor:wait;opacity:.5}button:hover{color:var(--accent)}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,canvas:focus-visible{outline:3px solid var(--accent);outline-offset:4px}button:active{transform:translateY(1px)}[hidden]{display:none!important}.flow{width:100%;height:100vh;height:100dvh;min-height:520px;position:relative;overflow:hidden;--dock-gap:28px;--dock-h:255px}.map{position:absolute;inset:0 0 calc(var(--dock-gap) + var(--dock-h)) 290px;background:#ededea;overflow:hidden}.map canvas{width:100%;height:100%;display:block;touch-action:none;cursor:grab}.map canvas:active{cursor:grabbing}.map::after{content:'';pointer-events:none;position:absolute;inset:0;box-shadow:inset 22px 0 40px -30px #7c807b}.masthead{position:absolute;top:32px;left:38px;display:flex;gap:18px;align-items:center;min-height:52px}.wordmark{font:800 58px/.8 var(--display);letter-spacing:-5px;color:var(--ink);text-decoration:none}.wordmark>span:nth-child(1){font-weight:800}.wordmark>span:nth-child(2){font-weight:730}.wordmark>span:nth-child(3){font-weight:660}.wordmark>span:nth-child(4){font-weight:590}.wordmark>span:nth-child(5){font-weight:520}.wordmark>span:nth-child(6){font-weight:450}.wordmark .wordmark-dot{font-weight:800}.wordmark-dot{color:var(--accent)}.edition{font:600 8px/1.8 var(--sans);letter-spacing:1.3px;margin-top:5px}.edition span{display:block;white-space:nowrap}.version{position:absolute;top:53px;left:0;font-size:9px;letter-spacing:1px;color:var(--muted)}.narrative{position:absolute;top:160px;left:38px;width:220px}.eyebrow{font:600 9px/1.5 var(--sans);letter-spacing:1.8px;display:block}.location-line{display:flex;align-items:center;margin:7px -7px 25px 0}.location-line select{width:calc(100% - 44px);font:600 16px var(--display);background:transparent;color:var(--ink);border:0;border-bottom:1px solid var(--line);border-radius:0;min-height:44px;cursor:pointer;text-overflow:ellipsis}.icon-button{font-size:25px}.observation-label{display:flex;gap:7px;align-items:center;font-size:10px;color:var(--muted)}.status-dot{width:5px;height:5px;border-radius:50%;background:var(--accent);flex-shrink:0}h1{font:500 clamp(30px,3.3vw,47px)/1.12 var(--display);letter-spacing:-2px;margin:18px 0 16px;text-wrap:balance}.outlook{font:400 14px/1.6 var(--sans);color:var(--muted);max-width:205px;margin:0}.weather-line{display:flex;gap:14px;align-items:center;margin:30px 0 26px;padding-top:18px;border-top:1px solid var(--line)}.temperature{font:400 37px/1 var(--display);letter-spacing:-2px}.weather-line .eyebrow{font-size:8px;letter-spacing:1px}.weather-line div>span:last-child{display:block;font-size:10px;color:var(--muted);margin-top:4px}.measurement{display:flex;align-items:center;justify-content:space-between;font-size:8px;letter-spacing:1.2px}.measurement time{font-size:13px;letter-spacing:0;font-variant-numeric:tabular-nums}.data-notice{font-size:11px;line-height:1.5;color:var(--accent);margin-top:12px}.text-button{font-size:12px;padding:0;text-decoration:underline}.map-tools{position:absolute;right:30px;top:30px;display:flex;gap:12px;align-items:center}.scope-switch{position:relative;display:flex;gap:0;background:var(--paper);padding:4px;border:1px solid #dfe3d8;border-radius:999px;box-shadow:0 6px 18px #3332,0 1px 2px #3331}.scope-switch button{position:relative;z-index:1;flex:1 1 0;padding:0 19px;font-size:12px;min-width:88px;background:transparent;transition:color .3s cubic-bezier(.4,0,.2,1)}.scope-switch button[aria-pressed=true]{background:transparent;color:var(--paper)}.motion-toggle{background:var(--paper);border:1px solid #c3c8bd;padding:0 15px;box-shadow:0 2px 9px #3332;font-size:12px}.motion-toggle span{font-size:19px;margin-right:5px}.motion-toggle[aria-pressed=true]{color:var(--accent);border-color:var(--accent)}.zoom-tools{position:absolute;right:30px;top:50%;transform:translateY(-70%);display:flex;flex-direction:column;gap:8px;background:transparent;border:0;box-shadow:none}.zoom-tools button{font-size:22px;width:46px;height:46px;background:var(--paper);box-shadow:0 5px 16px #3332;transition:transform .24s cubic-bezier(.4,0,.2,1),background .24s cubic-bezier(.4,0,.2,1),box-shadow .24s cubic-bezier(.4,0,.2,1)}.zoom-tools button+button{border-top:0}.map-signature{position:absolute;bottom:20px;left:26px;display:flex;gap:25px;font:500 10px var(--sans);pointer-events:none}.map-signature span:last-child{border-bottom:1px solid var(--ink);padding:0 8px 4px}.map-message{position:absolute;left:50%;top:47%;transform:translate(-50%,-50%);padding:16px 22px;max-width:340px;text-align:center;background:var(--paper);border:1px solid var(--line);font-size:13px;line-height:1.5;box-shadow:0 6px 24px #3331;border-radius:16px}.tile-message{position:absolute;bottom:15px;right:15px;max-width:300px;font-size:11px;padding:9px 11px;background:var(--paper);border-radius:12px;box-shadow:0 6px 18px #3332}.time-dock{--param-icon:24px;--param-gap:34px;position:absolute;bottom:var(--dock-gap);left:0;right:0;height:var(--dock-h);background:var(--paper);border-top:1px solid var(--ink);padding:18px 38px 12px;box-shadow:0 -12px 35px #383a3210}.dock-heading{position:absolute;left:0;right:0;bottom:100%;display:flex;align-items:center;gap:28px;height:60px;padding-left:inherit;padding-right:inherit}.time-caption{display:flex;align-items:baseline;gap:14px}.time-caption time{font:500 44px/.9 var(--display);letter-spacing:-1.6px;font-variant-numeric:tabular-nums}.time-caption>span:last-child{font-size:10px;letter-spacing:1px;color:var(--accent)}.rain-context{margin-left:7px}.play{display:flex;gap:10px;align-items:center;justify-content:center;background:var(--ink);color:var(--paper);padding:0 19px;font-size:11px;min-width:112px;border-radius:999px}.play:hover{color:#ffd2b9}.play>span:first-child{font-size:13px}.time-instrument{position:relative;padding-left:calc(var(--param-icon) + var(--param-gap));padding-right:calc(var(--param-icon) + var(--param-gap))}
.period-labels{position:relative;height:32px;font-size:8px;letter-spacing:1.4px;color:var(--muted)}
.period-labels>span{position:absolute;top:50%;transform:translateY(-50%)}
.period-labels>span:first-child{left:0}
.period-labels>span:last-child{right:0}
.period-labels>#now{position:absolute;left:33.3333%;top:50%;transform:translate(-50%,-50%)}.period-labels>span:last-child{text-align:right}.period-labels button{font-size:9px;letter-spacing:1.2px;color:var(--accent);font-weight:700;position:relative;z-index:2;min-height:44px;padding:0 15px}.period-labels button span{margin-left:5px}.ribbon{height:56px;position:relative;touch-action:none;cursor:ew-resize}.ribbon-grid{position:absolute;inset:0;background:repeating-linear-gradient(to right,transparent 0,transparent calc(5.55556% - 1px),#a5ab9d40 calc(5.55556% - 1px),#a5ab9d40 5.55556%);border-bottom:1px solid var(--line)}#rainChart{display:block;width:100%;height:100%;overflow:visible}.now-rule{position:absolute;height:calc(100% + 6px);width:1px;left:33.3333%;bottom:0;background:var(--accent);opacity:.55}.time-needle{position:absolute;left:50%;bottom:-5px;height:64px;width:2px;background:var(--ink);pointer-events:none}.time-needle::after{content:'';position:absolute;bottom:0;left:-4px;width:10px;height:10px;border-radius:50%;background:var(--ink);border:2px solid var(--paper)}#timeSlider{position:absolute;inset:0;margin:0;width:100%;height:100%;opacity:0;cursor:ew-resize;touch-action:pan-y;pointer-events:none}.ribbon:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:5px}.time-ticks{position:relative;height:14px;margin-top:9px;font:500 11px var(--sans);font-variant-numeric:tabular-nums}.time-ticks span{position:absolute;top:0;transform:translateX(-50%);white-space:nowrap}.time-ticks span:nth-child(1){left:0}.time-ticks span:nth-child(2){left:33.3333%}.time-ticks span:nth-child(3){left:66.6667%}.time-ticks span:nth-child(4){left:100%}.time-ticks>span{position:absolute;top:0;transform:translateX(-50%);white-space:nowrap}.time-ticks>span:nth-child(1){left:0}.time-ticks>span:nth-child(2){left:33.3333%}.time-ticks>span:nth-child(3){left:66.6667%}.time-ticks>span:nth-child(4){left:100%}.time-ticks small{font-size:9px;font-weight:400}.dock-footer{display:flex;align-items:center;justify-content:space-between;margin-top:16px;color:var(--muted);font-size:9px}.rain-legend{display:flex;align-items:center;gap:7px}.rain-legend>span:first-child{font-size:8px;letter-spacing:1px;margin-right:6px}.rain-legend small{font-size:8px;letter-spacing:0}.rain-legend i{display:block;background:var(--rain);width:18px;height:5px}.rain-legend i:not(:first-of-type){margin-left:6px}.credits{position:absolute;bottom:0;left:38px;right:38px;height:28px;display:flex;align-items:center;justify-content:space-between;font-size:8px;color:var(--muted)}.credits-right{display:flex;align-items:center;gap:14px}.credits .version{position:static;top:auto;left:auto;right:auto;width:max-content;font-variant-numeric:tabular-nums}.credits a{color:inherit;text-decoration:none}.install-link{padding:0;min-height:0;min-width:0;font:600 1em/1 var(--sans);color:var(--accent);text-decoration:underline;text-underline-offset:2px}/* Above every control: the message must never be covered by the play/zoom row
   that sits just over the dock, and it must clear that row as well. */
.toast{position:absolute;bottom:calc(var(--dock-gap) + var(--dock-h) + 60px);left:50%;transform:translateX(-50%);background:var(--ink);color:var(--paper);padding:15px 24px;font-size:12px;max-width:90%;z-index:50;border-radius:18px;box-shadow:0 14px 34px #3333,0 2px 6px #3332;animation:toast-in .34s cubic-bezier(.4,0,.2,1)}.is-stale .status-dot{background:#916e34}.is-stale .observation-label{color:#825b28}
@media(min-width:1000px) and (min-height:850px){.narrative{top:190px}.outlook{font-size:16px}.weather-line{margin-top:48px}.map{bottom:405px;left:320px}.flow{--dock-h:264px}.time-dock{padding-top:25px}.ribbon{height:72px}.time-needle{height:80px}.masthead,.narrative{left:45px}.narrative{width:235px}.dock-footer{margin-top:18px}.time-dock{padding-left:45px;padding-right:45px}}
@media(max-height:720px) and (min-width:761px){.masthead{top:23px;min-height:52px}.weather-top{top:23px}.narrative{top:112px}h1{font-size:31px;margin:10px 0}.location-line{margin-bottom:12px}.weather-line{margin:12px 0;padding-top:10px}.outlook{font-size:12px;line-height:1.4}.data-notice{margin:6px 0}.measurement{font-size:8px}}
@media(max-width:760px){.flow{min-height:540px}.map{inset:180px 0 224px}.map::after{display:none}.masthead{top:18px;left:20px;gap:11px;min-height:52px}.wordmark{font-size:38px;letter-spacing:-3px}.edition{display:none}.version{left:auto;right:-26px;top:8px;font-size:8px}.narrative{top:61px;left:20px;right:20px;width:auto;height:93px}.narrative>label,.observation-label,.measurement,.weather-line .eyebrow{display:none}.narrative .outlook{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:11px;line-height:1.4;max-width:calc(100% - 70px);margin-top:7px}.narrative .data-notice{margin-top:5px;font-size:9px}.location-line{position:absolute;right:0;top:-51px;width:46%;max-width:220px;margin:0}.location-line select{font-size:12px}.icon-button{font-size:22px}.narrative h1{font-size:27px;line-height:1.1;letter-spacing:-1px;margin:7px 65px 0 0;max-width:80%;text-wrap:pretty}.narrative h1 br{display:none}.weather-line{position:absolute;right:0;top:0;margin:5px 0 0;padding:0;border:0;display:block;text-align:right}.temperature{font-size:28px;letter-spacing:-1px}.weather-line div>span:last-child{font-size:8px;max-width:65px}.data-notice{font-size:10px;line-height:1.3;margin:8px 70px 0 0}.text-button{position:absolute;top:70px;right:0;font-size:10px;min-height:44px;background:var(--paper)}.map-tools{top:194px;left:14px;right:14px;justify-content:space-between;gap:7px}.scope-switch button{padding:0 12px;font-size:11px;min-width:70px}.motion-toggle{font-size:10px;padding:0 10px}.motion-toggle span{font-size:17px;margin-right:2px}.zoom-tools{top:auto;bottom:239px;right:14px;transform:none}.zoom-tools button{height:44px;width:44px}.map-signature{bottom:17px;left:17px;font-size:9px;gap:15px}.map-message{font-size:12px;width:240px;max-width:calc(100% - 120px);padding:13px;top:55%}.tile-message{max-width:210px;left:14px;bottom:40px;right:auto;font-size:9px}.flow{--dock-gap:calc(26px + env(safe-area-inset-bottom));--dock-h:187px}.time-dock{padding:10px 14px 6px}.dock-heading{height:58px;gap:12px}.time-caption{gap:10px}.time-caption time{font-size:34px}.time-caption>span:last-child{font-size:10px}.rain-context{display:none}.play{min-width:44px;width:44px;padding:0}.play>span:last-child{display:none}.period-labels{height:31px;font-size:7px}.period-labels button{font-size:8px}.ribbon{height:46px}.time-needle{height:54px}.time-ticks{font-size:10px;margin-top:8px}.dock-footer{margin-top:11px;display:block}.rain-legend{gap:4px;justify-content:space-between;font-size:8px}.rain-legend>span:first-child{font-size:7px;margin-right:3px}.rain-legend i{width:14px}.rain-legend i:not(:first-of-type){margin-left:2px}#historyNote{display:none}.dock-footer{display:none}.credits{height:calc(26px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);left:20px;right:20px;font-size:6px;gap:10px}.time-dock{--param-icon:22px;--param-gap:34px}.param-points{height:19px}.param-point{font-size:10px}.toast{width:max-content;max-width:90%;font-size:11px}.map{bottom:calc(340px + env(safe-area-inset-bottom))}.zoom-tools{bottom:calc(346px + env(safe-area-inset-bottom))}}
@media(max-width:380px){.edition{display:none}.location-line{width:62%;max-width:none}.narrative h1{font-size:23px}.time-dock{padding-left:14px;padding-right:14px}.credits{left:14px;right:14px}.rain-legend{gap:3px}.rain-legend i{width:11px}}
@media(max-height:550px) and (orientation:landscape){.flow{min-height:360px}.masthead{top:14px;min-height:52px}.narrative{top:66px}.narrative .weather-line,.narrative .outlook,.narrative .measurement{display:none}.narrative h1{font-size:24px}.time-dock{padding-top:8px}.ribbon{height:34px}.dock-footer{margin-top:7px}.map{bottom:271px}.time-dock{--param-icon:20px;--param-gap:34px}.param-points{height:18px}.param-point{font-size:10px}.param-strip{margin-top:8px;gap:4px}.zoom-tools{top:100px;bottom:auto;transform:none}.map-tools{top:14px}.map-signature{bottom:10px}.time-needle{height:42px}}
/* Verified compact layouts: preserve data context and touch targets. */
@media(min-width:761px){.narrative{bottom:240px;overflow-y:auto;scrollbar-width:thin;padding-bottom:12px}.weather-line{margin-top:24px}.outlook{line-height:1.5}}
@media(min-width:1000px) and (min-height:850px){.narrative{bottom:280px}}
.period-labels{height:44px}.ribbon{min-height:44px}.text-button{min-height:44px!important}
@media(max-width:760px) and (orientation:portrait){.narrative{top:calc(61px + env(safe-area-inset-top));height:117px}.masthead{top:calc(18px + env(safe-area-inset-top));min-height:52px}.map{top:calc(184px + env(safe-area-inset-top))}.map-tools{top:calc(198px + env(safe-area-inset-top))}.flow{--dock-h:187px}.map{bottom:calc(var(--dock-gap) + var(--dock-h))}.zoom-tools{bottom:381px}.narrative .outlook{font-size:11px;line-height:1.4}.data-notice{font-size:9px}.text-button{position:relative;top:auto;margin:0;padding-left:0}.narrative:has(#retry:not([hidden])){overflow-y:auto}}
@media(max-height:550px) and (orientation:landscape){
 .flow{min-height:360px}.masthead{left:calc(20px + env(safe-area-inset-left));top:14px;gap:10px;min-height:52px}.wordmark{font-size:34px;letter-spacing:-2px}.edition{display:none}.version{left:90px;top:12px;right:auto}
 .map{inset:0 env(safe-area-inset-right) calc(var(--dock-gap) + var(--dock-h)) calc(248px + env(safe-area-inset-left))}.map-tools{top:12px;left:auto;right:calc(12px + env(safe-area-inset-right));gap:8px}.scope-switch button{padding:0 10px;font-size:10px;min-width:66px}.motion-toggle{font-size:10px;padding:0 9px}.motion-toggle span{margin-right:2px}
 .narrative{left:calc(20px + env(safe-area-inset-left));right:auto;top:66px;bottom:200px;width:208px;height:auto;overflow-y:auto;scrollbar-width:thin;padding-bottom:8px}.narrative>label,.observation-label,.narrative .measurement{display:none}.location-line{position:static;width:100%;max-width:none;margin:0 0 6px}.location-line select{font-size:12px}.narrative h1{font-size:21px;line-height:1.12;margin:7px 0;max-width:none}.narrative .outlook{display:block;font-size:10px;line-height:1.4;margin:7px 0}.narrative .weather-line{display:flex;position:static;border:0;margin:8px 0;padding:0;gap:8px;text-align:left}.temperature{font-size:24px}.weather-line .eyebrow{display:none}.weather-line div>span:last-child{font-size:8px}.data-notice{font-size:9px;margin:6px 0}.text-button{position:static;font-size:10px}
 .zoom-tools{display:flex;flex-direction:row;top:auto;bottom:210px;right:calc(12px + env(safe-area-inset-right));transform:none}.zoom-tools button{width:44px;height:44px;border-bottom:0;border-right:1px solid var(--line)}.map-signature{bottom:16px;left:15px}.map-message{max-width:calc(100% - 40px);top:52%;padding:10px;font-size:10px}
 .narrative{top:56px;display:flex;flex-direction:column}.location-line{order:-3;margin-bottom:2px}.narrative .data-notice{order:-2;margin:3px 0;font-size:9px}.narrative h1{font-size:19px;margin:4px 0}.narrative .outlook{max-width:none;margin:4px 0}.narrative .weather-line{position:fixed;left:calc(180px + env(safe-area-inset-left));top:14px;margin:0;display:block;text-align:right}.narrative .weather-line div{display:block}.narrative .weather-line div>span:last-child{font-size:8px}
 .flow{--dock-gap:26px;--dock-h:179px}.time-dock{padding:10px 14px 6px}.dock-heading{height:58px}.time-caption time{font-size:30px}.ribbon{height:44px;min-height:44px}.time-needle{height:49px}.period-labels{height:44px}.dock-footer{margin-top:5px}.dock-footer #historyNote{display:none}.time-ticks{margin-top:4px}.credits{font-size:7px}.rain-context{display:none}.play{padding:0 14px}.play span:last-child{display:none}
}

/* Icons are inline SVG, never platform-dependent symbol glyphs. */
.control-icon,.north svg,.icon-button svg,.zoom-tools svg{display:inline-grid;width:18px;height:18px;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.north{display:flex;align-items:center;gap:4px}.north svg{width:13px;height:13px}.icon-button svg{width:22px;height:22px}.zoom-tools button{display:grid;place-items:center}.zoom-tools svg{width:20px;height:20px}.play .control-icon{width:17px;height:17px;margin-right:7px}.chevron{width:13px;height:13px;margin-left:2px}.period-labels button{display:inline-flex;align-items:center;justify-content:center}

@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* FLOW v55: map never ends at a hard edge. */
.flow::before,.flow::after{content:'';pointer-events:none;position:absolute;inset-inline:0;z-index:4}
.flow::before{top:0;height:clamp(210px,34vh,380px);background:linear-gradient(180deg,var(--paper) 0%,color-mix(in srgb,var(--paper) 94%,transparent) 28%,color-mix(in srgb,var(--paper) 64%,transparent) 62%,transparent 100%)}
.flow::after{bottom:0;height:clamp(330px,48vh,520px);background:linear-gradient(0deg,var(--paper) 0%,color-mix(in srgb,var(--paper) 96%,transparent) 44%,color-mix(in srgb,var(--paper) 70%,transparent) 72%,transparent 100%)}
.map{inset:0!important;z-index:0}.map::after{display:none}.masthead,.narrative,.map-tools,.zoom-tools,.time-dock,.credits{z-index:5}.time-dock{background:linear-gradient(0deg,var(--paper) 0%,var(--paper) 56%,rgba(243,240,232,.84) 78%,rgba(243,240,232,0) 100%)!important}.masthead,.narrative{background:transparent!important}
.flow:not(.is-ready) .app-control,.flow:not(.is-ready) #mapCanvas{pointer-events:none!important}.flow:not(.is-ready) .app-control{opacity:.38}.flow:not(.is-ready) .map-tools,.flow:not(.is-ready) .zoom-tools,.flow:not(.is-ready) .time-dock{filter:grayscale(1);opacity:.72}
.install-gate{position:absolute;z-index:40;inset:0;display:grid;place-items:center;padding:18px;background:var(--paper);overflow:hidden}@media(display-mode:standalone){#installGate{display:none!important}}html[data-install-snoozed="1"] #installGate{display:none!important}.install-gate[aria-hidden="true"]{opacity:0;visibility:hidden;pointer-events:none}.install-card{width:min(560px,100%);max-height:calc(100dvh - 36px);overflow-y:auto;padding:28px 26px 22px;background:var(--paper);border:1px solid rgba(45,50,48,.14);box-shadow:0 26px 90px rgba(45,50,48,.3);border-radius:24px}.install-wordmark{font:800 34px/.8 var(--display);letter-spacing:-3px;display:block;margin:0 0 14px}.install-card strong{font:700 clamp(20px,3.4vw,26px)/1.15 var(--display);letter-spacing:-1px;display:block;margin:0 0 10px}.install-card p{font-size:13.5px;line-height:1.55;color:var(--muted);margin:0 0 18px;max-width:46ch}.install-steps{display:grid;gap:14px;margin:0 0 22px;padding:0;list-style:none;counter-reset:step}.install-steps li{display:grid;grid-template-columns:30px 1fr;gap:12px;align-items:start;font-size:14.5px;line-height:1.5}.install-steps li span{display:block;min-width:0}.install-steps li::before{counter-increment:step;content:counter(step);display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--ink);color:var(--paper);font:600 13px/1 var(--sans)}.install-steps b{font-weight:700}.install-steps svg{width:17px;height:17px;vertical-align:-3px}.install-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.install-actions button{min-height:46px;padding:0 18px;font:600 14px var(--sans);border:1px solid var(--ink);background:var(--ink);color:var(--paper);cursor:pointer;transition:opacity .2s ease}.install-actions #installContinue{background:transparent;color:var(--ink);border-color:rgba(45,50,48,.28)}.install-actions button:hover{opacity:.86}.install-actions button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.buffer-gate{position:absolute;z-index:12;inset:0;display:grid;place-items:center;padding:24px;background:rgba(243,240,232,.26);backdrop-filter:blur(3px);transition:opacity .5s ease,visibility .5s ease}.buffer-gate[aria-hidden="true"]{opacity:0;visibility:hidden}.buffer-card{width:min(390px,calc(100vw - 48px));padding:28px 26px 24px;background:rgba(243,240,232,.94);border:1px solid rgba(45,50,48,.14);box-shadow:0 20px 80px rgba(45,50,48,.18);border-radius:22px}.buffer-card strong{font:700 clamp(24px,4vw,34px)/1.1 var(--display);letter-spacing:-1.5px;display:block;margin:10px 0}.buffer-card p{font-size:13px;line-height:1.5;color:var(--muted);margin:0 0 20px}.buffer-track{height:6px;background:#d8dbd2;overflow:hidden;border-radius:999px}.buffer-track i{display:block;width:0;height:100%;background:var(--accent);border-radius:999px;transition:width .18s ease}.buffer-card #bufferRetry{margin-top:18px}
.location-line{border-bottom:1px solid var(--line);min-height:44px;align-items:center}.location-line #locationName{font:600 16px var(--display);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.location-line .icon-button{flex:0 0 44px}
@media(min-width:761px){.masthead,.narrative,.map-tools,.zoom-tools,.time-dock,.credits{position:absolute}.narrative{top:156px!important;bottom:auto!important}.map-signature{z-index:2}.map-message{z-index:3}}
@media(max-width:760px){.flow::before{height:250px}.flow::after{height:340px}.narrative{z-index:5}.location-line{position:relative!important;right:auto!important;top:auto!important;width:100%!important;max-width:none!important;margin:0!important}.location-line #locationName{font-size:13px}.map-tools{top:185px!important}.zoom-tools{bottom:346px!important}.buffer-card{padding:24px 20px}.buffer-gate{align-items:center}}
@media(max-height:550px) and (orientation:landscape){.flow::before{height:90px}.flow::after{height:190px}.map{inset:0!important}.narrative{top:52px!important;bottom:auto!important}.map-tools{top:12px!important}.zoom-tools{bottom:292px!important}.buffer-card{width:min(370px,calc(100vw - 40px));padding:18px}.buffer-card strong{font-size:22px}.toast{font-size:11px}}

/* FLOW v56: quiet weather header, one compact control module, no hard map dividers. */
.narrative{display:none!important}.weather-top{position:absolute;z-index:6;top:32px;right:38px;display:flex;align-items:center;gap:14px;color:var(--ink);min-height:52px}.temp-reading{display:flex;align-items:baseline;gap:6px}.temp-reading span{font:600 29px/.9 var(--display);letter-spacing:-1.5px;font-variant-numeric:tabular-nums}.temp-reading small{font:600 8px/1 var(--sans);letter-spacing:1.1px;color:var(--muted);white-space:nowrap}.weather-top>i{height:22px;width:1px;background:var(--line)}.weather-top .icon-button{display:grid;place-items:center;margin-left:4px}.text-button{position:absolute;z-index:13;top:88px;right:38px;background:var(--paper)}
.time-dock{border-top:0!important;box-shadow:none!important}.ribbon-grid{background:none!important;border-bottom:0!important}.map-signature span:last-child{border-bottom:0!important}.map::after{box-shadow:none!important}
.control-module{position:absolute;z-index:6;right:30px;bottom:calc(var(--dock-gap) + var(--dock-h) + 6px);display:flex;align-items:center;gap:8px;background:transparent;border:0;box-shadow:none}.control-module .zoom-tools{position:static!important;transform:none!important;display:flex;flex-direction:row;background:transparent;border:0;box-shadow:none}.control-module .zoom-tools button{width:46px;height:46px;border:0!important}.control-module .play{min-width:116px;height:46px;border:0;background:var(--accent);color:var(--paper)}.control-module .play:hover{color:#fff5ee}.control-module .play .control-icon{margin-right:6px}
@media(min-width:1000px) and (min-height:850px){.weather-top{top:32px;right:45px}.control-module{right:45px}}
@media(max-width:760px){.weather-top{top:18px;right:16px;gap:9px}.temp-reading{gap:4px}.temp-reading span{font-size:23px}.temp-reading small{font-size:7px;letter-spacing:.8px}.weather-top>i{height:18px}.weather-top .icon-button{width:36px;min-width:36px;height:36px;min-height:36px;margin-left:0}.weather-top .icon-button svg{width:18px;height:18px}.control-module{right:14px;max-width:calc(100vw - 28px)}.control-module .zoom-tools button{width:44px;height:44px}.control-module .play{width:44px;min-width:44px;height:44px;padding:0}.control-module .play>span:last-child{display:none}.control-module .play .control-icon{margin:0;width:18px;height:18px}.text-button{top:68px;right:16px}}
@media(max-height:550px) and (orientation:landscape){.weather-top{top:14px;right:14px}.weather-top .icon-button{display:none}.control-module{right:12px}.control-module .zoom-tools button{width:44px;height:44px}.control-module .play{width:44px;min-width:44px;height:44px;padding:0}.control-module .play>span:last-child{display:none}.control-module .play .control-icon{margin:0}.text-button{top:auto;bottom:182px;right:220px}}
/* Wide screens: spread map mode controls across one row under the logo.
   Lokalnie/Kraj anchors near the FLOW wordmark, context status near temperature. */
@media(min-width:761px){.map-tools{display:flex;justify-content:space-between;align-items:center;top:96px!important;left:45px!important;right:45px!important;bottom:auto!important;gap:12px}.map-tools .scope-switch{box-shadow:0 4px 16px #3331}.map-tools .motion-toggle{box-shadow:0 4px 16px #3331}}
@media(min-width:761px) and (max-height:720px){.map-tools{top:82px!important;left:38px!important;right:38px!important}}

/* KRAJ is a fixed national atlas, not a zoomed-out local radar. */
.country-status{display:none;min-height:44px;padding:0 15px;align-items:center;gap:9px;background:var(--paper);border:1px solid #c3c8bd;box-shadow:0 4px 16px #3331;font:600 10px/1 var(--sans);letter-spacing:1px;color:#666d64}
.country-status strong{font:700 12px/1 var(--display);letter-spacing:0;color:var(--ink)}
.radar-toggle{background:var(--paper);border:1px solid #c3c8bd;padding:0 15px;box-shadow:0 2px 9px #3332;font-size:12px}
.radar-toggle span{font-size:19px;margin-right:5px}
.radar-toggle[aria-pressed=true]{color:var(--accent);border-color:var(--accent)}
@media(max-width:760px){.radar-toggle{font-size:10px;padding:0 10px}.radar-toggle span{font-size:17px;margin-right:2px}}
/* KRAJ is a fixed atlas, drags are ignored, so the canvas must not offer a grab affordance. */
.flow.country .map canvas,.flow.country .map canvas:active{cursor:default}
/* Pasek parametrow: jedno spektrum na parametr, ta sama os co suwak. */
.param-strip{display:grid;gap:3px;margin-top:11px;touch-action:none;cursor:ew-resize}
.param-row{display:grid;grid-template-columns:var(--param-icon) 1fr var(--param-icon);align-items:center;gap:var(--param-gap)}
.param-icon svg{display:block;width:22px;height:22px;fill:none;stroke:var(--muted);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.param-name{font:600 9px/1 var(--sans);letter-spacing:1.1px;text-transform:uppercase;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.param-points{position:relative;height:20px;background-image:linear-gradient(#e0dbcd,#e0dbcd),linear-gradient(#e0dbcd,#e0dbcd),linear-gradient(#e0dbcd,#e0dbcd),linear-gradient(#e0dbcd,#e0dbcd);background-size:1px 100%,1px 100%,1px 100%,1px 100%;background-position:0 0,33.3333% 0,66.6667% 0,100% 0;background-repeat:no-repeat}.param-point{padding:0 4px;background:var(--paper)}.param-point{position:absolute;top:50%;transform:translate(-50%,-50%);font:700 11px/1 var(--display);font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--ink)}.param-point:nth-child(1){left:0}.param-point:nth-child(2){left:33.3333%}.param-point:nth-child(3){left:66.6667%}.param-point:nth-child(4){left:100%}
.axis-icon.axis-icon-end{position:absolute;left:auto;right:calc(-1 * (var(--param-icon) + var(--param-gap)));top:50%}.axis-icon{position:absolute;left:calc(-1 * (var(--param-icon) + var(--param-gap)));top:50%;transform:translateY(-50%);width:var(--param-icon);height:var(--param-icon);color:var(--muted)}.axis-icon svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

.flow.country .motion-toggle{display:none}
.flow.country .country-status{display:flex}
.flow.country .zoom-tools{display:none!important}
.flow.country .control-module{width:auto}
@media(max-width:760px){.country-status{padding:0 11px;font-size:10px}.country-status strong{font-size:12px}}
/* Mobile: raise the mode controls into the top band (under logo / temperature). */
@media(max-width:760px){.map-tools{top:72px!important;bottom:auto!important;left:14px!important;right:14px!important}}
@media(max-width:760px) and (orientation:portrait){.map-tools{top:calc(72px + env(safe-area-inset-top))!important}}

/* v150 - softer interaction: rounded controls, a gliding switch thumb and a gentle
   crossfade when the map changes scope. The thumb is pure CSS (two equal halves), so
   the active label can never lose its background if a script does not run. */
.scope-switch::before{content:'';position:absolute;z-index:0;top:4px;bottom:4px;left:4px;width:calc(50% - 4px);border-radius:999px;background:var(--ink);box-shadow:0 4px 12px #3333;transition:transform .38s cubic-bezier(.4,0,.2,1)}
.scope-switch[data-active=country]::before{transform:translateX(100%)}
.scope-switch button.is-pressed{animation:control-pop .46s cubic-bezier(.4,0,.2,1)}
.zoom-tools button:active,.icon-button:active,.play:active{transform:scale(.92)}
.zoom-tools button:hover,.icon-button:hover{background:#fff;box-shadow:0 7px 20px #3333}
.play:hover{box-shadow:0 7px 20px #3333}
.icon-button{border-radius:999px;background:var(--paper);box-shadow:0 5px 16px #3332;transition:transform .24s cubic-bezier(.4,0,.2,1),background .24s cubic-bezier(.4,0,.2,1),box-shadow .24s cubic-bezier(.4,0,.2,1)}
.play,.motion-toggle{border-radius:999px}
.play{box-shadow:0 5px 16px #3332;transition:transform .24s cubic-bezier(.4,0,.2,1),box-shadow .24s cubic-bezier(.4,0,.2,1)}
#mapCanvas{transition:opacity .44s cubic-bezier(.4,0,.2,1),transform .44s cubic-bezier(.4,0,.2,1)}
.flow.is-switching #mapCanvas{opacity:.28;transform:scale(1.015)}
@keyframes control-pop{0%{transform:scale(1)}40%{transform:scale(1.09)}100%{transform:scale(1)}}
@keyframes toast-in{from{opacity:0;transform:translate(-50%,12px) scale(.97)}to{opacity:1;transform:translate(-50%,0) scale(1)}}

/* v150 - a way out of every failure. The message card can carry actions now, and the
   buffering card carries its own retry, because that is the screen the user is stuck
   looking at when the first load fails. */
.map-message p{margin:0}
.map-message-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:14px}
.map-message-actions[hidden]{display:none}
.message-action{min-height:44px;padding:0 18px;font:600 13px var(--sans);border-radius:999px;background:var(--ink);color:var(--paper);box-shadow:0 5px 16px #3332;transition:transform .24s cubic-bezier(.4,0,.2,1),background .24s cubic-bezier(.4,0,.2,1),box-shadow .24s cubic-bezier(.4,0,.2,1)}
.message-action:hover{background:#3a413e;box-shadow:0 7px 20px #3333}
.message-action:active{transform:scale(.94)}
.message-action.ghost{background:var(--paper);color:var(--ink);border:1px solid rgba(45,50,48,.28);box-shadow:none}
.message-action.ghost:hover{background:#fff}
