├── CNAME ├── FSL-1.0-Apache-2.0.template.md └── index.html ├── FSL-1.0-MIT.template.md └── index.html ├── FSL-1.1-ALv2.template.md ├── FSL-1.1-Apache-2.0.template.md └── index.html ├── FSL-1.1-MIT.template.md ├── README.md ├── fsl.jpg ├── fsl.webp ├── hero.jpg ├── index.html ├── logos ├── answer-overflow.svg ├── codecov.svg ├── codecrafters.svg ├── convex.svg ├── gitbutler.svg ├── powersync.svg ├── sentry.svg ├── social │ └── github.svg ├── sweetr-dev.svg └── vyuh.svg ├── slice.jpg └── style.css /CNAME: -------------------------------------------------------------------------------- 1 | fsl.software 2 | -------------------------------------------------------------------------------- /FSL-1.0-Apache-2.0.template.md/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /FSL-1.0-MIT.template.md/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /FSL-1.1-ALv2.template.md: -------------------------------------------------------------------------------- 1 | # Functional Source License, Version 1.1, ALv2 Future License 2 | 3 | ## Abbreviation 4 | 5 | FSL-1.1-ALv2 6 | 7 | ## Notice 8 | 9 | Copyright ${year} ${licensor name} 10 | 11 | ## Terms and Conditions 12 | 13 | ### Licensor ("We") 14 | 15 | The party offering the Software under these Terms and Conditions. 16 | 17 | ### The Software 18 | 19 | The "Software" is each version of the software that we make available under 20 | these Terms and Conditions, as indicated by our inclusion of these Terms and 21 | Conditions with the Software. 22 | 23 | ### License Grant 24 | 25 | Subject to your compliance with this License Grant and the Patents, 26 | Redistribution and Trademark clauses below, we hereby grant you the right to 27 | use, copy, modify, create derivative works, publicly perform, publicly display 28 | and redistribute the Software for any Permitted Purpose identified below. 29 | 30 | ### Permitted Purpose 31 | 32 | A Permitted Purpose is any purpose other than a Competing Use. A Competing Use 33 | means making the Software available to others in a commercial product or 34 | service that: 35 | 36 | 1. substitutes for the Software; 37 | 38 | 2. substitutes for any other product or service we offer using the Software 39 | that exists as of the date we make the Software available; or 40 | 41 | 3. offers the same or substantially similar functionality as the Software. 42 | 43 | Permitted Purposes specifically include using the Software: 44 | 45 | 1. for your internal use and access; 46 | 47 | 2. for non-commercial education; 48 | 49 | 3. for non-commercial research; and 50 | 51 | 4. in connection with professional services that you provide to a licensee 52 | using the Software in accordance with these Terms and Conditions. 53 | 54 | ### Patents 55 | 56 | To the extent your use for a Permitted Purpose would necessarily infringe our 57 | patents, the license grant above includes a license under our patents. If you 58 | make a claim against any party that the Software infringes or contributes to 59 | the infringement of any patent, then your patent license to the Software ends 60 | immediately. 61 | 62 | ### Redistribution 63 | 64 | The Terms and Conditions apply to all copies, modifications and derivatives of 65 | the Software. 66 | 67 | If you redistribute any copies, modifications or derivatives of the Software, 68 | you must include a copy of or a link to these Terms and Conditions and not 69 | remove any copyright notices provided in or with the Software. 70 | 71 | ### Disclaimer 72 | 73 | THE SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTIES OF ANY KIND, EXPRESS OR 74 | IMPLIED, INCLUDING WITHOUT LIMITATION WARRANTIES OF FITNESS FOR A PARTICULAR 75 | PURPOSE, MERCHANTABILITY, TITLE OR NON-INFRINGEMENT. 76 | 77 | IN NO EVENT WILL WE HAVE ANY LIABILITY TO YOU ARISING OUT OF OR RELATED TO THE 78 | SOFTWARE, INCLUDING INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES, 79 | EVEN IF WE HAVE BEEN INFORMED OF THEIR POSSIBILITY IN ADVANCE. 80 | 81 | ### Trademarks 82 | 83 | Except for displaying the License Details and identifying us as the origin of 84 | the Software, you have no right under these Terms and Conditions to use our 85 | trademarks, trade names, service marks or product names. 86 | 87 | ## Grant of Future License 88 | 89 | We hereby irrevocably grant you an additional license to use the Software under 90 | the Apache License, Version 2.0 that is effective on the second anniversary of 91 | the date we make the Software available. On or after that date, you may use the 92 | Software under the Apache License, Version 2.0, in which case the following 93 | will apply: 94 | 95 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 96 | this file except in compliance with the License. 97 | 98 | You may obtain a copy of the License at 99 | 100 | http://www.apache.org/licenses/LICENSE-2.0 101 | 102 | Unless required by applicable law or agreed to in writing, software distributed 103 | under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 104 | CONDITIONS OF ANY KIND, either express or implied. See the License for the 105 | specific language governing permissions and limitations under the License. 106 | -------------------------------------------------------------------------------- /FSL-1.1-Apache-2.0.template.md/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /FSL-1.1-MIT.template.md: -------------------------------------------------------------------------------- 1 | # Functional Source License, Version 1.1, MIT Future License 2 | 3 | ## Abbreviation 4 | 5 | FSL-1.1-MIT 6 | 7 | ## Notice 8 | 9 | Copyright ${year} ${licensor name} 10 | 11 | ## Terms and Conditions 12 | 13 | ### Licensor ("We") 14 | 15 | The party offering the Software under these Terms and Conditions. 16 | 17 | ### The Software 18 | 19 | The "Software" is each version of the software that we make available under 20 | these Terms and Conditions, as indicated by our inclusion of these Terms and 21 | Conditions with the Software. 22 | 23 | ### License Grant 24 | 25 | Subject to your compliance with this License Grant and the Patents, 26 | Redistribution and Trademark clauses below, we hereby grant you the right to 27 | use, copy, modify, create derivative works, publicly perform, publicly display 28 | and redistribute the Software for any Permitted Purpose identified below. 29 | 30 | ### Permitted Purpose 31 | 32 | A Permitted Purpose is any purpose other than a Competing Use. A Competing Use 33 | means making the Software available to others in a commercial product or 34 | service that: 35 | 36 | 1. substitutes for the Software; 37 | 38 | 2. substitutes for any other product or service we offer using the Software 39 | that exists as of the date we make the Software available; or 40 | 41 | 3. offers the same or substantially similar functionality as the Software. 42 | 43 | Permitted Purposes specifically include using the Software: 44 | 45 | 1. for your internal use and access; 46 | 47 | 2. for non-commercial education; 48 | 49 | 3. for non-commercial research; and 50 | 51 | 4. in connection with professional services that you provide to a licensee 52 | using the Software in accordance with these Terms and Conditions. 53 | 54 | ### Patents 55 | 56 | To the extent your use for a Permitted Purpose would necessarily infringe our 57 | patents, the license grant above includes a license under our patents. If you 58 | make a claim against any party that the Software infringes or contributes to 59 | the infringement of any patent, then your patent license to the Software ends 60 | immediately. 61 | 62 | ### Redistribution 63 | 64 | The Terms and Conditions apply to all copies, modifications and derivatives of 65 | the Software. 66 | 67 | If you redistribute any copies, modifications or derivatives of the Software, 68 | you must include a copy of or a link to these Terms and Conditions and not 69 | remove any copyright notices provided in or with the Software. 70 | 71 | ### Disclaimer 72 | 73 | THE SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTIES OF ANY KIND, EXPRESS OR 74 | IMPLIED, INCLUDING WITHOUT LIMITATION WARRANTIES OF FITNESS FOR A PARTICULAR 75 | PURPOSE, MERCHANTABILITY, TITLE OR NON-INFRINGEMENT. 76 | 77 | IN NO EVENT WILL WE HAVE ANY LIABILITY TO YOU ARISING OUT OF OR RELATED TO THE 78 | SOFTWARE, INCLUDING INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES, 79 | EVEN IF WE HAVE BEEN INFORMED OF THEIR POSSIBILITY IN ADVANCE. 80 | 81 | ### Trademarks 82 | 83 | Except for displaying the License Details and identifying us as the origin of 84 | the Software, you have no right under these Terms and Conditions to use our 85 | trademarks, trade names, service marks or product names. 86 | 87 | ## Grant of Future License 88 | 89 | We hereby irrevocably grant you an additional license to use the Software under 90 | the MIT license that is effective on the second anniversary of the date we make 91 | the Software available. On or after that date, you may use the Software under 92 | the MIT license, in which case the following will apply: 93 | 94 | Permission is hereby granted, free of charge, to any person obtaining a copy of 95 | this software and associated documentation files (the "Software"), to deal in 96 | the Software without restriction, including without limitation the rights to 97 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 98 | of the Software, and to permit persons to whom the Software is furnished to do 99 | so, subject to the following conditions: 100 | 101 | The above copyright notice and this permission notice shall be included in all 102 | copies or substantial portions of the Software. 103 | 104 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 105 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 106 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 107 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 108 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 109 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 110 | SOFTWARE. 111 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Functional Source License (FSL) 2 | 3 | 4 | 5 | ### Welcome! 6 | 7 | This repo holds the source code for [fsl.software](https://fsl.software/), the 8 | homepage for the [Functional Source License (FSL)](https://fsl.software/). If 9 | you have questions or want to add your company logo, [open an 10 | issue](https://github.com/getsentry/fsl.software/issues/new) or dive in 11 | with a PR. 12 | 13 | 14 | ### Now What? 15 | 16 | Also in this repo we are [brainstorming what might be 17 | next](https://github.com/getsentry/fsl.software/issues/5) beyond FSL. 18 | Here is some context to catch you up on the backstory and where we are headed. 19 | 20 | > We want to do something about harmful free-riding by prioritizing developer 21 | > sustainability—for ourselves and others—in addition to user freedom. 22 | 23 | [Introducing the Functional Source License: Freedom without Free-riding](https://blog.sentry.io/introducing-the-functional-source-license-freedom-without-free-riding/) 24 | 25 | > We value software freedom for users to an extent, but we don’t think of it in 26 | > the same strident terms as the Free Software movement. We think of freedom 27 | > primarily in terms of **access** to technology and knowledge to improve 28 | > efficiency for developers. What’s more, it’s not the only thing that matters 29 | > to us. We also value **sustainability** for developers. The two are often in 30 | > tension. Finding and maintaining a good balance between them is what Open 31 | > Source means to us. 32 | 33 | [Sentry’s Open Source Values](https://blog.sentry.io/sentrys-open-source-values/) 34 | 35 | > I think the way forward here is to make what I suspect is a loose 36 | > confederation of folks using non-compete licenses to actually get together 37 | > and draft their own set of values. To then brand that. And stand behind it 38 | > proudly. 39 | 40 | https://twitter.com/adamhjk/status/1687113805237714944 41 | -------------------------------------------------------------------------------- /fsl.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getsentry/fsl.software/5e8778ddadfd4c0e0e03c994736249d9ee32a2fd/fsl.jpg -------------------------------------------------------------------------------- /fsl.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getsentry/fsl.software/5e8778ddadfd4c0e0e03c994736249d9ee32a2fd/fsl.webp -------------------------------------------------------------------------------- /hero.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getsentry/fsl.software/5e8778ddadfd4c0e0e03c994736249d9ee32a2fd/hero.jpg -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | FSL - Functional Source License 7 | 10 | 11 | 15 | 16 | 17 | 18 | 23 | 24 | 25 |
26 |
27 |

