@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Serif+Display:ital@0;1&display=swap');
:root{--ink:#293e37;--muted:#64736b;--paper:#f7f8ef;--night:0;--bg:#e9eddf;--light:#fff2b2;--line:rgba(58,77,61,.16)}*{box-sizing:border-box}body{margin:0;font-family:'DM Sans',sans-serif;color:var(--ink);background:var(--bg);transition:background 1.5s,color 1.5s}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button{border:0}button:focus-visible,a:focus-visible,[role=button]:focus-visible{outline:3px solid #b57c42;outline-offset:5px}button:hover{filter:brightness(.97)}[hidden]{display:none!important}#app{position:relative;min-height:780px;height:100svh;overflow:hidden;background:radial-gradient(ellipse at 65% 38%,rgba(255,255,255,.11),transparent 68%)}header{position:absolute;z-index:5;top:30px;left:42px;right:42px;display:flex;justify-content:space-between;align-items:center}.brand{display:flex;gap:11px;align-items:center;text-decoration:none;color:inherit;font-family:'DM Serif Display',Georgia,serif;font-size:30px;line-height:1}.brand svg{width:41px;height:46px}.brand-sub{display:block;font:10px 'DM Sans',sans-serif;letter-spacing:3.5px;margin-top:7px}.header-right{display:flex;align-items:center;gap:36px;font-size:13px}.prototype{opacity:.6}.plain{background:none;padding:10px 0;font-size:13px}.plain span{margin-left:6px}.intro{position:absolute;left:6%;top:151px;z-index:2;pointer-events:none}.eyebrow{font-size:11px;letter-spacing:2px;display:flex;align-items:center;gap:10px;font-weight:600}.live-seed{width:6px;height:6px;border-radius:50%;background:#748966;box-shadow:0 0 0 4px #82957316}h1{font-family:'DM Serif Display',Georgia,serif;font-weight:400;font-size:clamp(38px,4.4vw,68px);line-height:1.05;letter-spacing:-1.7px;margin:24px 0 20px}h1 em{font-weight:400;color:var(--muted)}.intro p{font-size:14px;line-height:1.8;opacity:.72}.weather{position:absolute;z-index:3;top:127px;right:44px;display:flex;align-items:center;gap:12px}.weather>span:first-child{font-size:32px;font-family:Georgia}.weather>div{display:flex;flex-direction:column;gap:4px}#clock{font-size:16px;font-variant-numeric:tabular-nums}#weather-text{font-size:12px;opacity:.65}.local-tag{font-size:9px;letter-spacing:1.5px;writing-mode:vertical-rl;margin-left:6px;opacity:.4}#viewport{position:absolute;inset:55px 0 65px;overflow:hidden;touch-action:none;cursor:grab}#viewport.dragging{cursor:grabbing}#landscape{width:100%;height:100%;overflow:visible}#camera{transform-origin:0 0}#world{transition:filter 1.4s}.building{cursor:pointer;outline:none}.building .building-body{transition:filter .3s,translate .5s}.building:hover .building-body,.building:focus-visible .building-body,.building.selected .building-body{filter:drop-shadow(0 0 12px #ffe6a0);translate:0 -5px}.building .label{opacity:.86;transition:opacity .3s}.building:hover .label,.building.selected .label,.building:focus-visible .label{opacity:1}.label rect{fill:#f8f7ed;stroke:#53624a;stroke-opacity:.09;stroke-width:1}.label text{fill:#394b3e;font-size:13px;font-family:'DM Sans',sans-serif;font-weight:500}.label .label-small{font-size:10px;fill:#7b806d;letter-spacing:1px}.label.activity{opacity:0;pointer-events:none}.building:hover .activity,.building:focus-visible .activity{opacity:1}.window{fill:#71918a;transition:fill 1.6s}.nightlight{opacity:var(--night);transition:opacity 1.6s;pointer-events:none}.window-lit{fill:#f5d088;opacity:var(--night);transition:opacity 1.6s}.tree-top{transform-box:fill-box;transform-origin:50% 100%;animation:sway 7s ease-in-out infinite alternate}.ripple{fill:none;stroke:#eff8de;stroke-width:1.7;opacity:.45;animation:ripple 5s ease-in-out infinite}.smoke{fill:#f8f4de;opacity:0;animation:smoke 9s ease-out infinite}.person-walk{animation:walk 42s ease-in-out infinite alternate}.walker-two{animation:walk2 58s ease-in-out infinite alternate}.person-body{animation:bob 1.8s ease-in-out infinite alternate}.bird{animation:bird 43s linear infinite;opacity:0}.door{transform-box:fill-box;transform-origin:left;animation:door 34s ease-in-out infinite}.star{animation:twinkle 6s ease-in-out infinite alternate}.day-people{opacity:calc(1 - var(--night) * .85);transition:opacity 2s}.lantern{animation:lantern 4s ease-in-out infinite alternate}.scene-caption{position:absolute;bottom:178px;left:6%;display:flex;align-items:center;gap:12px;pointer-events:none;font-family:'DM Serif Display',Georgia,serif;font-style:italic;font-size:17px;opacity:.65}.little-line{width:28px;height:1px;background:currentColor}.journey-bar{position:absolute;z-index:8;bottom:82px;left:50%;transform:translateX(-50%);display:flex;align-items:center;background:#f9faefed;box-shadow:0 8px 35px #253c3410;border:1px solid #fff7;border-radius:80px;padding:8px;color:#34483d;white-space:nowrap;backdrop-filter:blur(16px)}.journey-trigger,.time-trigger{display:flex;align-items:center;gap:16px;background:none;border-radius:40px;padding:16px 22px;font-size:14px}.journey-trigger{font-weight:500}.compass{font-size:25px;line-height:16px}.chevron{margin-left:18px;opacity:.45}.bar-divider{height:24px;width:1px;background:#293e371a}.time-trigger{gap:10px;font-size:13px;color:#62725f}.time-trigger>span{font-size:20px}.map-tools{position:absolute;right:42px;bottom:94px;display:flex;border-radius:30px;background:#f9faefc9;overflow:hidden;color:#34483d;box-shadow:0 3px 15px #20332408}.map-tools button{background:none;width:39px;height:42px;font-size:21px}footer{position:absolute;bottom:24px;left:42px;right:42px;display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:11px;opacity:.65}footer .plain{font-size:11px}.popover{position:absolute;z-index:10;bottom:166px;left:50%;transform:translateX(-50%);width:370px;background:#f9faf2;color:#34483d;border:1px solid #fff;border-radius:20px;padding:22px;box-shadow:0 15px 80px #1b38252b;animation:appear .3s}.popover-heading{display:flex;align-items:center;justify-content:space-between;font-family:'DM Serif Display',Georgia,serif;font-size:22px;margin-bottom:15px}.close{display:grid;place-items:center;border-radius:50%;background:#e7ebdf;color:#475847;font-size:25px;line-height:1;width:36px;height:36px;flex-shrink:0}.dest{display:flex;width:100%;text-align:left;background:transparent;border-bottom:1px solid #34483d0d;align-items:center;gap:15px;padding:13px 5px;font-size:14px}.dest .dest-icon{width:25px;font-size:19px}.dest .dest-arrow{margin-left:auto;opacity:.4}.dest:hover{background:#e9edde;border-radius:8px}.all-places{padding:17px 0 0;background:transparent;font-size:12px;width:100%;display:flex;justify-content:space-between;color:#65795c}.time-options{display:flex;gap:6px;margin:18px 0 24px}.time-options button{flex:1;background:#ecf0e4;border-radius:10px;padding:12px 2px;font-size:23px}.time-options button span{display:block;font-size:10px;margin-top:8px;white-space:nowrap}.time-options button.active{background:#3b5846;color:#fff7d7}#time-panel label{display:flex;justify-content:space-between;font-size:12px}input[type=range]{width:100%;accent-color:#58704b;margin:18px 0 3px}#backdrop{position:absolute;inset:0;z-index:14;background:#122c2221;backdrop-filter:blur(2px)}#detail{position:absolute;z-index:15;right:28px;top:105px;bottom:86px;width:400px;background:#f8f8ef;color:#34483d;border-radius:22px;box-shadow:0 20px 100px #172a2930;overflow-y:auto;padding:35px;animation:slide .45s cubic-bezier(.2,.8,.2,1)}#detail>.close{position:absolute;right:18px;top:18px;z-index:2}#detail-content .place-icon{font-size:35px;margin:16px 0 24px;display:block}#detail-content .eyebrow{font-size:10px;letter-spacing:1.8px;color:#7d876d}#detail h2{font:36px/1.1 'DM Serif Display',Georgia,serif;letter-spacing:-.7px;margin:14px 0}#detail .lead{font:19px/1.5 'DM Serif Display',Georgia,serif;color:#64745c;margin-bottom:28px}#detail .story{padding:18px 0;border-top:1px solid #34483d1a;font-size:14px;line-height:1.6}#detail .story small{display:block;color:#829078;font-size:11px;margin-bottom:7px}#detail .story p{margin:0}#detail .story strong{font-weight:500}#detail .primary{background:#385444;color:#f9f9ec;width:100%;padding:16px 14px;border-radius:12px;text-align:left;font-size:14px;margin-top:22px;display:flex;justify-content:space-between}#detail .secondary{background:#e6ebdd;color:#45603e;width:100%;padding:15px;border-radius:12px;font-size:13px;margin-top:10px}#detail .demo{font-size:11px;color:#85907e;line-height:1.5;margin-top:20px}.back-link{background:none;padding:0;color:#7a886f;font-size:12px;margin:15px 0 10px}.conversation-quote{font:25px/1.4 'DM Serif Display',Georgia,serif;padding:22px 0;border-block:1px solid #34483d1a}.response{border-left:2px solid #ccd6bc;padding:0 0 0 16px;margin:24px 0;font-size:14px;line-height:1.7}.response small{display:block;font-size:11px;margin-bottom:8px;color:#819071}#toast{position:absolute;bottom:170px;left:50%;transform:translate(-50%,10px);z-index:30;max-width:90%;background:#304c3e;color:#f6f6e9;border-radius:14px;padding:15px 22px;font-size:13px;box-shadow:0 8px 30px #1f352328;opacity:0;pointer-events:none;transition:.3s}#toast.visible{opacity:1;transform:translate(-50%,0)}.paused *,.paused *:before,.paused *:after{animation-play-state:paused!important}
@keyframes sway{from{transform:rotate(-1.5deg)}to{transform:rotate(1.7deg)}}@keyframes ripple{0%,100%{opacity:.15;transform:translateX(0)}50%{opacity:.55;transform:translateX(7px)}}@keyframes smoke{0%{transform:translate(0,0) scale(1);opacity:0}20%{opacity:.28}100%{transform:translate(20px,-70px) scale(1.7);opacity:0}}@keyframes walk{0%,12%{transform:translate(0,0)}50%{transform:translate(85px,-35px)}80%,100%{transform:translate(145px,-5px)}}@keyframes walk2{0%,15%{transform:translate(0,0)}65%,100%{transform:translate(-100px,60px)}}@keyframes bob{to{transform:translateY(-1px)}}@keyframes bird{0%,60%{opacity:0;transform:translate(-100px,0)}63%{opacity:.7}85%{opacity:.7}95%,100%{opacity:0;transform:translate(800px,-110px)}}@keyframes door{0%,70%,85%,100%{transform:scaleX(1)}74%,80%{transform:scaleX(.28)}}@keyframes twinkle{from{opacity:.3}to{opacity:.9}}@keyframes lantern{to{opacity:.65}}@keyframes appear{from{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}@keyframes slide{from{opacity:0;translate:25px 0}to{opacity:1;translate:0 0}}
@media(min-width:1600px){#viewport{inset:45px 1% 30px}.intro{top:180px}}@media(max-width:1050px){.prototype{display:none}.intro{left:5%;top:130px}h1{font-size:47px}.intro p{font-size:13px}.weather{top:115px}.scene-caption{bottom:181px;font-size:14px}.map-tools{right:24px;bottom:165px}#detail{width:365px}}
@media(max-width:650px){#app{min-height:650px;height:100svh}header{top:23px;left:22px;right:22px}.brand{font-size:25px}.brand svg{width:32px}.brand-sub{font-size:8px}.header-right .plain{font-size:12px}.intro{top:108px;left:25px}.eyebrow{font-size:9px;letter-spacing:1.5px}h1{font-size:40px;letter-spacing:-1px;margin:17px 0 12px}.intro p{font-size:12px;line-height:1.65}.weather{right:23px;top:auto;bottom:200px;gap:7px}.weather>span:first-child{font-size:24px}#weather-text{font-size:10px}#clock{font-size:13px}.local-tag{font-size:7px}#viewport{inset:205px 0 160px}#landscape{width:100%;height:100%}.scene-caption{bottom:172px;left:25px;font-size:12px;max-width:64%;line-height:1.5}.little-line{display:none}.journey-bar{bottom:72px;width:calc(100% - 34px);padding:5px;justify-content:space-between;border-radius:20px}.journey-trigger{padding:15px 12px;gap:9px;font-size:12px;flex:1}.journey-trigger .compass{font-size:23px}.chevron{display:none}.time-trigger{font-size:10px;padding:15px 10px;gap:6px}.time-trigger>span{font-size:18px}.map-tools{bottom:261px;right:18px;flex-direction:column;border-radius:20px}.map-tools button{width:34px;height:34px;font-size:18px}footer{bottom:19px;left:23px;right:23px;align-items:flex-start;font-size:9px;line-height:1.6}footer>span{max-width:205px}footer .plain{padding:0;font-size:10px}footer .plain span{display:none}.popover{bottom:145px;width:calc(100% - 34px);max-height:calc(100svh - 185px);overflow:auto;border-radius:20px;padding:20px}#detail{top:auto;bottom:0;left:0;right:0;width:100%;max-height:75svh;border-radius:26px 26px 0 0;padding:27px 28px 35px}#detail:before{content:'';display:block;position:absolute;top:9px;left:calc(50% - 18px);height:4px;width:36px;background:#c9d1bf;border-radius:4px}#detail-content .place-icon{margin:10px 0 18px;font-size:28px}#detail h2{font-size:31px}#detail .lead{font-size:18px;margin-bottom:18px}#toast{bottom:145px;width:max-content;max-width:90%;text-align:center}.label text{font-size:15px}.label .label-small{font-size:11px}}
.label-overlay{pointer-events:none;opacity:1!important}.threshold{margin:18px 0 6px;padding:18px;border-radius:16px;background:#edf0e5;border:1px solid #dce3d4}.threshold-title{font:21px/1.2 'DM Serif Display',Georgia,serif;margin:0 0 13px}.house-rule{display:flex;gap:11px;align-items:flex-start;padding:10px 0;border-top:1px solid #34483d12;font-size:13px;line-height:1.45}.house-rule:first-of-type{border-top:0}.house-rule b{font-weight:500}.rule-mark{display:grid;place-items:center;flex:0 0 24px;height:24px;border-radius:50%;background:#fff;color:#60775a}.external-link{display:flex;justify-content:space-between;align-items:center;text-decoration:none;background:#385444;color:#f9f9ec;width:100%;padding:16px 14px;border-radius:12px;font-size:14px;margin-top:18px}.external-link.light{background:#e6ebdd;color:#45603e}.gate-pill{display:inline-block;border-radius:30px;background:#dce7d4;color:#476044;padding:7px 11px;font-size:10px;letter-spacing:1px;font-weight:600}.welcome-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:16px}.welcome-card{padding:15px;border-radius:13px;background:#edf0e5;min-height:112px}.welcome-card b{display:block;font:17px 'DM Serif Display',Georgia,serif;margin-bottom:6px}.welcome-card span{font-size:11px;line-height:1.45;color:#687763}.soft-note{font:17px/1.5 'DM Serif Display',Georgia,serif;color:#677660;padding:15px 0}.reserved{border-left:3px solid #8a9e7c;padding:3px 0 3px 15px;margin:18px 0;font-size:13px;line-height:1.6}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* V16 · visas d'accès et cercles modulables */
.access-trigger{display:flex;align-items:center;gap:8px;padding:9px 13px;border:1px solid rgba(67,87,69,.16);border-radius:999px;background:rgba(249,250,242,.66);color:inherit;box-shadow:0 5px 20px rgba(35,53,40,.06);backdrop-filter:blur(12px);font-size:12px}.access-trigger span{font-size:17px}.access-trigger b{font-weight:500}.building.access-locked{opacity:.24;filter:grayscale(.72) brightness(.42) saturate(.3);transition:opacity .4s,filter .4s}.building.access-locked:hover,.building.access-locked:focus-visible{opacity:.39;filter:grayscale(.55) brightness(.56) saturate(.45)}.building.access-locked .label{opacity:.38}.label-overlay-wrap.access-locked{opacity:.24;filter:grayscale(1) brightness(.48)}.dest.is-locked{opacity:.45;background:linear-gradient(90deg,rgba(37,55,43,.08),transparent)}.access-sheet{position:fixed;inset:0;z-index:45;display:grid;place-items:center;padding:24px}.access-sheet-backdrop{position:absolute;inset:0;background:rgba(22,42,34,.54);backdrop-filter:blur(6px)}.access-sheet-card{position:relative;z-index:1;width:min(990px,100%);max-height:min(760px,calc(100svh - 34px));overflow:auto;padding:34px;border:1px solid rgba(255,255,255,.7);border-radius:28px;background:#f8f8ef;color:#34483d;box-shadow:0 28px 110px rgba(20,38,29,.35)}.access-sheet-card>.close{position:absolute;top:18px;right:18px}.access-sheet-card h2{margin:12px 50px 8px 0;font:clamp(30px,4vw,48px)/1.05 'DM Serif Display',Georgia,serif}.access-context{max-width:760px;margin:0 0 8px;color:#3f5745;font:19px/1.45 'DM Serif Display',Georgia,serif}.access-reassurance{max-width:720px;margin:0;color:#617261;font-size:14px;line-height:1.65}.access-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:26px}.access-options:has(article[hidden]:first-child):has(article[hidden]:nth-child(2)){grid-template-columns:minmax(0,430px);justify-content:center}.access-options:has(article[hidden]:first-child):not(:has(article[hidden]:nth-child(2))){grid-template-columns:repeat(2,minmax(0,1fr))}.access-options article{display:flex;min-height:300px;flex-direction:column;gap:14px;padding:20px;border:1px solid rgba(67,87,69,.15);border-radius:20px;background:rgba(255,255,255,.52);transition:transform .2s,border-color .2s,box-shadow .2s}.access-options article.is-current{border-color:#718668;box-shadow:inset 0 0 0 2px rgba(113,134,104,.18)}.access-options article.is-needed{transform:translateY(-4px);border-color:#bb7444;box-shadow:0 12px 35px rgba(131,78,43,.16)}.access-options article.is-current h3:after{content:' · ACTUEL';color:#75856e;font:9px 'DM Sans',sans-serif;letter-spacing:.12em}.access-symbol{display:grid;width:44px;height:44px;place-items:center;border-radius:50%;background:#e5eadc;font-size:22px}.access-options h3{margin:0;font:26px 'DM Serif Display',Georgia,serif}.access-options p{margin:7px 0 0;color:#627263;font-size:13px;line-height:1.55}.access-options a,.access-options button{display:block;margin-top:auto;padding:12px 13px;border-radius:11px;text-align:center;text-decoration:none;font-size:12px}.access-options a{margin-top:auto;background:#385444;color:#f8f8eb}.access-options a+button{margin-top:7px}.access-options button{border:1px solid rgba(64,84,66,.15);background:#e6ebdd;color:#425943}.access-trust{margin:21px 2px 0;padding:13px 15px;border-radius:13px;background:#edf1e7;color:#60715f;font-size:12px;line-height:1.55}.circle-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin:-16px 0 25px}.circle-toolbar button{padding:10px 15px;border:1px solid rgba(240,232,199,.22);border-radius:999px;background:rgba(249,246,222,.08);color:inherit;font-size:12px}.circle-toolbar button.active{background:#f2e5bb;color:#3f5442}.circle-badge{position:absolute;top:18px;right:18px;padding:6px 9px;border-radius:999px;font-size:9px;font-weight:700;letter-spacing:.08em}.circle-badge--public{background:rgba(160,194,153,.18);color:#dcebd1}.circle-badge--private{background:rgba(229,186,121,.18);color:#f0d49e}.scene-card[hidden]{display:none}.scene-card--circle .scene-card-icon{margin-top:10px}

@media(max-width:760px){.access-options{grid-template-columns:1fr}.access-options article{min-height:0}.access-sheet{place-items:end center;padding:0}.access-sheet-card{max-height:88svh;border-radius:26px 26px 0 0;padding:27px 18px calc(28px + env(safe-area-inset-bottom))}.access-sheet-card h2{font-size:31px}.header-right{display:block}.header-right .prototype,.header-right .plain{display:none}.access-trigger{position:fixed;z-index:12;top:20px;right:18px;max-width:150px;background:rgba(249,250,242,.9)}.access-trigger span{display:none}}
.building>.label:not(.activity){opacity:0}
.village-banner{filter:drop-shadow(0 7px 6px rgba(58,65,43,.17))}.banner-cloth{transform-box:fill-box;transform-origin:50% 0;animation:banner-breathe 7s ease-in-out infinite alternate}.banner-text{fill:#3f503e;font:17px 'DM Serif Display',Georgia,serif;letter-spacing:.1px;pointer-events:none}.banner-rope{opacity:.75}
[data-village-mod~=halloween] #app{background:radial-gradient(ellipse at 58% 38%,rgba(239,181,94,.14),transparent 58%),radial-gradient(ellipse at 14% 82%,rgba(139,72,43,.10),transparent 42%)}[data-village-mod~=halloween] .live-seed{background:#b86538}[data-village-mod~=halloween] .banner-cloth{fill:#e5c38f}[data-village-mod~=halloween] .journey-bar{box-shadow:0 10px 38px rgba(89,52,31,.13)}.autumn-lanterns{opacity:calc(.28 + var(--night) * .72)}.pumpkin{filter:drop-shadow(2px 5px 3px rgba(75,54,35,.18))}.pumpkin-face{opacity:calc(.32 + var(--night) * .68)}.friendly-ghost{opacity:0;filter:drop-shadow(0 6px 8px rgba(45,62,50,.16));animation:ghost-visit 52s ease-in-out infinite}.fallen-leaf{opacity:.72}.autumn-layer{pointer-events:none}
[data-village-mod~=party] #app{background:radial-gradient(ellipse at 53% 52%,rgba(255,199,93,.16),transparent 48%),radial-gradient(ellipse at 84% 28%,rgba(110,190,174,.10),transparent 38%)}[data-village-mod~=party] .window-lit{opacity:calc(.38 + var(--night) * .62)}[data-village-mod~=party] .banner-cloth{fill:#f0d896}.party-layer{pointer-events:none}.party-garland{filter:drop-shadow(0 2px 4px rgba(70,58,40,.18))}.party-bulb{opacity:calc(.55 + var(--night) * .45);animation:party-light 2.8s ease-in-out infinite alternate}.party-person{transform-box:fill-box;transform-origin:50% 100%}.dance-a{animation:party-dance-a 1.8s ease-in-out infinite alternate}.dance-b{animation:party-dance-b 2.1s ease-in-out infinite alternate}.dance-c{animation:party-dance-c 1.55s ease-in-out infinite alternate}.party-sway{animation:party-sway 3.2s ease-in-out infinite alternate}.party-table{filter:drop-shadow(0 5px 4px rgba(57,49,38,.12))}.weed-smoke{opacity:0;animation:weed-smoke 8s ease-out infinite}.party-love path{transform-box:fill-box;transform-origin:center;animation:party-heart 5s ease-in-out infinite}.party-laughter{animation:party-laughter 4s ease-in-out infinite alternate}.party-glow{opacity:calc(.18 + var(--night) * .55)}
.mobile-guide,.mobile-tour{display:none}
@media(max-width:650px){
  #app{min-height:600px;background:radial-gradient(ellipse at 50% 42%,rgba(255,255,255,.18),transparent 64%)}
  header{top:max(14px,env(safe-area-inset-top));left:16px;right:16px;align-items:flex-start;z-index:12;pointer-events:none}
  .brand{font-size:21px;gap:7px;pointer-events:auto;text-shadow:0 1px 12px rgba(247,248,239,.45)}
  .brand svg{width:29px;height:34px}.brand-sub{font-size:7px;letter-spacing:2.5px;margin-top:4px}
  .header-right{display:none}.intro{display:none}
  .weather{top:max(16px,env(safe-area-inset-top));bottom:auto;right:16px;z-index:12;padding:7px 10px;border:1px solid rgba(255,255,255,.36);border-radius:18px;background:rgba(248,249,239,.68);color:#34483d;backdrop-filter:blur(14px);box-shadow:0 5px 20px rgba(27,56,37,.08)}
  .weather>span:first-child{font-size:18px}.weather>div{gap:0}#clock{font-size:12px;font-weight:600}#weather-text{display:none}.local-tag{display:none}
  #viewport{inset:0;cursor:grab}.scene-caption{left:20px;bottom:202px;max-width:58%;font-size:13px;opacity:.7;text-shadow:0 1px 10px var(--bg)}
  .map-tools{display:none}.label text{font-size:14px}.label .label-small{font-size:10px}
  .mobile-guide{display:flex;position:absolute;z-index:11;top:78px;left:50%;transform:translateX(-50%);width:calc(100% - 34px);max-width:390px;align-items:center;gap:11px;padding:11px 12px;border:1px solid rgba(255,255,255,.55);border-radius:16px;background:rgba(249,250,242,.88);color:#34483d;box-shadow:0 8px 35px rgba(28,50,39,.12);backdrop-filter:blur(16px);transition:opacity .5s,transform .5s}
  .mobile-guide.dismissed{opacity:0;transform:translate(-50%,-12px);pointer-events:none}.mobile-guide .gesture{font-size:23px;animation:gesture-drift 2.2s ease-in-out infinite}.mobile-guide div{display:flex;flex:1;flex-direction:column;gap:2px}.mobile-guide strong{font:15px 'DM Serif Display',Georgia,serif}.mobile-guide div span{font-size:10px;line-height:1.35;color:#6a786f}.mobile-guide button{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#e7ebdf;font-size:18px}
  .mobile-tour{display:flex;position:absolute;z-index:9;left:16px;right:16px;bottom:132px;height:64px;align-items:center;gap:7px;color:#34483d}
  .tour-arrow{flex:0 0 45px;height:45px;border-radius:50%;background:rgba(249,250,242,.86);box-shadow:0 6px 24px rgba(28,50,39,.11);backdrop-filter:blur(14px);font:29px/1 Georgia,serif}
  .tour-current{min-width:0;flex:1;height:64px;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;align-content:center;text-align:left;padding:10px 15px;border:1px solid rgba(255,255,255,.55);border-radius:18px;background:rgba(249,250,242,.92);box-shadow:0 8px 30px rgba(28,50,39,.14);backdrop-filter:blur(16px)}
  .tour-current span{grid-column:1;font-size:8px;letter-spacing:1.3px;color:#7b8a76}.tour-current strong{grid-column:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:16px 'DM Serif Display',Georgia,serif}.tour-current small{grid-column:2;grid-row:1/3;align-self:center;font-size:9px;color:#70806d;margin-left:8px}
  .journey-bar{bottom:calc(54px + env(safe-area-inset-bottom));width:calc(100% - 32px);height:60px;padding:5px;border-radius:18px}.journey-trigger{padding:14px 11px;font-size:12px}.journey-trigger .compass{font-size:21px}.time-trigger{padding:14px 10px;font-size:10px}.time-trigger>span{font-size:17px}
  footer{display:none}.popover{bottom:calc(124px + env(safe-area-inset-bottom));max-height:calc(100svh - 150px)}
  #detail{max-height:82svh;padding:31px 24px calc(28px + env(safe-area-inset-bottom));overscroll-behavior:contain;scrollbar-width:none}#detail::-webkit-scrollbar{display:none}#detail h2{font-size:29px}#detail .lead{font-size:17px}#detail .story{font-size:14px}.welcome-grid{grid-template-columns:1fr}.welcome-card{min-height:auto}
  #toast{bottom:calc(132px + env(safe-area-inset-bottom))}
}
@keyframes gesture-drift{0%,100%{transform:translate(0,2px) rotate(-8deg)}50%{transform:translate(8px,-4px) rotate(3deg)}}
@keyframes banner-breathe{from{transform:skewY(-.25deg) scaleY(.995)}to{transform:skewY(.25deg) scaleY(1.015)}}
@keyframes ghost-visit{0%,58%,100%{opacity:0;translate:-80px 18px}62%{opacity:calc(.16 + var(--night) * .34)}72%{opacity:calc(.2 + var(--night) * .42);translate:35px -12px}82%{opacity:0;translate:130px -30px}}
@keyframes party-light{to{opacity:.72;filter:brightness(1.35)}}@keyframes party-dance-a{to{rotate:4deg;translate:2px -3px}}@keyframes party-dance-b{to{rotate:-5deg;translate:-2px -2px}}@keyframes party-dance-c{to{scale:1.04 .96;translate:0 -4px}}@keyframes party-sway{to{rotate:2.5deg;translate:3px 0}}@keyframes weed-smoke{0%{opacity:0;translate:0 0}25%{opacity:.38}100%{opacity:0;translate:10px -28px}}@keyframes party-heart{0%,75%,100%{opacity:.18;scale:.8}82%{opacity:.8;scale:1.08}}@keyframes party-laughter{to{translate:0 -3px;opacity:.7}}

/* V20 · animaux du Village */
.animal-layer{pointer-events:none}.village-animal{transform-box:fill-box;transform-origin:50% 100%;filter:drop-shadow(0 2px 2px rgba(53,70,52,.12))}.animal-layer.is-moving .village-animal{animation:animal-breathe 9s ease-in-out infinite;animation-delay:var(--animal-delay)}.animal-layer.is-moving .animal-chickens{animation-name:animal-peck;animation-duration:6.8s}.animal-layer.is-moving .animal-goats,.animal-layer.is-moving .animal-cows{animation-name:animal-graze;animation-duration:12s}@keyframes animal-breathe{0%,45%,100%{scale:1;rotate:0}52%{scale:1.015 .985;rotate:-.6deg}}@keyframes animal-peck{0%,60%,100%{scale:1;rotate:0}66%,72%{scale:1 .96;rotate:2deg}}@keyframes animal-graze{0%,62%,100%{scale:1;rotate:0}70%,82%{scale:1 .975;rotate:1.2deg}}

/* Présences éphémères : des signes humains, jamais des compteurs. */
#presence-layer{pointer-events:none}.ephemeral-presence{animation:presence-arrive .65s ease-out}.ephemeral-presence .presence-ring{fill:#f8e6a7;fill-opacity:.3;stroke:#b97843;stroke-width:1.2;animation:presence-breathe 4s ease-in-out infinite}.ephemeral-presence.own-presence .presence-ring{fill:#f7cf79;fill-opacity:.42;stroke-width:2}.ephemeral-presence.ambient-presence{opacity:.62}.ephemeral-presence.ambient-presence .presence-ring{fill:none;stroke:#687d67;stroke-dasharray:2.5 3.5}.presence-traveller{filter:drop-shadow(0 4px 5px rgba(42,61,49,.22))}.building.has-presence .building-body{filter:drop-shadow(0 0 7px rgba(255,222,141,.42))}
.presence-panel{margin:23px 0 5px;padding:18px;border:1px solid #d9dfcf;border-radius:17px;background:linear-gradient(145deg,#edf1e5,#f6f6ed)}.presence-heading{display:flex;align-items:flex-start;gap:11px}.presence-heading small{display:block;font-size:9px;letter-spacing:1.3px;color:#7b8a73}.presence-heading h3{margin:3px 0 0;font:21px/1.2 'DM Serif Display',Georgia,serif}.presence-pulse{flex:0 0 9px;height:9px;margin-top:4px;border-radius:50%;background:#d39a5c;box-shadow:0 0 0 5px rgba(211,154,92,.13);animation:presence-pulse 3.5s ease-in-out infinite}.intention-options{display:flex;flex-wrap:wrap;gap:7px;margin-top:15px}.intention-chip{min-height:38px;padding:9px 11px;border:1px solid #cdd6c6;border-radius:20px;background:#fff9;color:#50634f;font-size:11px;line-height:1.2}.intention-chip.selected{border-color:#526b53;background:#49634f;color:#fff}.presence-calm,.ambient-note{margin:14px 0 0;font-size:11px;line-height:1.55;color:#788575}.presence-whispers{margin-top:14px;border-top:1px solid #34483d12}.presence-whispers p{margin:0;padding:11px 0;border-bottom:1px solid #34483d0d;font:14px/1.35 'DM Serif Display',Georgia,serif}.presence-whispers p span{display:block;margin-bottom:3px;font:8px 'DM Sans',sans-serif;letter-spacing:1px;color:#7b8a73}.presence-whispers p.imagined{font-style:italic;color:#687763}.presence-whispers p.imagined span{color:#9a8067}.ambient-note{padding-left:10px;border-left:2px dotted #a89978}
@keyframes presence-arrive{from{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}@keyframes presence-breathe{50%{r:17;fill-opacity:.16}}@keyframes presence-pulse{50%{box-shadow:0 0 0 8px rgba(211,154,92,0)}}
@media(max-width:650px){.presence-panel{margin-inline:-3px;padding:16px}.intention-chip{min-height:44px;padding:11px 13px;font-size:12px}.ephemeral-presence{scale:1.12}}
.presence-murmur{filter:drop-shadow(0 5px 7px rgba(43,58,46,.16));animation:murmur-life 7.2s ease-in-out forwards}.presence-murmur rect,.presence-murmur path{fill:#f8f8ef;stroke:#87947e;stroke-width:1}.presence-murmur text{fill:#415541;font:12px 'DM Sans',sans-serif}.presence-murmur.own-murmur rect,.presence-murmur.own-murmur path{fill:#fff0c8;stroke:#b77a45}.recent-intentions{margin-top:17px;padding-top:14px;border-top:1px solid #34483d17}.recent-intentions>small{display:block;margin-bottom:7px;color:#7c8875;font-size:8px;letter-spacing:1px}.recent-intentions p{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:0;padding:8px 0;border-bottom:1px solid #34483d0b;font-size:12px;line-height:1.35}.recent-intentions p span{color:#50624e}.recent-intentions time{flex:0 0 auto;color:#929b8d;font-size:9px}
@keyframes murmur-life{0%{opacity:0;translate:0 7px}8%,78%{opacity:1;translate:0 0}100%{opacity:0;translate:0 -7px}}

/* V9 — entrée guidée et espaces immersifs, dans la continuité du Village. */
.first-visit{position:fixed;inset:0;z-index:24;display:grid;place-items:center end;padding:24px 6vw;background:linear-gradient(90deg,rgba(28,49,47,.08),rgba(28,49,47,.15) 52%,rgba(28,49,47,.54));backdrop-filter:blur(1px)}
.entry-path{width:min(470px,100%);text-align:center;color:#34483d;animation:entry-arrive .7s cubic-bezier(.2,.8,.2,1)}
.entry-arch{width:min(360px,84%);height:96px;margin:0 auto -1px;display:grid;grid-template-columns:1fr auto 1fr;align-items:start;gap:13px;padding-top:20px;border:9px solid #8d7655;border-bottom:0;border-radius:190px 190px 0 0;color:#f7efd3;filter:drop-shadow(0 10px 18px rgba(25,40,31,.28))}
.entry-arch span{height:2px;margin-top:6px;background:#e5d5a2}.entry-arch b{font-size:11px;letter-spacing:.22em;font-weight:600}
.entry-card{position:relative;padding:27px 32px 29px;border:1px solid rgba(255,255,255,.7);border-radius:22px;background:rgba(249,250,242,.96);box-shadow:0 25px 80px rgba(22,43,31,.28);backdrop-filter:blur(18px)}
.entry-card .eyebrow{justify-content:center;color:#77856f}.entry-card h2{margin:11px 0 10px;font:34px/1.08 'DM Serif Display',Georgia,serif}.entry-card p:not(.eyebrow){margin:0 auto 20px;max-width:390px;font-size:14px;line-height:1.65;color:#637363}.entry-card .guided-question{margin-top:22px!important;font-family:'DM Serif Display',Georgia,serif!important;font-size:20px!important;color:#3f5745!important}.entry-actions{display:grid;gap:10px}.entry-card .primary,.entry-card .secondary{display:flex;width:100%;justify-content:space-between;padding:15px 18px;border-radius:13px}.entry-card .primary{background:#385444;color:#f9f9ec}.entry-card .secondary{justify-content:center;border:1px solid #cbd4c3;background:#f8f8ef;color:#536553}
.guided-coach{position:fixed;right:32px;bottom:32px;z-index:31;width:min(350px,calc(100vw - 32px));padding:18px 20px;border:1px solid rgba(255,255,255,.7);border-radius:18px;background:rgba(249,250,242,.96);box-shadow:0 20px 60px rgba(22,43,31,.3);color:#34483d;backdrop-filter:blur(16px)}.guided-coach small{display:block;margin-bottom:7px;color:#a05f38;font-size:9px;font-weight:700;letter-spacing:.16em}.guided-coach strong{display:block;font:21px/1.15 'DM Serif Display',Georgia,serif}.guided-coach p{margin:8px 0 0;color:#667766;font-size:12px;line-height:1.55}.guided-map-arrow{pointer-events:none;animation:guided-bob 1s ease-in-out infinite alternate}.guided-map-arrow path{fill:none;stroke:#b86436;stroke-width:7;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 3px 2px rgba(255,255,255,.85))}.guided-target .building-body{animation:guided-pulse 1.2s ease-in-out infinite}.guided-button-target{position:relative!important;outline:4px solid rgba(224,147,72,.78);outline-offset:6px;animation:guided-button-pulse 1.1s ease-in-out infinite}.guided-button-target:before{content:'↓';position:absolute;left:50%;bottom:calc(100% + 16px);translate:-50% 0;color:#b86436;font-size:42px;line-height:1;filter:drop-shadow(0 2px 1px white);animation:guided-bob 1s ease-in-out infinite alternate}
.first-visit-required #village-arch{animation:welcome-beacon 1.8s ease-in-out infinite}.guided-tour-active #building-welcome>.label{opacity:1!important}.guided-tour-active #building-welcome>.label rect{fill:#fff0be;stroke:#b57c42;stroke-opacity:.7}
.immersive-scene{position:fixed;inset:0;z-index:20;overflow:auto;padding:96px 5vw 90px;color:#34483d;background:linear-gradient(155deg,rgba(244,244,231,.92),rgba(224,232,215,.9));backdrop-filter:blur(2px);animation:scene-in .55s cubic-bezier(.2,.8,.2,1);overscroll-behavior:contain}
.immersive-scene[data-scene=place]{background:radial-gradient(circle at 68% 25%,rgba(255,237,176,.48),transparent 25%),linear-gradient(155deg,rgba(237,240,223,.91),rgba(217,228,206,.89))}
.immersive-scene[data-scene=mairie]{background:radial-gradient(circle at 15% 18%,rgba(213,179,130,.22),transparent 30%),linear-gradient(150deg,rgba(241,238,225,.92),rgba(226,230,215,.9))}
.immersive-scene[data-scene=school]{background:radial-gradient(circle at 82% 14%,rgba(229,191,103,.24),transparent 28%),linear-gradient(150deg,rgba(245,240,219,.92),rgba(223,232,213,.9))}
.immersive-scene[data-scene=workshops]{background:radial-gradient(circle at 50% 0,rgba(206,151,93,.22),transparent 35%),linear-gradient(150deg,rgba(238,229,211,.92),rgba(216,226,211,.9))}
.immersive-scene[data-scene=circles]{color:#eef0db;background:radial-gradient(circle at 50% 44%,rgba(233,152,73,.28),transparent 18%),linear-gradient(145deg,rgba(38,63,57,.95),rgba(23,47,45,.94) 74%)}
.scene-back{position:fixed;z-index:2;top:27px;left:32px;padding:12px 18px;border:1px solid rgba(71,88,71,.18);border-radius:30px;background:rgba(249,250,242,.9);color:#425744;box-shadow:0 8px 25px rgba(25,43,32,.12);backdrop-filter:blur(14px);font-size:13px}.scene-content{width:min(1120px,100%);margin:0 auto}.scene-hero{display:grid;grid-template-columns:auto minmax(0,1fr);gap:20px;align-items:start;max-width:800px;margin-bottom:38px}.scene-symbol{display:grid;width:64px;height:64px;place-items:center;border:1px solid rgba(88,107,84,.22);border-radius:50%;background:rgba(255,255,255,.42);font:30px Georgia,serif}.scene-kicker{margin:2px 0 7px;font-size:10px;letter-spacing:.18em;font-weight:600;opacity:.68}.scene-hero h2{margin:0;font:clamp(34px,5vw,58px)/1.02 'DM Serif Display',Georgia,serif;letter-spacing:-.02em}.scene-hero>div>p:last-child{max-width:680px;margin:14px 0 0;font-size:16px;line-height:1.7;opacity:.78}.scene-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.scene-card{position:relative;min-height:190px;padding:22px;border:1px solid rgba(76,96,76,.15);border-radius:21px;background:rgba(250,250,241,.78);color:#34483d;text-align:left;box-shadow:0 10px 35px rgba(37,55,42,.07);transition:transform .25s,box-shadow .25s}.scene-card:hover{transform:translateY(-3px);box-shadow:0 16px 42px rgba(37,55,42,.13)}.scene-card.is-locked{opacity:.62}.scene-card.is-decor{border-style:dashed;background:rgba(250,250,241,.48)}.scene-card-icon{display:grid;width:43px;height:43px;place-items:center;margin-bottom:24px;border-radius:50%;background:#e3e9d9;font-size:22px}.scene-card h3{margin:0;font:22px/1.15 'DM Serif Display',Georgia,serif}.scene-card p{margin:9px 0 18px;font-size:13px;line-height:1.55;color:#667666}.scene-card small{position:absolute;left:22px;right:22px;bottom:18px;display:flex;justify-content:space-between;gap:12px;color:#71806e;font-size:10px;letter-spacing:.04em}.scene-card--phone{border-color:#9e3f37;background:linear-gradient(150deg,#fff9ed,#f1e1d7)}.scene-card--phone .scene-card-icon{background:#a94238;color:white}.scene-card--notice .scene-card-icon{background:#e8d7aa}.scene-card--cafe .scene-card-icon{background:#d9c49d}.scene-card--circle{border-color:rgba(239,229,187,.24);background:rgba(249,246,222,.1);color:#f5f1d9}.scene-card--circle p,.scene-card--circle small{color:#c7d0bb}.scene-card--circle .scene-card-icon{background:rgba(244,227,172,.14);color:#f3d28b}.scene-explanation{margin:-14px 0 30px;padding:18px 21px;border-left:3px solid currentColor;font-size:14px;line-height:1.65;opacity:.75}.scene-subitems{display:grid;gap:9px;margin-top:14px}.scene-subitem{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;border-radius:12px;background:rgba(255,255,255,.58);font-size:12px}.scene-subitem span:first-child{display:flex;align-items:center;gap:8px}.scene-note-list{display:grid;gap:10px}.scene-note{padding:17px 19px;border-radius:16px;background:rgba(255,255,255,.5)}.scene-note strong{display:block;font:18px 'DM Serif Display',Georgia,serif}.scene-note p{margin:6px 0 0;font-size:13px;line-height:1.55;color:#687866}.detail-editorial{white-space:pre-line}.map-arch{filter:drop-shadow(0 5px 5px rgba(52,67,48,.18))}.campfire-flame{transform-box:fill-box;transform-origin:50% 100%;animation:fire-flicker 1.3s ease-in-out infinite alternate}.square-hotspot{fill:#f3ecd3;fill-opacity:.1;stroke:#fff4ca;stroke-opacity:.25;stroke-width:2}.building:hover .square-hotspot{fill-opacity:.28}.yurt-cloth{fill:#dfd1b0;stroke:#a89270;stroke-width:2}
.scene-card--phone .scene-card-icon{border-radius:8px;box-shadow:inset 0 0 0 3px #cf6b60}.scene-card--notice{border-top:5px solid #c9a65e;background:linear-gradient(155deg,#fffaf0,#eee7d5)}.scene-card--cafe{background:linear-gradient(180deg,#fff9e8 0 20px,#b86d4d 21px 29px,#fbf5e8 30px)}.scene-card--playground{border-style:dashed;background:repeating-linear-gradient(135deg,rgba(250,250,241,.72) 0 18px,rgba(228,224,205,.72) 18px 36px)}.scene-card--exchange{border-color:#9eb29a;background:linear-gradient(150deg,#f5f6eb,#e1eadb)}.place-intro{border-left-color:#a94b3f;background:rgba(255,255,255,.42);border-radius:0 14px 14px 0}.mairie-intro{border-left-color:#c39a55;background:rgba(255,255,255,.38);border-radius:0 14px 14px 0}.scene-note{position:relative;overflow:hidden;padding-left:27px;background:color-mix(in srgb,var(--notice-color,#d8b66f) 18%,white)}.scene-note:before{content:'';position:absolute;inset:0 auto 0 0;width:8px;background:var(--notice-color,#d8b66f)}.welcome-video{width:min(900px,100%);margin:0 0 22px}.welcome-video video{display:block;width:100%;aspect-ratio:16/9;border:1px solid rgba(255,255,255,.7);border-radius:21px;background:#050706;box-shadow:0 18px 45px rgba(27,46,34,.16)}.welcome-video figcaption{margin:9px 3px 0;color:#667766;font-size:12px;line-height:1.45}.welcome-story{display:grid;gap:12px;max-width:900px}.welcome-story article{display:grid;grid-template-columns:44px minmax(0,1fr);gap:17px;padding:18px 21px;border:1px solid rgba(74,94,73,.13);border-radius:17px;background:rgba(255,255,255,.55)}.welcome-story article span{font:italic 23px 'DM Serif Display',Georgia,serif;color:#87977d}.welcome-story article p{margin:0;font-size:14px;line-height:1.7;color:#536754}.welcome-invitation{max-width:900px;margin-top:16px;padding:21px 24px;border-radius:17px;background:#385444;color:#f8f6e8}.welcome-invitation strong{font:22px 'DM Serif Display',Georgia,serif}.welcome-invitation p{margin:8px 0 0;font-size:13px;line-height:1.6;opacity:.82}.map-arch{filter:drop-shadow(0 7px 7px rgba(52,67,48,.26))}
@keyframes scene-in{from{opacity:0;clip-path:circle(12% at 50% 55%)}to{opacity:1;clip-path:circle(100% at 50% 55%)}}@keyframes entry-arrive{from{opacity:0;translate:0 24px}to{opacity:1;translate:0 0}}@keyframes welcome-beacon{50%{filter:drop-shadow(0 0 24px #ffd66f);translate:0 -8px}}@keyframes guided-bob{to{translate:0 9px}}@keyframes guided-pulse{50%{filter:drop-shadow(0 0 28px #ffd56b);translate:0 -7px}}@keyframes guided-button-pulse{50%{outline-color:rgba(255,195,94,.35)}}@keyframes fire-flicker{to{transform:scale(.9,1.08) rotate(2deg)}}
@media(max-width:800px){.immersive-scene{padding:82px 18px 130px}.scene-back{top:15px;left:16px}.scene-hero{grid-template-columns:1fr;gap:13px}.scene-symbol{width:50px;height:50px}.scene-grid{grid-template-columns:1fr 1fr}.scene-card{min-height:178px}.entry-card h2{font-size:28px}}
@media(max-width:520px){.first-visit{place-items:end center;padding:0 14px calc(28px + env(safe-area-inset-bottom));background:linear-gradient(180deg,rgba(28,49,47,.04),rgba(28,49,47,.12) 38%,rgba(28,49,47,.55))}.entry-arch{height:72px;border-width:7px}.entry-card{padding:23px 20px}.entry-card h2{font-size:26px}.guided-coach{right:16px;bottom:18px}.scene-grid{grid-template-columns:1fr}.scene-card{min-height:160px}.scene-hero h2{font-size:38px}.scene-card p{padding-bottom:12px}}
.scene-enter{display:flex;width:min(430px,100%);justify-content:space-between;margin:26px 0 0;padding:17px 20px;border-radius:14px;background:#385444;color:#f9f9ec;font-weight:500}.scene-open #detail{z-index:28}.scene-open #backdrop{z-index:27;background:rgba(18,44,34,.28)}
html,body{height:100%;overflow:hidden}
.scene-hero{position:static;inset:auto;justify-content:initial}
.place-module{filter:drop-shadow(0 5px 4px rgba(51,62,43,.15))}.place-feature{cursor:pointer;outline:none}.place-feature-hit{fill:#fff3c7;fill-opacity:.03;stroke:transparent;stroke-width:3;transition:fill-opacity .25s,stroke .25s}.place-feature:hover .place-feature-hit,.place-feature:focus-visible .place-feature-hit{fill-opacity:.22;stroke:#f5cf70}.place-feature-label{opacity:0;pointer-events:none;transition:opacity .2s}.place-feature:hover .place-feature-label,.place-feature:focus-visible .place-feature-label{opacity:1}.place-feature-label rect{fill:#fffaf0;stroke:#7b896f;stroke-opacity:.25}.place-feature-label text{fill:#3f5343;font:10px 'DM Sans',sans-serif}.place-feature-icon{fill:#4b604d;font:19px Georgia,serif}.place-building-text{fill:#8b714f;font:7px 'DM Sans',sans-serif;letter-spacing:.8px}.telephone-sign{fill:#65312b;font:4.7px 'DM Sans',sans-serif;font-weight:700;letter-spacing:.55px}.map-arch{cursor:pointer;outline:none;transition:filter .25s}.map-arch:hover,.map-arch:focus-visible{filter:drop-shadow(0 0 13px #ffd66f) drop-shadow(0 7px 7px rgba(52,67,48,.26))}
@media(max-width:650px){.header-right{display:block}.header-right .prototype,.header-right .plain{display:none}.access-trigger{position:fixed;z-index:12;top:20px;right:18px;max-width:150px;background:rgba(249,250,242,.9)}.access-trigger span{display:none}.mobile-guide{top:82px}}

/* V18 · le seuil de la Place et le service des visas */
.building.access-locked.visa-invitation{animation:visa-place-call .72s ease-in-out 4!important;transform-box:fill-box;transform-origin:center}.access-options button.access-apply{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;background:#385444;color:#f8f8eb;font-weight:600;line-height:1.35;text-align:left}.access-options button.access-apply+button{margin-top:7px}.village-future{margin:18px 0;padding:17px 18px;border-radius:15px;background:#edf1e7;color:#50634f}.village-future strong{font:19px 'DM Serif Display',Georgia,serif}.village-future p{margin:7px 0 0;font-size:13px;line-height:1.6}.external-link>span:first-child{display:grid;gap:3px}.external-link b{font-weight:600}.external-link small{font-size:11px;line-height:1.35;opacity:.72}
@keyframes visa-place-call{0%,100%{opacity:.24;filter:grayscale(.72) brightness(.42) saturate(.3)}50%{opacity:1;filter:grayscale(0) brightness(1.22) saturate(1.2) drop-shadow(0 0 28px #ffd166);translate:0 -8px}}

/* V19 · sélecteur de profil mobile */
.mobile-access-selector{display:none}
@media(max-width:650px){.header-right{display:none}.mobile-access-selector{position:absolute;z-index:12;top:72px;left:16px;right:16px;display:grid;grid-template-columns:1.35fr .85fr .85fr;gap:4px;padding:4px;border:1px solid rgba(255,255,255,.62);border-radius:15px;background:rgba(249,250,242,.9);box-shadow:0 8px 28px rgba(28,50,39,.14);backdrop-filter:blur(16px)}.mobile-access-selector button{min-width:0;min-height:38px;padding:8px 7px;border-radius:11px;background:transparent;color:#647269;font-size:11px;line-height:1.15;white-space:nowrap}.mobile-access-selector button.active{background:#385444;color:#f8f8eb;box-shadow:0 4px 12px rgba(44,76,57,.2);font-weight:600}.mobile-guide{top:128px}}

/* V22 · accueil repliable et rail du réseau */
.intro{transition:opacity .55s ease,transform .65s cubic-bezier(.2,.8,.2,1),visibility .55s}.home-intro-collapsed .intro{visibility:hidden;opacity:0;transform:translateX(-34px)}.intro-collapse{position:absolute;top:50%;right:-51px;display:grid;width:36px;height:36px;place-items:center;border:1px solid rgba(255,255,255,.7);border-radius:50%;background:rgba(249,250,242,.82);color:#435846;box-shadow:0 7px 25px rgba(31,53,38,.12);backdrop-filter:blur(14px);pointer-events:auto;font:25px/1 Georgia,serif;animation:intro-arrow-in .45s ease-out}.village-network-rail{position:absolute;z-index:7;top:50%;left:0;display:flex;width:45px;height:285px;transform:translateY(-50%);flex-direction:column;overflow:hidden;border:1px solid rgba(255,255,255,.6);border-left:0;border-radius:0 18px 18px 0;background:rgba(249,250,242,.84);color:#3d5545;box-shadow:7px 10px 30px rgba(29,51,36,.12);backdrop-filter:blur(16px);animation:network-rail-in .5s cubic-bezier(.2,.8,.2,1)}.network-rail-main{display:flex;min-height:0;flex:1;align-items:center;gap:10px;padding:12px 10px;background:transparent;writing-mode:vertical-rl;transform:rotate(180deg);font-size:11px;letter-spacing:.03em}.network-live-dot{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#709065;box-shadow:0 0 0 4px rgba(112,144,101,.13)}.network-rail-arrow{font:20px Georgia,serif;opacity:.65}.village-network-rail>a{display:flex;min-height:94px;align-items:center;justify-content:center;border-top:1px solid rgba(57,77,61,.12);background:#385444;color:#f8f8eb;text-decoration:none;writing-mode:vertical-rl;transform:rotate(180deg);font-size:10px;font-weight:600;letter-spacing:.04em}@keyframes intro-arrow-in{from{opacity:0;translate:-8px 0}to{opacity:1;translate:0 0}}@keyframes network-rail-in{from{opacity:0;translate:-18px 0}to{opacity:1;translate:0 0}}
@media(max-width:650px){.intro-collapse{display:none}.village-network-rail{top:53%;width:38px;height:220px;border-radius:0 15px 15px 0}.network-rail-main{gap:7px;padding:9px 7px;font-size:9px}.village-network-rail>a{min-height:76px;font-size:9px}}

/* V23 · actualités éditoriales et compteur À la une */
.scene-note{width:100%;border:1px solid rgba(89,103,79,.12);color:inherit;text-align:left;cursor:pointer;transition:transform .2s,box-shadow .2s,border-color .2s}.scene-note:hover,.scene-note:focus-visible{transform:translateY(-2px);border-color:var(--notice-color,#d8b66f);box-shadow:0 12px 28px rgba(45,63,48,.12);outline:none}.scene-note small{display:flex;justify-content:space-between;margin-top:13px;color:#566a56;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.scene-note-highlight{display:inline-flex;margin-bottom:9px;padding:4px 8px;border-radius:999px;background:var(--notice-color,#d8b66f);color:#fff;font-size:8px;font-weight:800;letter-spacing:.14em}.notice-back{margin:0 0 18px;padding:8px 0;background:none;color:#627261;font-size:12px;font-weight:600}.notice-back:hover{text-decoration:underline}.notice-highlight-badge{pointer-events:none;filter:drop-shadow(0 3px 3px rgba(70,35,27,.32))}.notice-highlight-badge circle{fill:#b84f3d;stroke:#fff5dc;stroke-width:3}.notice-highlight-badge text{fill:white;font:700 11px 'DM Sans',sans-serif}

/* V24 · la maison commune et l’histoire du Village */
.detail-media{display:grid;place-items:center;overflow:hidden;max-height:270px;margin:18px 0;border:1px solid rgba(70,91,70,.12);border-radius:18px;background:linear-gradient(145deg,#eef2e8,#dfe7d9)}.detail-media img{display:block;width:100%;height:270px;object-fit:contain;object-position:center bottom}.scene-subitem{min-height:42px;text-align:left}.scene-subitem b{display:grid;width:23px;height:23px;place-items:center;border-radius:50%;background:rgba(255,255,255,.62);font-family:Georgia,serif;font-weight:400}

/* V26 · accès Thérapeute soumis à approbation */
.practitioner-access{margin-top:18px;padding:20px;border:1px solid rgba(132,101,63,.22);border-radius:17px;background:linear-gradient(145deg,#f8f0dd,#edf1e5);color:#465a48}.practitioner-access h3{margin:10px 0 6px;font:25px 'DM Serif Display',Georgia,serif}.practitioner-access p{margin:0;font-size:13px;line-height:1.65;color:#607060}.practitioner-status{display:inline-flex;padding:5px 9px;border-radius:999px;background:#906b46;color:#fff8e8;font-size:8px;font-weight:800;letter-spacing:.13em}.external-link.practitioner{background:#6c543b}

/* Vidéo d’introduction verticale */
.welcome-video{width:min(420px,100%);margin:0 auto 22px}.welcome-video video{aspect-ratio:9/16}.welcome-video figcaption{text-align:center}

/* Livre d’or public */
.guestbook-trigger{display:flex;align-items:center;gap:7px;padding:9px 13px;border:1px solid rgba(75,94,75,.18);border-radius:999px;background:rgba(249,250,239,.62);font-size:12px}.guestbook-trigger span{font:20px Georgia,serif}.guestbook-entry{padding:19px 0;border-top:1px solid rgba(70,88,68,.16)}.guestbook-entry blockquote{margin:0;font:20px/1.55 'DM Serif Display',Georgia,serif;color:#526651}.guestbook-entry footer{position:static;margin-top:12px;display:flex;justify-content:space-between;gap:12px;font-size:11px;opacity:.72}.guestbook-entry footer a{text-decoration:underline}.guestbook-entry>p{margin:14px 0 0;padding:12px;border-radius:10px;background:#e6ecdd;font-size:12px;line-height:1.55}.guestbook-empty,.guestbook-loading{padding:30px 0;font:italic 17px Georgia,serif;color:#6c7967}@media(max-width:850px){.guestbook-trigger b{display:none}.header-right{gap:12px}.guestbook-trigger{padding:7px 10px}}@media(max-width:650px){.guestbook-trigger{position:fixed;right:20px;bottom:126px;z-index:8;box-shadow:0 6px 22px #20332418}.guestbook-trigger span{font-size:22px}}

/* Landing Studio · une seule porte d’orientation depuis le Village */
.orientation-trigger{display:flex;align-items:center;gap:8px;padding:14px 16px;border-radius:40px;background:transparent;color:#516653;font-size:12px}.orientation-trigger span{font:20px Georgia,serif;color:#8a613f}.orientation-trigger b{max-width:150px;overflow:hidden;text-overflow:ellipsis;font-weight:600}.orientation-module{width:min(900px,100%);margin:28px 0;padding:28px;border:1px solid rgba(77,97,75,.16);border-radius:24px;background:rgba(250,250,241,.68)}.orientation-heading{max-width:700px}.orientation-heading small{font-size:9px;font-weight:800;letter-spacing:.17em;color:#8a6948}.orientation-heading h3{margin:8px 0 9px;font:clamp(27px,4vw,40px)/1.08 'DM Serif Display',Georgia,serif}.orientation-heading p{margin:0;color:#657565;font-size:13px;line-height:1.6}.orientation-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}.orientation-card{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:13px;align-items:center;min-height:104px;padding:16px;border:1px solid rgba(71,94,72,.15);border-radius:16px;background:#fbfbf4;color:#34483d;text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s}.orientation-card:hover,.orientation-card:focus-visible{transform:translateY(-2px);border-color:#9caf91;box-shadow:0 12px 28px rgba(44,64,48,.1)}.orientation-card>span{display:grid;width:42px;height:42px;place-items:center;border-radius:50%;background:#e4eadb;color:#77593e;font:22px Georgia,serif}.orientation-card strong,.orientation-card small{display:block}.orientation-card strong{font:19px/1.18 'DM Serif Display',Georgia,serif}.orientation-card small{margin-top:6px;color:#6c7a6c;font-size:11px;line-height:1.4}.orientation-card>b{color:#8a6a49;font-size:17px}.welcome-invitation{margin-top:22px}#detail .orientation-module{margin-top:22px;padding:0;border:0;background:transparent}#detail .orientation-heading h3{font-size:26px}#detail .orientation-grid{grid-template-columns:1fr}#detail .orientation-card{min-height:92px}
@media(max-width:760px){.orientation-grid{grid-template-columns:1fr}.orientation-module{padding:20px}.orientation-trigger{padding:12px 9px}.orientation-trigger b{max-width:78px;font-size:10px;line-height:1.1}.orientation-trigger span{font-size:17px}.journey-bar .bar-divider{height:22px}}
@media(max-width:420px){.journey-trigger>span:nth-child(2){display:none}.journey-trigger{flex:0;padding-inline:12px}.orientation-trigger b{max-width:68px}.time-trigger{padding-inline:8px}}
