@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@400;500&display=swap');:root{font-family:'DM Sans',Arial,sans-serif;color:#171717;background:#f7f5f0;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.4;cursor:default}.app{max-width:650px;margin:auto;min-height:100dvh;background:#f7f5f0;padding-bottom:75px;position:relative;box-shadow:0 0 60px #0000000a}.nav{position:fixed;z-index:20;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,650px);height:68px;display:flex;align-items:center;justify-content:space-around;background:#f7f5f0ed;border-top:1px solid #dedbd5;backdrop-filter:blur(14px);padding-bottom:env(safe-area-inset-bottom)}.nav button{background:none;border:0;display:flex;flex-direction:column;align-items:center;gap:5px;font-size:10px;color:#777;min-width:60px}.nav button.active{color:#111;font-weight:700}.home{height:calc(100dvh - 68px);min-height:580px;position:relative;background:#171717;color:white;overflow:hidden}.home-image{position:absolute;inset:0;background:linear-gradient(130deg,#1117,#1112),url('https://images.unsplash.com/photo-1577083552431-6e5fd01aa342?w=1200&q=85') center/cover;filter:grayscale(1)}.home-shade{position:absolute;inset:0;background:linear-gradient(180deg,#0007 0%,transparent 28%,#000b 76%,#000e 100%)}.home-top,.home-content{position:absolute;left:28px;right:28px}.home-top{top:35px}.home-brand,.brand{font-size:34px;letter-spacing:-2.2px;font-weight:700}.home-top span{font-size:10px;letter-spacing:3px;line-height:1.9}.home-content{bottom:40px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;color:#73716c}.eyebrow.light{color:#e3dfd6}.home h1{font-family:'Playfair Display',Georgia,serif;font-size:clamp(50px,12vw,78px);line-height:1.01;letter-spacing:-2px;font-weight:400;margin:20px 0}.home-content p{max-width:300px;font-size:14px;line-height:1.7;color:#e4e0da;margin-bottom:28px}.primary{background:#171717;color:white;border:1px solid #171717;border-radius:4px;padding:16px 19px;display:flex;align-items:center;justify-content:space-between;gap:15px;font-weight:600;font-size:13px}.home-cta{background:#f7f5f0;color:#111;border-color:#f7f5f0;width:100%}.home-secondary{color:#fff;background:transparent;border:0;margin-top:17px;padding:7px 0;display:flex;justify-content:space-between;width:100%;font-size:13px}.header{height:86px;display:flex;justify-content:space-between;align-items:center;padding:18px 24px;position:relative;z-index:10}.brand{border:0;background:none;padding:0;color:#151515}.header-menu{background:none;border:0;padding:9px}.dropdown{position:absolute;top:72px;right:20px;left:20px;background:#fff;border:1px solid #ddd;box-shadow:0 15px 35px #0002;padding:16px}.dropdown button{display:block;border:0;border-bottom:1px solid #eee;background:none;width:100%;padding:14px;text-align:left}.dropdown p{font-size:10px;letter-spacing:1.5px;color:#888}.content{padding:10px 24px 35px}.section-head{margin:10px 0 25px}.section-head h1,.map-title h1{font-family:'Playfair Display',Georgia,serif;font-weight:400;font-size:54px;letter-spacing:-2px;margin:9px 0 6px}.period{color:#999}.section-head p{color:#777;font-size:13px;margin:0}.search{border:1px solid #d4d0c9;padding:14px;display:flex;gap:12px;align-items:center}.search input{border:0;background:transparent;outline:0;flex:1;min-width:0;font-size:13px}.chips{display:flex;overflow:auto;gap:7px;margin:18px -24px 22px;padding:0 24px;scrollbar-width:none}.chips button{border:0;border-radius:25px;background:#eae7e1;padding:10px 13px;font-size:11px;white-space:nowrap}.chips .chosen{background:#171717;color:white}.result-count{font-size:10px;letter-spacing:1.5px;color:#888;border-bottom:1px solid #ccc;padding-bottom:12px}.event{display:flex;gap:14px;border-bottom:1px solid #d7d4ce;padding:23px 0;cursor:pointer}.event-number{font-family:Georgia,serif;font-size:15px;color:#aaa}.event-main{flex:1}.event h2{font-family:'Playfair Display',Georgia,serif;font-size:25px;font-weight:400;line-height:1.15;margin:9px 0}.event p,.agenda-info p{font-size:12px;color:#777;margin:0}.save,.remove,.round{border:1px solid #bbb;background:transparent;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;flex-shrink:0}.save.saved{background:#171717;color:white;border-color:#171717}.map-page{height:calc(100dvh - 155px);min-height:500px;display:flex;flex-direction:column}.map-title{padding:0 24px 15px;display:flex;justify-content:space-between;align-items:end}.map-title h1{margin:4px 0 0}.map-title>span{font-size:11px;color:#888}.map-wrap{flex:1;min-height:330px}.mapdot{display:block;background:#161616;width:15px;height:15px;border:3px solid #f7f5f0;border-radius:50%;box-shadow:0 0 0 1px #111}.leaflet-popup-content{font-family:'DM Sans',sans-serif;line-height:1.7}.leaflet-popup-content button{border:0;background:none;text-decoration:underline;padding:7px 0}.map-footnote{padding:0 20px;font-size:10px;color:#888}.agenda-title{display:flex;align-items:center;justify-content:space-between}.days{display:flex;justify-content:space-between;border-bottom:1px solid #d7d4ce;padding-bottom:20px}.days button{background:none;border:0;display:flex;flex-direction:column;align-items:center;gap:10px;min-width:57px}.days span{font-size:10px;color:#777;letter-spacing:1px}.days strong{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-size:20px;font-weight:500}.days .day-active strong{background:#171717;color:#fff}.timeline{padding:22px 0;min-height:180px}.agenda-event{display:flex;gap:13px;align-items:start;padding:18px 0;border-bottom:1px solid #d7d4ce}.times{width:43px;display:flex;flex-direction:column;gap:8px;font-size:11px}.times strong{font-weight:600}.times span{color:#999}.timeline-mark{height:8px;width:8px;background:#aaa;border-radius:50%;margin-top:4px;flex-shrink:0}.agenda-info{flex:1;cursor:pointer}.agenda-info h3{font-family:'Playfair Display',Georgia,serif;font-size:22px;font-weight:400;margin:7px 0}.remove{border:0;color:#999}.outline{border:1px solid #c9c5be;background:transparent;padding:15px 16px;display:flex;align-items:center;justify-content:center;gap:10px;font-size:13px}.wide{width:100%;margin-top:12px;justify-content:center}.export{margin-top:12px}.fineprint{font-size:11px;line-height:1.6;color:#999;margin-top:19px}.empty{text-align:center;padding:35px 10px;display:flex;flex-direction:column;align-items:center}.empty h3{font-family:'Playfair Display',Georgia,serif;font-size:25px;font-weight:400;margin-bottom:0}.empty p{font-size:13px;color:#777;line-height:1.6}.overlay{position:fixed;inset:0;z-index:40;background:#0009;display:flex;align-items:end;justify-content:center}.modal{width:min(100%,650px);background:#f7f5f0;padding:36px 26px max(35px,env(safe-area-inset-bottom));border-radius:12px 12px 0 0;max-height:90dvh;overflow:auto;position:relative}.modal h2{font:400 39px/1.1 'Playfair Display',Georgia,serif;margin:18px 0 24px}.close{position:absolute;right:23px;top:20px;border:0;background:none}.modal-meta{display:flex;gap:10px;align-items:center;margin:12px 0;font-size:13px}.modal>p{font-size:13px;color:#777;line-height:1.7;margin:25px 0}.directions{display:flex;align-items:center;gap:8px;color:#111;margin-bottom:20px;font-size:13px}.personal-modal form{display:flex;flex-direction:column;gap:14px}.personal-modal label{display:flex;flex-direction:column;gap:6px;font-size:11px;color:#555}.personal-modal input,.personal-modal select{padding:13px;background:#fff;border:1px solid #d5d1ca;color:#111;border-radius:0;width:100%;font-size:14px}.form-row{display:flex;gap:12px}.form-row label{flex:1;min-width:0}@media(min-width:700px){body{background:#dedbd5}.app{min-height:100dvh}}

