:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif;color-scheme:light;--paper:#f8f6f2;--surface:#fff;--ink:#25211f;--muted:#79746e;--line:#e9e5df;--accent:#b85429;--accent-dark:#8b391d;--accent-light:#faebe3;--shadow:0 7px 28px #3624160b;--radius:18px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);margin:0}button,input{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin-top:0}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #f2a980;outline-offset:3px}button:disabled{opacity:.5;cursor:wait}.shell{display:flex;min-height:100vh}.rail{position:fixed;top:0;bottom:0;left:0;width:252px;background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:30px 18px 24px;z-index:50}.brand{display:flex;align-items:center;gap:12px;padding:8px 11px 38px}.brand-mark{display:grid;place-items:center;width:48px;height:48px;background:var(--accent);color:white;border-radius:15px;font-family:Georgia,serif;font-size:37px;font-weight:bold;line-height:1}.brand-mark span,.mobile-brand span{color:#eebfa8}.brand-name{font-size:20px;letter-spacing:-.7px;font-weight:800}.brand-name small{display:block;margin-top:3px;font-size:10px;letter-spacing:0;color:var(--muted);font-weight:500}.rail-links{display:grid;gap:7px}.rail-links a{display:flex;align-items:center;gap:14px;padding:13px 15px;border-radius:14px;color:#5b5652;font-weight:650;font-size:14px}.rail-links a:hover,.rail-links a.active{background:var(--accent-light);color:var(--accent-dark)}.nav-symbol{font-size:26px;font-weight:400;line-height:1;width:29px;text-align:center}.rail-footer{margin-top:auto;font-size:12px;padding:0 14px;color:#635e59;line-height:1.5}.rail-footer p{color:#918a83;font-size:11px}.dot{width:7px;height:7px;background:var(--accent);display:inline-block;border-radius:50%;margin-right:5px}.workarea{margin-left:252px;width:calc(100% - 252px);min-height:100vh}.mobile-nav,.mobile-head{display:none}.page{max-width:1260px;margin:0 auto;padding:44px 52px 90px}.page-title{font-size:35px;letter-spacing:-1.4px;line-height:1.1;font-weight:800;margin:0 0 12px}.eyebrow{font-size:11px;font-weight:800;color:var(--accent);text-transform:uppercase;letter-spacing:2px;margin-bottom:12px}.subtitle{color:var(--muted);line-height:1.6;max-width:610px;font-size:15px}.section-title{font-weight:800;font-size:21px;letter-spacing:-.5px;margin:0 0 16px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:38px 0 14px}.section-heading .section-title{margin:0}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:12px 18px;border:1px solid transparent;border-radius:13px;font-weight:700;font-size:13px;transition:background .15s,color .15s}.button-primary{background:var(--accent);color:#fff}.button-primary:hover{background:var(--accent-dark)}.button-outline{border-color:var(--line);color:var(--ink);background:var(--surface)}.button-outline:hover{background:var(--accent-light)}.button-subtle{background:var(--accent-light);color:var(--accent-dark)}.text-link{color:var(--accent);font-size:13px;font-weight:750}.home-hero{position:relative;isolation:isolate;background:#26211f;color:#fff;min-height:320px;border-radius:23px;overflow:hidden;display:flex;align-items:end;padding:40px;margin-bottom:22px}.home-hero:before,.city-hero:before,.article-hero:before{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(ellipse at 82% 22%,#ab6345 0%,transparent 52%),radial-gradient(ellipse at 25% 100%,#6d4b35 0%,transparent 60%),#27211e}.home-hero:after,.city-hero:after,.article-hero:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,transparent 10%,#16120fbf 100%)}.home-hero h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(35px,4.5vw,62px);max-width:760px;letter-spacing:-1.4px;line-height:1.04;margin-bottom:15px}.home-hero p{max-width:490px;line-height:1.55;color:#eee4de}.home-hero .button{background:white;color:#432616}.home-orbit{position:absolute;top:-100px;right:-100px;width:430px;height:430px;border:1px solid #ffffff22;border-radius:50%;z-index:-1}.home-orbit:before,.home-orbit:after{content:"";position:absolute;border:1px solid #ffffff20;border-radius:50%;inset:45px}.home-orbit:after{inset:105px}.hero-tag{display:inline-flex;align-items:center;gap:8px;color:#f5c5aa;font-size:12px;letter-spacing:1.8px;text-transform:uppercase;font-weight:800;margin-bottom:16px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0 12px}.stat{border-radius:16px;background:var(--surface);border:1px solid var(--line);padding:20px}.stat b{display:block;font-size:27px;letter-spacing:-1px}.stat span{font-size:12px;color:var(--muted)}.city-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.city-card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;min-height:155px;padding:24px 18px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:var(--shadow);transition:transform .15s}.city-card:hover,.story:hover,.category-card:hover{transform:translateY(-2px);border-color:#d8c4ba}.city-card .large-icon{font-size:28px;color:var(--accent)}.city-card h3{margin:0 0 4px;font-size:17px}.city-card small{font-size:11px;color:var(--muted)}.city-card .arrow{position:absolute;right:16px;bottom:19px;color:var(--accent)}.findbar{display:flex;align-items:center;background:var(--surface);border-radius:17px;border:1px solid var(--line);box-shadow:var(--shadow);gap:11px;padding:8px 10px 8px 18px;position:relative}.findbar>span{color:var(--accent);font-size:25px}.findbar input{width:100%;border:0;background:none;outline:0;padding:10px 0;color:var(--ink);font-size:15px}.findbar input:focus{outline:none}.findbar:focus-within{border-color:var(--accent)}.findbar button{white-space:nowrap}.search-suggestions{position:absolute;z-index:550;top:calc(100% + 8px);left:0;right:0;max-height:380px;overflow-y:auto;border:1px solid var(--line);background:var(--surface);box-shadow:0 20px 50px #261a142e;border-radius:14px;padding:6px}.suggestion{display:flex;align-items:center;justify-content:space-between;padding:13px 14px;gap:10px;border-radius:10px;width:100%;background:none;border:0;text-align:left}.suggestion:hover{background:var(--accent-light)}.suggestion b{font-size:14px}.suggestion small{font-size:11px;color:var(--muted);white-space:nowrap}.empty{background:var(--surface);border:1px dashed #d6cbc2;border-radius:18px;padding:36px;color:var(--muted);text-align:center}.empty strong{display:block;color:var(--ink);font-size:18px;margin-bottom:10px}.search-layout{display:grid;grid-template-columns:minmax(300px,390px) minmax(0,1fr);gap:20px;margin-top:22px;min-height:580px}.search-list{min-width:0}.search-list-scroll{max-height:590px;overflow-y:auto;padding-right:3px}.search-list h2{margin:5px 0 13px;font-size:18px}.list-row{width:100%;display:flex;align-items:center;gap:12px;text-align:left;border:1px solid var(--line);background:var(--surface);padding:15px;border-radius:13px;margin-bottom:9px}.list-row:hover{border-color:var(--accent)}.list-row .mini{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:var(--accent-light);color:var(--accent);font-size:22px;flex-shrink:0}.list-row .row-body{min-width:0;flex:1}.list-row b,.list-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-row b{font-size:14px}.list-row small{font-size:11px;color:var(--muted);margin-top:4px}.map-wrap{background:#e7e5df;border:1px solid var(--line);overflow:hidden;position:relative;border-radius:18px;min-height:570px}.map-canvas{height:100%;min-height:570px;z-index:1}.map-overlay{position:absolute;z-index:500;bottom:15px;left:15px;right:15px;background:#fffffff0;border-radius:12px;padding:12px 14px;font-size:12px;color:#625c57;box-shadow:0 6px 22px #0002}.map-dot{border:2px solid white;border-radius:50%;box-shadow:0 2px 8px #0005;background:var(--accent);width:15px;height:15px}.map-dot.big{width:21px;height:21px}.city-page{padding-top:0}.city-hero{height:330px;position:relative;isolation:isolate;margin:0 -52px 34px;display:flex;align-items:flex-end;padding:40px 52px;overflow:hidden;color:#fff}.city-hero h1{font-size:clamp(38px,5vw,58px);margin:0 0 8px;font-weight:850;letter-spacing:-1.6px}.city-hero p{color:#f5ebe4;margin:0}.city-hero.has-photo:before,.article-hero.has-photo:before{background-image:var(--hero-url);background-size:cover;background-position:center}.city-hero .buttons,.article-hero .buttons{margin-top:18px}.city-hero .button{background:#ffffffed;color:#3d3029}.back{display:inline-flex;align-items:center;color:var(--accent);font-size:13px;font-weight:800;margin-bottom:19px;gap:7px}.back:hover{text-decoration:underline}.category-list{display:grid;gap:10px;max-width:900px}.category-card{display:flex;align-items:center;gap:16px;text-align:left;width:100%;min-height:94px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px 18px;box-shadow:var(--shadow)}.category-icon{display:grid;place-items:center;flex-shrink:0;width:52px;height:52px;background:var(--accent);border-radius:14px;color:#fff;font-size:25px}.category-card .category-body{min-width:0;flex:1}.category-card b{display:block;font-size:16px;margin-bottom:5px}.category-card small{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--muted);font-size:12px}.count{background:var(--paper);border-radius:12px;padding:8px 10px;color:var(--muted);font-size:12px;font-weight:750}.category-card .chevron{color:var(--muted)}.section-intro{display:flex;justify-content:space-between;align-items:center;gap:12px}.story-list{background:var(--surface);max-width:930px;border-radius:18px;border:1px solid var(--line);overflow:hidden}.story{border:0;border-bottom:1px solid var(--line);padding:23px;width:100%;text-align:left;background:var(--surface);display:flex;gap:16px;align-items:start}.story:last-child{border:0}.story>div{flex:1}.story .label{display:block;color:var(--muted);font-weight:750;font-size:10px;text-transform:uppercase;letter-spacing:1px;margin-bottom:9px}.story h3{font-size:19px;letter-spacing:-.5px;margin-bottom:7px}.story p{color:#67625e;line-height:1.5;font-size:13px;margin-bottom:10px}.story em{font-style:normal;font-size:11px;color:var(--accent);font-weight:750}.story .story-photo{width:93px;height:93px;border-radius:13px;background:var(--accent-light);display:grid;place-items:center;font-size:30px;color:var(--accent);flex-shrink:0;overflow:hidden}.story .story-photo img{width:100%;height:100%;object-fit:cover}.article-wrap{max-width:870px;margin:0 auto}.article-hero{height:290px;position:relative;isolation:isolate;overflow:hidden;border-radius:22px 22px 0 0;background:#31231d;display:flex;align-items:flex-end;padding:25px 33px;color:#fff}.article-hero .hero-text{font-family:Georgia,serif;font-size:32px;line-height:1.18;max-width:650px;font-weight:700}.article-body{background:var(--surface);border:1px solid var(--line);border-radius:0 0 22px 22px;padding:34px clamp(22px,5vw,63px) 44px}.article-eyebrow{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:11px;color:var(--muted);font-weight:750}.pill{border-radius:20px;background:var(--accent);color:white;font-size:10px;padding:6px 11px;text-transform:uppercase;letter-spacing:1px;font-weight:800}.article-body h1{font-size:clamp(27px,3.5vw,38px);line-height:1.17;letter-spacing:-1.15px;margin:23px 0 16px}.article-lead{font-family:Georgia,serif;font-size:clamp(18px,2.1vw,23px);font-weight:600;line-height:1.52;color:#39312d;margin:16px 0 28px}.article-body>p{line-height:1.88;font-size:16px;margin:0 0 18px;color:#393430}.block-title{font-size:16px;margin:30px 0 13px;font-weight:800}.timeline{border-left:2px solid #efc5b3;margin:15px 0 20px 6px;padding-left:22px}.timeline-item{margin-bottom:15px;position:relative}.timeline-item:before{content:"";position:absolute;left:-29px;top:3px;width:11px;height:11px;background:var(--accent);border:3px solid var(--surface);border-radius:50%}.timeline-item b{display:block;color:var(--accent);font-size:14px}.timeline-item span{display:block;line-height:1.6;margin-top:4px;font-size:14px}.resource{display:block;border:1px solid var(--line);border-radius:12px;padding:13px 15px;margin:8px 0;font-size:13px;color:var(--accent)}.resource b{display:block}.resource small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.discreet{font-size:12px;color:var(--muted);line-height:1.5}.article-actions{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.article-next{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:22px;margin-top:30px}.photo-credit{font-size:11px;color:var(--muted);line-height:1.5;padding:8px 0}.article-photo{max-width:100%;height:auto;border-radius:13px;display:block;margin:15px 0 6px}.chip-select{display:flex;flex-wrap:wrap;gap:9px}.chip{background:var(--surface);padding:9px 14px;border:1px solid var(--line);border-radius:20px;color:var(--ink);font-size:12px;font-weight:700}.chip.selected{background:var(--accent);color:white;border-color:var(--accent)}.pref{border:1px solid var(--line);padding:16px 18px;border-radius:14px;background:var(--surface);display:flex;justify-content:space-between;gap:15px;align-items:center;margin:10px 0}.pref small{display:block;margin-top:4px;color:var(--muted);line-height:1.5}.toggle{appearance:none;width:42px;height:25px;border-radius:20px;background:#ccc;position:relative;flex-shrink:0;cursor:pointer}.toggle:before{content:"";position:absolute;top:3px;left:3px;width:19px;height:19px;background:white;border-radius:50%;transition:transform .2s}.toggle:checked{background:var(--accent)}.toggle:checked:before{transform:translateX(17px)}.toast{position:fixed;bottom:30px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;border-radius:15px;color:#fff;background:#27211f;padding:13px 19px;z-index:9999;transition:.2s;font-size:13px;box-shadow:0 12px 30px #0003}.toast.visible{opacity:1;transform:translate(-50%,0)}.loading-view{display:grid;place-content:center;justify-items:center;min-height:50vh;color:var(--muted);font-size:13px}.spinner{width:31px;height:31px;border:3px solid #ebdcd2;border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.footer-note{color:var(--muted);font-size:12px;margin-top:38px}.flex{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.hidden{display:none!important}
@media(max-width:1250px){.page{padding:34px 32px 80px}.city-hero{margin:0 -32px 30px;padding:36px 32px}.city-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.search-layout{grid-template-columns:340px minmax(0,1fr)}}
@media(max-width:900px){.rail{width:205px;padding:20px 8px}.workarea{width:calc(100% - 205px);margin-left:205px}.rail-links a{padding:12px 10px}.page{padding:28px 23px 78px}.city-hero{margin:0 -23px 28px;padding:32px 23px}.search-layout{grid-template-columns:1fr}.map-wrap{min-height:420px;order:0}.map-canvas{min-height:420px}.search-list{order:1}.search-list-scroll{max-height:none}.search-layout{display:flex;flex-direction:column}}
@media(max-width:640px){.rail{display:none}.workarea{margin-left:0;width:100%;padding-bottom:76px}.mobile-head{position:sticky;z-index:40;top:0;display:flex;align-items:center;justify-content:space-between;padding:10px 19px;height:60px;background:#fffcf9ed;border-bottom:1px solid var(--line);backdrop-filter:blur(15px)}.mobile-brand{font-family:Georgia,serif;font-weight:900;color:var(--accent);font-size:29px;display:flex;gap:8px;align-items:baseline;line-height:1}.mobile-brand b{font-family:system-ui,sans-serif;font-size:17px;color:var(--ink);letter-spacing:-.5px}.mobile-heading{font-size:12px;font-weight:800;color:var(--muted)}.mobile-nav{display:flex;justify-content:space-around;position:fixed;z-index:100;bottom:0;left:0;right:0;height:calc(66px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--line);background:#fffdfbf7;backdrop-filter:blur(12px)}.mobile-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:68px;font-size:10px;font-weight:650;color:#827971}.mobile-nav a span{font-size:26px;line-height:1.1}.mobile-nav a.active{color:var(--accent)}.page{padding:22px 18px 32px}.page-title{font-size:29px}.home-hero{min-height:285px;border-radius:17px;padding:27px 24px}.home-hero h1{font-size:36px}.home-hero p{font-size:13px}.home-orbit{right:-230px}.stats{gap:7px}.stat{padding:13px 10px}.stat b{font-size:19px}.stat span{font-size:10px}.city-grid{gap:9px}.city-card{min-height:140px;padding:19px 14px}.city-card h3{font-size:15px}.findbar{padding-left:12px}.findbar input{font-size:13px}.findbar button{padding:11px 12px}.city-hero{margin:-22px -18px 26px;padding:32px 24px;height:290px}.city-hero h1{font-size:41px}.category-card{min-height:86px;padding:12px}.category-icon{width:45px;height:45px}.category-card b{font-size:14px}.category-card small{font-size:11px}.map-wrap,.map-canvas{min-height:330px}.story{padding:17px}.story h3{font-size:17px}.story .story-photo{width:70px;height:70px}.article-wrap{margin:0 -18px}.article-hero{border-radius:0;height:245px;padding:22px}.article-hero .hero-text{font-size:25px}.article-body{border:0;border-radius:0;padding:27px 22px 42px}.article-body>p{font-size:15px;line-height:1.75}.article-lead{font-size:20px}.toast{bottom:94px;width:max-content;max-width:90vw}}
@media(prefers-color-scheme:dark){body:not(.force-light){--paper:#171514;--surface:#24211f;--ink:#f4efea;--muted:#a69b93;--line:#3a3430;--accent:#d8784f;--accent-dark:#b85530;--accent-light:#3b2822;--shadow:none;color-scheme:dark}body:not(.force-light) .article-lead,body:not(.force-light) .article-body>p{color:#e4dbd4}body:not(.force-light) .story p{color:#c0b6ad}body:not(.force-light) .map-overlay{background:#24211ff0;color:#fff}body:not(.force-light) .mobile-head,body:not(.force-light) .mobile-nav{background:#24211ff2}}
body.force-dark{--paper:#171514;--surface:#24211f;--ink:#f4efea;--muted:#a69b93;--line:#3a3430;--accent:#d8784f;--accent-dark:#b85530;--accent-light:#3b2822;--shadow:none;color-scheme:dark}body.force-dark .article-lead,body.force-dark .article-body>p{color:#e4dbd4}body.force-dark .story p{color:#c0b6ad}body.force-dark .map-overlay{background:#24211ff0;color:#fff}

/* Visitor suggestions */
.suggestion-cta{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:20px;margin-top:36px;padding:26px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.suggestion-cta h2{font-size:21px;margin:0 0 6px}.suggestion-cta p{margin:0;color:var(--muted);font-size:14px}
.idea-form{max-width:720px;display:grid;gap:20px;margin-top:30px;padding:clamp(18px,4vw,34px);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.idea-form label{display:grid;gap:9px;font-size:14px;font-weight:700}
.idea-form input,.idea-form select,.idea-form textarea{width:100%;border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:12px;padding:13px 14px;font:inherit;font-weight:400}
.idea-form textarea{resize:vertical;line-height:1.5}.idea-form :is(input,textarea,select):focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.idea-form .idea-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.idea-form button[type=submit]{justify-self:start}.idea-form [role=status]{margin:0;min-height:22px;color:var(--accent-dark);font-weight:700}
@media(max-width:700px){.suggestion-cta{align-items:stretch}.suggestion-cta .button{width:100%}}

/* moderation */
.moderation-page{max-width:1080px}.moderation-login,.review-card{padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-top:22px}
.moderation-controls{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin:20px 0}
.moderation-controls label{display:grid;gap:6px;font-size:13px;font-weight:700}
.moderation-controls input,.moderation-controls select,.moderation-controls textarea{font:inherit;border:1px solid var(--line);border-radius:10px;padding:11px;background:var(--paper);color:var(--ink)}
.moderation-controls input{min-width:min(400px,75vw)}.moderation-list{display:grid;gap:14px}.moderation-head{display:flex;justify-content:space-between;gap:12px}.moderation-head small{color:var(--muted)}.review-card h2{font-size:21px}.review-description{white-space:pre-wrap;line-height:1.6}.review-note{flex:1;min-width:220px}.review-note textarea{width:100%}.review-status{color:var(--muted)}

/* Changes since the last visit */
.whats-new-overlay{position:fixed;inset:0;z-index:500;background:#16120fbd;display:grid;place-items:center;padding:20px}
.whats-new-panel{background:var(--surface);color:var(--ink);border-radius:24px;width:min(100%,640px);max-height:min(88vh,820px);padding:clamp(20px,4vw,34px);display:flex;flex-direction:column;box-shadow:0 25px 70px #0004}
.whats-new-top{display:flex;align-items:center;justify-content:space-between;gap:16px}
.whats-new-top button{background:none;color:var(--muted);border:0;font-size:25px}
.whats-new-panel h2{font-family:Georgia,serif;font-size:clamp(26px,4vw,38px);letter-spacing:-.6px;margin:12px 0}
.whats-new-items{overflow:auto;min-height:0;display:grid;gap:8px;margin:18px 0}
.whats-new-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 15px;border:1px solid var(--line);border-radius:13px;background:var(--paper)}
.whats-new-item:hover{border-color:var(--accent)}
.whats-new-item b{display:block}.whats-new-item small{display:block;font-size:12px;color:var(--muted);margin-top:5px}
.whats-new-actions{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap}
.whats-new-hint{font-size:11px;color:var(--muted);margin:13px 0 0}
@media(max-width:600px){.whats-new-overlay{padding:8px}.whats-new-panel{max-height:94vh}.whats-new-actions .button{flex:1}}

.search-mode{display:flex;gap:12px;flex-wrap:wrap;margin:17px 0}.search-mode label{display:inline-flex;gap:8px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 15px;font-size:14px;font-weight:700;cursor:pointer}.search-mode input{accent-color:var(--accent)}

/* Responsive pass: desktop, tablet, and narrow mobile */
html{min-width:0;overflow-x:clip}
body,.shell,.workarea,#app{min-width:0;max-width:100%}
.workarea,#app,.page,.search-layout,.search-list,.category-body,.row-body,.article-wrap,.article-body{min-width:0}
.page{width:100%;max-width:1260px}
.page img,.article-body img,.article-photo{max-width:100%;height:auto}
.page h1,.page h2,.page h3,.page p,.category-body,.row-body,.story>div,.whats-new-item span{overflow-wrap:anywhere}
.flex>*{max-width:100%}
.button,.chip{min-height:44px}
input,textarea,select{max-width:100%;min-width:0}
.findbar{min-width:0}
.findbar input{min-width:0;flex:1}
.search-list-scroll{overscroll-behavior:contain}
.list-row .row-body{min-width:0;flex:1}
.story>div{min-width:0}
.article-body a,.review-description,.resource{overflow-wrap:anywhere}
.article-next>*{min-width:0;flex:1}
.map-canvas,.map-wrap{width:100%}
.moderation-controls>*{min-width:0}
.whats-new-overlay{box-sizing:border-box}
.whats-new-panel{min-width:0;max-width:100%}
.whats-new-items{overscroll-behavior:contain}
@media(max-width:1100px){
  .city-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .search-layout{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:760px){
  .rail{display:none}
  .workarea{margin-left:0;width:100%;padding-bottom:calc(80px + env(safe-area-inset-bottom))}
  .mobile-head{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 18px;height:60px;background:var(--surface);border-bottom:1px solid var(--line)}
  .mobile-brand{font-family:Georgia,serif;font-weight:900;color:var(--accent);font-size:29px;display:flex;gap:8px;align-items:baseline;line-height:1;white-space:nowrap}
  .mobile-brand b{font-family:system-ui,sans-serif;font-size:17px;color:var(--ink)}
  .mobile-heading{font-size:12px;font-weight:800;color:var(--muted);text-align:right;min-width:0}
  .mobile-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:fixed;left:0;right:0;bottom:0;z-index:100;height:calc(66px + env(safe-area-inset-bottom));padding:0 max(4px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(4px,env(safe-area-inset-left));border-top:1px solid var(--line);background:var(--surface);box-shadow:0 -2px 14px #0001}
  .mobile-nav a{display:flex;min-width:0;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:clamp(9px,2.4vw,11px);line-height:1.1;font-weight:700;white-space:nowrap;color:var(--muted);padding:5px 0}
  .mobile-nav a span{font-size:23px;line-height:1}
  .mobile-nav a.active{color:var(--accent)}
  .page{padding:24px clamp(12px,4vw,26px) 38px}
  .search-layout{display:flex;flex-direction:column;min-height:0;gap:16px}
  .search-list{order:0}
  .map-wrap{order:1;min-height:320px;height:clamp(320px,52vh,480px)}
  .map-canvas{height:100%;min-height:320px}
  .search-list-scroll{max-height:none;overflow:visible}
  .city-hero{margin:0 calc(-1*clamp(12px,4vw,26px)) 25px;padding:30px clamp(12px,4vw,26px);height:300px}
  .city-hero h1{font-size:clamp(30px,8vw,48px)}
  .city-hero .buttons{flex-wrap:wrap}
  .article-wrap{margin:0 calc(-1*clamp(12px,4vw,26px))}
  .article-hero{border-radius:0}
  .article-body{border:0;border-radius:0}
  .moderation-page{max-width:100%}
  .moderation-controls{align-items:stretch}
  .moderation-controls label,.moderation-controls button{max-width:100%}
}
@media(max-width:480px){
  .page{padding:18px 14px 28px}
  .page-title{font-size:clamp(26px,7.5vw,32px)}
  .home-hero{min-height:0;padding:28px 20px;border-radius:16px}
  .home-hero h1{font-size:clamp(33px,10vw,45px)}
  .home-hero .flex{align-items:stretch}
  .home-hero .button{flex:1 1 100%;width:100%}
  .stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .stat{padding:10px 7px;min-width:0}
  .stat b{font-size:clamp(16px,4.8vw,22px)}
  .stat span{font-size:10px;line-height:1.25}
  .city-grid{grid-template-columns:1fr;gap:10px}
  .city-card{min-height:94px;padding:15px 16px;display:flex;flex-direction:row;justify-content:flex-start;align-items:center;gap:15px}
  .city-card .large-icon{flex:0 0 32px}
  .city-card>div{min-width:0;padding-right:18px}
  .city-card .arrow{right:13px;bottom:auto}
  .findbar{display:grid;grid-template-columns:24px minmax(0,1fr);column-gap:8px;row-gap:4px;padding:10px 12px}
  .findbar>span{grid-column:1;grid-row:1}
  .findbar input{grid-column:2;grid-row:1;padding:12px 0;font-size:16px;width:100%}
  .findbar button{grid-column:1/-1;grid-row:2;width:100%;white-space:normal}
  .search-suggestions{top:calc(100% + 4px)}
  .search-mode{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .search-mode label{padding:11px 9px;justify-content:center;text-align:center;min-width:0;font-size:12px}
  .search-list .list-row{padding:12px;gap:9px}
  .list-row .mini{width:34px;height:34px;flex-shrink:0}
  .section-heading{align-items:flex-start;gap:9px}
  .section-heading .section-title{font-size:18px}
  .city-hero{margin:-18px -14px 20px;height:260px;padding:24px 17px}
  .city-hero h1{font-size:clamp(28px,9vw,43px)}
  .city-hero .button{padding:10px 12px;font-size:12px}
  .article-wrap{margin:0 -14px}
  .article-hero{height:220px;padding:20px 16px}
  .article-hero .hero-text{font-size:clamp(22px,6vw,28px)}
  .article-body{padding:22px 16px 34px}
  .article-body h1{font-size:clamp(25px,7vw,34px)}
  .article-body>p{font-size:15px;line-height:1.7}
  .article-next{flex-direction:column;gap:12px}
  .story{padding:14px;gap:10px}
  .story .story-photo{width:65px;height:65px}
  .story h3{font-size:16px}
  .category-card{gap:9px}
  .category-icon{width:39px;height:39px;flex-shrink:0}
  .pref{padding:13px;gap:10px}
  .pref>span{min-width:0}
  .idea-form{padding:17px;gap:17px}
  .idea-form button[type=submit]{width:100%}
  .suggestion-cta{padding:18px}
  .moderation-login,.review-card{padding:16px}
  .moderation-controls{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
  .moderation-controls input,.moderation-controls select,.moderation-controls textarea{width:100%;min-width:0}
  .moderation-head{flex-wrap:wrap}
  .whats-new-overlay{padding:0;align-items:end}
  .whats-new-panel{width:100%;max-height:calc(100dvh - 18px);border-radius:20px 20px 0 0;padding:20px 16px calc(18px + env(safe-area-inset-bottom))}
  .whats-new-actions{flex-direction:column}
  .whats-new-actions button{width:100%}
  .toast{max-width:calc(100vw - 24px);white-space:normal;text-align:center}
}
@media(max-width:350px){
  .mobile-nav a{font-size:9px}
  .mobile-nav a span{font-size:21px}
  .mobile-brand b{font-size:15px}
  .mobile-heading{font-size:11px}
  .stats{grid-template-columns:1fr}
  .stat{display:flex;align-items:center;justify-content:space-between;gap:10px}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}
}


/* Mobile width hardening — iOS Safari */
@media screen and (max-width:760px){
  html,body{
    width:100%;
    max-width:100%;
    min-width:0;
    overflow-x:hidden;
  }
  .shell{
    display:block;
    width:100%;
    max-width:100%;
    min-width:0;
    overflow-x:hidden;
  }
  .rail{
    display:none!important;
  }
  .workarea{
    margin-left:0!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    overflow-x:hidden;
  }
  #app{
    display:block;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    overflow-x:hidden;
  }
  .page{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }
  .city-page{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
  }
  .city-hero{
    width:auto;
    max-width:none;
  }
  .category-list,
  .category-card{
    width:100%;
    max-width:100%;
    min-width:0;
  }
  .category-card{
    overflow:hidden;
  }
  .category-card .category-body{
    min-width:0;
    overflow:hidden;
  }
  .category-card .count,
  .category-card .chevron,
  .category-icon{
    flex:0 0 auto;
  }
  .category-card small{
    max-width:100%;
  }
  .mobile-head,
  .mobile-nav{
    width:100%;
    max-width:100%;
  }
}


/* Promenade GPS + visée AR */
.nearby-page{max-width:920px}
.nearby-start{display:flex;align-items:center;justify-content:space-between;gap:22px;margin:28px 0;padding:24px;border:1px solid var(--line);border-radius:20px;background:var(--surface)}
.nearby-start b{display:block;font-size:18px;margin-bottom:5px}.nearby-start p{margin:0;color:var(--muted);font-size:13px;line-height:1.55}
.nearby-live{display:grid;gap:16px;margin-top:26px}
.nearby-status{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 19px;border:1px solid var(--line);border-radius:18px;background:var(--surface)}
.nearby-status>div:first-child{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:9px;min-width:0}
.nearby-status b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nearby-status small{grid-column:2;color:var(--muted);margin-top:2px}
.nearby-pulse{width:11px;height:11px;border-radius:50%;background:#37a463;box-shadow:0 0 0 0 #37a46366;animation:nearbyPulse 1.8s infinite;grid-row:1/3}
@keyframes nearbyPulse{70%{box-shadow:0 0 0 9px #37a46300}}
.nearby-heading{font-size:14px;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--muted)}
.nearby-focus{display:flex;align-items:center;gap:15px;padding:18px 20px;border-radius:18px;background:var(--accent-light);border:1px solid color-mix(in srgb,var(--accent) 24%,var(--line))}
.nearby-focus.is-here{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 15%,var(--surface))}
.nearby-focus-arrow{display:grid;place-items:center;flex:0 0 48px;height:48px;border-radius:50%;background:var(--surface);font-size:27px;font-weight:800}
.nearby-focus div{min-width:0}.nearby-focus small{display:block;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px}.nearby-focus b{display:block;font-size:15px;line-height:1.35}
.nearby-ar-button{width:100%;min-height:52px;font-size:15px}
.nearby-hint{margin:0;color:var(--muted);font-size:12px;text-align:center}
.nearby-list{display:grid;gap:9px}
.nearby-row{display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 15px;border:1px solid var(--line);border-radius:15px;background:var(--surface);transition:border-color .18s,transform .18s}
.nearby-row:hover{border-color:var(--accent);transform:translateY(-1px)}
.nearby-row.nearby-now{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--surface))}
.nearby-arrow{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--accent-light);font-size:22px;font-weight:900;color:var(--accent-dark)}
.nearby-copy{min-width:0}.nearby-copy b{display:block;font-size:14px;line-height:1.35}.nearby-copy small{display:block;color:var(--muted);font-size:12px;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nearby-copy em{display:block;color:var(--accent-dark);font-size:11px;font-style:normal;font-weight:700;margin-top:5px}
body.ar-open{overflow:hidden}
.ar-overlay{position:fixed;inset:0;z-index:10000;background:#050403;color:#fff;overflow:hidden}
.ar-overlay video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#050403}
.ar-shade{position:absolute;inset:0;background:linear-gradient(#0008 0,#0001 24%,#0000 62%,#0008 100%);pointer-events:none}
.ar-top{position:absolute;z-index:5;left:max(14px,env(safe-area-inset-left));right:max(14px,env(safe-area-inset-right));top:max(14px,env(safe-area-inset-top));display:grid;grid-template-columns:48px 1fr 48px;align-items:center;gap:10px;text-align:center}
.ar-top button{width:46px;height:46px;border:0;border-radius:50%;background:#171412cc;color:#fff;font-size:31px;line-height:1;backdrop-filter:blur(12px)}
.ar-top div{justify-self:center;max-width:min(70vw,420px);padding:9px 15px;border-radius:999px;background:#171412b8;backdrop-filter:blur(12px)}
.ar-top b,.ar-top small{display:block}.ar-top b{font-size:14px}.ar-top small{font-size:10px;color:#ddd;margin-top:2px}
.ar-stage{position:absolute;inset:0;z-index:3;pointer-events:none}
.ar-marker{position:absolute;transform:translate(-50%,-50%);width:min(170px,42vw);padding:10px 11px;border:1px solid #ffffff66;border-radius:14px;background:#171412d9;color:#fff;text-align:center;backdrop-filter:blur(13px);box-shadow:0 10px 28px #0005;pointer-events:auto}
.ar-marker span{display:block;font-size:20px;color:#ffd7c3}.ar-marker b{display:block;font-size:12px;line-height:1.25;margin:3px 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ar-marker small{display:block;font-size:10px;color:#ddd}
.ar-marker-here{border-color:#fff;background:color-mix(in srgb,var(--accent) 78%,#171412);transform:translate(-50%,-50%) scale(1.04)}
.ar-message{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);width:min(84vw,420px);padding:14px 18px;border-radius:14px;background:#171412bb;text-align:center;font-size:13px;backdrop-filter:blur(12px)}
.ar-side{position:absolute;z-index:4;top:50%;transform:translateY(-50%);min-width:58px;padding:10px 8px;border-radius:999px;background:#171412b8;backdrop-filter:blur(12px);font-size:12px;text-align:center;pointer-events:none}
.ar-side-left{left:max(8px,env(safe-area-inset-left))}.ar-side-right{right:max(8px,env(safe-area-inset-right))}
.ar-reticle{position:absolute;z-index:4;left:50%;bottom:max(24px,calc(env(safe-area-inset-bottom) + 18px));transform:translateX(-50%);display:grid;justify-items:center;gap:6px;pointer-events:none}
.ar-reticle span{width:34px;height:34px;border:2px solid #fff;border-radius:50%;position:relative;box-shadow:0 0 0 1px #0006}.ar-reticle span:before,.ar-reticle span:after{content:"";position:absolute;background:#fff}.ar-reticle span:before{left:15px;top:-8px;width:2px;height:48px}.ar-reticle span:after{left:-8px;top:15px;width:48px;height:2px}.ar-reticle small{padding:7px 11px;border-radius:999px;background:#171412b8;font-size:10px;backdrop-filter:blur(10px)}
@media(max-width:760px){
  .mobile-nav{grid-template-columns:repeat(6,minmax(0,1fr))}
  .mobile-nav a{font-size:clamp(8px,2.15vw,10px)}
  .mobile-nav a span{font-size:21px}
  .nearby-start{align-items:stretch;flex-direction:column;padding:18px}
  .nearby-start .button{width:100%}
  .nearby-status{padding:14px}
  .nearby-focus{padding:15px}
}
@media(max-width:380px){
  .mobile-nav a{font-size:8px}
  .mobile-nav a span{font-size:19px}
  .nearby-row{grid-template-columns:40px minmax(0,1fr) auto;padding:12px 10px;gap:9px}
  .nearby-arrow{width:38px;height:38px}
  .ar-marker{width:150px}
}

/* Correctifs interactions AR iPhone */
.ar-marker{font:inherit;cursor:pointer;appearance:none;-webkit-appearance:none}
.ar-side{pointer-events:auto;background:transparent;padding:0;min-width:0}
.ar-side button{appearance:none;-webkit-appearance:none;border:1px solid #ffffff55;background:#171412c9;color:#fff;border-radius:14px;padding:9px 8px;display:grid;gap:2px;max-width:128px;backdrop-filter:blur(12px);font:inherit}
.ar-side button span{display:block;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:700}
.ar-side button b{font-size:11px}
.ar-detail{position:absolute;z-index:8;left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:max(20px,calc(env(safe-area-inset-bottom) + 12px));max-width:560px;margin:auto;padding:18px 18px 16px;border:1px solid #ffffff55;border-radius:20px;background:#171412ef;color:#fff;box-shadow:0 18px 50px #0008;backdrop-filter:blur(18px)}
.ar-detail h2{font-family:Georgia,serif;font-size:22px;line-height:1.15;margin:7px 34px 8px 0;color:#fff}
.ar-detail p{font-size:13px;line-height:1.55;margin:0 0 10px;color:#f1eae5}
.ar-detail>small{display:block;font-size:11px;color:#ddd}
.ar-detail>em{display:block;font-style:normal;font-size:11px;color:#ffd8c5;margin:8px 0 13px}
.ar-detail .button{width:100%}
.ar-detail-close{position:absolute;right:10px;top:9px;width:36px;height:36px;border:0;border-radius:50%;background:#ffffff19;color:#fff;font-size:24px}
.ar-detail:not(.hidden)~.ar-reticle{opacity:.2}


.nearby-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:10px}
.nearby-actions .button{width:100%}
.ar-stage{pointer-events:auto}
.ar-message{pointer-events:none}
.ar-compass{position:absolute;z-index:7;left:50%;bottom:max(88px,calc(env(safe-area-inset-bottom) + 82px));transform:translateX(-50%);border:1px solid #ffffff66;background:#171412df;color:#fff;border-radius:999px;padding:11px 16px;font:inherit;font-size:12px;font-weight:800;backdrop-filter:blur(14px);box-shadow:0 8px 24px #0005}
.ar-marker{border:1px solid #ffffff66}
.ar-marker:active{transform:translate(-50%,-50%) scale(.97)}
@media(max-width:560px){.nearby-actions{grid-template-columns:1fr}}

/* Expérience AR iPhone : caméra sans GPS et fiches tactiles de secours */
.nearby-start-actions{display:flex;flex-wrap:wrap;gap:9px}
.nearby-retry{justify-self:start}
.ar-fallback{position:absolute;left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right));bottom:max(151px,calc(env(safe-area-inset-bottom) + 142px));display:grid;gap:8px;max-height:36vh;overflow-y:auto;overscroll-behavior:contain;pointer-events:auto}
.ar-fallback button{border:1px solid #ffffff66;border-radius:12px;padding:12px;text-align:left;background:#171412db;color:white;display:flex;justify-content:space-between;align-items:center;gap:12px;font:inherit}
.ar-fallback button b{font-size:12px;font-weight:700}
.ar-fallback button small{font-size:11px;color:#f2d1c4;white-space:nowrap}
.ar-marker{touch-action:manipulation}
@media(max-width:760px){.nearby-start-actions{display:grid;grid-template-columns:1fr}.nearby-start-actions .button{width:100%}}

/* AR : hiérarchie par proximité, et fenêtre de lecture toujours tactile */
.ar-marker{width:min(180px,43vw);max-width:180px;min-height:0;padding:11px 12px;z-index:3}
.ar-marker-distant{width:min(130px,33vw);padding:8px 9px;opacity:.82;z-index:2}
.ar-marker-very-distant{width:min(106px,27vw);padding:6px 7px;opacity:.68;z-index:1}
.ar-marker-distant b{font-size:11px;-webkit-line-clamp:2}
.ar-marker-very-distant b{font-size:10px;-webkit-line-clamp:1}
.ar-marker-distant span{font-size:14px}
.ar-marker-very-distant span{font-size:11px}
.ar-detail:not(.hidden){display:block;pointer-events:auto;z-index:20}
.ar-detail.hidden{display:none!important}
.ar-detail button{touch-action:manipulation;pointer-events:auto}

/* Démarrage guidé de la visite AR */
.nearby-start{align-items:stretch;gap:18px}
.nearby-permissions{display:grid;gap:11px;min-width:0}
.nearby-permissions>b{font-size:18px}
.nearby-permissions>p{margin:0;line-height:1.5}
.nearby-permission{display:flex;gap:12px;align-items:center}
.nearby-permission>span{flex:0 0 38px;height:38px;display:grid;place-items:center;border-radius:12px;background:var(--accent-light);color:var(--accent-dark);font-size:20px}
.nearby-permission strong,.nearby-permission small{display:block}
.nearby-permission strong{font-size:13px}
.nearby-permission small{font-size:12px;color:var(--muted);line-height:1.4}
.nearby-permission-note{font-size:12px;color:var(--muted)}
.nearby-start-ar{width:100%;min-height:54px;white-space:normal}

/* AR - mode balade : caméra + carte GPS synchronisée */
.ar-overlay{display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden}
.ar-camera-pane{position:relative;flex:0 0 56%;height:56%;min-height:0;overflow:hidden;background:#050403}
.ar-map-pane{position:relative;display:flex;flex:1 1 auto;flex-direction:column;min-height:0;background:#f5f4f0;color:#2d2925;border-top:2px solid #f0ddd0}
.ar-overlay .ar-camera-pane video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ar-map-head{display:flex;flex:0 0 49px;align-items:center;justify-content:space-between;gap:12px;padding:7px 12px 7px 15px;background:#fcfaf8;border-bottom:1px solid #dcd4ca;z-index:2}
.ar-map-head>div{display:grid;min-width:0;gap:2px}
.ar-map-head b{color:#2d2925;font-size:13px;line-height:1.2}
.ar-map-head small{color:#756d64;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ar-map-head button{flex:none;background:#fff;border:1px solid #d5c7b9;border-radius:20px;color:#9f4c2c;padding:8px 11px;font-size:11px;font-weight:800;cursor:pointer;touch-action:manipulation}
.ar-mini-map{position:relative;flex:1 1 auto;min-height:0;width:100%;z-index:1}
.ar-mini-map.leaflet-container{background:#f5f2eb;color:#252422}
.ar-mini-map .leaflet-control-attribution{font-size:9px}
.ar-map-fallback{position:absolute;inset:49px 0 0;display:grid;place-items:center;padding:24px;text-align:center;color:#6b625b;font-size:13px}
.ar-map-user-wrap,.ar-map-poi-wrap{border:0!important;background:transparent!important}
.ar-map-user-bearing{position:absolute;left:5px;top:0;width:28px;height:28px;display:grid;place-items:center;font-size:18px;color:#267ed3;text-shadow:0 1px 2px white;transform-origin:50% 75%;transition:transform .15s linear;pointer-events:none}
.ar-map-user-bearing.is-unknown{opacity:.35}
.ar-map-user-dot{position:absolute;left:12px;top:12px;width:14px;height:14px;border:3px solid white;background:#147bce;border-radius:50%;box-shadow:0 1px 8px #18568a99;pointer-events:none}
.ar-map-poi{display:grid;place-items:center;width:31px;height:31px;border:2px solid white;border-radius:50%;background:#ac512b;color:#fff;font-size:13px;font-weight:900;box-shadow:0 2px 9px #0005;cursor:pointer}
.ar-reticle{bottom:15px}
.ar-reticle small{white-space:nowrap;max-width:94vw;font-size:10px}
.ar-compass{bottom:68px}
.ar-fallback{bottom:60px;max-height:40%}
.ar-detail{bottom:max(12px,env(safe-area-inset-bottom));max-height:min(63dvh,570px);overflow-y:auto;overscroll-behavior:contain;z-index:30}
.ar-more-spot{width:100%;background:#ffffff13;color:#fff;border:1px solid #ffffff55;border-radius:11px;padding:11px;margin:5px 0 11px;font-size:12px;font-weight:700}
.nearby-radius-info{font-size:12px;color:var(--muted);padding:0 4px;margin:0 0 3px}
@media (max-width:440px){
  .ar-camera-pane{flex-basis:54%;height:54%}
  .ar-top b{font-size:12px}.ar-top small{font-size:9px}
  .ar-marker{width:min(160px,40vw);padding:8px}
  .ar-marker-distant{width:min(117px,30vw)}
  .ar-marker-very-distant{width:min(95px,25vw)}
  .ar-marker span{font-size:14px}
}
@media (orientation:landscape) and (max-height:550px){
  .ar-overlay{flex-direction:row}
  .ar-camera-pane{height:100%;flex:1 1 58%}
  .ar-map-pane{height:100%;flex:1 1 42%;border-top:0;border-left:2px solid #f0ddd0}
  .ar-top{top:10px}
  .ar-detail{left:auto;right:12px;width:min(390px,70vw);bottom:12px;max-height:calc(100dvh - 24px)}
}

.ar-map-pane{padding-bottom:env(safe-area-inset-bottom);box-sizing:border-box}

/* Confinement Leaflet : aucune tuile ne doit sortir de la demi-carte. */
.ar-overlay .ar-map-pane{overflow:hidden;isolation:isolate;contain:layout paint;}
.ar-overlay .ar-mini-map{overflow:hidden!important;isolation:isolate;contain:layout paint;max-height:100%;}
.ar-overlay .ar-mini-map.leaflet-container{overflow:hidden!important;position:relative;}
.ar-gps-warning{position:absolute;z-index:9;left:12px;right:12px;top:calc(67px + env(safe-area-inset-top));margin:0 auto;max-width:480px;padding:14px 14px 12px;border-radius:14px;border:1px solid #ffddb6;background:#211812ec;color:#fff;box-shadow:0 8px 25px #0006;text-align:left;backdrop-filter:blur(12px)}
.ar-gps-warning strong,.ar-gps-warning span{display:block}
.ar-gps-warning strong{font-size:14px;line-height:1.3;margin-bottom:4px}
.ar-gps-warning span{font-size:12px;line-height:1.45}
.ar-gps-warning button{display:block;margin-top:10px;padding:8px 12px;background:#fff;border:0;border-radius:10px;color:#8c391c;font-size:12px;font-weight:800}
.ar-gps-warning.hidden{display:none!important}
.ar-map-head .ar-map-accuracy-warning{color:#a23a13;font-weight:700}
@media (orientation:landscape) and (max-height:550px){.ar-gps-warning{top:65px;left:10px;right:10px}}

.ar-map-user-approximate .ar-map-user-dot{background:#777;border-color:#fff;box-shadow:0 0 0 3px #ffffff55}
.ar-map-user-approximate .ar-map-user-bearing{opacity:.32}
.ar-overlay .ar-mini-map .leaflet-tile{max-width:none!important;max-height:none!important}

/* Exploration libre de la carte et itineraires pedestres */
.ar-map-explore-note{position:absolute;z-index:500;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));margin:0 auto;max-width:390px;padding:7px 12px;border-radius:999px;background:#fffffff0;color:#413a33;font-size:11px;line-height:1.35;text-align:center;box-shadow:0 2px 12px #0002;pointer-events:none}
.ar-map-poi-cluster{background:#604da0}
.ar-detail .ar-directions{margin-top:12px;padding-top:12px;border-top:1px solid #ffffff33}
.ar-detail .ar-directions>b{display:block;margin-bottom:9px;color:#fff;font-size:13px}
.ar-detail .ar-directions>div{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.ar-detail .ar-directions a{display:grid;place-items:center;padding:11px 8px;border:1px solid #ffffff66;border-radius:11px;background:#ffffff18;color:#fff;font-weight:750;font-size:12px;min-height:40px;text-align:center;text-decoration:none;touch-action:manipulation}
.ar-detail .ar-directions a:hover,.ar-detail .ar-directions a:focus-visible{background:#ffffff33}
.ar-detail .ar-directions small{display:block;color:#d7cec8;margin-top:8px;font-size:10px;line-height:1.45}
@media(max-width:380px){.ar-map-explore-note{left:7px;right:7px;font-size:10px}.ar-detail .ar-directions a{padding:9px 5px;font-size:11px}}


/* Contrôle élégant : un seul petit curseur, deux vues, plein écran réversible. */
.ar-overlay{--ar-splitter-size:24px}
.ar-overlay .ar-camera-pane{flex:0 0 var(--ar-camera-extent,54%);height:auto;width:100%;min-height:0;min-width:0;position:relative}
.ar-overlay .ar-map-pane{flex:1 1 0px;height:auto;width:100%;min-height:0;min-width:0}
.ar-overlay .ar-splitter{position:relative;display:grid;place-items:center;flex:0 0 var(--ar-splitter-size);height:var(--ar-splitter-size);width:100%;background:linear-gradient(#211e1bcc,#171513ed);z-index:25;box-shadow:0 1px 6px #0004}
.ar-overlay .ar-split-grip{display:grid;place-items:center;width:92px;height:100%;min-width:72px;min-height:24px;max-width:none;border:0;background:transparent;border-radius:20px;cursor:ns-resize;touch-action:none;user-select:none;-webkit-user-select:none;outline-offset:-2px}
.ar-overlay .ar-split-grip-lines{display:block;width:43px;height:5px;border:0;border-radius:99px;background:#ece9e5;box-shadow:0 1px 3px #0008;opacity:.88;transition:width .15s,background .15s}
.ar-overlay .ar-split-grip.is-dragging .ar-split-grip-lines{width:58px;background:#ffdbbc;opacity:1}
.ar-overlay .ar-split-grip:focus-visible{outline:2px solid #f4ab79}
.ar-overlay .ar-splitter:before,.ar-overlay .ar-splitter:after{content:'';position:absolute;top:50%;height:1px;width:calc(50% - 54px);background:#ffffff16}
.ar-overlay .ar-splitter:before{left:0}
.ar-overlay .ar-splitter:after{right:0}
/* Bouton d'agrandissement discret. En plein écran, il devient une croix. */
.ar-overlay .ar-fullscreen-button{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;min-width:38px;min-height:38px;border:1px solid #ffffff5c;border-radius:12px;background:#1a1715bb;color:#fff;font:inherit;font-size:23px;line-height:1;cursor:pointer;touch-action:manipulation;box-shadow:0 2px 9px #0003}
.ar-overlay .ar-fullscreen-button span{line-height:1}
.ar-overlay .ar-fullscreen-button:focus-visible{outline:3px solid #f4ab79;outline-offset:2px}
.ar-overlay .ar-top #ar-camera-fullscreen{justify-self:end;border-radius:50%;width:42px;height:42px;min-width:42px;min-height:42px;font-size:25px}
.ar-overlay .ar-map-head #ar-map-fullscreen{border-color:#d7c8bc;color:#874b32;background:#fff;box-shadow:0 1px 4px #0001}
.ar-overlay .ar-map-head #ar-map-recenter{margin-left:auto}
.ar-overlay .ar-map-head>div{flex:1 1 auto}
.ar-overlay .ar-map-head #ar-map-fullscreen{margin-left:2px}
/* Le navigateur reste dans la même page ; l'icône X est toujours visible. */
.ar-overlay[data-fullscreen=camera] .ar-splitter,
.ar-overlay[data-fullscreen=map] .ar-splitter{display:none!important}
.ar-overlay[data-fullscreen=camera] .ar-map-pane{display:none!important}
.ar-overlay[data-fullscreen=map] .ar-camera-pane{display:none!important}
.ar-overlay[data-fullscreen=camera] .ar-camera-pane{display:block!important;flex:1 1 auto!important;width:100%!important;height:100%!important;max-height:100%;max-width:100%}
.ar-overlay[data-fullscreen=map] .ar-map-pane{display:flex!important;flex:1 1 auto!important;width:100%!important;height:100%!important;max-height:100%;max-width:100%}
.ar-overlay[data-fullscreen=map] .ar-map-head{padding-top:max(7px,env(safe-area-inset-top));flex-basis:auto;min-height:calc(49px + env(safe-area-inset-top));box-sizing:border-box}
.ar-overlay[data-fullscreen] .ar-fullscreen-button{font-size:28px}
.ar-overlay[data-fullscreen=map] .ar-detail{z-index:40}
/* Repères AR : un vrai point et seulement quelques mots, jamais de carte géante. */
.ar-stage{pointer-events:none}
.ar-overlay .ar-marker{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:min(116px,29vw);max-width:116px;min-height:44px;padding:2px 3px;border:0;border-radius:9px;background:none;color:white;box-shadow:none;backdrop-filter:none;transform:translate(-50%,-50%);pointer-events:auto;touch-action:manipulation;text-shadow:0 1px 4px #000;appearance:none;-webkit-appearance:none}
.ar-overlay .ar-marker span.ar-marker-dot{display:grid;place-items:center;width:24px;height:24px;min-height:24px;flex:0 0 24px;border-radius:50%;border:2px solid #fff;background:#bf6b45;box-shadow:0 2px 8px #0007,0 0 0 3px #0004}
.ar-overlay .ar-marker span.ar-marker-dot:after{content:'';width:7px;height:7px;background:#fff;border-radius:50%}
.ar-overlay .ar-marker b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:110px;max-height:33px;margin:1px 0 0;padding:3px 6px;border:1px solid #ffffff20;border-radius:8px;background:#181514d9;font-size:10px;line-height:1.22;font-weight:750;text-align:center;box-shadow:0 1px 6px #0004}
.ar-overlay .ar-marker small{display:none}
.ar-overlay .ar-marker-here span.ar-marker-dot{background:#e59b3e;border-color:#fff}
.ar-overlay .ar-marker-distant{opacity:.83;width:min(105px,27vw);padding:1px}
.ar-overlay .ar-marker-very-distant{opacity:.67;width:min(96px,25vw);padding:1px}
.ar-overlay .ar-marker-distant b{font-size:9px}
.ar-overlay .ar-marker-very-distant b{font-size:9px;-webkit-line-clamp:1}
.ar-overlay .ar-marker:active,.ar-overlay .ar-marker-here{transform:translate(-50%,-50%)}
.ar-overlay .ar-marker:focus-visible span.ar-marker-dot{outline:3px solid #f8d4b7;outline-offset:3px}
.ar-overlay .ar-side{background:none;border:0;max-width:110px}
.ar-overlay .ar-side button{display:flex;align-items:center;gap:5px;max-width:106px;min-width:0;padding:6px 7px;background:#191614df;border:1px solid #ffffff35;border-radius:14px;box-shadow:none}
.ar-overlay .ar-side button span{font-size:10px;line-height:1.2;white-space:normal;max-height:25px;overflow:hidden}
.ar-overlay .ar-side button b{display:none}
.ar-overlay .ar-fallback button b{font-size:11px;line-height:1.3}
@media(max-width:420px){
  .ar-overlay .ar-marker{width:min(106px,28vw)}
  .ar-overlay .ar-marker b{max-width:102px;font-size:9px}
  .ar-overlay .ar-map-head{gap:5px;padding:6px 8px}
  .ar-overlay .ar-map-head #ar-map-recenter{font-size:10px;padding:7px}
  .ar-overlay .ar-map-head #ar-map-fullscreen{width:34px;height:34px;min-width:34px;min-height:34px}
}
@media(orientation:landscape) and (max-height:550px){
  .ar-overlay{--ar-splitter-size:24px}
  .ar-overlay .ar-camera-pane{height:100%;width:auto;flex:0 0 var(--ar-camera-extent,58%)}
  .ar-overlay .ar-map-pane{height:100%;width:auto;flex:1 1 0px}
  .ar-overlay .ar-splitter{width:var(--ar-splitter-size);height:100%;flex:0 0 var(--ar-splitter-size)}
  .ar-overlay .ar-split-grip{width:100%;height:92px;min-width:24px;min-height:72px;cursor:ew-resize}
  .ar-overlay .ar-split-grip-lines{width:5px;height:43px}
  .ar-overlay .ar-split-grip.is-dragging .ar-split-grip-lines{width:5px;height:58px}
  .ar-overlay .ar-splitter:before,.ar-overlay .ar-splitter:after{height:calc(50% - 54px);width:1px;left:50%;top:auto}
  .ar-overlay .ar-splitter:before{top:0}
  .ar-overlay .ar-splitter:after{bottom:0}
}

/* Même présentation ponctuelle si le navigateur n'autorise pas la boussole. */
.ar-overlay .ar-fallback{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:7px;left:10px;right:10px;bottom:78px;max-height:74px;padding:2px 2px 6px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}
.ar-overlay .ar-fallback button{flex:0 0 auto;max-width:130px;min-width:85px;min-height:45px;padding:7px 8px;gap:6px;border:1px solid #ffffff38;border-radius:14px;display:flex;align-items:center;justify-content:flex-start;text-align:left}
.ar-overlay .ar-fallback button b{font-size:10px;max-width:98px;line-height:1.2}
.ar-overlay .ar-fallback .ar-mini-dot{display:inline-block;flex:none;width:12px;height:12px;border:2px solid #fff;border-radius:50%;background:#bd6c4c;box-shadow:0 1px 5px #0005}

/* UI 2026.10 — fiche d'anecdote compacte, lisible et sans collision avec la poignée */
.ar-overlay .ar-detail-backdrop{position:absolute;inset:0;z-index:80;background:rgba(13,11,10,.30);backdrop-filter:blur(1.2px);-webkit-backdrop-filter:blur(1.2px);touch-action:manipulation}
.ar-overlay .ar-detail-backdrop.hidden{display:none!important}
.ar-overlay .ar-detail:not(.hidden){display:flex;flex-direction:column}
.ar-overlay .ar-detail{position:absolute;z-index:90;left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));width:auto;max-width:440px;max-height:min(68dvh,565px);margin:0 auto;padding:0;overflow:hidden;min-height:0;color:#fcf7f3;border:1px solid #ffffff32;border-radius:21px;background:rgba(32,29,27,.97);box-shadow:0 18px 64px #0807069c,0 0 0 1px #0002;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);overscroll-behavior:contain}
.ar-overlay .ar-detail-handle{flex:0 0 auto;width:37px;height:4px;border-radius:20px;background:#ffffff4d;margin:9px auto 5px}
.ar-overlay .ar-detail-header{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:40px;flex:0 0 auto;padding:0 12px 8px 18px}
.ar-overlay .ar-detail-location{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#e5c6b2;font-size:11px;font-weight:650;line-height:1.4;letter-spacing:.015em}
.ar-overlay .ar-detail-close{position:static;flex:0 0 38px;width:38px;height:38px;border:1px solid #ffffff20;border-radius:50%;background:#ffffff18;color:#fff;font:inherit;font-size:24px;line-height:1;display:grid;place-items:center;cursor:pointer;touch-action:manipulation}
.ar-overlay .ar-detail-close:active{background:#ffffff32}
.ar-overlay .ar-detail-content{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:0 18px 11px}
.ar-overlay .ar-detail-content h2{font-family:Georgia,'Times New Roman',serif;font-weight:650;font-size:clamp(19px,5vw,25px);line-height:1.17;letter-spacing:-.026em;color:#fff;margin:2px 0 10px;overflow-wrap:anywhere;text-wrap:pretty}
.ar-overlay .ar-detail-content>p{font-size:13px;line-height:1.52;letter-spacing:.003em;color:#e9e1db;margin:0 0 10px}
.ar-overlay .ar-detail-content .ar-detail-notice{display:block;font-size:11px;line-height:1.45;color:#f5d7c3;margin:7px 0 0;padding:8px 10px;border-left:2px solid #e8a27c;background:#ffffff0c;border-radius:4px}
.ar-overlay .ar-detail-content .ar-more-spot{display:block;width:100%;margin:10px 0 0;padding:9px 12px;border:1px solid #ffffff35;border-radius:10px;background:#ffffff0e;color:#f7e1d2;font-size:11px;font-weight:650;min-height:38px}
.ar-overlay .ar-detail-footer{flex:0 0 auto;display:grid;gap:11px;padding:12px 18px max(14px,env(safe-area-inset-bottom));border-top:1px solid #ffffff20;background:rgba(34,31,29,.99)}
.ar-overlay .ar-detail-read{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;min-height:44px;padding:10px 15px;background:#d97952;color:#fff;border:0;border-radius:12px;font:inherit;font-size:13px;font-weight:750;letter-spacing:.005em;cursor:pointer;touch-action:manipulation}
.ar-overlay .ar-detail-read:active{background:#c96740}
.ar-overlay .ar-detail-read span{font-size:18px;line-height:1}
.ar-overlay .ar-detail-directions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ar-overlay .ar-detail-directions-label{flex:1 1 auto;min-width:75px;color:#e0d0c4;font-size:11px;font-weight:650}
.ar-overlay .ar-detail-directions a{flex:0 0 auto;display:grid;place-items:center;min-height:37px;padding:8px 11px;border:1px solid #ffffff3d;border-radius:10px;background:#ffffff12;color:#fff;text-decoration:none;font-size:11px;font-weight:700;touch-action:manipulation}
.ar-overlay .ar-detail-directions a:active{background:#ffffff30}
.ar-overlay .ar-detail button:focus-visible,.ar-overlay .ar-detail a:focus-visible{outline:2px solid #f8ba9a;outline-offset:2px}
/* En paysage, la fiche ne peut plus sortir de l'écran ou masquer sa croix. */
@media(orientation:landscape) and (max-height:550px){
 .ar-overlay .ar-detail{left:auto;right:max(9px,env(safe-area-inset-right));bottom:9px;width:min(380px,65vw);max-width:65vw;max-height:calc(100dvh - 18px)}
 .ar-overlay .ar-detail-content h2{font-size:19px}
 .ar-overlay .ar-detail-footer{padding:10px 14px 12px}
}
@media(max-width:370px){
 .ar-overlay .ar-detail{left:8px;right:8px;max-height:min(71dvh,540px)}
 .ar-overlay .ar-detail-content{padding-left:15px;padding-right:15px}
 .ar-overlay .ar-detail-directions{gap:5px}
 .ar-overlay .ar-detail-directions a{padding:7px 9px}
}
@media(prefers-reduced-motion:reduce){
 .ar-overlay .ar-marker,.ar-overlay .ar-marker *,.ar-overlay .ar-detail{transition:none!important;animation:none!important}
}

/* AR propre : points espacés, peu de libellés, flèches discrètes hors champ */
.ar-overlay .ar-marker{width:114px;min-height:38px;max-width:114px;padding:2px;gap:3px;transition:left .12s ease-out,top .12s ease-out,opacity .12s ease-out}
.ar-overlay .ar-marker span.ar-marker-dot{width:21px;height:21px;min-height:21px;flex-basis:21px;border-width:2px;background:#c36e49;box-shadow:0 1px 10px #0009,0 0 0 2px #0d0c0b99}
.ar-overlay .ar-marker span.ar-marker-dot:after{width:6px;height:6px}
.ar-overlay .ar-marker b{max-width:112px;margin:0;padding:3px 6px;font-size:10px;line-height:1.17;border-color:#ffffff26;background:#211b19e8;box-shadow:0 2px 7px #0008}
.ar-overlay .ar-marker-unlabeled{width:44px;max-width:44px;min-height:42px;padding:6px;gap:0}
.ar-overlay .ar-marker-unlabeled b,.ar-overlay .ar-marker-unlabeled small{display:none!important}
.ar-overlay .ar-marker-distant{opacity:.75}
.ar-overlay .ar-marker-very-distant{opacity:.58}
.ar-overlay .ar-marker-here{opacity:1}
.ar-overlay .ar-marker-here span.ar-marker-dot{background:#f1a25b}
.ar-overlay .ar-side{z-index:6;top:57%;min-width:0;max-width:42px;pointer-events:auto}
.ar-overlay .ar-side-left{left:5px}
.ar-overlay .ar-side-right{right:5px}
.ar-overlay .ar-side button{display:flex;align-items:center;justify-content:center;gap:3px;min-width:34px;max-width:40px;min-height:37px;padding:5px 7px;border:1px solid #ffffff40;border-radius:999px;background:#181412d9;box-shadow:0 2px 9px #0005}
.ar-overlay .ar-side button span{font-size:23px;line-height:1;font-weight:550;width:auto;max-height:none;white-space:nowrap}
.ar-overlay .ar-side button small{font-size:10px;font-weight:650;line-height:1;color:#f8dccd}
.ar-overlay .ar-top{grid-template-columns:42px minmax(0,1fr) 42px;left:max(11px,env(safe-area-inset-left));right:max(11px,env(safe-area-inset-right));gap:9px}
.ar-overlay .ar-top>div{max-width:min(66vw,305px);padding:8px 12px;border:1px solid #ffffff18;background:#1a1716c9;box-shadow:0 3px 14px #0003}
.ar-overlay .ar-top b{font-size:13px;letter-spacing:.006em}
.ar-overlay .ar-top small{font-size:9px;line-height:1.3;color:#e1dcd8}
.ar-overlay .ar-top #ar-close{width:42px;height:42px;font-size:28px;background:#1b1716d9;border:1px solid #ffffff23;box-shadow:0 2px 8px #0003}
.ar-overlay .ar-top #ar-camera-fullscreen{width:42px;height:42px;font-size:23px;background:#1b1716d9;border:1px solid #ffffff23;box-shadow:0 2px 8px #0003}
.ar-overlay .ar-reticle span{width:28px;height:28px;border-width:1.5px;opacity:.9}
.ar-overlay .ar-reticle span:before{left:12.5px;top:-7px;width:1.5px;height:40px}
.ar-overlay .ar-reticle span:after{left:-7px;top:12.5px;width:40px;height:1.5px}
.ar-overlay .ar-reticle small{font-size:9px;padding:6px 10px;white-space:nowrap}
.ar-overlay .ar-compass{bottom:72px;min-height:39px;padding:10px 14px;font-size:11px;box-shadow:0 4px 14px #0004}
.ar-overlay .ar-map-head{min-height:48px}
.ar-overlay .ar-map-head>b{font-size:12px}
.ar-overlay .ar-map-head #ar-map-recenter{min-height:36px;border-radius:999px;background:#fff}
.ar-overlay .ar-map-explore-note{border:1px solid #e6ddd4;box-shadow:0 2px 8px #0002;font-size:10.5px;color:#61574e}
@media(max-width:370px){
 .ar-overlay .ar-top>div{max-width:62vw;padding:7px 9px}
 .ar-overlay .ar-top b{font-size:12px}
 .ar-overlay .ar-top small{font-size:8px}
 .ar-overlay .ar-marker{width:96px;max-width:96px}
 .ar-overlay .ar-marker b{max-width:94px;font-size:9px}
 .ar-overlay .ar-detail-content h2{font-size:19px}
}

/* Finitions : aucun texte de la page sous-jacente derrière la barre iOS. */
body.ar-open{background:#0b0908}
body.ar-open>.shell{visibility:hidden}
.ar-overlay .ar-map-explore-note{left:12px;right:auto;bottom:calc(10px + env(safe-area-inset-bottom));width:max-content;max-width:min(76%,305px);padding:6px 10px;font-size:10px;line-height:1.25;text-align:left;border:1px solid #ddd3c9;border-radius:13px;background:#fffef7f0;box-shadow:0 2px 8px #0002}
.ar-overlay[data-map-compact=true] .ar-map-explore-note{display:none!important}
.ar-overlay .ar-detail-footer{padding-bottom:13px}

/* Distances AR visibles directement sous chaque repère, sans grosses cartes. */
.ar-overlay .ar-marker small{display:block!important;min-height:16px;margin:0;padding:2px 6px;border:1px solid #ffffff35;border-radius:999px;background:#171412dd;color:#fff;font-size:10px;font-weight:750;line-height:1.15;white-space:nowrap;text-align:center;text-shadow:0 1px 2px #0007;box-shadow:0 1px 5px #0005;letter-spacing:.012em}
.ar-overlay .ar-marker-unlabeled{width:66px;max-width:66px;min-height:49px;gap:3px}
.ar-overlay .ar-marker-unlabeled b{display:none!important}
.ar-overlay .ar-marker-unlabeled small{display:block!important;padding:2px 5px;font-size:9.5px}
.ar-overlay .ar-marker-very-distant small{background:#1c1713d0}
.ar-overlay .ar-side{max-width:86px}
.ar-overlay .ar-side button{min-width:57px;max-width:84px;min-height:37px;padding:5px 7px;gap:5px}
.ar-overlay .ar-side button small{font-size:10px;line-height:1.1;white-space:nowrap}
.ar-overlay .ar-fallback button{max-width:170px;min-width:96px}
.ar-overlay .ar-fallback .ar-fallback-copy{display:flex;flex-direction:column;align-items:flex-start;min-width:0;gap:3px}
.ar-overlay .ar-fallback .ar-fallback-copy b{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;max-width:132px;overflow:hidden;font-size:10px;line-height:1.25}
.ar-overlay .ar-fallback .ar-fallback-copy small{display:block;font-size:10px;font-weight:750;color:#f1cbb1;line-height:1.1}

/* Explorer : la carte, pas l'appareil photo, est l'entrée par défaut. */
.explore-page .explore-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:14px 0 15px}
.explore-page .explore-actions .button{min-height:44px;padding:11px 17px;display:flex;align-items:center;justify-content:center;gap:8px}
.explore-map-wrap{position:relative;isolation:isolate;width:100%;height:min(59dvh,580px);min-height:330px;overflow:hidden;border:1px solid #ded8cf;border-radius:19px;background:#e8e6df;box-shadow:0 6px 20px #2c211115}
.explore-map{position:relative;width:100%;height:100%;overflow:hidden}
.explore-map.leaflet-container{background:#ebe6dc;z-index:1}
.explore-map-recenter{position:absolute;z-index:600;right:12px;top:12px;min-height:40px;padding:8px 14px;border:1px solid #ded5c8;border-radius:30px;background:#ffffffee;color:#8b3f24;font:inherit;font-size:12px;font-weight:750;box-shadow:0 2px 8px #0002;touch-action:manipulation}
.explore-map-note{position:absolute;bottom:13px;left:13px;z-index:600;max-width:min(85%,340px);padding:8px 11px;border:1px solid #e8dfd5;border-radius:12px;background:#fffffff0;color:#4e4741;font-size:11px;line-height:1.35;box-shadow:0 2px 10px #0002;pointer-events:none}
.explore-map-status{font-size:11px;color:var(--muted);margin:7px 3px 18px}
.explore-map-fallback{position:absolute;z-index:3;inset:0;display:grid;place-items:center;padding:20px;background:#e8e6df;font-size:13px;color:var(--muted)}
.explore-page .nearby-live{margin-top:22px}
.explore-page .nearby-status{margin-bottom:14px}
.explore-page .nearby-actions{display:none}
.explore-page .nearby-hint{margin-bottom:11px}
/* Panneau de lecture accessible en mode carte seule. */
.explore-detail-backdrop{position:fixed;inset:0;z-index:800;background:#120e0bad;backdrop-filter:blur(1px);-webkit-backdrop-filter:blur(1px)}
.explore-detail{position:fixed;z-index:801;left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));width:auto;max-width:470px;max-height:min(72dvh,570px);margin:0 auto;color:#fff;display:flex;flex-direction:column;overflow:hidden;border:1px solid #ffffff38;border-radius:20px;background:#211e1cf7;box-shadow:0 18px 60px #0008}
.explore-detail .ar-detail-handle{flex:0 0 auto;width:38px;height:4px;margin:9px auto 5px;border-radius:99px;background:#ffffff60}
.explore-detail .ar-detail-header{display:flex;align-items:center;justify-content:space-between;gap:9px;padding:4px 15px 9px;flex:0 0 auto}
.explore-detail .ar-detail-location{font-size:11px;color:#efd1bd;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.explore-detail .ar-detail-close{flex:none;display:grid;place-items:center;width:38px;height:38px;border:1px solid #ffffff35;border-radius:50%;background:#ffffff12;color:#fff;font-size:24px}
.explore-detail .ar-detail-content{min-height:0;overflow-y:auto;flex:1 1 auto;padding:0 17px 15px;overscroll-behavior:contain}
.explore-detail .ar-detail-content h2{font-family:Georgia,'Times New Roman',serif;font-size:clamp(20px,5vw,26px);line-height:1.18;margin:0 0 12px}
.explore-detail .ar-detail-content p{font-size:13px;line-height:1.55;color:#f2e7df;margin:0 0 9px}
.explore-detail .ar-detail-content .ar-detail-notice{font-size:11px;color:#f4d5c0;margin:10px 0}
.explore-detail .ar-more-spot{display:block;width:100%;min-height:39px;padding:10px;border:1px solid #ffffff3d;border-radius:11px;background:#ffffff1c;color:#fff;font-size:12px}
.explore-detail .ar-detail-footer{flex:0 0 auto;padding:13px 17px 16px;border-top:1px solid #ffffff23;background:#26211f;display:grid;gap:10px}
.explore-detail .ar-detail-read{width:100%;min-height:44px;display:flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:11px;background:#d77750;color:#fff;font-size:13px;font-weight:750}
.explore-detail .ar-detail-directions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.explore-detail .ar-detail-directions-label{flex:1 1 auto;font-size:11px;color:#eee0d6}
.explore-detail .ar-detail-directions a{padding:9px 11px;border:1px solid #ffffff45;border-radius:10px;background:#ffffff13;color:#fff;text-decoration:none;font-size:11px;font-weight:700}
.explore-detail.hidden,.explore-detail-backdrop.hidden{display:none!important}
/* Découvrir : recommandations en premier et carnet personnel facultatif. */
.discovery-page .discovery-nearby-head{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap;margin:28px 0 13px}
.discovery-nearby-head h2{font-size:20px;letter-spacing:-.02em;margin:0 0 4px}
.discovery-nearby-head p,.discovery-section-intro{margin:0;color:var(--muted);font-size:13px;line-height:1.5}
.discovery-page .section-heading{margin-top:29px}
.discovery-page .city-card{min-width:0}
.discovery-page .discovery-personal{border:1px solid var(--line);border-radius:17px;background:var(--surface);margin:35px 0 15px;padding:16px}
.discovery-personal summary{cursor:pointer;font-size:14px;font-weight:750;list-style-position:inside;touch-action:manipulation}
.discovery-personal h3{font-size:15px;margin:21px 0 10px}
.discovery-personal .button{margin-top:12px}
/* Note collective : lisible et simple sur mobile. */
.article-rating{margin:22px 0;padding:20px;border:1px solid #e8d9ce;border-radius:17px;background:linear-gradient(135deg,#fffdfb,#f8f1eb)}
.article-rating-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
.article-rating-head h2{font-family:inherit;font-size:17px;font-weight:780;letter-spacing:-.015em;margin:0 0 5px}
.article-rating-head p{font-family:inherit;font-size:12px;line-height:1.4;color:#756960;margin:0 0 10px}
.article-rating-average{display:inline-flex;padding:6px 10px;border-radius:999px;background:#f0e2d8;color:#8b4b2d;font-size:11px;font-weight:750;white-space:nowrap}
.article-rating-stars{display:flex;align-items:center;justify-content:flex-start;gap:6px;margin:5px 0 7px}
.article-rating-stars button{width:44px;height:47px;border:0;border-radius:9px;background:transparent;color:#b66b46;font-size:34px;font-weight:400;line-height:1;cursor:pointer;touch-action:manipulation}
.article-rating-stars button.selected{color:#bd6335}
.article-rating-stars button:hover,.article-rating-stars button:focus-visible{background:#f0dfd3;outline:2px solid #d58d69;outline-offset:1px}
.article-rating-stars button:disabled{opacity:.55}
.article-rating-feedback{font-size:12px!important;line-height:1.4;color:#71645e!important;margin:5px 0 0!important}
@media(max-width:430px){.explore-map-wrap{height:53dvh;min-height:310px}.explore-page .explore-actions{display:grid;grid-template-columns:1fr 1.4fr;gap:7px}.explore-page .explore-actions .button{padding:10px 6px;font-size:11px}.explore-detail{left:8px;right:8px}.article-rating{padding:15px}.article-rating-stars button{width:41px}}

/* Vue régionale : repères de communes, zoom vers les points d'anecdotes. */
.explore-map .explore-city-pin,.ar-mini-map .explore-city-pin{background:#755442;border:2px solid #fff;color:#fff;font-weight:800;font-size:12px;box-shadow:0 2px 10px #0004}
.explore-map .ar-map-poi-cluster{background:#74649b}


/* Navigation visite AR ↔ article et identification explicite du lieu. */
.article-return-ar{margin:0 0 14px;max-width:100%;text-align:center}
.article-place{display:grid;gap:3px;margin:6px 0 18px;padding:13px 16px;border-radius:14px;border:1px solid var(--line);border-left:4px solid var(--accent);background:var(--paper)}
.article-place span{font-size:10px;letter-spacing:.8px;font-weight:800;text-transform:uppercase;color:var(--accent-dark)}
.article-place strong{font-size:17px;line-height:1.35;overflow-wrap:anywhere}
.article-place small{font-size:12px;color:var(--muted)}
.article-place-unknown{border-left-color:var(--line)}
.article-place-unknown span{color:var(--muted)}
.ar-detail-known-place{font-weight:750;color:var(--ink);margin:4px 0 12px;line-height:1.5}
.ar-detail-place-unknown{font-weight:500;color:var(--muted)}
@media(max-width:480px){
  .city-hero .buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .city-hero .buttons #favorite{grid-column:1/-1}
  .city-hero .buttons .button{width:100%;min-width:0;font-size:11px;white-space:normal;line-height:1.25;padding:10px 7px}
  .article-return-ar{display:flex;width:100%}
}


/* Parcours de lecture : retour clair et navigation opposée sur iPhone. */
.story-return-path{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin:0 0 16px}
.story-return-path a,.article-bottom-return a{display:inline-flex;align-items:center;min-height:44px;padding:10px 15px;border:1px solid var(--line);background:var(--surface);border-radius:12px;color:var(--accent);font-size:13px;font-weight:800}
.story-return-path a:hover,.article-bottom-return a:hover{border-color:var(--accent)}
.city-category-back{padding:18px 0 0}
.city-category-back .back{margin-bottom:12px;font-size:14px}
.article-next{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:22px}
.article-next>span{flex:0 1 auto;min-width:0}
.article-next>span:last-child{margin-left:auto;text-align:right}
.article-next a{display:inline-flex;justify-content:center;min-width:116px;white-space:nowrap}
.article-bottom-return{display:flex;flex-wrap:wrap;gap:9px;margin:20px 0 0}
.article-rating{margin:38px 0 14px}
/* La carte est affichée directement sous le récit, avec les réserves de géolocalisation. */
.article-map-section{clear:both;margin:30px 0 28px}
.article-map-title{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap}
.article-map-title .block-title{margin:0 0 12px}
.article-inline-map{height:290px;width:100%;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#e7e5df;z-index:1}
.article-map-section>.discreet{margin:10px 0}
/* Photographies : une image dans le récit et des visuels supplémentaires en galerie. */
.story-inline-photo{float:right;width:min(43%,360px);margin:3px 0 20px 24px}
.story-inline-photo .article-photo{width:100%;max-height:350px;object-fit:contain}
.story-inline-photo figcaption,.story-gallery-photo figcaption,.story-recording figcaption{font-size:12px;line-height:1.6;margin:8px 0;color:var(--muted)}
.story-image-credit{font-size:10px;line-height:1.5;color:var(--muted);margin:6px 0 0}
.story-photo-awaiting{display:grid;place-items:center;min-height:130px;border-radius:12px;background:var(--accent-light);font-size:12px;color:var(--muted);text-align:center;padding:13px}
.story-inline-photo .story-photo-awaiting{min-height:205px}
.story-gallery,.story-media,.story-archive{clear:both;margin:32px 0}
.story-gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.story-gallery-photo{margin:0;min-width:0}
.story-gallery-photo .article-photo{width:100%;max-height:270px;object-fit:contain}
.story-recording{margin:16px 0;padding:15px;border:1px solid var(--line);border-radius:15px}
.story-recording audio{width:100%}
.story-recording video,.story-recording iframe{display:block;width:100%;aspect-ratio:16/9;border:0;border-radius:11px;max-height:450px;background:#251f1c}
/* Les documents d'époque sont des objets de lecture, pas de simples liens vers les sources. */
.story-archive{padding:25px;border:1px solid #dcc2a7;border-radius:18px;background:#f7efe2;color:#3e3025}
.story-archive-kicker{font-size:11px;letter-spacing:1.1px;text-transform:uppercase;color:#986043;font-weight:800}
.story-archive h3{font-family:Georgia,serif;font-size:clamp(22px,3vw,29px);line-height:1.2;margin:9px 0 15px}
.story-archive-intro{font-size:14px;line-height:1.7;margin:0 0 17px}
.story-archive-details summary{font-size:13px;font-weight:750;color:#925334;cursor:pointer;padding:11px 0}
.story-archive-paper{font-family:Georgia,serif;font-size:16px;line-height:1.85;background:#fffaf2;border:1px solid #e6d8c6;border-radius:10px;padding:clamp(16px,3vw,27px)}
.story-archive-paper p{margin:0 0 16px;color:#403126}
.story-archive-paper p:last-child{margin-bottom:0}
.story-archive-source{font-size:11px;line-height:1.5;margin:12px 0 0;color:#806958}
.story-archive-source a{color:#965033;text-decoration:underline}
@media(max-width:640px){
  .story-return-path{margin:0 0 13px;padding:0 9px;gap:6px}
  .story-return-path a{flex:1 1 145px;justify-content:center;text-align:center;padding:9px 10px;font-size:12px}
  .article-next{gap:8px}
  .article-next a{min-width:0;padding:10px 13px}
  .article-inline-map{height:245px}
  .story-inline-photo{float:none;width:100%;max-width:100%;margin:22px 0}
  .story-gallery-grid{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px}
  .story-gallery-photo{flex:0 0 83%;scroll-snap-align:start}
  .story-archive{margin:25px -10px;padding:20px 14px}
  .story-archive-paper{font-size:15px;line-height:1.7}
}


/* Correctif iPhone : l'ancienne règle mobile empilait toujours les deux liens. */
.article-next{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:12px}
.article-next>span{display:flex;min-width:0}
.article-next>span:first-child{grid-column:1;justify-content:flex-start}
.article-next>span:last-child{grid-column:2;justify-content:flex-end;margin-left:0;text-align:right}
.article-next .text-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;text-align:center;line-height:1.3;white-space:normal}
.article-bottom-return{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.article-bottom-return a{display:flex;align-items:center;justify-content:center;text-align:center;min-width:0;overflow-wrap:anywhere}
@media(max-width:640px){
  .article-next{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);flex-direction:row;gap:8px}
  .article-next>span:first-child{justify-content:flex-start}
  .article-next>span:last-child{justify-content:flex-end}
  .article-next a{max-width:100%;min-width:0;font-size:13px;padding:10px 7px}
  .article-bottom-return{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
  .article-bottom-return a{padding:10px 7px;font-size:12px;min-height:48px}
}
/* Visualiseur accessible : tap sur la photo, zoom et fermeture. */
.story-zoomable{cursor:zoom-in;touch-action:manipulation;outline-offset:4px}
.story-zoomable:focus-visible{outline:3px solid var(--accent)}
.story-zoom-trigger{position:absolute;right:12px;bottom:12px;border:1px solid #ffffff70;border-radius:20px;background:#1b1716c9;color:#fff;cursor:pointer;min-height:42px;padding:9px 14px;font-size:12px;font-weight:800;z-index:3}
.photo-viewer{position:fixed;inset:0;z-index:2000;display:flex;flex-direction:column;background:#11100ff5;color:#fff;padding:0;border:0;max-height:none;max-width:none;width:100vw;height:100dvh;overflow:hidden}
.photo-viewer::backdrop{background:#11100ff2}
.photo-viewer-head{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:calc(11px + env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) 12px max(14px,env(safe-area-inset-left));background:#171411}
.photo-viewer-title{font-size:13px;font-weight:700;line-height:1.4;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.photo-viewer-controls{display:flex;align-items:center;gap:7px}
.photo-viewer-button{display:grid;place-items:center;min-width:44px;min-height:44px;border-radius:12px;border:1px solid #ffffff50;background:#ffffff16;color:#fff;font-size:21px;cursor:pointer}
.photo-viewer-button:focus-visible{outline:2px solid #fff;outline-offset:3px}
.photo-viewer-stage{flex:1 1 auto;min-height:0;display:flex;justify-content:center;align-items:center;overflow:auto;overscroll-behavior:contain;padding:12px}
.photo-viewer-stage img{display:block;max-width:100%;max-height:100%;height:auto;width:auto;object-fit:contain;cursor:zoom-in}
.photo-viewer-stage.is-zoomed{display:block;text-align:center}
.photo-viewer-stage.is-zoomed img{max-width:none;max-height:none;width:180%;min-width:100%;height:auto;cursor:zoom-out;margin:auto}
.photo-viewer-caption{flex:0 0 auto;max-height:20dvh;overflow-y:auto;padding:10px 18px calc(15px + env(safe-area-inset-bottom));background:#171411;color:#eee6dd;text-align:center;font-size:12px;line-height:1.55}
.photo-viewer-caption a{color:#ffd2af;text-decoration:underline}
.photo-viewer[hidden]{display:none}
.story-inline-photo,.story-gallery-photo{position:relative}
.story-inline-photo .article-photo,.story-gallery-photo .article-photo{border-radius:12px}
@media(max-width:640px){
  .photo-viewer-head{gap:8px}
  .photo-viewer-title{font-size:12px;max-width:45vw}
  .photo-viewer-stage.is-zoomed img{width:230%}
}


/* Une photo est un véritable lien : le zoom a un repli même sans JavaScript. */
.story-photo-link{position:relative;display:block;max-width:100%;text-decoration:none;color:inherit;cursor:zoom-in;border-radius:12px;overflow:hidden;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.story-photo-link img{display:block;width:100%;height:auto;pointer-events:none}
.story-photo-link:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.story-photo-open-label{position:absolute;right:9px;bottom:9px;background:#17130fe6;color:#fff;border:1px solid #ffffff70;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:800;pointer-events:none}
.story-zoom-trigger{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;touch-action:manipulation}
.story-zoom-trigger:focus-visible{outline:3px solid #fff;outline-offset:3px}
@media(max-width:640px){.story-photo-open-label{font-size:12px;padding:9px 12px}.story-zoom-trigger{min-height:44px}}


/* Récits associés : même lieu en priorité, puis sujets connexes. */
.related-stories{clear:both;margin:39px 0 25px;padding:24px 0 6px;border-top:1px solid var(--line)}
.related-stories-kicker{display:block;color:var(--accent);font-size:11px;line-height:1.4;letter-spacing:1.3px;text-transform:uppercase;font-weight:850;margin-bottom:6px}
.related-stories-intro h2{font-family:Georgia,serif;font-size:clamp(23px,3vw,29px);letter-spacing:-.6px;line-height:1.18;margin:0 0 6px}
.related-stories-intro p{color:var(--muted);font-size:12px;line-height:1.5;margin:0 0 18px}
.related-stories-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.related-story-card{min-width:0;display:flex;flex-direction:column;overflow:hidden;border-radius:16px;background:var(--paper);border:1px solid var(--line);transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease;box-shadow:0 3px 14px #00000008}
.related-story-card:hover,.related-story-card:focus-visible{transform:translateY(-2px);border-color:var(--accent);box-shadow:0 9px 25px #00000012;outline-offset:2px}
.related-story-visual{height:135px;display:grid;place-items:center;background:linear-gradient(135deg,#f3dfc7,#d2a07f);overflow:hidden;flex:0 0 auto}
.related-story-visual img{height:100%;width:100%;object-fit:cover;display:block}
.related-story-placeholder{font-size:31px;color:#85553a;font-family:Georgia,serif}
.related-story-details{padding:13px;display:flex;flex-direction:column;gap:8px;flex:1}
.related-story-meta{color:var(--accent);font-size:10px;line-height:1.3;font-weight:800;letter-spacing:.15px}
.related-story-details strong{display:block;color:var(--ink);font-size:13px;line-height:1.45;letter-spacing:-.15px;overflow-wrap:anywhere}
.related-story-action{margin-top:auto;color:var(--accent);font-size:11px;font-weight:800}
.related-story-action>span{margin-left:4px}
@media(max-width:760px){
  .related-stories{margin:32px 0 20px;padding-top:22px}
  .related-stories-grid{display:flex;gap:12px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;padding:2px 3px 12px 1px;scrollbar-width:thin}
  .related-story-card{flex:0 0 min(74vw,270px);scroll-snap-align:start}
  .related-story-visual{height:140px}
  .related-story-details{padding:14px}
  .related-story-details strong{font-size:14px}
}
