*{box-sizing:border-box}
html{scroll-behavior:smooth;background:#fff}
body{margin:0;background:#fff;color:#202020;font-family:Arial,Helvetica,sans-serif;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit}
button,input{font:inherit}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.cover-section,.intro-section,.map-section,.story-section{min-height:100svh;position:relative}
.cover-section{display:grid;place-items:center;padding:3rem 1.5rem;background:#fff}
.cover-link{display:block;width:min(800px,54vw);transition:transform .25s ease,opacity .25s ease}
.cover-link:hover,.cover-link:focus-visible{transform:scale(1.015);opacity:.88;outline:none}

.intro-section{display:grid;place-items:center;padding:4rem 1.5rem;background:#fff}
.intro-block{width:min(760px,86vw);text-align:center;position:relative}
.magnifier{position:absolute;z-index:2;left:50%;top:-31px;width:42px;height:42px;border:3px solid #555;border-radius:50%;transform:translateX(-50%)}
.magnifier::after{content:"";position:absolute;width:25px;height:3px;background:#555;right:-19px;bottom:-8px;transform:rotate(48deg);transform-origin:left center;border-radius:999px}
.intro-card{padding:2.25rem 3.25rem 2rem;background:linear-gradient(135deg,#fafafa,#f1f1f1);box-shadow:0 8px 19px rgba(0,0,0,.18);font-size:clamp(.82rem,1.05vw,1rem);line-height:1.55;font-weight:700}
.intro-card p{margin:.45rem 0}
.pink-button,.return-button{display:inline-flex;align-items:center;gap:.35rem;margin-top:1.75rem;padding:.42rem .9rem;border:2px solid #e80092;border-radius:999px;color:#e80092;text-decoration:none;font-size:.86rem;background:#fff;transition:background .2s,color .2s,transform .2s}
.pink-button:hover,.pink-button:focus-visible,.return-button:hover,.return-button:focus-visible{background:#e80092;color:#fff;transform:translateY(-1px);outline:none}

.map-section{display:grid;place-items:center;padding:2rem max(1rem,env(safe-area-inset-left));background:#fff}
.map-shell{position:relative;width:min(1040px,94vw);height:min(80svh,790px);min-height:480px}
#infrajour-map{width:100%;height:100%;background:#fff;outline:none}
.leaflet-container{font-family:Arial,Helvetica,sans-serif;background:#fff}
.leaflet-control-zoom a{color:#111!important}
.leaflet-bar a,.leaflet-bar a:hover{background:#fff}
.story-marker{filter:drop-shadow(0 1px 1px rgba(0,0,0,.18));transition:transform .12s ease,filter .12s ease}
.story-marker:hover{transform:scale(1.12);filter:drop-shadow(0 3px 4px rgba(0,0,0,.28))}
.help-marker{transition:transform .15s ease}
.help-marker:hover{transform:scale(1.08)}
.landmark-tooltip,.story-tooltip{border:1px solid #111;border-radius:20px;box-shadow:0 3px 13px rgba(0,0,0,.18);font-weight:700}
.location-control{width:40px;height:40px;border:0;background:#fff;cursor:pointer;display:grid;place-items:center;font-size:22px;line-height:1}
.location-control:hover,.location-control:focus-visible{background:#f4f4f4;outline:none}
.location-status{position:absolute;z-index:500;left:50%;bottom:12px;transform:translateX(-50%);max-width:min(90%,560px);padding:.5rem .85rem;border-radius:999px;background:rgba(255,255,255,.92);box-shadow:0 3px 16px rgba(0,0,0,.18);font-size:.82rem;text-align:center;opacity:0;pointer-events:none;transition:opacity .2s}
.location-status.visible{opacity:1}
.user-position{width:22px;height:22px;border:4px solid #fff;border-radius:50%;background:#e80092;box-shadow:0 0 0 2px #111,0 0 0 9px rgba(232,0,146,.2)}
.user-position::after{content:"";position:absolute;inset:-11px;border:2px solid rgba(232,0,146,.35);border-radius:50%;animation:pulse 1.8s infinite}
@keyframes pulse{0%{transform:scale(.6);opacity:1}100%{transform:scale(1.55);opacity:0}}

.story-section{width:75%;margin:0 auto;display:flex;flex-direction:column;align-items:center;background-repeat:no-repeat;background-size:cover;background-position:center;overflow:hidden}
.story-section.dots-a{background-image:url('../assets/images/fond-a.png')}
.story-section.dots-b{background-image:url('../assets/images/fond-b.png')}
.story-content{width:min(80%,1080px);padding-top:25svh;display:grid;grid-template-columns:minmax(84px,1fr) minmax(0,3fr);align-items:center;gap:1.5rem}
.story-section.icon-right .story-content{grid-template-columns:minmax(0,3fr) minmax(84px,1fr)}
.story-icon-wrap{display:flex;justify-content:flex-end;align-items:center}
.icon-right .story-icon-wrap{justify-content:flex-start}
.story-icon{width:74px;height:auto}
.audio-card{position:relative;min-width:0;padding:1.15rem 1.7rem 1.3rem;border:5px solid #000;border-radius:48px;background-color:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'%3E%3Cpath fill='rgba(107,107,107,0.07)' d='M0 21.68a50 50 0 0 0 39.77 28A40.1 40.1 0 0 1 0 85.05V95a40.1 40.1 0 0 1 39.77 35.37A50 50 0 0 0 0 158.32V180h5a40.09 40.09 0 0 1 35.37-39.76 50.08 50.08 0 0 0 28 39.76h43.36a50.08 50.08 0 0 0 28-39.76A40.09 40.09 0 0 1 175.05 180H180v-21.68a50 50 0 0 0-39.77-28A40.1 40.1 0 0 1 180 95v-9.9a40.1 40.1 0 0 1-39.77-35.37A50 50 0 0 0 180 21.68V0h-4.95a40.09 40.09 0 0 1-35.37 39.76A50.08 50.08 0 0 0 111.65 0H68.35a50.08 50.08 0 0 0-28 39.76A40.09 40.09 0 0 1 5 0H0zm90 153.37a40.1 40.1 0 0 1-39.77-35.37 50 50 0 0 0 39.77-28 50 50 0 0 0 39.77 28A40.1 40.1 0 0 1 90 175.05zm68.32-85.05a50.08 50.08 0 0 0-28 39.76 40 40 0 0 1 0-79.52A50.08 50.08 0 0 0 158.32 90zM90 5a40.1 40.1 0 0 1 39.77 35.37A50 50 0 0 0 90 68.32a50 50 0 0 0-39.77-28A40.1 40.1 0 0 1 90 5zM49.68 50.24a40 40 0 0 1 0 79.52A50.08 50.08 0 0 0 21.68 90a50.08 50.08 0 0 0 28-39.76z'/%3E%3C/svg%3E");box-shadow:0 3px 18px rgba(0,0,0,.3)}
.audio-card h2{margin:0 0 .9rem;font-family:'Chenla',Arial,sans-serif;font-size:clamp(1.45rem,2vw,2.05rem);line-height:1.05;text-align:center;font-weight:400;color:#474747}
.audio-card audio{display:none}
.player-controls{display:grid;grid-template-columns:32px 42px minmax(80px,1fr) 42px 32px minmax(50px,88px);align-items:center;gap:.45rem;color:#5f5f5f}
.play-button,.mute-button{border:0;background:transparent;color:#565656;cursor:pointer;padding:.2rem;display:grid;place-items:center}
.play-button{font-size:.9rem}.mute-button{font-size:1.25rem}
.play-button:hover,.play-button:focus-visible,.mute-button:hover,.mute-button:focus-visible{color:#e80092;outline:none}
.time{font-size:.72rem;font-variant-numeric:tabular-nums;text-align:center}
.progress,.volume{width:100%;accent-color:#777;cursor:pointer}
.return-button{margin-top:2rem;background:rgba(255,255,255,.9)}

.site-footer{padding:3rem 1.5rem 4rem;display:grid;place-items:center;background:#fff}
.site-footer img{width:min(780px,92vw);height:auto}

@media (max-width:980px){
  .cover-link{width:min(800px,76vw)}
  .story-section{width:100%}
  .story-content{width:min(86%,840px)}
  .map-shell{width:96vw;height:min(78svh,720px)}
}
@media (max-width:680px){
  .cover-link{width:min(800px,90vw)}
  .intro-card{padding:2rem 1.25rem 1.5rem;font-size:.82rem}
  .magnifier{top:-27px;width:35px;height:35px}
  .map-section{padding:.75rem 0}
  .map-shell{width:100vw;height:78svh;min-height:480px}
  .story-content,.story-section.icon-right .story-content{width:88%;padding-top:18svh;grid-template-columns:1fr;gap:1.1rem}
  .story-icon-wrap,.icon-right .story-icon-wrap{justify-content:center;order:1}
  .audio-card{order:2;width:100%;padding:1.05rem .9rem 1.15rem;border-width:4px;border-radius:38px}
  .audio-card h2{font-size:1.35rem;margin-bottom:.7rem}
  .story-icon{width:64px}
  .player-controls{grid-template-columns:28px 36px minmax(70px,1fr) 36px 28px;gap:.25rem}
  .volume{display:none}
  .return-button{margin-top:1.4rem}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.cover-link,.pink-button,.return-button,.story-marker,.help-marker{transition:none}.user-position::after{animation:none}}