FSL

28 |
29 | 30 |
31 |
32 |

What?

33 | 34 |

35 | The Functional Source License (FSL) is a 36 | Fair Source 37 | license that converts to Apache 2.0 or MIT after two years. It is 38 | designed for SaaS companies that value both user freedom and 39 | developer sustainability. FSL provides everything a developer needs 40 | to use and learn from your software without 41 | harmful free-riding. 44 |

45 |
46 |
47 | 48 |
49 |
50 |

51 | FSL-1.1-ALv2 55 | (raw) 56 |

57 |

58 | FSL-1.1-MIT 62 | (raw) 63 |

64 |
65 |
66 | 67 |
68 |
69 |

Who?

70 |

71 | Here are products using FSL. Add yours 72 | on GitHub. 75 |

76 | 77 |
    78 | 83 | 84 |
  • Answer Overflow logo
  • 85 |
  • CodeCrafters logo
  • 86 |
  • Codecov logo
  • 87 |
  • Convex logo
  • 88 |
  • GitButler logo
  • 89 |
  • PowerSync logo
  • 90 |
  • Sentry logo
  • 91 |
  • Sweetr logo
  • 92 |
  • Vyuh logo
  • 93 |
94 |
95 |
96 | 97 |
98 |
99 |

FAQ

100 | 101 |
102 |
Why?
103 | 104 |
105 | Many SaaS companies wish to make the source code for their core 106 | products available under 107 | permissive 111 | terms without the risk of 112 | harmful free-riding. A standard license for this purpose makes life easier for both 115 | producers and consumers of such software. 116 |
117 | 118 |
What is harmful free-riding?
119 | 120 |
121 | Harmful free-riding is the sort of free-riding that leads to 122 | the free-rider problem: “In the social sciences, the free-rider problem is a type of 125 | market failure that occurs when those who benefit from resources, 126 | public goods and common pool resources do not pay for them or 127 | under-pay. Examples of such goods are public roads or public 128 | libraries or services or other goods of a communal nature. Free 129 | riders are a problem for common pool resources because they may 130 | overuse it by not paying for the good (either directly through 131 | fees or tolls or indirectly through taxes). Consequently, the 132 | common pool resource may be under-produced, overused, or degraded. 133 | Additionally, it has been shown that despite evidence that people 134 | tend to be cooperative by nature (a prosocial behaviour), the 135 | presence of free-riders causes cooperation to deteriorate, 136 | perpetuating the free-rider problem.” 137 |
138 | 139 |
Why not Open Source?
140 |
141 | Open Source does not 142 | protect against harmful free-riding. 143 |
144 | 145 |
What about AGPLv3 though?
146 |
147 | AGPLv3 148 | is not permissive enough. As a highly viral copyleft license, it 149 | exposes users to serious risk of having to divulge their 150 | proprietary source code. FSL does not introduce this risk, so FSL 151 | software can be adopted at organizations where AGPL is outside of 152 | policy. 153 |
154 | 155 |
Why not open core?
156 |
157 | Open core 160 | is not permissive enough. It restricts based on feature set, such 161 | that some product features are never open. Moreover, the 162 | percentage of features that are restricted is highly variable from 163 | product to product. With FSL, all product features are available 164 | now for almost all uses, and are soon fully permissive. 165 |
166 | 167 |
Why not [some other alternative]?
168 | 169 |
170 | There have been many somewhat similar attempts over the decades to 171 | balance user freedom and developer sustainability. None has truly 172 | caught on in the industry, and their original sponsors have either 173 | stopped promoting or outright abandoned them. 174 | 175 |

