.gps-hero{min-height:calc(70svh - 4rem);display:flex;flex-direction:column;justify-content:space-between;gap:2rem;padding:2.5rem 1.5rem 2rem;@media(min-width:768px){min-height:calc(85svh - 4rem);padding-inline:2.5rem}}.gps-heading{font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:clamp(3.25rem,14vw,20rem);line-height:.84;color:var(--ink);span{display:block;white-space:nowrap}}.gps-hero-foot{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1.5rem}.gps-lead{max-width:34rem;font-size:1.15rem;line-height:1.5;color:var(--soft)}.gps-start{display:inline-flex;align-items:center;gap:.75rem;color:var(--ink)}.gps-story{position:relative}.gps-skip{position:absolute;left:1rem;top:1rem;z-index:30;padding:.5rem .75rem;background:var(--lime);color:#0a0a0a;&:not(:focus){width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}}.gps-stage{--sea: #eef1f2;position:sticky;top:0;height:100svh;overflow:hidden;background:var(--sea);border-top:1px solid var(--line);border-bottom:1px solid var(--line);.dark &{--sea: #121416}}.gps-map{position:absolute;inset:0;width:100%;height:100%}.gps-theme-dark,.dark .gps-theme-light{display:none}.dark .gps-theme-dark{display:inline}.gps-world{opacity:.3}.dark .gps-world{opacity:.4}.gps-country{fill:url(#gps-trame);stroke:var(--ink);stroke-width:1;stroke-opacity:.45;stroke-linejoin:round}.gps-country--fr{stroke-width:2.5;stroke-opacity:1}.gps-trame-bg{fill:var(--paper)}.gps-trame-dot{fill:var(--ink);opacity:.3}.gps-line{fill:none;stroke:var(--ink);stroke-linecap:round}.gps-train{fill:var(--lime);stroke:var(--ink);opacity:0}.gps-zone{fill:var(--lime);opacity:0;stroke:var(--ink);stroke-width:0}.gps-layer{position:absolute;inset:0;pointer-events:none}.gps-pt{position:absolute;left:0;top:0;display:flex;align-items:center;gap:.5rem;opacity:0;transition:opacity .4s;will-change:transform;&.is-on{opacity:1}&.is-dim .gps-label{display:none}}.gps-dot{position:relative;flex-shrink:0;width:14px;height:14px;border-radius:999px;background:var(--lime);box-shadow:0 0 0 3px var(--ink)}.gps-pt.is-new .gps-dot{animation:gps-drop .7s cubic-bezier(.34,1.56,.64,1) both}@keyframes gps-drop{0%{transform:translateY(-40px) scale(.4)}}.motion .gps-pt.is-on:not(.is-dim) .gps-dot:after{content:"";position:absolute;inset:-3px;border-radius:inherit;border:3px solid var(--ink);animation:gps-ping 2.4s ease-out infinite}@keyframes gps-ping{to{transform:scale(2.4);opacity:0}}.gps-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;color:#0a0a0a;background:var(--lime);padding:.2rem .45rem;box-shadow:0 0 0 1px #0a0a0a}.gps-pt--r{flex-direction:row;translate:-7px -50%}.gps-pt--l{flex-direction:row-reverse;translate:calc(-100% + 7px) -50%}.gps-pt--t{flex-direction:column-reverse;translate:-50% calc(-100% + 7px)}.gps-pt--b{flex-direction:column;translate:-50% -7px}.gps-pt--nda .gps-dot{display:grid;place-items:center;background:#0a0a0a;box-shadow:0 0 0 2px var(--lime);color:var(--lime);font-family:var(--font-mono);font-size:10px;font-weight:700;line-height:1}.gps-blur{display:inline-block;filter:blur(2.5px);font-weight:700;user-select:none}.gps-nda{display:contents;cursor:pointer}.gps-pt--nda .gps-label{background:var(--paper);color:var(--ink);box-shadow:0 0 0 1px var(--ink);transition:background .2s}.gps-pt--nda.is-on :is(.gps-dot,.gps-label){pointer-events:auto;cursor:pointer}.gps-nda:hover .gps-label,.gps-nda:focus-visible .gps-label{background:var(--lime);color:#0a0a0a}.gps-nda:focus-visible .gps-dot{outline:2px solid var(--ink);outline-offset:3px}@media(max-width:767px){.gps-pt--nda:not(.is-told) .gps-label{display:none}}.gps-nda-say{display:none}.gps-pt--nda.is-told{z-index:2;.gps-blur{display:none}.gps-nda-say{display:inline}.gps-label{background:#0a0a0a;color:var(--lime)}}.gps-dot--count{display:grid;place-items:center;width:auto;min-width:2.1rem;height:2.1rem;padding:0 .4rem;font-family:var(--font-display);font-weight:900;font-size:1.15rem;line-height:1;color:#0a0a0a}.gps-pt--city .gps-label,.gps-pt--cluster .gps-label{background:#0a0a0a;color:#f5f5f2}.gps-pt--city .gps-dot{visibility:hidden}.gps-pt--city{z-index:1}.gps-pt--station .gps-dot,.gps-pt--dest .gps-dot{width:12px;height:12px;background:var(--paper)}.gps-pt--dest .gps-label{background:var(--paper);color:var(--ink);box-shadow:0 0 0 1px var(--ink)}.gps-pt--dest .gps-label b{font-weight:400;background:var(--lime);color:#0a0a0a;padding:0 .3rem;margin-left:.3rem}.gps-pt--zone{flex-direction:column;translate:-50% -50%;text-align:center}.gps-zone-share{font-family:var(--font-display);font-weight:900;font-size:clamp(2rem,4vw,3.5rem);line-height:.9;color:var(--ink)}.gps-pt--zone .gps-label{background:#0a0a0a;color:#f5f5f2}.gps-pt--cup{flex-direction:column;translate:-50% -85%}.gps-cup svg{width:64px;height:64px;fill:var(--lime);stroke:var(--ink);stroke-width:3;stroke-linejoin:round}.gps-steam{fill:none}.motion .gps-steam{stroke-dasharray:12 8;animation:gps-steam 1.6s linear infinite}@keyframes gps-steam{to{stroke-dashoffset:-20}}.gps-apps{position:absolute;inset:0;list-style:none;padding:0;margin:0;pointer-events:none;opacity:0;transition:opacity .5s;&.is-on{opacity:1}li{position:absolute;left:50%;top:50%;font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;padding:.25rem .5rem;background:var(--paper);color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);transform:rotate(calc(360deg / var(--n) * var(--i))) translate(min(42vw,40svh)) rotate(calc(-360deg / var(--n) * var(--i)));b{font-weight:400;background:var(--lime);color:#0a0a0a;padding:0 .25rem}}}.motion .gps-apps.is-on li{animation:gps-orbit 40s linear infinite}@keyframes gps-orbit{0%{transform:rotate(calc(360deg / var(--n) * var(--i))) translate(min(42vw,40svh)) rotate(calc(-360deg / var(--n) * var(--i)))}to{transform:rotate(calc(360deg / var(--n) * var(--i) + 360deg)) translate(min(42vw,40svh)) rotate(calc(-360deg / var(--n) * var(--i) - 360deg))}}.gps-readout,.gps-count{position:absolute;bottom:1.25rem;font-variant-numeric:tabular-nums;color:var(--ink)}.gps-readout{left:1.5rem;@media(min-width:768px){left:2.5rem}@media(max-width:767px){display:none}}.gps-count{right:1.5rem;font-family:var(--font-mono);font-size:11px;letter-spacing:.15em;text-transform:uppercase;background:var(--paper);padding:.35rem .6rem;box-shadow:0 0 0 1px var(--ink);@media(min-width:768px){right:2.5rem}b{font-family:var(--font-display);font-weight:900;font-size:1.2rem;letter-spacing:0;margin-right:.25rem}}.gps-count{transition:opacity .3s;&.is-hidden{opacity:0}}.gps-progress{position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--line);span{display:block;height:100%;background:var(--lime);transform-origin:left;transform:scaleX(0)}}.gps-chapters{position:relative;z-index:10;margin-top:-100svh;pointer-events:none}.gps-chapter{display:flex;align-items:flex-end;min-height:120svh;padding:0 1rem 12svh;pointer-events:none;@media(min-width:768px){align-items:center;padding:0 2.5rem}}.gps-chapter--right{@media(min-width:768px){justify-content:flex-end}}.gps-card{pointer-events:auto;width:100%;max-width:28rem;padding:1.5rem;background:var(--paper);border:1px solid var(--ink);box-shadow:8px 8px 0 var(--ink);display:flex;flex-direction:column;gap:.9rem}.gps-card-title{font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:clamp(2rem,4vw,3.25rem);line-height:.9;color:var(--ink)}.gps-card-body{line-height:1.55;color:var(--soft)}.gps-card-note{font-size:.85rem;color:var(--soft);font-style:italic}.gps-card-fact{align-self:flex-start;padding:.5rem .7rem;background:var(--lime);color:#0a0a0a;font-weight:600;font-size:.95rem;line-height:1.4}.gps-card-friday{color:var(--ink);font-weight:600}.gps-card .contact-actions{margin-top:.5rem}.gps-card .contact-btn{width:8.5rem}@media(max-width:767px){.gps-label{font-size:9px;letter-spacing:.08em;padding:.15rem .35rem}.gps-apps,.gps-pt--zone .gps-label{display:none}.gps-zone-share{font-size:1.6rem}.gps-cup svg{width:44px;height:44px}.gps-count{bottom:auto;top:1rem}}.gps-list{padding:5rem 1.5rem 3rem;@media(min-width:768px){padding-inline:2.5rem}}.gps-list-title{font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:clamp(2.25rem,5vw,4.5rem);line-height:.9;color:var(--ink);margin-bottom:2rem}.gps-list-grid{display:grid;gap:2rem;@media(min-width:640px){grid-template-columns:repeat(2,1fr)}@media(min-width:1024px){grid-template-columns:repeat(4,1fr)}ul{list-style:none;padding:0;margin-top:.75rem;display:flex;flex-direction:column;gap:.35rem;color:var(--ink)}}.gps-approx{color:var(--soft);font-size:.85rem}.gps-sources{margin-top:2.5rem;max-width:56rem;font-size:.85rem;line-height:1.55;color:var(--soft)}
