@font-face{font-family:ASpace;src:url(space.woff2);font-weight:300 700;font-display:swap}
@font-face{font-family:ADM;src:url(dm.woff2);font-weight:400;font-display:swap}
@font-face{font-family:APlayfair;src:url(playfair.woff2);font-weight:400;font-display:swap}
@font-face{font-family:'ASpace Fallback';src:local('Arial');size-adjust:110.2%;ascent-override:88.9%;descent-override:26.3%;line-gap-override:0%}
@font-face{font-family:'ADM Fallback';src:local('Arial');size-adjust:99.7819%;ascent-override:99.2164%;descent-override:31.0678%;line-gap-override:0%}
@font-face{font-family:'APlayfair Fallback';src:local('Georgia');size-adjust:99.1284%;ascent-override:108.9496%;descent-override:25.2198%;line-gap-override:0%}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:100px}body{margin:0;--sans:ADM,'ADM Fallback',Arial,sans-serif;--display:ASpace,'ASpace Fallback',Arial,sans-serif;--serif:APlayfair,'APlayfair Fallback',Georgia,serif;background:var(--bg);color:var(--ink);font:400 16px/1.65 var(--sans)}a{color:inherit;text-decoration:none}a:focus-visible,summary:focus-visible{outline:3px solid currentColor;outline-offset:5px}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:500}svg{display:block}.wrap{width:calc(100% - 112px);max-width:1550px;margin-inline:auto}.site-header{position:sticky;top:0;z-index:40;border-bottom:1px solid color-mix(in srgb,var(--ink) 25%,transparent);background:var(--bg)}.header-inner{height:82px;display:flex;justify-content:space-between;align-items:center;gap:26px}.brand{display:flex;gap:13px;align-items:center;flex:none}.brand svg{width:43px;height:43px;fill:none;stroke:currentColor;stroke-width:1.6}.brand-name{font:600 26px/1.15 var(--display);display:block;letter-spacing:-.025em}.brand small{display:block;font-size:12.2px;line-height:1.4;margin-top:5px}.desktop-nav{display:flex;gap:28px;font-size:13px}.desktop-nav a{display:flex;align-items:center;min-height:44px}.mobile-menu{display:none}.hero{position:relative;isolation:isolate;height:calc(100svh - 82px);min-height:760px;max-height:1050px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:65px;padding:30px 56px}.hero-copy{min-width:0;display:flex;flex-direction:column;justify-content:center;padding:0 7px}.eyebrow{font:400 12.2px/1.5 var(--sans);letter-spacing:.07em;text-transform:uppercase;margin-bottom:20px}.hero h1{font:500 99px/1.045 var(--display);letter-spacing:-.055em;margin-bottom:24px}.hero h1 .location{display:block;font:400 24px/1.4 var(--sans);letter-spacing:-.015em;margin-top:20px}.intro{font:400 16px/1.65 var(--sans);max-width:470px}.proof{font:400 12.2px/1.5 var(--sans);border-left:3px solid currentColor;padding-left:12px;margin-top:19px;max-width:470px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px;align-items:center}.button{min-height:50px;display:inline-flex;justify-content:center;align-items:center;gap:14px;background:var(--ink);color:var(--bg);border:1px solid var(--ink);padding:13px 20px;font:400 14px/1.5 var(--sans)}.button:after{content:'↗';font-size:19px;line-height:1}.button.secondary{background:transparent;color:var(--ink)}.practical{font:400 12.2px/1.5 var(--sans);margin-top:20px}.geste{display:flex;gap:16px;align-items:start;max-width:470px;margin-top:26px;padding-top:20px;border-top:1px solid color-mix(in srgb,var(--ink) 35%,transparent)}.geste svg{flex:none;width:44px;height:44px;fill:none;stroke:currentColor;stroke-width:1.5}.geste-title{font:500 24px/1.3 var(--display)}.geste-detail{font:400 12.2px/1.55 var(--sans);max-width:360px;margin-top:7px}.visual{position:relative;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:13px;min-width:0;min-height:0;padding:25px 0}.visual picture{position:relative;display:block;min-height:0}.visual img{width:100%;height:100%;display:block;object-fit:cover;object-position:var(--position)}.photo-credit{font:400 12.2px/1.5 var(--sans);display:flex;gap:20px;justify-content:space-between}.illustration{white-space:nowrap}.mobile-caption,.hero-follow,.sticky-actions{display:none}.below{padding-block:88px;scroll-margin-top:100px}.section-heading{display:flex;justify-content:space-between;align-items:start;gap:70px;margin-bottom:42px}.section-heading h2{font:500 52px/1.12 var(--display);letter-spacing:-.04em;max-width:660px}.section-heading>p{max-width:490px}.activities{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:35px}.activities article{padding:25px 0;border-top:1px solid currentColor}.activities h3{font:500 29px/1.25 var(--display);letter-spacing:-.025em}.activities p{margin-top:16px}.activities small{display:block;margin-top:17px;font-size:12.2px}.brief{border:1px solid currentColor;padding:36px;margin-top:45px}.brief h3{font:500 36px/1.2 var(--display);letter-spacing:-.035em;margin-bottom:16px}.brief>p{max-width:800px}.brief-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:26px}.brief-field{border-bottom:1px solid color-mix(in srgb,var(--ink) 40%,transparent);padding-bottom:15px}.brief-field strong{display:block;font-size:14px;font-weight:500}.brief-field span{display:block;font-size:12.2px;margin-top:8px}.brief .demo-notice{font-size:12.2px;margin-top:23px}.brief a{min-height:44px;display:inline-flex;align-items:center;text-decoration:underline;text-underline-offset:5px;margin-top:20px}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;border-top:1px solid color-mix(in srgb,var(--ink) 35%,transparent)}.info-grid h3{font:500 36px/1.3 var(--display);letter-spacing:-.035em;margin-bottom:20px}.info-grid p+p{margin-top:15px}.info-grid small{display:block;font-size:12.2px;margin-top:20px}.demo-footer{padding:42px 0;border-top:1px solid color-mix(in srgb,var(--ink) 35%,transparent)}.footer-inner{display:flex;gap:70px;justify-content:space-between;align-items:start}.disclosure{max-width:820px;font-size:12.2px;line-height:1.8}.disclosure a{text-decoration:underline;text-underline-offset:4px}
/* Collective cover: an open civic newspaper, curved portrait and orange pencil marks. */
.hero-demo .hero{gap:75px;grid-template-columns:minmax(0,51fr) minmax(0,49fr)}.hero-demo .visual picture{border-radius:230px 230px 6px 6px;overflow:hidden;box-shadow:12px 12px 0 var(--accent)}.hero-demo .hero h1{font-size:93px}.hero-demo .geste{border-top:3px double currentColor}.hero-demo .button{border-radius:0 20px 0 20px}.hero-demo .visual{padding-top:32px}.hero-demo .brief{background:#e3e7be;border:0}
/* Culture: a violet performance poster and acidic highlights, deliberately typographic. */
.culture .brand svg{background:var(--ink);color:var(--accent);border-radius:50%;padding:7px}.culture .hero{grid-template-columns:minmax(0,53fr) minmax(0,47fr);gap:45px}.culture .hero h1{font-size:110px;letter-spacing:-.065em}.culture .hero h1 .location{border-top:1px solid var(--ink);padding-top:17px;margin-top:24px}.culture .visual{padding-top:52px;padding-bottom:15px}.culture .visual picture{border:12px solid var(--ink);box-shadow:12px -12px 0 var(--accent);transform:rotate(1deg)}.culture .visual img{object-position:50% 50%}.culture .button{background:var(--ink);color:var(--accent)}.culture .button.secondary{background:transparent;color:var(--ink)}.culture .geste{border-top-width:3px}.culture .brief{background:var(--accent);border:0}.culture .geste-title{text-transform:uppercase;font-size:21px}
/* Mutual aid: warm letterpress, a large serif and a humane circular photograph. */
.solidarite .brand-name{font:400 24px/1.2 var(--serif)}.solidarite .brand svg{color:var(--accent)}.solidarite .hero{grid-template-columns:minmax(0,48fr) minmax(0,52fr);gap:70px}.solidarite .hero h1{font:400 97px/1.08 var(--serif);letter-spacing:-.065em}.solidarite .hero h1 .location{letter-spacing:0}.solidarite .visual{align-self:center;height:600px}.solidarite .visual picture{border-radius:48% 48% 5px 5px;overflow:hidden;box-shadow:0 12px 0 #ddc8b0}.solidarite .button{background:var(--accent);border-color:var(--accent);color:#fff6ee;border-radius:30px}.solidarite .button.secondary{color:var(--ink);border-color:var(--ink);background:transparent}.solidarite .geste svg{color:var(--accent)}.solidarite .geste-title{font:400 26px/1.3 var(--serif)}.solidarite .section-heading h2,.solidarite .activities h3,.solidarite .brief h3,.solidarite .info-grid h3{font-family:var(--serif);font-weight:400}.solidarite .brief{border:0;background:#ead7c1;border-radius:35px 0 35px 0}
/* Neighbourhood: a club noticeboard, photograph left, right aligned typographic field. */
.vie-locale .hero{grid-template-columns:minmax(0,53fr) minmax(0,47fr);gap:80px}.vie-locale .hero-copy{grid-column:2;grid-row:1}.vie-locale .visual{grid-column:1;grid-row:1}.vie-locale .hero h1{font-size:105px;letter-spacing:-.065em}.vie-locale .visual picture{border:1px solid var(--ink);padding:12px;background:#f4c891;box-shadow:-12px 12px 0 #173447}.vie-locale .button{border-radius:5px}.vie-locale .proof{border:1px solid var(--ink);border-radius:30px;padding:8px 16px;align-self:start}.vie-locale .geste{border-top-style:dashed}.vie-locale .brief{background:#f4c891;border:0;box-shadow:7px 7px 0 var(--ink)}
/* Environment: botanical workshop blueprints with a broad, independent photograph. */
.environnement .hero{grid-template-columns:minmax(0,46fr) minmax(0,54fr);gap:74px}.environnement .brand svg{color:var(--accent)}.environnement .hero h1{font-size:102px;line-height:1.05}.environnement .hero h1 .location{color:var(--accent)}.environnement .visual picture{border-radius:3px 150px 3px 3px;overflow:hidden;border:1px solid var(--accent);padding:8px;background:#244e3f}.environnement .button{background:var(--accent);color:var(--bg);border-color:var(--accent);border-radius:3px 20px 3px 3px}.environnement .button.secondary{color:var(--ink);border-color:var(--ink);background:transparent}.environnement .geste{border-color:var(--accent)}.environnement .geste svg{color:var(--accent)}.environnement .geste-title{font-size:21px}.environnement .brief{background:#d0e687;color:#193c32;border:0}.environnement .brief-field{border-color:#193c32}
@media(min-width:761px) and (max-width:1180px){.wrap{width:calc(100% - 64px)}.hero,.hero-demo .hero,.culture .hero,.solidarite .hero,.vie-locale .hero,.environnement .hero{padding-inline:32px;gap:30px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.hero h1,.hero-demo .hero h1,.culture .hero h1,.solidarite .hero h1,.vie-locale .hero h1,.environnement .hero h1{font-size:76px}.hero-copy{padding:0}.hero-actions .button{font-size:12.2px;padding-inline:13px}.desktop-nav{gap:20px}.hero .intro{font-size:15px}.solidarite .visual{height:580px}.geste-title,.solidarite .geste-title{font-size:21px}.geste-detail{font-size:12.2px}.section-heading{gap:40px}.brand small{max-width:270px}}
@media(max-width:960px){.desktop-nav{display:none}.mobile-menu{display:block;position:relative}.mobile-menu summary{list-style:none;cursor:pointer;width:44px;height:44px;display:flex;justify-content:center;align-items:center}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu summary svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.6}.mobile-menu nav{position:absolute;right:0;top:54px;min-width:215px;background:var(--bg);border:1px solid var(--ink);box-shadow:0 8px 20px #0002;padding:15px;display:grid;gap:3px}.mobile-menu nav a{display:flex;align-items:center;min-height:44px;padding-inline:9px}}
@media(min-width:761px) and (max-width:960px){.wrap{width:calc(100% - 44px)}.hero,.hero-demo .hero,.culture .hero,.solidarite .hero,.vie-locale .hero,.environnement .hero{padding-inline:22px;gap:22px}.hero h1,.hero-demo .hero h1,.culture .hero h1,.solidarite .hero h1,.vie-locale .hero h1,.environnement .hero h1{font-size:65px}.hero .intro{font-size:14px}.hero h1 .location,.solidarite .hero h1 .location{font-size:24px}.hero-actions .button{font-size:12px;padding-inline:11px}.proof,.practical,.geste-detail{font-size:12px}.geste{gap:10px}.geste svg{width:36px;height:36px}}
@media(max-width:760px){html{scroll-padding-top:86px}.wrap{width:calc(100% - 40px)}.header-inner{height:70px;gap:15px}.brand{gap:9px}.brand svg{width:32px;height:32px}.brand-name,.solidarite .brand-name{font-size:23px;letter-spacing:-.02em}.brand small{font-size:12px;line-height:1.3;margin-top:3px;max-width:235px}.hero,.hero-demo .hero,.culture .hero,.solidarite .hero,.vie-locale .hero,.environnement .hero{height:calc(100svh - 158px);min-height:686px;max-height:none;display:grid;grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);gap:0;padding:19px 18px 0}.hero-copy,.vie-locale .hero-copy{grid-column:1;grid-row:1;display:block;padding:0 2px 18px!important}.eyebrow{font-size:12px;line-height:1.5;letter-spacing:.02em;margin-bottom:12px}.hero h1,.hero-demo .hero h1,.culture .hero h1,.solidarite .hero h1,.vie-locale .hero h1,.environnement .hero h1{font-size:53px;line-height:1.065;letter-spacing:-.045em;margin-bottom:15px}.hero-demo .hero h1{font-size:48px}.solidarite .hero h1{font-size:53px;line-height:1.08}.hero h1 .location,.solidarite .hero h1 .location{font:400 19px/1.4 var(--sans);margin-top:11px;letter-spacing:-.015em;border:0;padding:0}.culture .hero h1 .location{margin-top:11px;padding:0;border:0}.intro,.hero .intro{font-size:13.5px;line-height:1.6;max-width:none}.proof{font-size:12px;line-height:1.5;max-height:45px;white-space:nowrap;margin-top:13px;padding-left:10px}.vie-locale .proof{padding:4px 12px;display:inline-block;margin-top:12px}.hero-actions,.hero-copy .proof,.hero-copy .practical,.hero-copy .geste{display:none!important}.visual,.hero-demo .visual,.culture .visual,.solidarite .visual,.vie-locale .visual,.environnement .visual{grid-column:1;grid-row:2;align-self:stretch;height:auto;grid-template-rows:minmax(296px,1fr) auto;min-height:0;padding:0!important;gap:10px}.visual picture,.hero-demo .visual picture,.culture .visual picture,.solidarite .visual picture,.vie-locale .visual picture,.environnement .visual picture{min-height:296px;width:100%;height:100%;aspect-ratio:auto;padding:0;box-shadow:none;transform:none;border:0;border-radius:0;max-height:none}.hero-demo .visual picture{border-radius:26% 26% 3px 3px;overflow:hidden;box-shadow:4px 4px 0 var(--accent)}.culture .visual picture{border:5px solid var(--ink);box-shadow:4px -4px 0 var(--accent)}.solidarite .visual picture{border-radius:29% 29% 4px 4px;overflow:hidden}.vie-locale .visual picture{border:1px solid var(--ink);padding:4px;background:#f4c891}.environnement .visual picture{border:1px solid var(--accent);padding:4px;border-radius:3px 45px 3px 3px;overflow:hidden}.photo-credit{font-size:12px;line-height:1.5;justify-content:flex-end;padding:0 2px}.caption-text,.illustration{display:none!important}.mobile-caption{display:inline;white-space:nowrap}.hero-follow{display:block;padding:29px 20px 32px;margin-top:25px}.hero-follow .practical{margin-top:0;font-size:13px}.hero-follow .geste{margin-top:22px;padding-top:20px;max-width:none}.hero-follow .geste-title{font-size:23px}.hero-follow .geste-detail{font-size:12.2px;max-width:none}.below{padding-block:58px;scroll-margin-top:85px}.section-heading{display:block;margin-bottom:30px}.section-heading h2{font-size:39px;line-height:1.15}.section-heading>p{font-size:15px;margin-top:21px}.activities{grid-template-columns:1fr;gap:14px}.activities article{padding-block:21px}.activities h3{font-size:30px}.activities p{font-size:15px;margin-top:12px}.activities small{font-size:12.2px;margin-top:13px}.brief,.hero-demo .brief,.culture .brief,.solidarite .brief,.vie-locale .brief,.environnement .brief{margin-top:34px;padding:25px;border-radius:0;box-shadow:none}.brief h3{font-size:30px}.brief>p{font-size:15px}.brief-fields{grid-template-columns:1fr;gap:18px;margin-top:22px}.brief-field{padding-bottom:11px}.brief-field strong{font-size:14px}.brief-field span{font-size:12.2px;margin-top:5px}.brief .demo-notice{font-size:12.2px}.brief a{font-size:14px}.info-grid{grid-template-columns:1fr;gap:28px}.info-grid h3{font-size:31px}.info-grid p{font-size:15px}.demo-footer{padding-bottom:117px}.footer-inner{display:block}.disclosure{margin-top:28px}.sticky-actions{position:fixed;left:0;right:0;bottom:0;z-index:45;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));border-top:1px solid color-mix(in srgb,var(--ink) 45%,transparent);background:var(--bg)}.sticky-actions .button{min-height:48px;font-size:12.2px;padding:11px 8px;gap:8px;border-radius:0;box-shadow:none}.sticky-actions .button:after{font-size:17px}}
@media(max-width:380px){.hero,.hero-demo .hero,.culture .hero,.solidarite .hero,.vie-locale .hero,.environnement .hero{padding-inline:16px}.hero-demo .hero h1{font-size:45px}.culture .hero h1,.solidarite .hero h1,.vie-locale .hero h1,.environnement .hero h1{font-size:49px}.brand-name,.solidarite .brand-name{font-size:21px}.brand small{max-width:212px}.intro,.hero .intro{font-size:13px}.proof{font-size:12px;letter-spacing:-.025em}.hero h1 .location,.solidarite .hero h1 .location{font-size:18px}}
html,body,*{scrollbar-width:none;scrollbar-gutter:auto}html::-webkit-scrollbar,body::-webkit-scrollbar,*::-webkit-scrollbar{display:none;width:0;height:0}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

@media(max-width:760px){.hero-follow>.proof{margin:0 0 18px;white-space:normal;max-height:none}}
