@font-face{font-family:"BDO Grotesk";src:url(/fonts/bdo-400.fa3685dd3c.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:"BDO Grotesk";src:url(/fonts/bdo-500.451696e75d.woff2) format("woff2");font-weight:500;font-display:swap}@font-face{font-family:"JetBrains Mono";src:url(/fonts/jbm-400.b3572a2e7b.woff2) format("woff2");font-weight:400;font-display:swap}:root{color-scheme:dark;--mg:#49B96A;--ma:#CC607F;--mb:#9670CA;--vh-ground:#06111f;--vh-surface:#10233b;--vh-border:#24415f;--vh-muted:#90a6bb;--vh-body:#b8c9dd;--vh-white:#eaf4ff;--vh-cyan:#48bfff;--f:"BDO Grotesk",Arial,sans-serif;--m:"JetBrains Mono",ui-monospace,monospace}*{box-sizing:border-box}html,body{margin:0;background:var(--vh-ground);color:var(--vh-white);font:400 15px/1.5 var(--f)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid var(--vh-cyan);outline-offset:5px;box-shadow:0 0 0 9px var(--vh-ground)}.map-pin:focus-visible{z-index:1}button:disabled{opacity:.3;cursor:default}[hidden]{display:none!important}h1,h2,h3,p,ul,dl,dd{margin:0}ul{padding:0;list-style:none}.mg{fill:var(--mg)}.mc{fill:url(#vh-c)}#vh-c stop{stop-color:var(--ma)}#vh-c stop+stop{stop-color:var(--mb)}.experience{position:relative;width:100%;height:100svh;min-height:700px;overflow:hidden;isolation:isolate;background:var(--vh-ground)}.space-wash{position:absolute;inset:0;background:radial-gradient(ellipse at 72% 40%,#13203270 0,transparent 61%),radial-gradient(ellipse at 95% 0,#36275225,transparent 45%);pointer-events:none}.globe-stage{position:absolute;inset:0;z-index:1}#globe{display:block;width:100%;height:100%;touch-action:none;cursor:grab}#globe.dragging{cursor:grabbing}.map-labels{position:absolute;inset:0;pointer-events:none}.header{position:relative;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:28px 44px;gap:24px}.brand{display:flex;align-items:center;gap:12px;white-space:nowrap}.brand svg{width:31px;height:39px}.brand>span{font-size:22px;font-weight:500;letter-spacing:-.7px;background:linear-gradient(110deg,#c578a7,#a28acd);-webkit-background-clip:text;background-clip:text;color:transparent}.header nav{position:relative;display:flex;align-items:center;gap:29px}.text-button{font-size:14px;color:var(--vh-body);padding:10px 0}.text-button:hover{color:var(--vh-white)}.about-icon{display:none}.language-button{display:flex;align-items:center;gap:14px;font:12px var(--m);border:1px solid #38536a70;border-radius:30px;padding:10px 14px}.language-button:hover{background:#10233b}.lang-menu{display:none;position:absolute;right:0;top:calc(100% + 8px);min-width:170px;padding:6px;background:#0d2133;border:1px solid #36546d;border-radius:12px;box-shadow:0 22px 70px #0007}.lang-menu:target,.lang-menu.open{display:block}.lang-menu a{display:flex;min-height:44px;align-items:center;padding:0 12px;border-radius:8px;font-size:14px;color:var(--vh-body)}.lang-menu a:hover{background:#ffffff0a;color:var(--vh-white)}.lang-menu a[aria-current]{color:var(--vh-white)}.lang-menu a[aria-current]::after{content:"";width:5px;height:5px;margin-left:auto;border-radius:50%;background:var(--vh-cyan)}.sw{display:flex;align-items:center;justify-content:flex-end;width:58px;height:38px;padding:2px;border:1px solid #38536a70;border-radius:19px;background:#10233b}.sw span{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:16px;background:#24415f}.sw svg{width:22px;height:22px;fill:#90a6bb;stroke:#90a6bb;stroke-width:2.4;stroke-linecap:round}.sw .moon,.night .sw .sun{display:none}.night .sw .moon{display:block;stroke:none}.intro{position:absolute;top:116px;left:24px;right:24px;z-index:2;pointer-events:none;text-align:center;padding-bottom:34.5px}.eyebrow{font:11px/1.5 var(--m);letter-spacing:.055em;color:var(--vh-muted);margin:0 0 20px}.intro h1{font-size:clamp(54px,5.1vw,78px);font-weight:400;line-height:1.05;letter-spacing:-.058em;margin:0}.experience::after{content:"";position:absolute;inset:auto 0 0;height:130px;z-index:2;pointer-events:none;background:linear-gradient(#06111f00,#06111fd8 74px)}.pin-connectors{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}.pin-connectors line{stroke:#bad4df;stroke-width:.7;opacity:.42}.pin-connectors line.planned{stroke:#9ca9b4;opacity:.3}.map-pin{pointer-events:auto;position:absolute;left:0;top:0;display:flex;align-items:center;justify-content:center;height:36px;padding:0 4px;white-space:nowrap;font-size:13px;font-weight:500;line-height:1;text-shadow:0 2px 6px #000,0 1px 12px #000;color:#e7f4ff;will-change:left,top;border:0;border-radius:4px;background:transparent}.pin-dot{position:absolute;width:12px;height:12px;border-radius:50%;background:#06111f;border:1px solid #bbd7df;box-shadow:0 0 0 4px #9bcae818,0 0 20px #70b9e01a;pointer-events:auto}.pin-dot::after{content:"";position:absolute;inset:3px;border-radius:50%;background:#e4f3ff}.map-pin .pin-name{background:#06111f85;border-radius:3px;padding:5px 4px}.map-pin:hover .pin-dot,.map-pin.active .pin-dot{border-color:#6bd7ff;box-shadow:0 0 0 5px #48bfff20,0 0 22px #48bfff55}.map-pin.active .pin-dot::after{background:#6bd7ff}.map-pin:hover,.map-pin.active{color:#fff}.map-pin.planned{color:#a0acb7;font-weight:400}.map-pin.planned .pin-name{background:#06111fd9}.map-pin.planned .pin-dot{border-color:#84919c;background:#20303d;box-shadow:none}.map-pin.planned .pin-dot::after{background:#76848f;inset:4px}.map-pin.planned:hover,.map-pin.planned.active{color:#d2dbe2}.map-pin.planned:hover .pin-dot,.map-pin.planned.active .pin-dot{border-color:#bdc9d2;box-shadow:0 0 0 4px #9bcae818}.pin-call{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.map-toolbar{position:absolute;right:44px;bottom:110px;z-index:4;display:flex;flex-direction:column;gap:12px}.map-toolbar button{width:42px;height:42px;background:#0b1a2bda;border:1px solid #2d475c99;color:#c8ddec;display:grid;place-items:center;font-size:23px;line-height:1;border-radius:50%;backdrop-filter:blur(8px)}.map-toolbar button:hover{border-color:#75c0df;background:#16304a}.zoom-controls{border:1px solid #2d475c99;border-radius:24px;background:#0b1a2bda}.zoom-controls button{background:transparent;border:none;border-radius:23px 23px 0 0}.zoom-controls button+button{border-top:1px solid #2d475c99;border-radius:0 0 23px 23px}.map-toolbar button:focus-visible{outline-offset:-5px;box-shadow:none}#globe:focus-visible{outline:0}.experience:has(#globe:focus-visible)::before{content:"";position:absolute;inset:4px;z-index:4;pointer-events:none;border:2px solid var(--vh-cyan);box-shadow:0 0 0 2px var(--vh-ground),inset 0 0 0 2px var(--vh-ground)}.north-icon{display:flex;flex-direction:column;font:9px var(--m);gap:2px}.north-icon span{font:17px Arial,sans-serif}.footer{position:absolute;bottom:28px;left:44px;right:44px;z-index:3;display:flex;justify-content:space-between;align-items:center;gap:20px}.about-footer{display:flex;align-items:center;gap:10px;color:#a0b5c8;font-size:11px;padding:8px 0}.activity-dot{width:5px;height:5px;background:#85d9bb;border-radius:50%}.legend-gradient{width:58px;height:3px;background:linear-gradient(90deg,#244c50,#38bd94,#b5e889);border-radius:2px}.recorded{color:#8b9fb2}.about-footer:not([data-state="for"]) .legend-gradient,.about-footer:not([data-state="for"]) .activity-dot{display:none}.interaction-hint{margin:0;font:10px/1.5 var(--m);color:#90a7bd}.interaction-hint b{font-weight:400;padding:0 9px;color:#516b80}.hint-touch{display:none}@media(hover:none){.hint-touch{display:inline}.hint-pointer{display:none}}.preview{position:absolute;z-index:6;left:calc(67% + 28px);top:30%;width:288px;padding:18px 20px 15px;background:linear-gradient(145deg,#142a40f7,#0a1b2bf9);border:1px solid #4b6c866b;border-radius:12px;box-shadow:0 22px 70px #0007,0 0 0 1px #06111f44;backdrop-filter:blur(20px);animation:card-in .16s ease-out}.preview-meta{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:22px;color:#8faac1;font:10px var(--m)}.close-button{width:32px;height:32px;display:grid;place-items:center;font-size:22px;color:#9ab0c3;padding:0;border-radius:50%}.close-button:hover{background:#ffffff0a;color:white}.preview-meta .close-button{margin:-10px -8px -4px 0}.preview h2{font-size:25px;font-weight:500;letter-spacing:-.7px;line-height:1.3;margin:6px 0 0}.preview-spot{font-size:11px;color:#a8bfd1;margin:2px 0 21px}.preview-call{font-size:30px;line-height:1.08;letter-spacing:-1px;font-weight:500}.preview-reason{font-size:13px;line-height:1.6;color:#b7c9d9;margin:10px 0 17px;min-height:40px}.preview-conditions{display:flex;justify-content:space-between;gap:10px;padding:14px 0;border-top:1px solid #38516988;border-bottom:1px solid #38516988}.preview-conditions>div{display:flex;flex-direction:column;gap:3px}.preview-conditions dt{font:10px var(--m);color:#98adc0}.preview-conditions dd{font:12px var(--m)}.town-comparison{display:flex;justify-content:space-between;gap:8px;margin:14px 0 20px;font-size:11px;color:#99b0c5}.town-comparison strong{font-weight:400;color:#c6d7e4;text-align:right}.forecast-link{display:flex;justify-content:space-between;align-items:center;padding:11px 13px;background:#e0eef7;color:#0a2031;border-radius:5px;font-size:12px;font-weight:500;gap:10px}.forecast-link:hover{background:white}.forecast-link>span:last-child{font-size:19px}.sample-note{font:9px/1.6 var(--m);color:#a2b5c7;margin:12px 0 0}.preview-stale,.is-stale .preview-live{display:none}.is-stale .preview-stale{display:block}.is-stale .preview-reason{min-height:0}.preview.is-planned .preview-call{font-size:20px;letter-spacing:-.3px;color:#acbac8;margin-top:24px}.preview.is-planned .preview-reason{margin-bottom:4px}.loading{position:absolute;inset:0;z-index:2;display:none;flex-direction:column;align-items:center;justify-content:center;gap:20px;color:#b8c9dd;font:11px var(--m);background:#06111f80;pointer-events:none}.loading-orbit{width:34px;height:34px;border:1px solid #24415f;border-top-color:#48bfff;border-radius:50%;animation:orbit 1.5s linear infinite}.error-words{display:none}.experience:not([data-ready="true"]) .map-labels{inset:300px 24px auto;display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.experience:not([data-ready="true"]) .map-labels li{display:flex}.experience:not([data-ready="true"]) .map-pin{position:relative!important;left:auto!important;top:auto!important;height:44px;gap:8px}.experience:not([data-ready="true"]) .pin-dot,.experience:not([data-ready="true"]) .pin-connectors,.experience:not([data-ready="true"]) .map-toolbar{display:none}.experience:not([data-ready="true"]) .pin-call{position:static;width:auto;height:auto;overflow:visible;clip:auto;font-weight:400;color:#b8c9dd}.experience:not([data-ready="true"]) .pin-call::before{content:"· ";color:#516b80}.experience:not([data-ready="true"]) .interaction-hint{visibility:hidden}.experience:not([data-ready="true"]) .legend-gradient,.experience:not([data-ready="true"]) .activity-dot{display:none}.experience[data-ready="loading"] .map-labels{visibility:hidden}.experience[data-ready="loading"] .loading{display:flex}.experience[data-ready="fallback"] .loading{display:flex;background:transparent;align-items:flex-end;justify-content:flex-start;inset:110px 44px auto auto;max-width:250px;text-align:right}.experience[data-ready="fallback"] .loading-orbit,.experience[data-ready="fallback"] .loading-words{display:none}.experience[data-ready="fallback"] .error-words{display:inline}@media(scripting:enabled){.experience:not([data-ready]) .map-labels{visibility:hidden;animation:reveal 0s 8s forwards}.experience:not([data-ready]) .loading{display:flex;animation:conceal 0s 8s forwards}}.about-dialog{background:#0d2133;color:var(--vh-white);border:1px solid #36546d;border-radius:16px;max-width:510px;width:calc(100% - 36px);max-height:calc(100% - 36px);overflow:auto;padding:35px;box-shadow:0 25px 100px #0009}.about-dialog:target{display:block;position:fixed;inset:0;margin:auto;height:fit-content;z-index:10}.about-dialog::backdrop{background:#020912a8;backdrop-filter:blur(8px)}.about-dialog>.close-button{position:absolute;right:16px;top:16px}.about-dialog h2{font-size:34px;line-height:1.1;letter-spacing:-1px;font-weight:400;margin:14px 0 20px}.about-dialog p{font-size:14px;line-height:1.7;color:var(--vh-body)}.about-dialog .eyebrow{font-size:10px;margin:0}.about-detail{border-top:1px solid var(--vh-border);margin-top:25px;padding-top:18px}.about-detail h3{font:11px var(--m);color:#e2eef5;margin:0 0 6px}.about-detail p{font-size:12px}.about-detail p+p{margin-top:8px}.about-detail p+h3{margin-top:14px}.about-detail a,.about-dialog .mt a{color:var(--vh-cyan)}.about-dialog .mt{font-size:12px;margin-top:18px}.sources{display:flex;flex-wrap:wrap;gap:15px;margin-top:22px}.sources a{font:10px var(--m);color:var(--vh-cyan)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes orbit{to{transform:rotate(360deg)}}@keyframes card-in{from{opacity:0;translate:0 5px}to{opacity:1;translate:0 0}}@keyframes reveal{to{visibility:visible}}@keyframes conceal{to{visibility:hidden}}@media(min-width:1600px){.header{padding:35px 60px}.footer{left:60px;right:60px}.map-toolbar{right:60px}.intro h1{font-size:90px}}@media(max-width:1050px) and (min-width:761px){.intro h1{font-size:57px}.header{padding:24px 28px}.header nav{gap:20px}.footer{left:28px;right:28px}.map-toolbar{right:28px}.intro{padding-bottom:31.5px}.interaction-hint{font-size:9px}}@media(max-width:760px){.experience{min-height:640px}.header{padding:20px 22px;gap:15px}.brand{gap:9px}.brand svg{width:25px;height:33px}.brand>span{font-size:19px}.header nav{gap:10px}.language-button{font-size:12px;padding:9px 11px;gap:9px}.about-button{display:grid;place-items:center;width:44px;height:44px;padding:0;font-size:22px}.about-words{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.about-icon{display:inline}.intro{top:112px;left:18px;right:18px;padding-bottom:31px}.intro h1{font-size:42px;line-height:1.1;margin:0;letter-spacing:-2px}.map-toolbar{right:17px;bottom:108px;gap:8px}.map-toolbar button{width:44px;height:44px;font-size:21px}.north-icon{font-size:12px}.footer{left:24px;right:24px;bottom:17px;gap:0}.about-footer{font-size:12px;gap:7px;flex-wrap:wrap}.legend-gradient{width:35px}.recorded{font-size:12px}.interaction-hint{position:absolute;left:0;right:0;text-align:center;bottom:58px;font-size:12px;pointer-events:none}.experience::after{height:170px}.map-pin{font-size:12px;height:44px;padding:0 3px}.map-pin .pin-name{padding:5px 3px}.preview{position:absolute;width:auto;left:18px!important;right:18px;top:auto!important;bottom:20px;padding:19px 22px 16px;border-radius:16px;max-width:420px;margin:auto}.preview::before{content:"";width:32px;height:3px;border-radius:3px;background:#57728a;display:block;position:absolute;left:50%;top:8px;transform:translateX(-50%)}.preview-meta{font-size:12px}.preview h2{font-size:24px}.preview-spot{margin-bottom:16px;font-size:12px}.preview-call{font-size:32px}.preview-reason{min-height:0;margin:10px 0 14px}.preview-conditions{padding:12px 0}.preview-conditions dt,.preview-conditions dd{font-size:12px}.town-comparison{margin:12px 0;font-size:12px}.sample-note{font-size:12px}.forecast-link{padding:12px 14px}.preview-meta .close-button{width:44px;height:44px;margin:-15px -10px -10px}.loading{font-size:12px}.experience[data-ready="fallback"] .loading{inset:215px 24px auto auto}.about-dialog{padding:28px}.about-dialog h2{font-size:30px}.about-dialog .eyebrow,.about-detail h3,.sources a{font-size:12px}html[lang="fr"] .brand>span{font-size:17px}}@media(max-width:375px){.brand>span{font-size:17px}.header{padding-left:18px;padding-right:18px}.header nav{gap:10px}.intro h1{font-size:37px}.footer{left:20px;right:20px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0s!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition:none!important}}.night{--mg:#a34a1b;--ma:#a34a1b;--mb:#a34a1b;--vh-ground:#0a0606;--vh-surface:#1d0e09;--vh-border:#3f1e0d;--vh-muted:#a34a1b;--vh-body:#be561e;--vh-white:#c95b20;--vh-cyan:#c95b20}.night .experience{background:var(--vh-ground);height:auto;min-height:100svh}.night .globe-stage{position:relative}.night .header{position:absolute;inset:0 0 auto}.night .space-wash,.night .experience::after,.night #globe,.night .pin-connectors,.night .map-toolbar,.night .experience .loading,.night .interaction-hint,.night .legend-gradient,.night .activity-dot,.night .pin-dot{display:none}.night .brand>span{background:none;color:#a34a1b}.night .language-button{border-color:#3f1e0d}.night .language-button:hover{background:#1d0e09}.night .sw{justify-content:flex-start;background:#3f1e0d;border-color:#3f1e0d}.night .sw span{background:#1d0e09}.night .sw svg{fill:#a34a1b;stroke:#a34a1b}.night .lang-menu,.night .about-dialog{background:#1d0e09;border-color:#7d3916;box-shadow:none}.night .experience .map-labels{visibility:visible;animation:none;position:relative;inset:0;max-width:26rem;margin:280px auto 0;padding-bottom:80px;display:flex;flex-direction:column;flex-wrap:nowrap;gap:0}.night .map-labels li{display:block}.night .map-pin{position:relative!important;left:auto!important;top:auto!important;justify-content:space-between;gap:16px;width:100%;height:auto;min-height:52px;padding:0 4px;border-bottom:1px solid #3f1e0d;border-radius:0;font-size:17px;color:#c95b20;text-shadow:none}.night .map-pin .pin-name{background:none;padding:0}.night .experience .pin-call{position:static;width:auto;height:auto;overflow:visible;clip:auto;color:#be561e;font-weight:400}.night .experience .pin-call::before{content:none}.night .map-pin.planned,.night .map-pin.planned .pin-call{color:#7d3916}.night .about-footer,.night .recorded{color:#a34a1b}.night .preview{position:fixed;background:#1d0e09;border-color:#3f1e0d;box-shadow:none}.night .preview::before{background:#3f1e0d}.night .preview-meta,.night .preview-spot,.night .preview-reason,.night .preview-conditions dt,.night .town-comparison,.night .sample-note,.night .close-button,.night .preview.is-planned .preview-call{color:#a34a1b}.night .preview-conditions{border-color:#3f1e0d}.night .town-comparison strong{color:#be561e}.night .forecast-link{background:#3f1e0d;color:#c95b20}.night .forecast-link:hover{background:#562810}.night .about-dialog::backdrop{background:#0a0606d9}.night .about-detail h3{color:#c95b20}@media(max-width:760px){.night .experience .map-labels{margin:230px max(18px,50% - 13rem) 0}.night .map-pin{font-size:16px}}