/* MAP.live V3: a native ribbon sign, contextual missions, unchanged readable type. */
.logo{gap:0;align-items:center;letter-spacing:-1.7px}.logo .brand-icon{width:39px;height:39px;object-fit:contain;margin-right:9px;flex-shrink:0}.logo i{align-self:flex-start}.header>.button .header-cta-long,.header>.button .header-cta-short{font-size:inherit;font-weight:inherit}
.hero-ribbon{position:absolute;z-index:4;top:-8px;right:52px;width:236px;transform:perspective(700px) translateY(var(--ribbon-lift,0px)) rotateY(var(--ribbon-turn,-16deg)) rotateZ(8deg);transform-style:preserve-3d;pointer-events:none;will-change:transform}.ribbon-sculpture{width:100%;height:auto;display:block;filter:drop-shadow(18px 24px 12px #3f295126);animation:ribbon-breathe 7s ease-in-out infinite}.hero-ribbon>span{display:block;font-size:13px;line-height:1.5;font-weight:600;letter-spacing:.4px;max-width:205px;transform:rotate(-8deg);margin:5px 0 0 12px;color:#473661}.hero-art .sticker{display:none}.hero .eyebrow{font-size:13px}.hero-map{border-radius:28px 28px 28px 8px}.hero .word-lieux svg{stroke:#7b50ce;stroke-width:4}.button{border-radius:17px 17px 17px 6px}.button.secondary{background:#fcfaf2;border:1px solid #8f9d86;color:#263c2e}.button.secondary:hover{background:#edf1de}.universe:after{content:'';position:absolute;width:175px;height:166px;right:25px;top:25px;background:url('assets/brand/map-ribbon.svg') center/contain no-repeat;opacity:.1;z-index:-1;pointer-events:none;transform:rotate(30deg)}.journey:after{opacity:.18}.context-places{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.context-places .place>.place-visual>img{aspect-ratio:16/10}.context-places .place>div:last-child{padding:30px}.context-places .context-name{font-size:13px!important;line-height:1.5!important;letter-spacing:.65px;font-weight:700;color:#51435e!important;margin:0 0 17px!important}.context-places h3{font-size:33px;max-width:450px}.context-places .place p{max-width:520px}.context-disclaimer{font-size:14px;line-height:1.7;color:#423d32;margin:27px 0 0;max-width:1050px}.context-places .place-number{font-size:13px}.scenario-tabs{gap:4px;max-width:100%}.scenario-tabs button{font-size:15px;padding:13px 18px;line-height:1.4}.scenario-tabs button[aria-selected=true]{border-radius:10px 10px 10px 3px;background:#fffefa;color:#482393;box-shadow:0 2px 8px #37276317}.demo-toolbar{gap:18px;flex-wrap:wrap}.demo-brand{font-size:13px}.mission-panel{padding:27px 30px;background:#e7eccf;border-bottom:1px solid #bac6a0;color:#24382b}.mission-top{display:flex;justify-content:space-between;align-items:center;gap:30px}.mission-kicker{font-size:13px;line-height:1.5;letter-spacing:.7px;font-weight:700;color:#4c5b3b;margin-bottom:9px}.mission-top h3{font-size:27px;line-height:1.2;letter-spacing:-.65px;font-weight:500;max-width:720px}.mission-meter{width:150px;flex-shrink:0}.mission-meter>span{font-size:18px;font-weight:700;display:block;margin-bottom:7px;text-align:right}#mission-progress{height:9px;border-radius:8px;background:#c1ccaa;overflow:hidden}#mission-progress i{display:block;width:0;height:100%;background:#5230ae;border-radius:8px;transition:width .35s}#mission-steps{list-style:none;padding:0;margin:23px 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}#mission-steps li{min-width:0}#mission-steps button{display:flex;align-items:center;gap:11px;width:100%;min-height:53px;text-align:left;background:#fffef5;border:1px solid #aaba8d;border-radius:10px;font-size:14px;line-height:1.5;padding:12px;color:#2b422e}#mission-steps button>span{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;font-size:13px;background:#eeebe4;color:#493385;font-weight:700}#mission-steps .done button{background:#d2e8c7;border-color:#70915e}#mission-steps .done button>span{background:#315d37;color:white}#mission-steps button:hover{border-color:#5635a2;box-shadow:0 2px 8px #54426d10}.mission-bottom{display:flex;gap:30px;justify-content:space-between;align-items:center}.mission-bottom p{font-size:14px;line-height:1.65;color:#405035;max-width:840px}.mission-bottom>button{font-size:14px;line-height:1.5;min-height:44px;flex-shrink:0;border:1px solid #8c9b79;background:transparent;padding:9px 12px;border-radius:8px}.mission-bottom>button:hover{background:#f4f6e7}#mission-result{border:1px solid #6d8f5b;background:#f9fff0;padding:19px 22px;border-radius:12px;margin:0 0 21px;position:relative;overflow:hidden}#mission-result:after{content:'';position:absolute;right:18px;top:12px;width:55px;height:55px;background:url('assets/brand/map-ribbon.svg') center/contain no-repeat;opacity:.2}#mission-result strong{font-size:22px;line-height:1.3;display:block;max-width:90%;font-weight:500}#mission-result p{font-size:16px;line-height:1.65;margin-top:8px;max-width:900px;padding-right:35px}.demo-body{grid-template-columns:350px minmax(0,1fr)}.demo-sidebar{min-width:0}.demo-sidebar h3{font-size:31px;line-height:1.15}.demo-sidebar .route-summary{font-size:14px!important;line-height:1.7!important;padding:15px 0 0;margin-top:15px;border-top:1px solid #c3cdb8;color:#45533c!important}.selected-place .poi-crowd{font-size:14px;line-height:1.5;border-top:1px solid #bccbac;padding-top:13px;margin-top:15px;color:#3d5e34}.selected-place .button{width:100%;margin-top:15px;gap:12px;text-align:left;line-height:1.5}.selected-place .button.secondary{font-size:14px;min-height:48px}.map-svg .poi .marker-ribbon{transition:stroke .2s}.map-svg .poi.selected .marker-ribbon{stroke:#201a35}.map-svg .poi.visited .marker-ribbon{stroke:#3e7450}.map-svg .poi:hover .marker-ribbon,.map-svg .poi:focus .marker-ribbon{stroke:#3b1a84;stroke-width:22px}.map-svg .poi:focus .marker-number{font-weight:900}.map-svg .poi.selected .marker-number{fill:#2a1e3e}.map-svg .poi.visited .marker-number{fill:#244b2f}.demo-map-wrap{background:#ecebdc}#museum-controls{background:#efe9ff;border:1px solid #baa8df;padding:17px;border-radius:10px;margin-top:23px}#museum-controls label{font-size:14px;font-weight:600;line-height:1.5;display:block;margin-bottom:7px}#museum-controls select{font-size:16px;padding:11px 10px;margin:0 0 16px;min-height:46px;border-color:#a998c8;border-radius:7px}#museum-controls .button{font-size:14px;min-height:48px;padding:13px 14px;line-height:1.5}footer .logo .brand-icon{width:38px;height:38px;background:#f6f0df;border-radius:50%;padding:2px}.contact-spark{font-size:0;width:250px;height:250px;background:url('assets/brand/map-ribbon.svg') center/contain no-repeat;right:10%;top:80px;opacity:.6;animation:none;transform:rotate(15deg)}.module-icon{border-radius:16px 16px 16px 4px}.photo-badge{font-size:13px}
@keyframes ribbon-breathe{0%,100%{translate:0 0;rotate:0deg}50%{translate:0 -10px;rotate:-3deg}}
@media(max-width:1150px) and (min-width:821px){.logo .brand-icon{width:34px;height:34px;margin-right:7px}.header .logo{font-size:30px}.hero-ribbon{width:190px;right:0;top:14px}.hero-ribbon>span{font-size:13px;max-width:180px}.demo-body{grid-template-columns:315px minmax(0,1fr)}.scenario-tabs button{padding:12px 14px;font-size:14px}.mission-panel{padding:25px}.mission-bottom{align-items:flex-start;gap:20px}.mission-bottom p{max-width:550px}.mission-top h3{font-size:25px}.mission-meter{width:120px}}
@media(max-width:820px){.header .logo{font-size:28px}.logo .brand-icon{width:28px;height:30px;margin-right:6px}.header>.button{font-size:14px;padding:11px 12px;gap:10px;margin-right:5px}.header>.button .header-cta-long,.header>.button .header-cta-short{font-size:inherit}.hero .eyebrow{font-size:12px;letter-spacing:.7px}.hero-ribbon{width:157px;right:-1px;top:0}.hero-ribbon>span{display:none}.hero-art{margin-top:42px}.discovery{top:150px}.hero-map{top:60px}.universe:after{width:110px;height:104px;top:18px;right:12px;opacity:.09}.context-places{grid-template-columns:1fr;gap:25px}.context-places .place>.place-visual>img{aspect-ratio:3/2}.context-places .place>div:last-child{padding:25px}.context-places h3{font-size:29px}.context-places .context-name{font-size:13px!important;margin-bottom:15px!important}.context-disclaimer{font-size:14px;line-height:1.7;margin-top:25px}.demo-toolbar{display:block;padding:10px}.scenario-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;padding:5px}.scenario-tabs button{font-size:14px;min-height:48px;padding:11px 8px;white-space:normal}.mission-panel{padding:24px 20px}.mission-top{align-items:flex-start;gap:17px}.mission-top h3{font-size:25px;line-height:1.2;max-width:none}.mission-kicker{font-size:12px;letter-spacing:.3px;line-height:1.5}.mission-meter{width:60px;flex-shrink:0;padding-top:4px}.mission-meter>span{font-size:16px;margin-bottom:9px}#mission-steps{grid-template-columns:1fr;margin:21px 0;gap:9px}#mission-steps button{font-size:14px;min-height:51px;padding:11px;gap:10px}#mission-steps button>span{font-size:13px;width:26px;height:26px}.mission-bottom{display:block}.mission-bottom p{font-size:14px;line-height:1.7}.mission-bottom>button{font-size:14px;min-height:44px;margin-top:17px;width:100%;text-align:center;padding:10px}#mission-result{padding:18px;margin-bottom:20px}#mission-result strong{font-size:22px;max-width:100%;padding-right:0}#mission-result p{font-size:16px;line-height:1.65;padding-right:0}#mission-result:after{right:-12px;top:-5px;opacity:.1}.demo-body{display:flex;flex-direction:column-reverse}.demo-sidebar h3{font-size:30px}.demo-sidebar .route-summary{font-size:14px!important;line-height:1.7!important}.selected-place .poi-crowd{font-size:14px}.selected-place .button{font-size:16px;min-height:50px}.selected-place .button.secondary{font-size:14px}.map-guidance .map-hint{font-size:14px}.map-guidance .map-legend{font-size:13px}#museum-controls{padding:17px}#museum-controls label{font-size:14px}#museum-controls .button{font-size:15px}.contact-spark{width:185px;height:185px;right:-20px;top:180px;opacity:.3}.hero-bottom{font-size:13px}}
@media(max-width:380px){.header .logo{font-size:24px}.logo .brand-icon{width:26px;height:28px;margin-right:5px}.header>.button{font-size:13px;padding:10px 10px;gap:8px;margin-right:4px}.hero-ribbon{width:140px;right:-2px;top:0}.hero .eyebrow{font-size:11px}.mission-panel{padding:23px 17px}.mission-top h3{font-size:23px}.mission-top{gap:12px}.mission-meter{width:49px}.scenario-tabs button{font-size:14px;padding:10px 6px}.context-places h3{font-size:27px}.context-places .place>div:last-child{padding:22px}.demo-sidebar h3{font-size:28px}.mission-kicker{font-size:12px}.mission-bottom p{font-size:14px}.photo-badge{font-size:13px}}
.motion-paused .hero-ribbon,.tab-hidden .hero-ribbon{transform:rotate(8deg);will-change:auto}
@media(prefers-reduced-motion:reduce){.hero-ribbon{transform:rotate(8deg);will-change:auto}.ribbon-sculpture{animation:none}.marker-ribbon,#mission-progress i{transition:none}}

#mission-mini-result{background:#eff6df;border:1px solid #7c9864;padding:20px;border-radius:12px;margin-top:22px;color:#25452e}#mission-mini-result strong{font-size:23px;line-height:1.25;font-weight:500;display:block}#mission-mini-result p{font-size:16px;line-height:1.65;margin-top:12px}.mission-kicker{font-size:13px}@media(max-width:820px){.mission-kicker{font-size:13px}#mission-mini-result{padding:20px}#mission-mini-result strong{font-size:23px}}
/* The live signal belongs to the identity; map markers remain functional. */
.logo{position:relative}.logo i{position:absolute;right:-7px;top:16px;width:8px;height:8px;margin:0;align-self:auto;background:#e23e42;box-shadow:0 0 0 0 #e23e4230;animation:live-signal 2.8s ease-in-out infinite}.hero .eyebrow>.live-dot,.map-topline .live-dot{background:#df4045;animation:live-signal 2.8s ease-in-out infinite}.mission-kicker:before{content:'';width:7px;height:7px;background:#df4045;border-radius:50%;display:inline-block;margin-right:8px;vertical-align:1px}
@keyframes live-signal{0%,100%{box-shadow:0 0 0 0 #df40452b;opacity:1}50%{box-shadow:0 0 0 5px #df404500;opacity:.65}}
.demo-map-wrap{position:relative;align-self:start;display:grid;grid-template-rows:auto auto auto auto auto;min-height:0;align-content:start;overflow:hidden}.map-topline{position:static;grid-row:1;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:13px 16px;background:#fbfcf5;pointer-events:auto}.map-topline>span{font-size:13px;flex:0 1 auto;max-width:none;padding:8px 10px}.map-topline button{font-size:14px;min-height:44px}.context-tools{grid-row:2;background:#f8faf3;border-top:1px solid #cad1c0;border-bottom:1px solid #cad1c0;padding:20px}.context-heading{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 20px;margin-bottom:15px}.context-heading strong{font-size:18px;line-height:1.3;font-weight:600}.context-heading>span{font-size:13px;line-height:1.5;color:#52644d}.context-chips{display:flex;flex-wrap:wrap;gap:8px}.context-chips button{min-height:43px;font-size:14px;line-height:1.4;padding:10px 13px;border-radius:7px;border:1px solid #a4b294;background:#fffdf5;color:#33482f}.context-chips button.is-active{background:#304d3c;border-color:#304d3c;color:white}.context-chips button:hover{border-color:#4f348c}.context-field{font-size:14px;line-height:1.5;font-weight:600;display:block;margin-top:17px}.context-field select{display:block;font-size:16px;min-height:46px;border-color:#9eaeb2;margin:8px 0 0;max-width:100%;padding:11px;border-radius:7px;background:#fffef9}
#demo-map{grid-row:3;position:relative;inset:auto;aspect-ratio:800/580;height:auto;min-height:0;width:100%;background:#e8ecdf}#demo-map>svg{width:100%;height:100%;position:absolute;inset:0}.context-schedule{grid-row:4;padding:22px;background:#f8faf3;border-top:1px solid #c9d2bf}.map-guidance{display:grid;grid-row:5;gap:9px;padding:16px 20px;background:#fbfcf5;border-top:1px solid #c4cdbb}.map-guidance .map-legend{position:static;max-width:none;font-size:13px;gap:10px;line-height:1.5}.map-guidance .map-legend>span:last-child{display:inline;max-width:none}.map-guidance .compass{font-size:13px;width:31px;height:31px}.map-guidance .map-hint{position:static;font-size:14px;max-width:none;padding:0;border:0;background:none;border-radius:0;line-height:1.5}.salon-agenda{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.salon-agenda>button,.museum-rooms>button{display:flex;flex-direction:column;text-align:left;padding:17px;gap:9px;background:#fffdf6;border:1px solid #b5c1a5;border-radius:10px;min-height:120px;color:#263d2e}.salon-agenda span,.museum-rooms span{font-size:13px;line-height:1.5;color:#566548}.salon-agenda strong,.museum-rooms strong{font-size:17px;line-height:1.35;font-weight:500}.salon-agenda small,.museum-rooms small{font-size:14px;line-height:1.5;color:#53378a}.salon-agenda button:hover,.museum-rooms button:hover{border-color:#614093;background:#f4f0ff}.demo-map-wrap[data-context=stadium] .context-tools,.demo-map-wrap[data-context=stadium] .context-schedule{background:#eaf0f2}.demo-map-wrap[data-context=stadium] .context-chips .is-active{background:#385c76;border-color:#385c76}.matchday-route strong{font-size:19px;line-height:1.4;font-weight:500;display:block}.matchday-route p{font-size:14px;line-height:1.7;color:#435c65;margin:11px 0 15px}.matchday-route button{font-size:14px;line-height:1.5;min-height:44px;background:#fffdf6;border:1px solid #8fa9b6;border-radius:7px;padding:11px 14px;color:#294957;text-align:left}.demo-map-wrap[data-context=museum] .context-tools,.demo-map-wrap[data-context=museum] .context-schedule{background:#f4edda}.museum-floors .is-active{background:#65563a!important;border-color:#65563a!important}.context-tools #museum-controls{background:#fffaf0;border-color:#b8a880;margin:18px 0 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 15px;padding:17px}.context-tools #museum-controls label{font-size:14px;margin:0}.context-tools #museum-controls label[for=visit-duration]{grid-column:1;grid-row:1}.context-tools #museum-controls #visit-duration{grid-column:1;grid-row:2}.context-tools #museum-controls label[for=visit-theme]{grid-column:2;grid-row:1}.context-tools #museum-controls #visit-theme{grid-column:2;grid-row:2}.context-tools #museum-controls select{font-size:16px;min-height:46px;margin:0;max-width:100%;width:100%}.context-tools #museum-controls .button{grid-row:3;grid-column:1/-1;margin-top:5px;font-size:15px;justify-content:center}.museum-rooms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.demo-map-wrap[data-context=festival] .context-schedule{background:#223f35;color:#fffbed}.demo-map-wrap[data-context=festival] .context-schedule .context-heading>span{color:#d6e5cd}.festival-timeline{list-style:none;padding:0;margin:15px 0 19px;display:grid;gap:18px}.festival-timeline li{display:grid;grid-template-columns:82px minmax(0,1fr);gap:18px;position:relative}.festival-timeline li>span{font-size:13px;line-height:1.6;color:#d8ebbf;border-right:2px solid #7f9977;padding-right:13px}.festival-timeline strong{font-size:17px;line-height:1.4;display:block;font-weight:500;margin-bottom:10px}.festival-timeline button,.festival-service{font-size:14px;line-height:1.5;min-height:44px;padding:10px 13px;border:1px solid #9cad83;background:#f1f5df;border-radius:7px;color:#2b452c;text-align:left}.festival-service{width:100%;background:#cce2b0}.poi.filtered{opacity:.25}.map-svg .poi.selected .marker-body{stroke:#20273c;stroke-width:6px}.map-svg .poi:hover .marker-body,.map-svg .poi:focus .marker-body{stroke:#51318d;stroke-width:6px}.map-svg .poi.visited .marker-body{fill:#477c51}.map-svg .poi .marker-number{fill:white}.map-svg .poi.selected .marker-number,.map-svg .poi.visited .marker-number{fill:white}.demo-map-wrap[data-context=museum] .poi .marker-number{fill:#403c2b}.demo-map-wrap[data-context=museum] .poi.visited .marker-body{fill:#c5dcad}
@media(max-width:1150px) and (min-width:821px){.demo-body{grid-template-columns:310px minmax(0,1fr)}.context-tools,.context-schedule{padding:18px}.salon-agenda,.museum-rooms{grid-template-columns:1fr}.context-tools #museum-controls{grid-template-columns:1fr}.context-tools #museum-controls label[for=visit-duration]{grid-column:1;grid-row:1}.context-tools #museum-controls #visit-duration{grid-column:1;grid-row:2}.context-tools #museum-controls label[for=visit-theme]{grid-column:1;grid-row:3}.context-tools #museum-controls #visit-theme{grid-column:1;grid-row:4}.context-tools #museum-controls .button{grid-column:1;grid-row:5}}
@media(max-width:820px){.logo i{top:13px;right:-6px;width:7px;height:7px}.demo-map-wrap{position:relative;align-self:stretch;display:grid;min-height:0;grid-template-rows:auto auto auto auto auto}.context-tools,.context-schedule{padding:20px}.context-heading{display:block;margin-bottom:15px}.context-heading strong{font-size:18px;display:block}.context-heading>span{font-size:13px;display:block;margin-top:8px}.context-chips{gap:7px}.context-chips button{font-size:14px;padding:10px 11px;min-height:44px}.context-field{font-size:14px}.map-topline{position:static;grid-row:1;padding:12px}.map-topline>span{font-size:13px;flex-basis:auto;max-width:none;justify-content:flex-start}#demo-map{grid-row:3;min-height:0;height:auto;aspect-ratio:800/580}.map-guidance{grid-row:5;padding:16px 18px;gap:10px}.map-guidance .map-legend{font-size:13px}.map-guidance .map-hint{font-size:14px}.salon-agenda,.museum-rooms{grid-template-columns:1fr}.salon-agenda>button,.museum-rooms>button{min-height:0;padding:17px}.context-tools #museum-controls{grid-template-columns:1fr;padding:17px;gap:8px}.context-tools #museum-controls label[for=visit-duration]{grid-column:1;grid-row:1}.context-tools #museum-controls #visit-duration{grid-column:1;grid-row:2;margin-bottom:10px}.context-tools #museum-controls label[for=visit-theme]{grid-column:1;grid-row:3}.context-tools #museum-controls #visit-theme{grid-column:1;grid-row:4}.context-tools #museum-controls .button{grid-column:1;grid-row:5;font-size:15px}.festival-timeline li{grid-template-columns:66px minmax(0,1fr);gap:13px}.festival-timeline strong{font-size:16px}.festival-timeline li>span{font-size:13px;padding-right:10px}.festival-timeline button,.festival-service{font-size:14px}.matchday-route strong{font-size:18px}.matchday-route p,.matchday-route button{font-size:14px}}
@media(max-width:380px){.logo i{top:12px;right:-5px}.context-tools,.context-schedule{padding:18px 15px}.context-chips button{font-size:14px;padding:10px}.map-topline>span{flex-basis:100%;justify-content:center}.map-topline button{width:100%}.festival-timeline li{grid-template-columns:60px minmax(0,1fr);gap:10px}.context-tools #museum-controls{padding:14px}}
.motion-paused .logo i,.motion-paused .hero .eyebrow>.live-dot,.motion-paused .map-topline .live-dot{animation:none;opacity:1;box-shadow:none}
@media(prefers-reduced-motion:reduce){.logo i,.hero .eyebrow>.live-dot,.map-topline .live-dot{animation:none;opacity:1;box-shadow:none}}