176 | 177 | FSL's immediate predecessor is the 178 | Business Source License 179 | (BSL or BUSL). BSL's time-based approach is great, but the 180 | Additional Use Grant is a serious flaw, because it creates 181 | too much variability. Each BSL implementation is essentially a new license. Also, 185 | four years is too long. FSL is an evolved BSL that (we hope) has a 186 | better chance of catching on. 187 |
188 | 189 |
What can I do with FSL software?
190 | 191 |
192 | You can do anything with FSL software except undermine its 193 | producer. You can run it for almost all purposes, study it, modify 194 | it, and distribute your changes, including proposing improvements 195 | back to the producer. After two years it becomes permissive Open 196 | Source software under Apache 2.0 or MIT. 197 |
198 | 199 |
Why only Apache 2.0 and MIT?
200 | 201 |
202 | Looking at popular licenses according to 203 | OSI 207 | and GitHub: copyleft is 208 | not our jam, and BSD/ISC don't offer anything over MIT. That 209 | leaves Apache 2.0 (with its patent grant) and MIT. 210 |
211 | 212 |
213 | Okay, but I can use FSL with a different change license, right? 214 |
215 | 216 |
217 | No. If you do this, you'll have to call it something other than 218 | FSL. Can you try to use the 219 | Business Source License, 220 | though? It's similar to FSL but allows for any change license. 221 |
222 | 223 |
How exactly does the two years work?
224 | 225 |
226 | The two year timeframe applies to each software version that is 227 | made available. Methods of making software available include 228 | pushing a Git commit, publishing a package to a repository, or 229 | mailing out a CD in a tin. For example, one could clone a repo, 230 | run 231 | git checkout `git rev-list -n 1 --before="2 years ago" 233 | master`, and—if LICENSE.md is FSL—use that version under 235 | MIT or Apache 2.0. 236 |
237 | 238 |
What's with the name?
239 |
Meh, it's functional. ¯\_(ツ)_/¯
240 | 241 |
What's the backstory?
242 |
243 | Read the announcement. 247 |
248 | 249 |
How do I adopt FSL for my product?
250 |
251 | Glad you asked! 252 | Check out our guide on GitHub. 255 |
256 |
257 |
258 |
259 | 260 | 271 |
272 | 273 | 274 | -------------------------------------------------------------------------------- /logos/answer-overflow.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /logos/codecov.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | codecov-logo 4 | 5 | 8 | 9 | -------------------------------------------------------------------------------- /logos/codecrafters.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /logos/convex.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /logos/gitbutler.svg: -------------------------------------------------------------------------------- 1 | 8 | 9 | 13 | 17 | 18 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60 | 64 | 68 | 69 | 70 | -------------------------------------------------------------------------------- /logos/powersync.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /logos/sentry.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /logos/social/github.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /logos/sweetr-dev.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /logos/vyuh.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /slice.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getsentry/fsl.software/5e8778ddadfd4c0e0e03c994736249d9ee32a2fd/slice.jpg -------------------------------------------------------------------------------- /style.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css2?family=Gabarito:wght@400;700&display=swap'); 2 | 3 | * { 4 | margin: 0; 5 | padding: 0; 6 | box-sizing: border-box; 7 | } 8 | body { 9 | font: normal 16pt/21pt Gabarito, sans-serif; 10 | background: url('hero.jpg') #1F1D12; 11 | background-size: 100vw; 12 | background-repeat: no-repeat; 13 | background-attachment: fixed; 14 | } 15 | 16 | article { 17 | color: #1F1D12; 18 | } 19 | 20 | h1, div.content { 21 | max-width: 640px; 22 | margin: 0 auto; 23 | } 24 | h1 { 25 | text-align: center; 26 | padding: 100px; 27 | font: bold 10vw/10vw Gabarito; 28 | } 29 | h2, h3 { 30 | margin: 0 0 12pt; 31 | font-weight: bold; 32 | font-family: Gabarito; 33 | } 34 | h2 { 35 | font-size: 24pt; 36 | line-height: 32pt; 37 | } 38 | h3 { 39 | margin-top: 48px; 40 | font-size: 16pt; 41 | line-height: 21pt; 42 | text-align: center; 43 | } 44 | p { 45 | margin: 0 0 16pt; 46 | padding: 0; 47 | line-height: 1.5; 48 | } 49 | dt { 50 | margin: 24pt 0 8pt; 51 | font-weight: bold; 52 | } 53 | dd { 54 | line-height: 1.5; 55 | } 56 | 57 | div.content { 58 | padding: 80px 40px; 59 | } 60 | 61 | section:first-of-type h2 { 62 | margin-top: 0; 63 | } 64 | section:nth-child(even) { 65 | background: #F5F6F1; 66 | color: #1F1D12; 67 | } 68 | section:nth-child(even) a { 69 | color: #1F1D12; 70 | } 71 | section:nth-child(odd) { 72 | background: #1F1D12; 73 | color: #F5F6F1; 74 | } 75 | section:nth-child(odd) a { 76 | color: #F5F6F1; 77 | } 78 | 79 | table { 80 | font-size: 14pt; 81 | margin: 0 auto; 82 | border-collapse: collapse; 83 | border-spacing: 0; 84 | text-align: center; 85 | } 86 | th { 87 | white-space: nowrap; 88 | } 89 | th.pad { 90 | padding: 0 10px; 91 | } 92 | th.right { 93 | text-align: right; 94 | } 95 | td span { 96 | visibility: hidden; 97 | } 98 | 99 | ul { 100 | width: 100%; 101 | } 102 | li { 103 | display: block; 104 | list-style: none; 105 | } 106 | li img { 107 | display: block; 108 | height: 48px; 109 | } 110 | 111 | code { 112 | font: bold 12pt/14pt "Berkeley Mono", "Monocraft", monospace; 113 | padding: 3pt 6pt; 114 | background: black; 115 | color: #008F19; 116 | } 117 | 118 | .companies .content { 119 | padding-bottom: 80px; 120 | } 121 | .companies ul { 122 | margin-top: 80px; 123 | } 124 | .companies li img { 125 | margin: 0 auto 80px; 126 | } 127 | 128 | .book img { 129 | margin-bottom: 40px; 130 | } 131 | .book a { 132 | color: #F5F6F1; 133 | text-decoration: none; 134 | display: block; 135 | font-size: 14pt; 136 | } 137 | 138 | .footer ul { 139 | width: 25%; 140 | columns: 1; /* should match number of icons */ 141 | margin: 0 auto; 142 | } 143 | .footer li img { 144 | height: 32px; 145 | margin: 0 auto; 146 | } 147 | 148 | @media (min-width: 640px) { 149 | div.content { 150 | padding: 80px 40px; 151 | } 152 | .companies ul { 153 | columns: 2; 154 | } 155 | } 156 | @media (min-width: 650px) { 157 | div.content { 158 | padding: 80px 35px; 159 | } 160 | } 161 | @media (min-width: 660px) { 162 | div.content { 163 | padding: 80px 30px; 164 | } 165 | } 166 | @media (min-width: 670px) { 167 | div.content { 168 | padding: 80px 25px; 169 | } 170 | .book a { 171 | columns: 2; 172 | } 173 | } 174 | @media (min-width: 680px) { 175 | div.content { 176 | padding: 80px 20px; 177 | } 178 | } 179 | @media (min-width: 690px) { 180 | div.content { 181 | padding: 80px 15px; 182 | } 183 | } 184 | @media (min-width: 700px) { 185 | div.content { 186 | padding: 80px 10px; 187 | } 188 | } 189 | @media (min-width: 710px) { 190 | div.content { 191 | padding: 80px 5px; 192 | } 193 | } 194 | @media (min-width: 720px) { 195 | div.content { 196 | padding: 80px 0px; 197 | } 198 | } 199 | 200 | @media (max-width: 874px) { 201 | /* image is 1904 x 640, so at 294 height the width is 874 */ 202 | body { 203 | background-size: auto 294px; 204 | background-repeat: no-repeat; 205 | background-attachment: fixed; 206 | background-position: 30% top; 207 | } 208 | } 209 | 210 | @media (max-width: 945px) { 211 | h1 { 212 | font-size: 94px; 213 | line-height: 94px; 214 | } 215 | } 216 | --------------------------------------------------------------------------------