:root{color-scheme:dark;--ink:#e8e9e4;--muted:#b4bfc0;--line:#a6b6ba33;--accent:#cedab8;font-family:Arial,Helvetica,sans-serif;background:#080e1a;color:var(--ink)}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}button,a,input{font:inherit}button,a{touch-action:manipulation}button{color:inherit;cursor:pointer;background:#101e29d9;border:1px solid var(--line);border-radius:4px;min-height:44px;padding:10px 14px}a{color:inherit;text-underline-offset:4px}button:hover,a:hover{color:#fff;border-color:#b7c7bd}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid #d5dca3;outline-offset:4px}[hidden]{display:none!important}.scene{position:relative;width:100%;height:100dvh;isolation:isolate}.map-wrap,.planet-map{position:absolute;inset:0}.map-wrap{background:radial-gradient(ellipse at 65% 45%,#1b2c3b 0,#080e1a 68%)}.map-wrap:after{content:'';pointer-events:none;position:absolute;inset:0;background:linear-gradient(90deg,#080e1a88 0,transparent 38%,transparent 75%,#080e1a33);z-index:1}.maplibregl-canvas{outline:none}.maplibregl-ctrl-attrib{background:#080e1aaa!important;color:#acb8ba!important;font-size:10px!important}.maplibregl-ctrl-attrib a{color:inherit!important}.maplibregl-ctrl-bottom-right{bottom:4px;right:8px}.masthead{position:absolute;z-index:2;top:max(20px,env(safe-area-inset-top));left:32px;right:32px;display:flex;align-items:center;gap:20px}.brand{text-decoration:none;font-size:14px;letter-spacing:.07em}.brand span{font-size:11px;margin-left:6px}.edition{font-size:12px;color:var(--muted);border-left:1px solid var(--line);padding-left:20px}.edition-dot{font-size:8px;color:#bfcd9f;margin-left:8px}.masthead>button{margin-left:auto;background:transparent;border:0;font-size:13px}.threshold{position:absolute;z-index:2;top:25%;left:4.5%;max-width:400px;pointer-events:none}.threshold>*{pointer-events:auto}.eyebrow{text-transform:uppercase;font-size:10px;letter-spacing:.18em;color:var(--accent);margin:0 0 18px}h1{font:400 clamp(30px,3.3vw,47px)/1.14 Georgia,serif;letter-spacing:-.035em;margin:0}.lead{font-size:14px;line-height:1.65;color:var(--muted);margin:20px 0 26px}.actions{display:flex;gap:10px;flex-wrap:wrap}.primary{background:#d2dbbc;color:#162a30;border-color:transparent}.secondary{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;padding:10px 13px;border:1px solid var(--line);border-radius:4px;background:#080e1a66;font-size:14px}.horizon-link{margin-top:18px;border:0;background:none;font-size:12px;padding:4px 0}.horizon-link span{margin-left:12px}.planet-controls{position:absolute;z-index:2;left:50%;transform:translateX(-50%);bottom:86px;display:flex;gap:6px;white-space:nowrap}.planet-controls button{font-size:11px;backdrop-filter:blur(12px);padding:8px 10px}.planet-controls button[aria-pressed=true]{border-color:#c7d2b9;color:#d4dfc6}.scene-footer{position:absolute;z-index:2;left:32px;right:32px;bottom:34px;display:flex;gap:24px;align-items:center;font-size:11px;color:var(--muted)}.scene-footer p{margin:0}.scene-footer a{margin-left:auto}.panel{position:absolute;z-index:5;right:24px;top:80px;bottom:82px;width:min(420px,calc(100% - 48px));overflow:auto;overscroll-behavior:contain;border:1px solid #a0b8ba44;background:#10212aee;backdrop-filter:blur(24px);box-shadow:0 24px 90px #0007;border-radius:8px;padding:24px;scrollbar-width:thin}.panel-head{display:flex;justify-content:space-between;align-items:start;gap:12px;margin-bottom:16px}.panel h2{font:400 28px/1.16 Georgia,serif;margin:4px 0 0}.panel-head button{border:0;background:none;font-size:27px;padding:0;min-width:44px}.panel p{font-size:14px;line-height:1.65;color:#d2dbd9}.panel .meta{font-size:11px;color:#a8b9bb}.panel h3{font:400 21px/1.2 Georgia,serif;margin:18px 0 8px}.panel audio{width:100%;margin:16px 0;color-scheme:light}.panel input[type=search]{width:100%;min-height:44px;padding:10px;border:1px solid var(--line);background:#0c1821;color:#fff;border-radius:4px}.voice-row{width:100%;text-align:left;display:block;margin:10px 0;padding:15px}.voice-row strong,.voice-row span{display:block}.voice-row strong{font:400 19px Georgia,serif}.voice-row span{font-size:12px;color:var(--muted);margin-top:7px}.subject-row{width:100%;display:block;text-align:left;margin:10px 0;line-height:1.4}.panel-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.panel-actions a{font-size:12px;min-height:44px;display:inline-flex;align-items:center}.feedback{position:absolute;z-index:6;bottom:130px;left:32px;max-width:360px;background:#101e29e6;font-size:12px;line-height:1.5;padding:12px;border-radius:4px}.feedback:empty{display:none}.map-presence{position:relative;display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;background:transparent;border:0;border-radius:50%;z-index:2}.presence-seed{width:12px;height:12px;border:2px solid #edf5d2;border-radius:50%;background:#9fae7b;box-shadow:0 0 0 7px #cad9b222,0 0 25px #d6e4b85c;font-size:10px;display:grid;place-content:center;color:#08171d}.awaiting .presence-seed{background:#7398ae;border-color:#aed0df}.presence-seed:not(:empty){width:24px;height:24px}.presence-tip{position:absolute;display:none;bottom:44px;background:#10212af5;color:#e8eee6;padding:10px;border:1px solid var(--line);border-radius:4px;width:220px;font-size:12px;text-align:left;pointer-events:none}.map-presence:hover .presence-tip,.map-presence:focus-visible .presence-tip{display:block}.planet-choices{color:#14222b}.planet-choices button{display:block;width:100%;background:#17232e;color:white;margin:6px 0}.loading-globe{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(62vh,70vw);height:min(62vh,70vw);border-radius:50%;background:radial-gradient(circle at 32% 25%,#3b5662,#162a37 55%,#091420 90%);box-shadow:0 0 30px #8cb8c522;opacity:.3}.map-wrap:has([data-globe-ready]) .loading-globe{display:none}.no-script{position:fixed;z-index:10;inset:0;display:grid;place-content:center;background:#0a1520;padding:24px}
@media(max-width:900px){.threshold{top:18%;left:28px;max-width:300px}h1{font-size:34px}.planet-controls{bottom:90px}.scene-footer{gap:12px}.scene-footer [data-globe-status]{display:none}.panel{top:76px;bottom:80px}}
@media(max-width:600px){.masthead{top:max(12px,env(safe-area-inset-top));left:16px;right:12px;gap:10px}.brand{font-size:11px}.edition{font-size:11px;padding-left:10px}.masthead>button{padding:6px;font-size:11px}.threshold{top:auto;bottom:170px;left:20px;max-width:calc(100% - 40px)}.eyebrow{font-size:9px;margin:0 0 9px}h1{font-size:29px}h1 br{display:none}.lead{font-size:12px;margin:10px 0 12px}.lead br{display:none}.actions{gap:7px}.primary,.secondary{font-size:12px;padding:10px 12px}.horizon-link{margin-top:6px}.planet-controls{left:16px;right:16px;transform:none;bottom:max(66px,calc(env(safe-area-inset-bottom) + 66px));display:grid;grid-template-columns:1fr 1fr 1fr 44px;gap:4px;white-space:normal}.planet-controls button{font-size:10px;padding:4px}.planet-controls [data-zoom-in],.planet-controls [data-zoom-out]{font-size:18px}.scene-footer{left:16px;right:16px;bottom:max(29px,calc(env(safe-area-inset-bottom) + 29px));font-size:10px}.panel{left:10px;right:10px;top:auto;bottom:max(12px,env(safe-area-inset-bottom));width:auto;max-height:65dvh;padding:18px}.panel h2{font-size:25px}.panel p{font-size:13px}.feedback{left:16px;right:16px;bottom:170px;max-width:none}.maplibregl-ctrl-attrib{max-width:100vw;font-size:9px!important}.map-wrap:after{background:linear-gradient(0deg,#080e1af2 0,#080e1acc 22%,transparent 65%)}.loading-globe{top:32%}}
@media(max-height:520px) and (min-width:600px){.threshold{top:24%;max-width:310px}h1{font-size:28px}.lead{margin:10px 0}.eyebrow{margin-bottom:8px}.planet-controls{left:auto;right:18px;transform:none;bottom:60px}.scene-footer{bottom:26px}.panel{top:62px;bottom:20px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.feedback{pointer-events:none}.panel-open .threshold{visibility:hidden}@media(max-width:900px) and (min-height:700px){.threshold{top:auto;bottom:160px}.map-wrap:after{background:linear-gradient(0deg,#080e1af2 0,#080e1aaa 26%,transparent 65%)}}@media(max-width:600px){.feedback{bottom:auto;top:65px;left:16px;right:16px;font-size:10px;padding:8px}.scene-footer{bottom:max(36px,calc(env(safe-area-inset-bottom) + 36px))}}

button{min-width:44px}

/* V1.2 · promesse de diffusion, participation d'abord, direct et voix à écouter */
.promise{font:400 17px/1.5 Georgia,serif;color:#e3e8de;margin:18px 0 0;max-width:390px}.threshold .lead{margin:12px 0 24px}
.actions{align-items:center}.actions a.primary{display:inline-flex;align-items:center;min-height:44px;padding:10px 15px;border-radius:4px;text-decoration:none;font-size:14px;font-weight:600}.primary:hover{color:#0d1d22;background:#e3eacd;border-color:transparent}.actions .horizon-link{margin:0 0 0 6px;padding:4px 6px;min-height:44px}
.featured{display:flex;align-items:center;gap:12px;max-width:100%;margin-top:16px;padding:6px 10px 6px 0;background:none;border:0;text-align:left}.featured-play{display:grid;place-content:center;flex:none;width:34px;height:34px;border:1px solid #cedab866;border-radius:50%;font-size:10px;color:var(--accent)}.featured:hover .featured-play,.featured:focus-visible .featured-play{border-color:#e3eacd;color:#fff}.featured-copy{display:grid;gap:3px;min-width:0}.featured-copy span{overflow:hidden;font-size:10px;letter-spacing:.12em;text-transform:uppercase;text-overflow:ellipsis;white-space:nowrap;color:var(--accent)}.featured-copy strong{font:400 17px/1.25 Georgia,serif;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.brand,.edition{white-space:nowrap}.live{margin-left:auto;display:flex;align-items:center;gap:10px;min-width:0;max-width:360px;padding:2px 14px 2px 2px;border:1px solid var(--line);border-radius:26px;background:#080e1a99;backdrop-filter:blur(12px)}.live:not([hidden])+button{margin-left:0}.live .live-toggle{flex:none;display:grid;place-content:center;width:44px;height:44px;padding:0;border-radius:50%;border-color:#cedab866;background:#101e29;color:var(--accent);font-size:11px}.live[data-state=playing] .live-toggle{background:#d2dbbc;color:#162a30}.live-copy{display:grid;gap:2px;min-width:0;text-decoration:none}.live-copy strong{overflow:hidden;font-size:10px;font-weight:400;letter-spacing:.14em;text-transform:uppercase;text-overflow:ellipsis;white-space:nowrap;color:var(--accent)}.live-copy span{max-width:190px;overflow:hidden;font:400 13px/1.25 Georgia,serif;text-overflow:ellipsis;white-space:nowrap}.live-state{flex:none;font-size:10px;color:var(--muted);white-space:nowrap}.live[data-state=playing] .live-state:before{content:'';display:inline-block;width:6px;height:6px;margin-right:6px;border-radius:50%;background:#bfcd9f;vertical-align:1px}.live[data-state=error] .live-state{color:#e7bca6}
.journey{list-style:none;margin:6px 0 18px;padding:0;counter-reset:step}.journey li{position:relative;padding:0 0 13px 36px;counter-increment:step}.journey li:before{content:counter(step);position:absolute;left:0;top:1px;display:grid;place-content:center;width:23px;height:23px;border:1px solid #cedab866;border-radius:50%;font-size:11px;color:var(--accent)}.journey li:not(:last-child):after{content:'';position:absolute;left:11px;top:28px;bottom:3px;border-left:1px solid #cedab833}.journey strong{display:block;font:400 17px/1.3 Georgia,serif;color:#eef1ea}.journey span{display:block;margin-top:3px;font-size:13px;line-height:1.55;color:#c4d0ce}
@media(max-width:900px) and (min-width:601px){.threshold{max-width:360px}.masthead{gap:14px}.edition{padding-left:14px}.live-copy span{max-width:150px}}
@media(max-width:600px){.masthead{flex-wrap:wrap;row-gap:8px}.live{order:5;flex:1 0 100%;max-width:none;margin-left:0;padding-right:12px}.live-copy{flex:1}.live-copy span{max-width:none}.promise{font-size:15px;line-height:1.45;margin-top:10px}.threshold .lead{display:none}.threshold .actions{margin-top:14px}.actions a.primary{flex:1 0 100%;justify-content:center}.actions .horizon-link{margin-left:4px}.featured{margin-top:8px}.featured-copy span{letter-spacing:.08em}.featured-copy strong{font-size:15px}.feedback{top:128px}}
@media(max-height:520px) and (min-width:600px){.threshold{top:84px;max-width:460px}.eyebrow{display:none}h1{font-size:24px}h1 br{display:none}.promise{font-size:14px;margin-top:8px}.threshold .lead{display:none}.threshold .actions{margin-top:10px}.actions a.primary,.secondary{font-size:13px}.actions .horizon-link{display:none}.featured{margin-top:6px}}
@media(max-height:400px) and (min-width:600px){.masthead{top:max(10px,env(safe-area-inset-top));gap:12px}.edition{padding-left:12px}.live-copy strong{letter-spacing:.06em}.threshold{top:64px}h1{font-size:22px}.promise{font-size:13px;margin-top:6px}.threshold .actions{margin-top:8px}.featured{margin-top:4px}.featured-copy strong{font-size:15px}}

/* V2 · voyage des voix : cartel d'écoute, légende du voyage, voix courante, passages */
.voyage-listening .threshold{visibility:hidden}
.voyage-cartel{position:absolute;z-index:3;top:22%;left:4.5%;width:min(400px,calc(100% - 48px));padding:20px 22px 18px;border:1px solid #a6b6ba40;border-radius:8px;background:linear-gradient(160deg,#10212ae6,#0b1822d9);backdrop-filter:blur(18px);box-shadow:0 22px 70px #0006}
.cartel-kicker{display:flex;flex-wrap:wrap;gap:4px 12px;margin:0 36px 10px 0;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}.cartel-kicker [data-cartel-gesture]{color:var(--muted)}.cartel-kicker [data-cartel-gesture]:empty{display:none}
.voyage-cartel h2{font:400 clamp(22px,2.2vw,29px)/1.18 Georgia,serif;margin:0;letter-spacing:-.02em;overflow-wrap:anywhere}
.cartel-place{margin:8px 0 14px;font-size:12px;line-height:1.5;color:var(--muted)}
.cartel-progress{height:2px;background:#cedab826;border-radius:2px;overflow:hidden;margin-bottom:14px}.cartel-progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,#9fb38a,#e3eacd);transition:width .4s linear}
.cartel-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.cartel-actions button{font-size:12px;padding:8px 12px}.cartel-play{width:44px;padding:0!important;border-radius:50%!important;background:#d2dbbc!important;color:#162a30;border-color:transparent!important;font-size:12px}
.cartel-deposit{display:inline-flex;align-items:center;min-height:44px;padding:8px 2px;font-size:12px;color:var(--accent)}
.cartel-close{position:absolute;top:8px;right:8px;border:0;background:none;font-size:24px;padding:0;color:var(--muted)}
.doors{margin-top:14px;padding-top:12px;border-top:1px solid #a6b6ba26}.doors-title{margin:0 0 4px;font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:#93a7a8}.doors-list{display:flex;flex-wrap:wrap;gap:0 16px}.doors a{display:inline-flex;align-items:center;min-height:32px;font-size:11px;color:#c3cfc9;text-decoration-color:#cedab855}.doors a:hover{color:#fff}.doors-near{margin:6px 0 0;font-size:11px;line-height:1.5;color:#b8c6c4}.doors-near a{min-height:28px;margin-right:10px}.doors-near .meta{display:block;font-size:10px;color:#8fa3a4}
.panel .doors a{font-size:12px}
.voyage-caption{margin:0;font:italic 400 13px/1.35 Georgia,serif;color:#dfe6d6;letter-spacing:.01em}.voyage-caption:empty{display:none}
.map-presence.current .presence-seed{background:#e3eacd;border-color:#fff;box-shadow:0 0 0 8px #e3eacd2e,0 0 34px #eef4cf99;animation:voice-breath 3.6s ease-in-out infinite}
@keyframes voice-breath{50%{box-shadow:0 0 0 15px #e3eacd14,0 0 46px #eef4cf66}}
.place-search{display:grid;grid-template-columns:1fr auto;gap:6px;margin:10px 0 4px}.place-search .meta,.place-search .place-results{grid-column:1/-1;margin:0}.place-search button{font-size:12px}.place-row{display:block;width:100%;text-align:left;margin:4px 0;font-size:12px;line-height:1.4}
@media(max-width:900px){.panel-open .voyage-cartel{visibility:hidden}.voyage-cartel{top:auto;bottom:150px;left:28px}}
@media(max-width:600px){.voyage-cartel{left:12px;right:12px;width:auto;bottom:max(184px,calc(env(safe-area-inset-bottom) + 184px));padding:12px 14px 8px}.voyage-cartel h2{font-size:20px}.cartel-place{margin:5px 0 9px;font-size:11px}.cartel-progress{margin-bottom:9px}.cartel-actions{gap:6px}.cartel-actions button{font-size:11px;padding:6px 9px}.doors{margin-top:8px;padding-top:6px}.doors a{min-height:30px;font-size:10px}.doors-near{display:none}.voyage-caption{font-size:11px}.scene-footer [data-count]:has(+ .voyage-caption:not(:empty)){display:none}}
@media(max-height:520px) and (min-width:600px){.voyage-cartel{top:64px;bottom:auto;max-height:calc(100dvh - 182px);overflow:auto;padding:10px 16px}.cartel-place{margin:4px 0 8px}.cartel-progress{margin-bottom:8px}.voyage-cartel h2{font-size:20px}.doors{display:none}}
@media(prefers-reduced-motion:reduce){.map-presence.current .presence-seed{animation:none}}
@media(min-width:601px){.map-wrap:after{background:linear-gradient(90deg,#080e1ad9 0,#080e1a99 26%,#080e1a33 44%,transparent 60%,transparent 80%,#080e1a40)}}
/* A marker is placed by MapLibre's transform alone: in normal flow each one was pushed down by the previous ones. */
.maplibregl-marker.map-presence{position:absolute}
.voyage-caption:not(:empty)+[data-globe-status]{display:none}
@media(max-width:600px){.map-wrap:after{background:linear-gradient(180deg,#080e1ae6 0,#080e1a99 13%,transparent 26%),linear-gradient(0deg,#080e1af2 0,#080e1acc 22%,transparent 65%)}.voyage-listening .map-wrap:after{background:linear-gradient(180deg,#080e1ae6 0,#080e1a99 13%,transparent 26%),linear-gradient(0deg,#080e1af2 0,#080e1a99 30%,transparent 55%)}}
/* The voyage caption keeps one line, beside the count and the rights link. */
.voyage-caption{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Lecteur à la SoundCloud, repris du lecteur V1.7 de Radio Spatiale (native-player.css) */
.sound-player{display:grid;grid-template-columns:48px minmax(0,1fr);gap:4px 12px;padding:11px 13px 6px;margin:10px 0 12px;background:#f6f4ef;color:#233b3b;border:1px solid #fff7;border-radius:10px;box-shadow:0 2px 10px #061a2320}
.sound-player .sound-play{grid-row:1;align-self:center;width:46px;min-width:46px;height:46px;min-height:46px;padding:0;border:0;border-radius:50%;background:#ed6122;color:#fff;font:600 17px/1 system-ui;box-shadow:none}
.sound-player .sound-play:hover{background:#d9541a;color:#fff}
.sound-wave-body{position:relative;min-width:0;height:54px}.sound-waveform{display:block;width:100%;height:48px}
.sound-wave-label{position:absolute;right:0;bottom:-3px;font-size:9px;letter-spacing:.04em;color:#5b6b67}
.sound-transport{grid-column:1/-1;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;font:500 11px/1 system-ui;font-variant-numeric:tabular-nums;color:#4c5d59}
.sound-elapsed{color:#b03d09}
.sound-player .sound-seek{appearance:none;-webkit-appearance:none;width:100%;min-width:0;height:36px;margin:0;padding:0;border:0;background:transparent;cursor:pointer;touch-action:pan-y}
.sound-seek::-webkit-slider-runnable-track{height:3px;border-radius:2px;background:linear-gradient(to right,#ed6122 var(--played,0%),#c0c9c5 var(--played,0%))}
.sound-seek::-moz-range-track{height:3px;border-radius:2px;background:#c0c9c5}.sound-seek::-moz-range-progress{height:3px;background:#ed6122}
.sound-seek::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:12px;height:12px;margin-top:-4.5px;border-radius:50%;background:#ed6122}
.sound-seek::-moz-range-thumb{width:12px;height:12px;border:0;border-radius:50%;background:#ed6122}
.sound-player .sound-play:focus-visible,.sound-seek:focus-visible{outline:3px solid #17667b;outline-offset:3px}
.voyage-cartel .sound-player{margin:4px 0 10px}
@media(max-width:600px){.sound-player{padding:7px 10px 2px;gap:1px 10px}.sound-wave-body{height:44px}.sound-waveform{height:40px}.voyage-cartel .sound-player{margin:2px 0 6px}}
@media(max-height:520px) and (min-width:600px){.voyage-cartel .sound-wave-body{height:36px}.voyage-cartel .sound-waveform{height:32px}}
/* Virgule céleste : le ciel et la tortue de la Carapace du Temps passent au-dessus de la Terre */
.sky-passage{position:absolute;inset:0;z-index:1;width:100%;height:100%;pointer-events:none;transition:opacity 1.8s ease}
.in-sky .voyage-cartel{border-color:#cdeae77a}.in-sky .cartel-kicker{color:#e5ebc4}
/* Partager une voix : l'action principale de la fiche, après l'écoute */
.panel .share-voice{background:#d2dbbc;color:#162a30;border-color:transparent;font-weight:600}
.panel .share-voice:hover{background:#e3eacd;color:#0d1d22}