/* SIGNALS identity — brand assets supplied by Signals */
@import url('https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&display=swap');
:root{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;background:#fff;color:#141414;--signals-blue:#0d0c61}
body,.app{background:#fff;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif}
.home{background:var(--signals-blue)}
.home-image{opacity:.8}
.home-shade{background:linear-gradient(180deg,#0d0c6177 0%,#0d0c6111 30%,#0d0c61d9 100%)}
.home-logo{display:block;width:min(73vw,310px);height:auto;object-fit:contain;object-position:left center}
.logo-img{display:block;width:135px;height:55px;object-fit:contain;object-position:left center}
.brand{display:flex;align-items:center}
.home h1,.section-head h1,.map-title h1,.event h2,.agenda-info h3,.empty h3,.modal h2{font-family:'Instrument Serif',Georgia,serif;font-weight:400}
.home h1{letter-spacing:-1px}
.primary,.chips .chosen,.save.saved,.days .day-active strong{background:var(--signals-blue);border-color:var(--signals-blue);color:#fff}
.home-cta{background:#fff;color:var(--signals-blue);border-color:#fff}
.period,.nav button.active,.map-title>span{color:var(--signals-blue)}
.mapdot{background:var(--signals-blue);box-shadow:0 0 0 1px var(--signals-blue)}
.nav{background:#fffffff0}

.home{background:#0d0c61!important}.home-image,.home-shade{display:none!important}.home-content{z-index:2}.event-main a{font-size:12px;color:#0d0c61}.nav{z-index:10}.header .eyebrow{font-size:10px}.home-logo{max-width:240px}.period{color:#0d0c61}
.agenda-toggle{display:flex;gap:4px;background:#f0efed;padding:4px;border-radius:9px;margin:20px 0}
.agenda-toggle button{flex:1;border:0;background:transparent;color:#0d0c61;padding:12px 8px;font:inherit;cursor:pointer;border-radius:7px}
.agenda-toggle button.selected{background:#0d0c61;color:white}
.agenda-day{margin:26px 0 34px}
.agenda-date{font-family:Arial,Helvetica,sans-serif;font-size:12px;letter-spacing:.12em;font-weight:700;border-bottom:1px solid #ddd;padding-bottom:12px}
.google-link{display:inline-block;margin-top:9px;font-size:12px;color:#0d0c61;text-decoration:underline;text-underline-offset:3px}
/* Mobile home layout: prevent the top label and introduction from overlapping */
.home{height:auto;min-height:calc(100dvh - 68px);display:flex;flex-direction:column;justify-content:space-between;padding:32px 28px 36px;gap:44px;overflow:visible}
.home-top,.home-content{position:static;left:auto;right:auto;bottom:auto;top:auto;width:100%}
.home-top{display:flex;flex-direction:column;align-items:flex-start;gap:24px}
.home-logo{display:block;width:min(240px,72%);height:auto;max-width:100%}
.home-top span{display:block;font-size:10px;letter-spacing:2.5px;line-height:1.8}
.home-content{margin-top:auto}
.home h1{font-size:clamp(46px,11vw,72px);line-height:1.02;margin:16px 0}
.home-content p{margin:16px 0 22px}
@media(max-height:760px){.home{gap:25px;padding-top:24px;padding-bottom:24px}.home-top{gap:14px}.home h1{font-size:clamp(40px,9vw,60px)}.home-content p{margin:12px 0 16px}}

#paris-map{height:420px;min-height:320px;width:100%;background:#efeee9;z-index:0;margin-top:16px}.map-hint{font-size:12px;color:#555;margin:10px 0 20px}.map-error{padding:24px;font-size:14px}.leaflet-popup-content{font-family:Arial,sans-serif;line-height:1.6}.leaflet-popup-content a{color:#0d0c61}@media(max-width:600px){#paris-map{height:55vh;min-height:330px}}

/* SIGNALS MAP V4 — restrained, technical cartography */
#paris-map{background:#fff;border:1px solid #e9e9e9}
#paris-map .leaflet-tile-pane{filter:grayscale(1) brightness(1.13) contrast(.72);opacity:.76}
#paris-map .leaflet-control-zoom{border:1px solid #e3e3e3;box-shadow:none;border-radius:0}
#paris-map .leaflet-control-zoom a{background:#fff;color:#202020;border-radius:0;border-bottom-color:#e8e8e8}
#paris-map .leaflet-control-attribution{font:9px 'Helvetica Neue',Helvetica,Arial,sans-serif;background:rgba(255,255,255,.88);color:#777}
#paris-map .leaflet-popup-content-wrapper{border-radius:2px;box-shadow:0 5px 26px #0002;border:1px solid #e8e8e8;background:#fff}
#paris-map .leaflet-popup-content{margin:15px 17px;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:12px}
#paris-map .leaflet-popup-tip{box-shadow:none}
.signals-map-venue{font-family:'Instrument Serif',Georgia,serif;font-size:25px;line-height:1.05;margin:0 0 13px;color:#161616}
.signals-map-event{border-top:1px solid #e7e7e7;padding:10px 0 2px;line-height:1.5}
.signals-map-event strong{font-size:12px;font-weight:500}
.signals-map-time{font-size:10px;letter-spacing:.04em;color:#777;margin-bottom:5px}
.signals-map-event a{display:inline-block;margin-top:6px;color:#0d0c61;text-decoration:underline;text-underline-offset:3px}


/* V6 — isolated interactive map and event details */
#paris-map{display:block;width:100%;height:430px;min-height:330px;border:1px solid #e8e8e8;background:#fafafa;overflow:hidden}
.event-main[data-event]{cursor:pointer}.event-main[data-event]:focus-visible{outline:2px solid #0d0c61;outline-offset:5px}
.event-more{display:inline-block;font-size:12px;color:#0d0c61;margin-top:12px;border-bottom:1px solid currentColor;padding-bottom:3px}
.detail-modal{background:#fff}.detail-modal h2{font-family:'Instrument Serif',Georgia,serif;font-size:42px;line-height:1.05;margin:19px 0 20px}
.detail-meta{font-size:14px;font-weight:600}.detail-address{font-size:13px;color:#777;margin-top:7px}.detail-modal p{line-height:1.6;margin:22px 0;color:#555}
.detail-direction{display:flex;justify-content:space-between;align-items:center;color:#0d0c61;text-decoration:none;border-top:1px solid #ddd;margin-top:24px;padding:20px 0 0;font-size:14px}
.detail-direction span{font-size:11px;color:#888}
@media(max-width:600px){#paris-map{height:53dvh;min-height:340px}}

.detail-image{width:100%;max-height:320px;object-fit:cover;display:block;margin:16px 0 3px}.image-credit{font-size:10px;color:#888;margin-bottom:12px}.event-thumb{width:100%;height:130px;object-fit:cover;display:block;margin:6px 0 12px}.venue-event{display:block;width:100%;text-align:left;border:0;border-top:1px solid #ddd;background:#fff;padding:14px 0;color:#0d0c61;cursor:pointer}.venue-event span{display:block;font-size:11px;color:#777;margin-bottom:5px}.venue-event strong{font-size:15px}.detail-modal{max-height:85vh;overflow-y:auto}
