PageSourceSearch

https://www.venndesign.co/search

html venndesign.co collected 2026-09-28 12:38:06 UTC 258,006 bytes, 3,681 lines download raw bytes

1<!doctype html>
2<html xmlns:og="http://opengraphprotocol.org/schema/" xmlns:fb="http://www.facebook.com/2008/fbml" lang="en-US"  >
3  <head>
4    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
5    <meta name="viewport" content="initial-scale=1">
6
7    <!-- This is Squarespace. --><!-- venndesign2 -->
8<base href="">
9<meta charset="utf-8" />
10<title>Venn Design | Ergonomic Desk Chairs, Office Chairs, Sitting Cushions, Floor Pads, and Wellness Furniture</title>
11<meta http-equiv="Accept-CH" content="Sec-CH-UA-Platform-Version, Sec-CH-UA-Model" /><link rel="icon" type="image/x-icon" href="https://images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/1605998049236-4H6DI2M88LZ4HKRDPJTW/favicon.ico"/>
12<meta property="og:site_name" content="Venn Design &#124; Ergonomic Desk Chairs, Office Chairs, Sitting Cushions, Floor Pads, and Wellness Furniture"/>
13<meta property="og:title" content="Venn Design | Ergonomic Desk Chairs, Office Chairs, Sitting Cushions, Floor Pads, and Wellness Furniture"/>
14<meta property="og:type" content="website"/>
15<meta property="og:image" content="http://images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/a5121991-f8de-41d6-b386-922654a12d14/Venn+Design+logo%402000x-100.jpg?format=1500w"/>
16<meta itemprop="name" content="Venn Design &#124; Ergonomic Desk Chairs, Office Chairs, Sitting Cushions, Floor Pads, and Wellness Furniture"/>
17<meta itemprop="thumbnailUrl" content="http://images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/a5121991-f8de-41d6-b386-922654a12d14/Venn+Design+logo%402000x-100.jpg?format=1500w"/>
18<link rel="image_src" href="http://images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/a5121991-f8de-41d6-b386-922654a12d14/Venn+Design+logo%402000x-100.jpg?format=1500w" />
19<meta itemprop="image" content="http://images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/a5121991-f8de-41d6-b386-922654a12d14/Venn+Design+logo%402000x-100.jpg?format=1500w"/>
20<meta name="twitter:title" content="Venn Design &#124; Ergonomic Desk Chairs, Office Chairs, Sitting Cushions, Floor Pads, and Wellness Furniture"/>
21<meta name="twitter:image" content="http://images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/a5121991-f8de-41d6-b386-922654a12d14/Venn+Design+logo%402000x-100.jpg?format=1500w"/>
22<meta name="twitter:card" content="summary"/>
23<meta name="description" content="" />
24<link rel="preconnect" href="https://images.squarespace-cdn.com">
25<link rel="preconnect" href="https://use.typekit.net" crossorigin>
26<link rel="preconnect" href="https://p.typekit.net" crossorigin>
27<script type="text/javascript" src="//use.typekit.net/ik/qsy3vgljDnKxC4xgmVxqiRYypdrmuOXz1nFDb02wPb3felvIfFHN4UJLFRbh52jhWD9tF2sR529oZ2IaFQy8wDiywQ4cZA4RFgnoMKG0jAFu-WsoShFGZAsude80ZkoRdhXCHKoyjamTiY8Djhy8ZYmC-Ao1Oco8if37OcBDOcu8OfG0SaBujW48SagyjhmDjhy8ZYmC-Ao1OcFzdP37O1Z8dcoqZWFTZhtkO1FUiABkZWF3jAF8OcFzdPUyjamTiY8Djhy8ZYmC-Ao1OcFzdPUyjamTiY8Djhy8ZYmC-Ao1Oco8ifUySkolZPUCdhFydeyzSabCSaBujW48SagyjhmDjhy8ZYmC-Ao1OcFzdPUhZAo0ZemD-Ai0OcFzOYZ8dcoqZWFTZhtkO1FUiABkZWF3jAF8OcFzdPUaiaS0jAFu-WsoShFGZAsude80ZkoRdhXCiaiaOcBRiA8XpWFR-emqiAUTdcS0dcmXOYiaikoySkolZPUaiaS0SaBujW48SagyjhmDjhy8ZYmC-Ao1OcFzdPUaiaS0icm0dcs8Sh81dKoRdkUaiaS0icm0dcs8Sh81dRJ0SaBujW48Sagyjh90jhNlJ6U3ScNt-AuyOAozicIK2e48dYqlZe8DSeUypPJIjcmCpPJ4Z1mXiW4yOWgXH6qJ73IbMg6gJMJ7fbRKHyMMeMw6MKG4fHvgIMMjgfMfH6GJCwbgIMMjgPMfH6qJK3IbMg6YJMJ7f6KzN3IbMs6IJMJ7f6KCN3IbMy6IJMJ7f6KlN3IbMy6YJMJ7f6KnN3IbMy65JMJ7f6K0N3IbMy6sJMJ7fbKImsM2eMb6MKG4fJBmIMwjgkMfqMeeqzH6g6.js" async fetchpriority="high" onload="try{Typekit.load();}catch(e){} document.documentElement.classList.remove('wf-loading');"></script>
vendor: 1 bytes, line 27
27
28<script>document.documentElement.classList.add('wf-loading')</script>
28
29<style>@keyframes fonts-loading { 0%, 99% { color: transparent; } } html.wf-loading * { animation: fonts-loading 3s; }</style>
30<link rel="preconnect" href="https://file.squarespace-cdn.com" crossorigin>
31<style data-sqsp-font-ids="6a313aef7d426c0f400804d1,6a313cb3494e3c6626e645ca,6a313952691a2d058d1a1aed,6a313705f906cb6ef8dce552">
32/* math */
33@font-face {
34  font-family: 'Roboto';
35  font-style: normal;
36  font-weight: 400;
37  font-display: swap;
38  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/8a9618fb-2f5c-401e-903f-4f3e76d46ee3/math.woff2') format('woff2');
39  unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;
40}
41/* greek-ext */
42@font-face {
43  font-family: 'Roboto';
44  font-style: normal;
45  font-weight: 400;
46  font-display: swap;
47  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/e7721029-9c93-41a2-9c65-a50bc7ee984c/greek-ext.woff2') format('woff2');
48  unicode-range: U+1F00-1FFF;
49}
50/* latin */
51@font-face {
52  font-family: 'Roboto';
53  font-style: normal;
54  font-weight: 400;
55  font-display: swap;
56  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/74534a3f-2c12-4fac-b36b-7d5fffdca709/latin.woff2') format('woff2');
57  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
58}
59/* greek */
60@font-face {
61  font-family: 'Roboto';
62  font-style: normal;
63  font-weight: 400;
64  font-display: swap;
65  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/8c396c29-f890-459f-b884-db4d54948998/greek.woff2') format('woff2');
66  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
67}
68/* latin-ext */
69@font-face {
70  font-family: 'Roboto';
71  font-style: normal;
72  font-weight: 400;
73  font-display: swap;
74  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/b6a444ac-6c80-4487-a860-e33cd6d5cf98/latin-ext.woff2') format('woff2');
75  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
76}
77/* vietnamese */
78@font-face {
79  font-family: 'Roboto';
80  font-style: normal;
81  font-weight: 400;
82  font-display: swap;
83  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/8123d4cd-3a2a-4166-b38e-b779581b81d3/vietnamese.woff2') format('woff2');
84  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
85}
86/* cyrillic */
87@font-face {
88  font-family: 'Roboto';
89  font-style: normal;
90  font-weight: 400;
91  font-display: swap;
92  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/12708170-a296-4d2c-a4f4-3dd81b4d8208/cyrillic.woff2') format('woff2');
93  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
94}
95/* symbols */
96@font-face {
97  font-family: 'Roboto';
98  font-style: normal;
99  font-weight: 400;
100  font-display: swap;
101  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/0875af1a-79ef-4b4e-9f6c-f03b4dff8766/symbols.woff2') format('woff2');
102  unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF;
103}
104/* cyrillic-ext */
105@font-face {
106  font-family: 'Roboto';
107  font-style: normal;
108  font-weight: 400;
109  font-display: swap;
110  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/417a6222-09a6-4e22-9cbf-b14450e5089a/cyrillic-ext.woff2') format('woff2');
111  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
112}
113/* vietnamese */
114@font-face {
115  font-family: 'Work Sans';
116  font-style: normal;
117  font-weight: 500;
118  font-display: swap;
119  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/54edb56c-ff8a-4d20-9382-08133737d40d/vietnamese.woff2') format('woff2');
120  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
121}
122/* latin-ext */
123@font-face {
124  font-family: 'Work Sans';
125  font-style: normal;
126  font-weight: 500;
127  font-display: swap;
128  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/a4f673b0-49a9-470c-af82-949ebeaafc90/latin-ext.woff2') format('woff2');
129  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1D
129BF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
130}
131/* latin */
132@font-face {
133  font-family: 'Work Sans';
134  font-style: normal;
135  font-weight: 500;
136  font-display: swap;
137  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/ad543023-f3da-4ee7-b903-7d8d744fbe96/latin.woff2') format('woff2');
138  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
139}
140/* vietnamese */
141@font-face {
142  font-family: 'Work Sans';
143  font-style: normal;
144  font-weight: 300;
145  font-display: swap;
146  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/f5c716a6-5414-438c-bbab-8d9750b53de5/vietnamese.woff2') format('woff2');
147  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
148}
149/* latin */
150@font-face {
151  font-family: 'Work Sans';
152  font-style: normal;
153  font-weight: 300;
154  font-display: swap;
155  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/55c697ab-a250-4bb2-a8e6-47322ce90d57/latin.woff2') format('woff2');
156  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
157}
158/* latin-ext */
159@font-face {
160  font-family: 'Work Sans';
161  font-style: normal;
162  font-weight: 300;
163  font-display: swap;
164  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/31956cd0-3b84-46a4-8284-75f8d9b63c42/latin-ext.woff2') format('woff2');
165  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
166}
167/* vietnamese */
168@font-face {
169  font-family: 'Work Sans';
170  font-style: italic;
171  font-weight: 400;
172  font-display: swap;
173  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/eec81333-1ab3-4908-aa12-21142fc9b0df/vietnamese.woff2') format('woff2');
174  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
175}
176/* latin-ext */
177@font-face {
178  font-family: 'Work Sans';
179  font-style: italic;
180  font-weight: 400;
181  font-display: swap;
182  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/5d3874b7-daa0-41d7-9e7b-feb731cbca4c/latin-ext.woff2') format('woff2');
183  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
184}
185/* latin */
186@font-face {
187  font-family: 'Work Sans';
188  font-style: italic;
189  font-weight: 400;
190  font-display: swap;
191  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/40f9fffb-24e9-4da7-bbed-d1ef25cb26e5/latin.woff2') format('woff2');
192  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
193}
194/* vietnamese */
195@font-face {
196  font-family: 'Work Sans';
197  font-style: normal;
198  font-weight: 700;
199  font-display: swap;
200  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/b242a786-aee4-4399-8e0e-c210872592ec/vietnamese.woff2') format('woff2');
201  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
202}
203/* latin */
204@font-face {
205  font-family: 'Work Sans';
206  font-style: normal;
207  font-weight: 700;
208  font-display: swap;
209  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/ac82d915-3ded-4e8f-b788-59902f0a9a31/latin.woff2') format('woff2');
210  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
211}
212/* latin-ext */
213@font-face {
214  font-family: 'Work Sans';
215  font-style: normal;
216  font-weight: 700;
217  font-display: swap;
218  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/01ab3112-033c-4322-a9de-d7d7e5436fd6/latin-ext.woff2') format('woff2');
219  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1D
219BF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
220}
221/* vietnamese */
222@font-face {
223  font-family: 'Oswald';
224  font-style: normal;
225  font-weight: 700;
226  font-display: swap;
227  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/368bd071-42c3-468c-9fef-7dd523c166af/vietnamese.woff2') format('woff2');
228  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
229}
230/* cyrillic-ext */
231@font-face {
232  font-family: 'Oswald';
233  font-style: normal;
234  font-weight: 700;
235  font-display: swap;
236  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/fddf03d1-f3a6-4959-bf5c-f1cd2e737db2/cyrillic-ext.woff2') format('woff2');
237  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
238}
239/* cyrillic */
240@font-face {
241  font-family: 'Oswald';
242  font-style: normal;
243  font-weight: 700;
244  font-display: swap;
245  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/efaac1f3-36a2-4fd1-b129-2fe18f4fa766/cyrillic.woff2') format('woff2');
246  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
247}
248/* latin-ext */
249@font-face {
250  font-family: 'Oswald';
251  font-style: normal;
252  font-weight: 700;
253  font-display: swap;
254  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/007b0417-9200-496c-87c8-073e4234daea/latin-ext.woff2') format('woff2');
255  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
256}
257/* latin */
258@font-face {
259  font-family: 'Oswald';
260  font-style: normal;
261  font-weight: 700;
262  font-display: swap;
263  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/90ab4a5d-8a5b-4f76-b1ac-22b64d8b3e35/latin.woff2') format('woff2');
264  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
265}
266/* latin */
267@font-face {
268  font-family: 'Oswald';
269  font-style: normal;
270  font-weight: 400;
271  font-display: swap;
272  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/c02dd75d-df69-4519-9bfc-eedeadf97567/latin.woff2') format('woff2');
273  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
274}
275/* cyrillic */
276@font-face {
277  font-family: 'Oswald';
278  font-style: normal;
279  font-weight: 400;
280  font-display: swap;
281  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/ea7b6a81-be63-404b-a1a6-47158bc6cafb/cyrillic.woff2') format('woff2');
282  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
283}
284/* latin-ext */
285@font-face {
286  font-family: 'Oswald';
287  font-style: normal;
288  font-weight: 400;
289  font-display: swap;
290  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/c5f42a30-212b-4593-9ded-a48112aa7091/latin-ext.woff2') format('woff2');
291  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
292}
293/* cyrillic-ext */
294@font-face {
295  font-family: 'Oswald';
296  font-style: normal;
297  font-weight: 400;
298  font-display: swap;
299  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/c58bb968-41bf-4732-bfcb-61e35aa32b70/cyrillic-ext.woff2') format('woff2');
300  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
301}
302/* vietnamese */
303@font-face {
304  font-family: 'Oswald';
305  font-style: normal;
306  font-weight: 400;
307  font-display: swap;
308  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/17d3d32d-4f55-43f4-b2e1-4795869b4768/vietnamese.woff2') format('woff2');
309  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
310}
311/* latin-ext */
312@font-face {
313  font-family: 'Libre Baskerville';
314  font-style: normal;
315  font-weight: 700;
316  font-display: swap;
317  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/15b5c853-9b64-4099-a53b-6183bd715077/latin-ext.woff2') format('woff2');
318  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1D
318BF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
319}
320/* latin */
321@font-face {
322  font-family: 'Libre Baskerville';
323  font-style: normal;
324  font-weight: 700;
325  font-display: swap;
326  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/ab44c71b-f48b-4670-a167-846043cf99a4/latin.woff2') format('woff2');
327  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
328}
329/* vietnamese */
330@font-face {
331  font-family: 'Work Sans';
332  font-style: italic;
333  font-weight: 700;
334  font-display: swap;
335  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/0596c9ef-dec1-4885-ad6d-7443abfe70e0/vietnamese.woff2') format('woff2');
336  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
337}
338/* latin-ext */
339@font-face {
340  font-family: 'Work Sans';
341  font-style: italic;
342  font-weight: 700;
343  font-display: swap;
344  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/5bb1f76e-0203-4319-ab7b-7905c85f4108/latin-ext.woff2') format('woff2');
345  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
346}
347/* latin */
348@font-face {
349  font-family: 'Work Sans';
350  font-style: italic;
351  font-weight: 700;
352  font-display: swap;
353  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/0707da75-31c7-40b6-86b4-9bebbaa12a05/latin.woff2') format('woff2');
354  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
355}
356/* vietnamese */
357@font-face {
358  font-family: 'Work Sans';
359  font-style: normal;
360  font-weight: 400;
361  font-display: swap;
362  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/d51c75e7-b7f3-43e9-82e8-aa5f8e46da49/vietnamese.woff2') format('woff2');
363  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
364}
365/* latin */
366@font-face {
367  font-family: 'Work Sans';
368  font-style: normal;
369  font-weight: 400;
370  font-display: swap;
371  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/67e140c1-0737-4145-afc4-9f498d6f4b39/latin.woff2') format('woff2');
372  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
373}
374/* latin-ext */
375@font-face {
376  font-family: 'Work Sans';
377  font-style: normal;
378  font-weight: 400;
379  font-display: swap;
380  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/925aca0d-35dc-4703-a91e-214c19b99bd5/latin-ext.woff2') format('woff2');
381  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
382}
383/* greek-ext */
384@font-face {
385  font-family: 'Roboto';
386  font-style: normal;
387  font-weight: 100;
388  font-display: swap;
389  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/eb572e52-2096-425d-9e89-8ee10b9294b0/greek-ext.woff2') format('woff2');
390  unicode-range: U+1F00-1FFF;
391}
392/* greek */
393@font-face {
394  font-family: 'Roboto';
395  font-style: normal;
396  font-weight: 100;
397  font-display: swap;
398  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/ae508010-2247-40cf-a7c6-e228a1a34a3b/greek.woff2') format('woff2');
399  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
400}
401/* symbols */
402@font-face {
403  font-family: 'Roboto';
404  font-style: normal;
405  font-weight: 100;
406  font-display: swap;
407  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/fb8524a7-e20d-43c9-8777-67446eb32640/symbols.woff2') format('woff2');
408  unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF;
409}
410/* vietnamese */
411@font-face {
412  font-family: 'Roboto';
413  font-style: normal;
414  font-weight: 100;
415  font-display: swap;
416  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/d5a69188-23ca-4777-b5bf-8b862002c14a/vietnamese.woff2') format('woff2');
417  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
418}
419/* cyrillic */
420@font-face {
421  font-family: 'Roboto';
422  font-style: normal;
423  font-weight: 100;
424  font-display: swap;
425  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/70f42a2a-475d-4132-9632-88b0a7bd17f4/cyrillic.woff2') format('woff2');
426  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
427}
428/* cyrillic-ext */
429@font-face {
430  font-family: 'Roboto';
431  font-style: normal;
432  font-weight: 100;
433  font-display: swap;
434  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/ec537f80-11a7-454f-a065-9a8234496dcc/cyrillic-ext.woff2') format('woff2');
435  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
436}
437/* math */
438@font-face {
439  font-family: 'Roboto';
440  font-style: normal;
441  font-weight: 100;
442  font-display: swap;
443  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/55b72f1e-4bad-4c64-b8cf-d7b4a8bb66e9/math.woff2') format('woff2');
444  unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2
444038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;
445}
446/* latin-ext */
447@font-face {
448  font-family: 'Roboto';
449  font-style: normal;
450  font-weight: 100;
451  font-display: swap;
452  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/6f0e7f47-a182-4fcc-82f1-5e8fee85a14b/latin-ext.woff2') format('woff2');
453  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
454}
455/* latin */
456@font-face {
457  font-family: 'Roboto';
458  font-style: normal;
459  font-weight: 100;
460  font-display: swap;
461  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/2499d243-cc27-43e3-b13c-a2bf51716177/latin.woff2') format('woff2');
462  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
463}
464/* vietnamese */
465@font-face {
466  font-family: 'Work Sans';
467  font-style: italic;
468  font-weight: 300;
469  font-display: swap;
470  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/23059a6d-2ab9-4bc2-b93e-0668daf359c8/vietnamese.woff2') format('woff2');
471  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
472}
473/* latin */
474@font-face {
475  font-family: 'Work Sans';
476  font-style: italic;
477  font-weight: 300;
478  font-display: swap;
479  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/bad5678c-86c8-4208-8576-d50633ee6626/latin.woff2') format('woff2');
480  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
481}
482/* latin-ext */
483@font-face {
484  font-family: 'Work Sans';
485  font-style: italic;
486  font-weight: 300;
487  font-display: swap;
488  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/333ab454-9ec3-4f1b-b84e-36cbfb949dcb/latin-ext.woff2') format('woff2');
489  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
490}
491/* latin */
492@font-face {
493  font-family: 'Work Sans';
494  font-style: normal;
495  font-weight: 100;
496  font-display: swap;
497  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/375285f3-8ad6-4398-8b68-1f2374049dfb/latin.woff2') format('woff2');
498  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
499}
500/* latin-ext */
501@font-face {
502  font-family: 'Work Sans';
503  font-style: normal;
504  font-weight: 100;
505  font-display: swap;
506  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/e05679be-1567-4eeb-85ea-084b6cf8365a/latin-ext.woff2') format('woff2');
507  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
508}
509/* vietnamese */
510@font-face {
511  font-family: 'Work Sans';
512  font-style: normal;
513  font-weight: 100;
514  font-display: swap;
515  src: url('https://file.squarespace-cdn.com/content/v2/namespaces/fonts/libraries/sqsp/assets/abf6dbfd-fe86-4367-a271-1d2098db72ef/vietnamese.woff2') format('woff2');
516  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
517}
518</style>
518<script type="text/javascript" crossorigin="anonymous" nomodule="nomodule" src="//assets.squarespace.com/@sqs/polyfiller/1.6/legacy.js"></script>
vendor: 1 bytes, line 518
518
519<script type="text/javascript" crossorigin="anonymous" src="//assets.squarespace.com/@sqs/polyfiller/1.6/modern.js"></script>
vendor: 1 bytes, line 519
519
520<script data-name="static-context">Static = window.Static || {}; Static.SQUARESPACE_CONTEXT = {"betaFeatureFlags":["commerce_product_payment_plan_editing","modernized-pdp-m2-enabled","order_status_page_checkout_landing_enabled","i18n_beta_website_locales","campaigns_merch_state","marketing_landing_page","campaigns_thumbnail_layout","campaigns_discount_section_in_automations","campaigns_discount_section_in_blasts","enable_form_submission_trigger","campaigns_table_v2","member_areas_feature","cdk_website_components_video_lazy_loading_enabled","enable_modernized_pdp_m3_layout_ux","output_template_css_assets","campaigns_import_discounts","enable_modernized_pdp_m3_fluid","marketing_automations","sms-campaigns","contacts_and_campaigns_redesign","campaigns_new_image_layout_picker"],"facebookAppId":"314192535267336","facebookApiVersion":"v6.0","rollups":{"squarespace-announcement-bar":{"js":"//assets.squarespace.com/universal/scripts-compressed/announcement-bar-836f2f08f68326a4-min.en-US.js"},"squarespace-audio-player":{"css":"//assets.squarespace.com/universal/styles-compressed/audio-player-b05f5197a871c566-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/audio-player-6fb992ddfaa509af-min.en-US.js"},"squarespace-blog-collection-list":{"css":"//assets.squarespace.com/universal/styles-compressed/blog-collection-list-b4046463b72f34e2-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/blog-collection-list-3a5374d437fc6d00-min.en-US.js"},"squarespace-calendar-block-renderer":{"css":"//assets.squarespace.com/universal/styles-compressed/calendar-block-renderer-c3fef2a497c8e56b-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/calendar-block-renderer-1488f231552cc2f1-min.en-US.js"},"squarespace-chartjs-helpers":{"css":"//assets.squarespace.com/universal/styles-compressed/chartjs-helpers-96b256171ee039c1-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/chartjs-helpers-522a53304a318d5d-min.en-US.js"},"squarespace-comments":{"css":"//assets.squarespace.com/universal/styles-compressed/comments-a54bc6cc70c2a74a-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/comments-312339166b5ad66f-min.en-US.js"},"squarespace-custom-css-popup":{"css":"//assets.squarespace.com/universal/styles-compressed/custom-css-popup-3fdd945b3c1d9689-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/custom-css-popup-5436102fc646f2fc-min.en-US.js"},"squarespace-dialog":{"css":"//assets.squarespace.com/universal/styles-compressed/dialog-86aacd645d83874c-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/dialog-86609c0b60da577a-min.en-US.js"},"squarespace-events-collection":{"css":"//assets.squarespace.com/universal/styles-compressed/events-collection-c3fef2a497c8e56b-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/events-collection-f3b4cd016de9317e-min.en-US.js"},"squarespace-form-rendering-utils":{"js":"//assets.squarespace.com/universal/scripts-compressed/form-rendering-utils-54ace3853df228db-min.en-US.js"},"squarespace-forms":{"css":"//assets.squarespace.com/universal/styles-compressed/forms-0afd3c6ac30bbab1-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/forms-be0b8c73146bec85-min.en-US.js"},"squarespace-gallery-collection-list":{"css":"//assets.squarespace.com/universal/styles-compressed/gallery-collection-list-b4046463b72f34e2-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/gallery-collection-list-e50dc2cea7153bb8-min.en-US.js"},"squarespace-image-zoom":{"css":"//assets.squarespace.com/universal/styles-compressed/image-zoom-b4046463b72f34e2-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/image-zoom-0ca1efc2ac068abc-min.en-US.js"},"squarespace-pinterest":{"css":"//assets.squarespace.com/universal/styles-compressed/pinterest-b4046463b72f34e2-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/pinterest-523a849b69d70eb5-min.en-US.js"},"squarespace-popup-overlay":{"css":"//assets.squarespace.com/universal/styles-compressed/popup-overlay-b742b752f5880972-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/popup-overlay-df7b05add6c30fcd-min.en-US.js"},"squarespace-product-quick-view":{"css":"//assets.squarespace.com/universal/styles-compressed/product-quick-view-0afd3c6ac30bbab1-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/product-quick-view-b01bc65ad40d0f05-min.en-US.js"},"squarespace-products-collection-item-v2":{"css":"//assets.squarespace.com/universal/styles-compressed/products-collection-item-v2-b4046463b72f34e2-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/products-collection-item-v2-7fbb3f7b25936e86-min.en-US.js"},"squarespace-products-collection-list-v2":{"css":"//assets.squarespace.com/universal/styles-compressed/products-collection-list-v2-b4046463b72f34e2-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/products-collection-list-v2-a0f681feaaa1d600-min.en-US.js"},"squarespace-search-page":{"css":"//assets.squarespace.com/universal/styles-compressed/search-page-90a67fc09b9b32c6-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/search-page-6b1889e7794d1996-min.en-US.js"},"squarespace-search-preview":{"js":"//assets.squarespace.com/universal/scripts-compressed/search-preview-251f22aa63cbf1d4-min.en-US.js"},"squarespace-simple-liking":{"css":"//assets.squarespace.com/universal/styles-compressed/simple-liking-701bf8bbc05ec6aa-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/simple-liking-75b6582783ed07a5-min.en-US.js"},"squarespace-social-buttons":{"css":"//assets.squarespace.com/universal/styles-compressed/social-buttons-95032e5fa98e47a5-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/social-buttons-0187f9df0b19ce87-min.en-US.js"},"squarespace-tourdates":{"css":"//assets.squarespace.com/universal/styles-compressed/tourdates-b4046463b72f34e2-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/tourdates-793d65bead4aae95-min.en-US.js"}
520,"squarespace-website-overlays-manager":{"css":"//assets.squarespace.com/universal/styles-compressed/website-overlays-manager-07ea5a4e004e6710-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/website-overlays-manager-5a8fe5f9a9d0c08f-min.en-US.js"}},"pageType":102,"website":{"id":"5844c859d1758e37a12febc4","captchaSettings":{"siteKey":"6Le_NcAZAAAAACSRo4hO77WXgKLrCVnlcTXU3qXh","enabledForDonations":false},"cloneable":false,"contentModifiedOn":1782590926966,"developerMode":false,"formattingLocale":"en-US","fullSiteTitle":"Venn Design | Ergonomic Desk Chairs, Office Chairs, Sitting Cushions, Floor Pads, and Wellness Furniture","identifier":"venndesign2","imageMetadataProcessingEnabled":false,"isHstsEnabled":false,"language":"en-US","location":{"mapLat":44.93022120000001,"mapLng":-122.89790929999998,"addressLine1":"","addressLine2":"Dallas TX","addressCountry":"United States"},"logoImageId":"6414d49512ec880fa33a54cf","primaryDomain":"www.venndesign.co","screenshotId":"ff36d19fe25dab9b09cecf704ba7d33fe76e53c5248d2359e23eb4d1a6ed63ea","shareButtonOptions":{"7":true,"1":true,"2":true,"6":true},"showOwnerLogin":false,"siteDescription":"<p class=\"\" style=\"white-space:pre-wrap;\">Build a Movement Rich Environment in your home and office. Proudly manufactured in Dallas, TX, USA. Created by Tyler Benner.</p>","siteStatus":{},"siteTagLine":"","siteTitle":"Venn Design | Ergonomic Desk Chairs, Office Chairs, Sitting Cushions, Floor Pads, and Wellness Furniture","socialLogoImageId":"5fb9980e4ae5a37ee132545a","sslSetting":3,"timeZone":"America/Los_Angeles","translationLocale":"en-US","typekitId":"","websiteType":4,"hasBeenCloneable":false,"statsMigrated":false,"authenticUrl":"https://www.venndesign.co","baseUrl":"https://www.venndesign.co","internalUrl":"https://venndesign2.squarespace.com","logoImageUrl":"//images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/a5121991-f8de-41d6-b386-922654a12d14/Venn+Design+logo%402000x-100.jpg","machineTimeZoneOffset":-25200000,"socialAccounts":[{"serviceId":2,"userId":"10100581119638514","screenname":"Venn Design","addedOn":1484872927524,"profileUrl":"https://www.facebook.com/venndesignco","iconUrl":"http://graph.facebook.com/10100581119638514/picture?type=square","metaData":{"service":"facebook"},"iconEnabled":true,"serviceName":"facebook"},{"serviceId":64,"screenname":"Instagram","addedOn":1585940679390,"profileUrl":"http://www.instagram.com/venndesign","iconEnabled":true,"serviceName":"instagram-unauth"},{"serviceId":61,"userId":"471470792148899768","screenname":"Venn Design ","addedOn":1484872892368,"profileUrl":"https://www.pinterest.com/venndesignco/","iconUrl":"https://s-media-cache-ak0.pinimg.com/avatars/venndesignco_1459316808_60.jpg","metaData":{"service":"pinterest"},"iconEnabled":true,"serviceName":"pinterest-unauth"},{"serviceId":62,"screenname":"Twitter","addedOn":1585940696676,"profileUrl":"http://twitter.com/venndesignco","iconEnabled":true,"serviceName":"twitter-unauth"}],"socialLogoImageUrl":"//images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/1605998606735-HKAC6RIOPX4DQXDMAZ1Y/venndesign+logo+small+solid+circle+centered+2000x+square.png","timeZoneAbbr":"PDT","timeZoneOffset":-25200000},"websiteSettings":{"id":"5844c859d1758e37a12febc7","websiteId":"5844c859d1758e37a12febc4","type":"Business","subjects":[],"country":"US","state":"OR","simpleLikingEnabled":true,"mobileInfoBarSettings":{"isContactEmailEnabled":false,"isContactPhoneNumberEnabled":false,"isLocationEnabled":false,"isBusinessHoursEnabled":false},"announcementBarSettings":{"style":2,"text":"<p data-rte-preserve-empty=\"true\" style=\"white-space:pre-wrap;\">Join our Newsletter for FREE USA SHIPPING</p>","clickthroughUrl":{"url":"https://www.venndesign.co/#home6-newsletter-signup","newWindow":true}},"popupOverlaySettings":{"style":1,"showOnScroll":true,"scrollPercentage":75,"showOnTimer":true,"timerDelay":30000,"showUntilSignup":true,"displayFrequency":30,"enableMobile":true,"enabledPages":["5e3b95c50b06e7250665c5b1","5844d6b437c581d99d99bca7","5ed16ff0df699b54f87e2715","6372af0bd26f426b1567ed98","5844d763ff7c507cc22488c8","5844dfbd197aeafb4a1c3e69","612e804ee285e72000a93023","5ff1e9ae8268c96dbb69c8a0","5844df4d44024382e46b8b41"],"showOnAllPages":false,"version":1},"commentLikesAllowed":true,"commentAnonAllowed":true,"commentThreaded":true,"commentApprovalRequired":false,"commentAvatarsOn":true,"commentSortType":2,"commentFlagThreshold":0,"commentFlagsAllowed":true,"commentEnableByDefault":true,"commentDisableAfterDaysDefault":0,"disqusShortn
520ame":"","commentsEnabled":false,"contactPhoneNumber":"","businessHours":{"monday":{"text":"","ranges":[{}]},"tuesday":{"text":"","ranges":[{}]},"wednesday":{"text":"","ranges":[{}]},"thursday":{"text":"","ranges":[{}]},"friday":{"text":"","ranges":[{}]},"saturday":{"text":"","ranges":[{}]},"sunday":{"text":"","ranges":[{}]}},"storeSettings":{"returnPolicy":null,"termsOfService":null,"privacyPolicy":null,"expressCheckout":false,"continueShoppingLinkUrl":"store","useLightCart":false,"showNoteField":false,"shippingCountryDefaultValue":"US","billToShippingDefaultValue":true,"showShippingPhoneNumber":true,"isShippingPhoneRequired":false,"showBillingPhoneNumber":true,"isBillingPhoneRequired":false,"currenciesSupported":["USD","AUD","CAD","CHF","DKK","EUR","GBP","HKD","MXN","NOK","NZD","SEK","SGD"],"defaultCurrency":"USD","selectedCurrency":"USD","multicurrencyEnabled":true,"measurementStandard":1,"orderConfirmationInjectCode":"<!-- Google Tag Manager -->\n
520<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://load.server.venndesign.co/zjqqydcz.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-PSQHM7J');<\/script>\n<!-- End Google Tag Manager -->\n\n\n\n<!-- Peach's Affiliate Programs -->\n
520<script src=\"https://peachs.co/embeds/affinity.min.js\" data-program-id=\"66\" data-affiliate-order-id=\"{orderId}\" data-order-subtotal=\"{orderSubtotalCents}\" data-order-total=\"{orderGrandTotalCents}\" data-email-address=\"{customerEmailAddress}\"><\/script>\n<!-- End Peach's Affiliate Programs -->\n\n<!-- Pinterest Checkout Event Code -->\n
520<script>\npintrk('track', 'checkout',{\nvalue: {orderGrandTotal},\n  order_id: {OrderID},\n  currency: 'USD'\norder_quantity:1\n});\n<\/script>\n<noscript>\n<img height=\"1\" width=\"1\" style=\"display:none;\" alt=\"\"\nsrc=\"https://ct.pinterest.com/v3/?tid=549761818334&event=checkout&noscript=1\"/>\n</noscript>\n<!-- End Pinterest Checkout Event Code -->","showCustomCheckoutForm":false,"checkoutPageMarketingOptInEnabled":true,"enableMailingListOptInByDefault":true,"sameAsRetailLocation":false,"merchandisingSettings":{"scarcityEnabledOnProductItems":false,"scarcityEnabledOnProductBlocks":false,"scarcityMessageType":"DEFAULT_SCARCITY_MESSAGE","scarcityThreshold":10,"multipleQuantityAllowedForServices":true,"restockNotificationsEnabled":false,"restockNotificationsMailingListSignUpEnabled":false,"relatedProductsEnabled":true,"relatedProductsOrdering":"random","soldOutVariantsDropdownDisabled":false,"productComposerOptedIn":false,"productComposerABTestOptedOut":false,"productReviewsEnabled":false,"displayImportedProductReviewsEnabled":false,"hasOptedToCollectNativeReviews":false},"minimumOrderSubtotalEnabled":false,"minimumOrderSubtotal":{"currency":"USD","value":"0.00"},"addToCartConfirmationType":2,"isLive":true,"multipleQuantityAllowedForServices":true},"useEscapeKeyToLogin":true,"ssBadgeType":1,"ssBadgePosition":4,"ssBadgeVisibility":1,"ssBadgeDevices":1,"pinterestOverlayOptions":{"mode":"disabled"},"userAccountsSettings":{"loginAllowed":true,"signupAllowed":true}},"cookieSettings":{"isCookieBannerEnabled":false,"isRestrictiveCookiePolicyEnabled":false,"cookieBannerText":"","cookieBannerTheme":"","cookieBannerVariant":"","cookieBannerPosition":"","cookieBannerCtaVariant":"","cookieBannerCtaText":"","cookieBannerAcceptType":"OPT_IN","cookieBannerOptOutCtaText":"","cookieBannerHasOptOut":false,"cookieBannerHasManageCookies":true,"cookieBannerManageCookiesLabel":"","cookieBannerSavedPreferencesText":"","cookieBannerSavedPreferencesLayout":"PILL"},"websiteCloneable":false,"subscribed":false,"appDomain":"squarespace.com","templateTweakable":true,"tweakJSON":{"aspect-ratio":"Auto","gallery-arrow-style":"No Background","gallery-aspect-ratio":"3:2 Standard","gallery-auto-crop":"true","gallery-autoplay":"false","gallery-design":"Slideshow","gallery-info-overlay":"Show on Hover","gallery-loop":"false","gallery-navigation":"Bullets","gallery-show-arrows":"true","gallery-transitions":"Fade","galleryArrowBackground":"rgba(34,34,34,1)","galleryArrowColor":"rgba(255,255,255,1)","galleryAutoplaySpeed":"3","galleryCircleColor":"rgba(255,255,255,1)","galleryInfoBackground":"rgba(0, 0, 0, .7)","galleryThumbnailSize":"100px","gridSize":"350px","gridSpacing":"20px","tweak-blog-list-columns":"3","tweak-blog-list-item-image-aspect-ratio-grid":"1:1 Square","tweak-blog-list-item-image-aspect-ratio-stacked":"1:1 Square","tweak-blog-list-item-image-show":"true","tweak-blog-list-spacing":"25px","tweak-blog-list-style":"Grid","tweak-footer-layout":"Columns","tweak-header-bottom-overlay-on-index-gallery":"false","tweak-index-gallery-apply-bottom-spacing":"true","tweak-index-gallery-autoplay-duration":"2","tweak-index-gallery-autoplay-enable":"true","tweak-index-gallery-fixed-height":"true","tweak-index-gallery-height":"100vh","tweak-index-gallery-indicators":"Lines","tweak-index-gallery-layout":"Packed","tweak-index-gallery-transition":"Fade","tweak-index-gallery-transition-duration":"500","tweak-index-nav-position":"Right","tweak-index-page-apply-bottom-spacing":"false","tweak-index-page-fullscreen":"None","tweak-index-page-min-height":"50vh","tweak-mobile-breakpoint":"900px","tweak-overlay-parallax-enabled":"false","tweak-overlay-parallax-new-math":"false","tweak-product-item-image-zoom-factor":"2.5","tweak-product-list-item-hover-behavior":"Show Alternate Image","tweak-product-list-items-per-row":"4","tweak-related-products-items-per-row":"3","tweak-related-products-title-spacing":"50px","tweak-site-ajax-loading-enable":"false","tweak-site-border-show":"false","tweak-site-border-width":"14px"},"templateId":"55f0aac0e4b0f0a5b7e0b22e","templateVersion":"7","pageFeatures":[4],"gmRenderKey":"QUl6YVN5Q0JUUk9xNkx1dkZfSUUxcjQ2LVQ0QWVUU1YtMGQ3bXk4","templateScriptsRootUrl":"https://static1.squarespace.com/static/ta/55f0a9b0e4b0f3eb70352f6d/360/scripts/","impersonatedSession":false,"tzData":{"zones":[[-480,"US","P%sT",null]],"rules":{"US":[[1967,2006,null,"Oct","lastSun","2:00","0","S"],[1987,2006,null,"Apr","Sun>=1","2:00","1:00","D"],[2007,"max",null,"Mar","Sun>=8","2:00","1:00","D"],[2007,"max",null,"Nov","Sun>=1","2:00","0","S"]]}},"showAnnouncementBar":true,"recaptchaEnterpriseContext":{"recaptchaEnterpriseSiteKey":"6LdDFQwjAAAAAPigEvvPgEVbb7QBm-TkVJdDTlAv"},"i18nContext":{"timeZoneData":{"id":"America/Los_Angeles","name":"Pacific Time"}},"env":"PRODUCTION","visitorFormContext":{"formFieldFormats":{"countries":[{"name":"Afghanistan","code":"AF","phoneCode":"+93"},{"name":"\u00C5land Islands","code":"AX","phoneCode":"+358"},{"name":"Albania","code":"AL","phoneCode":"+355"},{"name":"Algeria","code":"DZ","phoneCode":"+213"},{"name":"American Samoa","code":"AS","phoneCode":"+1"},{"name":"Andorra","code":"AD","phoneCode":"+376"},{"name":"Angola","code":"AO","phoneCode":"+244"},{"name":"Anguilla","code":"AI","phoneCode":"+1"},{"name":"Antigua & Barbuda","code":"AG","phoneCode":"+1"},{"name":"Argentina","code":"AR","phoneCode":"+54"},{"name":"Armenia","code":"AM","phoneCode":"+374"},{"name":"Aruba","code":"AW","phoneCode":"+297"},{"name":"Ascension Island","code":"AC","phoneCode":"+247"},{"name":"Australia","code":"AU","phoneCode":"+61"},{"name":"Austria","code":"AT","phoneCode":"+43"},{"name":"Azerbaijan","code":"AZ","phoneCode":"+994"},{"name":"Bahamas","code":"BS","phoneCode":"+1"},{"name":"Bahrain","code":"BH","phoneCode":"+973"},{"name":"Bangladesh","code":"BD","phoneCode":"+880"},{"name":"Barbados","code":"BB","phoneCode":"+1"},{"name":"Belarus","code":"BY","phoneCode":"+375"},{"name":"Belgium","code":"BE","phoneCode":"+32"},{"name":"Belize","code":"BZ","phoneCode":"+501"},{"name":"Benin","code":"BJ","phoneCode":"+229"},{"name":"Bermuda","code":"BM","phoneCode":"+1"},{"name":"Bhutan","code":"BT","phoneCode":"+975"},{"name":"Bolivia","code":"BO","phoneCode":"+591"},{"name":"Bosnia & Herzegovina","code":"BA","phoneCode":"+387"},{"name":"Botswana","code":"BW","phoneCode":"+267"},{"name":"Brazil","code":"BR","phoneCode":"+55"},{"name":"British Indian Ocean Territory","code":"IO","phoneCode":"+246"},{"name":"British Virgin Islands","code":"VG","phoneCode":"+1"},{"name":"Brunei","code":"BN","phoneCode":"+673"},{"name":"Bulgaria","code":"BG","phoneCode":"+359"},{"name":"Burkina Faso","code":"BF","phoneCode":"+226"},{"name":"Burundi","code":"BI","phoneCode":"+257"},{"name":"Cambodia","code":"KH","phoneCode":"+855"},{"name":"Cameroon","code":"CM","phoneCode":"+237"},{"name":"Canada","code":"CA","phoneCode":"+1"},{"name":"Cape Verde","code":"CV","phoneCode":"+238"},{"name":"Caribbean Netherlands","code":"BQ","phoneCode":"+599"},{"name":"Cayman Islands","code":"KY","phoneCode":"+1"},{"name":"Central African Republic","code":"CF","phoneCode":"+236"},{"name":"Chad","code":"TD","phoneCode":"+235"},{"name":"Chile","code":"CL","phoneCode":"+56"},{"name":"China","code":"CN","phoneCode":"+86"},{"name":"Christmas Island","code":"CX","phoneCode":"+61"},{"name":"Cocos (Keeling) Islands","code":"CC","phoneCode":"+61"},{"name":"Colombia","code":"CO","phoneCode":"+57"},{"name":"Comoros","code":"KM","phoneCode":"+269"},{"name":"Congo - Brazzaville","code":"CG","phoneCode":"+242"},{"name":"Congo - Kinshasa","code":"CD","phoneCode":"+243"},{"name":"Cook Islands","code":"CK","phoneCode":"+682"},{"name":"Costa Rica","code":"CR","phoneCode":"+506"},{"name":"C\u00F4te d\u2019Ivoire","code":"CI","phoneCode":"+225"},{"name":"Croatia","code":"HR","phoneCode":"+385"},{"name":"Cuba","code":"CU","phoneCode":"+53"},{"name":"Cura\u00E7ao","code":"CW","phoneCode":"+599"},{"name":"Cyprus","code":"CY","phoneCode":"+357"},{"name":"Czechia","code":"CZ","phoneCode":"+420"},{"name":"Denmark","code":"DK","phoneCode":"+45"},{"name":"Djibouti","code":"DJ","phoneCode":"+253"},{"name":"Dominica","code":"DM","phoneCode":"+1"},{"name":"Dominican Republic","code":"DO","phoneCode":"+1"},{"name":"Ecuador","code":"EC","phoneCode":"+593"},{"name":"Egypt","code":"EG","phoneCode":"+20"},{"name":"El Salvador","code":"SV","phoneCode":"+503"},{"name":"Equatorial Guinea","code":"GQ","phoneCode":"+240"},{"name":"Eritrea","code":"ER","phoneCode":"+291"},{"name":"Estonia","code":"EE","phoneCode":"+372"},{"name":"Eswatini","code":"SZ","phoneCode":"+268"},{"name":"Ethiopia","code":"ET","phoneCode":"+251"},{"name":"Falkland Islands","code":"FK","phoneCode":"+500"},{"name":"Faroe Islands","code":"FO","phoneCode":"+298"},{"name":"Fiji","code":"FJ","phoneCode":"+679"},{"name":"Finland","code":"FI","phoneCode":"+358"},{"name":"France","code":"FR","phoneCode":"+33"},{"name":"French Guiana","code":"GF","phoneCode":"+594"},{"name":"French Polynesia","code":"PF","phoneCode":"+689"},{"name":"Gabon","code":"GA","phoneCode":"+241"},{"name":"Gambia","code":"GM","phoneCode":"+220"},{"name":"Georgia","code":"GE","phoneCode":"+995"},{"name":"Germany","code":"DE","phoneCode":"+49"},{"name":"Ghana","code":"GH","phoneCode":"+233"},{"name":"Gibraltar","code":"GI","phoneCode":"+350"},{"name":"Greece","code":"GR","phoneCode":"+30"},{"name":"Greenland","code":"GL","phoneCode":"+299"},{"name":"Grenada","code":"GD","phoneCode":"+1"},{"name":"Guadeloupe","code":"GP","phoneCode":"+590"},{"name":"Guam","code":"GU","phoneCode":"+1"},{"name":"Guatemala","code":"GT","phoneCode":"+502"},{"name":"Guernsey","code":"GG","phoneCode":"+44"},{"name":"Guinea","code":"GN","phoneCode":"+224"},{"name":"Guinea-Bissau","code":"GW","phoneCode":"+245"},{"name":"Guyana","code":"GY","phoneCode":"+592"},{"name":"Haiti","code":"HT","phoneCode":"+509"},{"name":"Honduras","code":"HN","phoneCode":"+504"},{"name":"Hong Kong SAR China","code":"HK","phoneCode":"+852"},{"name":"Hungary","code":"HU","phoneCode":"+36"},{"name":"Iceland","code":"IS","phoneCode":"+354"},{"name":"India","code":"IN","phoneCode":"+91"},{"name":"Indonesia","code":"ID","phoneCode":"+62"},{"name":"Iran","code":"IR","phoneCode":"+98"},{"name":"Iraq","code":"IQ","phoneCode":"+964"},{"name":"Ireland","code":"IE","phoneCode":"+353"},{"name":"Isle of Man","code":"IM","phoneCode":"+44"},{"name":"Israel","code":"IL","phoneCode":"+972"},{"name":"Italy","code":"IT","phoneCode":"+39"},{"name":"Jamaica","code":"JM","phoneCode":"+1"},{"name":"Japan","code":"JP","phoneCode":"+81"},{"name":"Jersey","code":"JE","phoneCode":"+44"},{"name":"Jordan","code":"JO","phoneCode":"+962"},{"name":"Kazakhstan","code":"KZ","phoneCode":"+7"},{"name":"Kenya","code":"KE","phoneCode":"+254"},{"name":"Kiribati","code":"KI","phoneCode":"+686"},{"name":"Kosovo","code":"XK","phoneCode":"+383"},{"name":"Kuwait","code":"KW","phoneCode":"+965"},{"name":"Kyrgyzstan","code":"KG","phoneCode":"+996"},{"name":"Laos","code":"LA","phoneCode":"+856"},{"name":"Latvia","code":"LV","phoneCode":"+371"},{"name":"Lebanon","code":"LB","phoneCode":"+961"},{"name":"Lesotho","code":"LS","phoneCode":"+266"},{"name":"Liberia","code":"LR","phoneCode":"+231"},{"name":"Libya","code":"LY","phoneCode":"+218"},{"name":"Liechtenstein","code":"LI","phoneCode":"+423"},{"name":"Lithuania","code":"LT","phoneCode":"+370"},{"name":"Luxembourg","code":"LU","phoneCode":"+352"},{"name":"Macao SAR China","code":"MO","phoneCode":"+853"},{"name":"Madagascar","code":"MG","phoneCode":"+261"},{"name":"Malawi","code":"MW","phoneCode":"+265"},{"name":"Malaysia","code":"MY","phoneCode":"+60"},{"name":"Maldives","code":"MV","phoneCode":"+960"},{"name":"Mali","code":"ML","phoneCode":"+223"},{"name":"Malta","code":"MT","phoneCode":"+356"},{"name":"Marshall Islands","code":"MH","phoneCode":"+692"},{"name":"Martinique","code":"MQ","phoneCode":"+596"},{"name":"Mauritania","code":"MR","phoneCode":"+222"},{"name":"Mauritius","code":"MU","phoneCode":"+230"},{"name":"Mayotte","code":"YT","phoneCode":"+262"},{"name":"Mexico","code":"MX","phoneCode":"+52"},{"name":"Micronesia","code":"FM","phoneCode":"+691"},{"name":"Moldova","code":"MD","phoneCode":"+373"},{"name":"Monaco","code":"MC","phoneCode":"+377"},{"name":"Mongolia","code":"MN","phoneCode":"+976"},{"name":"Montenegro","code":"ME","phoneCode":"+382"},{"name":"Montserrat","code":"MS","phoneCode":"+1"},{"name":"Morocco","code":"MA","phoneCode":"+212"},{"name":"Mozambique","code":"MZ","phoneCode":"+258"},{"name":"Myanmar (Burma)","code":"MM","phoneCode":"+95"},{"name":"Namibia","code":"NA","phoneCode":"+264"},{"name":"Nauru","code":"NR","phoneCode":"+674"},{"name":"Nepal","code":"NP","phoneCode":"+977"},{"name":"Netherlands","code":"NL","phoneCode":"+31"},{"name":"New Caledonia","code":"NC","phoneCode":"+687"},{"name":"New Zealand","code":"NZ","phoneCode":"+64"},{"name":"Nicaragua","code":"NI","phoneCode":"+505"},{"name":"Niger","code":"NE","phoneCode":"+227"},{"name":"Nigeria","code":"NG","phoneCode":"+234"},{"name":"Niue","code":"NU","phoneCode":"+683"},{"name":"Norfolk Island","code":"NF","phoneCode":"+672"},{"name":"Northern Mariana Islands","code":"MP","phoneCode":"+1"},{"name":"North Korea","code":"KP","phoneCode":"+850"},{"name":"North Macedonia","code":"MK","phoneCode":"+389"},{"name":"Norway","code":"NO","phoneCode":"+47"},{"name":"Oman","code":"OM","phoneCode":"+968"},{"name":"Pakistan","code":"PK","phoneCode":"+92"},{"name":"Palau","code":"PW","phoneCode":"+680"},{"name":"Palestinian Territories","code":"PS","phoneCode":"+970"},{"name":"Panama","code":"PA","phoneCode":"+507"},{"name":"Papua New Guinea","code":"PG","phoneCode":"+675"},{"name":"Paraguay","code":"PY","phoneCode":"+595"},{"name":"Peru","code":"PE","phoneCode":"+51"},{"name":"Philippines","code":"PH","phoneCode":"+63"},{"name":"Poland","code":"PL","phoneCode":"+48"},{"name":"Portugal","code":"PT","phoneCode":"+351"},{"name":"Puerto Rico","code":"PR","phoneCode":"+1"},{"name":"Qatar","code":"QA","phoneCode":"+974"},{"name":"R\u00E9union","code":"RE","phoneCode":"+262"},{"name":"Romania","code":"RO","phoneCode":"+40"},{"name":"Russia","code":"RU","phoneCode":"+7"},{"name":"Rwanda","code":"RW","phoneCode":"+250"},{"name":"Samoa","code":"WS","phoneCode":"+685"},{"name":"San Marino","code":"SM","phoneCode":"+378"},{"name":"S\u00E3o Tom\u00E9 & Pr\u00EDncipe","code":"ST","phoneCode":"+239"},{"name":"Saudi Arabia","code":"SA","phoneCode":"+966"},{"name":"Senegal","code":"SN","phoneCode":"+221"},{"name":"Serbia","code":"RS","phoneCode":"+381"},{"name":"Seychelles","code":"SC","phoneCode":"+248"},{"name":"Sierra Leone","code":"SL","phoneCode":"+232"},{"name":"Singapore","code":"SG","phoneCode":"+65"},{"name":"Sint Maarten","code":"SX","phoneCode":"+1"},{"name":"Slovakia","code":"SK","phoneCode":"+421"},{"name":"Slovenia","code":"SI","phoneCode":"+386"},{"name":"Solomon Islands","code":"SB","phoneCode":"+677"},{"name":"Somalia","code":"SO","phoneCode":"+252"},{"name":"South Africa","code":"ZA","phoneCode":"+27"},{"name":"South Korea","code":"KR","phoneCode":"+82"},{"name":"South Sudan","code":"SS","phoneCode":"+211"},{"name":"Spain","code":"ES","phoneCode":"+34"},{"name":"Sri Lanka","code":"LK","phoneCode":"+94"},{"name":"St. Barth\u00E9lemy","code":"BL","phoneCode":"+590"},{"name":"St. Helena","code":"SH","phoneCode":"+290"},{"name":"St. Kitts & Nevis","code":"KN","phoneCode":"+1"},{"name":"St. Lucia","code":"LC","phoneCode":"+1"},{"name":"St. Martin","code":"MF","phoneCode":"+590"},{"name":"St. Pierre & Miquelon","code":"PM","phoneCode":"+508"},{"name":"St. Vincent & Grenadines","code":"VC","phoneCode":"+1"},{"name":"Sudan","code":"SD","phoneCode":"+249"},{"name":"Suriname","code":"SR","phoneCode":"+597"},{"name":"Svalbard & Jan Mayen","code":"SJ","phoneCode":"+47"},{"name":"Sweden","code":"SE","phoneCode":"+46"},{"name":"Switzerland","code":"CH","phoneCode":"+41"},{"name":"Syria","code":"SY","phoneCode":"+963"},{"name":"Taiwan","code":"TW","phoneCode":"+886"},{"name":"Tajikistan","code":"TJ","phoneCode":"+992"},{"name":"Tanzania","code":"TZ","phoneCode":"+255"},{"name":"Thailand","code":"TH","phoneCode":"+66"},{"name":"Timor-Leste","code":"TL","phoneCode":"+670"},{"name":"Togo","code":"TG","phoneCode":"+228"},{"name":"Tokelau","code":"TK","phoneCode":"+690"},{"name":"Tonga","code":"TO","phoneCode":"+676"},{"name":"Trinida
520d & Tobago","code":"TT","phoneCode":"+1"},{"name":"Tristan da Cunha","code":"TA","phoneCode":"+290"},{"name":"Tunisia","code":"TN","phoneCode":"+216"},{"name":"T\u00FCrkiye","code":"TR","phoneCode":"+90"},{"name":"Turkmenistan","code":"TM","phoneCode":"+993"},{"name":"Turks & Caicos Islands","code":"TC","phoneCode":"+1"},{"name":"Tuvalu","code":"TV","phoneCode":"+688"},{"name":"U.S. Virgin Islands","code":"VI","phoneCode":"+1"},{"name":"Uganda","code":"UG","phoneCode":"+256"},{"name":"Ukraine","code":"UA","phoneCode":"+380"},{"name":"United Arab Emirates","code":"AE","phoneCode":"+971"},{"name":"United Kingdom","code":"GB","phoneCode":"+44"},{"name":"United States","code":"US","phoneCode":"+1"},{"name":"Uruguay","code":"UY","phoneCode":"+598"},{"name":"Uzbekistan","code":"UZ","phoneCode":"+998"},{"name":"Vanuatu","code":"VU","phoneCode":"+678"},{"name":"Vatican City","code":"VA","phoneCode":"+39"},{"name":"Venezuela","code":"VE","phoneCode":"+58"},{"name":"Vietnam","code":"VN","phoneCode":"+84"},{"name":"Wallis & Futuna","code":"WF","phoneCode":"+681"},{"name":"Western Sahara","code":"EH","phoneCode":"+212"},{"name":"Yemen","code":"YE","phoneCode":"+967"},{"name":"Zambia","code":"ZM","phoneCode":"+260"},{"name":"Zimbabwe","code":"ZW","phoneCode":"+263"}],"initialPhoneFormat":{"id":0,"type":"PHONE_NUMBER","country":"US","labelLocale":"en-US","fields":[{"type":"SEPARATOR","label":"(","identifier":"LeftParen","length":0,"required":false,"metadata":{}},{"type":"FIELD","label":"1","identifier":"1","length":3,"required":false,"metadata":{}},{"type":"SEPARATOR","label":")","identifier":"RightParen","length":0,"required":false,"metadata":{}},{"type":"SEPARATOR","label":" ","identifier":"Space","length":0,"required":false,"metadata":{}},{"type":"FIELD","label":"2","identifier":"2","length":3,"required":false,"metadata":{}},{"type":"SEPARATOR","label":"-","identifier":"Dash","length":0,"required":false,"metadata":{}},{"type":"FIELD","label":"3","identifier":"3","length":14,"required":false,"metadata":{}}]},"initialNameOrder":"GIVEN_FIRST","initialAddressFormat":{"id":0,"type":"ADDRESS","country":"US","labelLocale":"en","fields":[{"type":"FIELD","label":"Address Line 1","identifier":"Line1","length":0,"required":true,"metadata":{"autocomplete":"address-line1"}},{"type":"SEPARATOR","label":"\n","identifier":"Newline","length":0,"required":false,"metadata":{}},{"type":"FIELD","label":"Address Line 2","identifier":"Line2","length":0,"required":false,"metadata":{"autocomplete":"address-line2"}},{"type":"SEPARATOR","label":"\n","identifier":"Newline","length":0,"required":false,"metadata":{}},{"type":"FIELD","label":"City","identifier":"City","length":0,"required":true,"metadata":{"autocomplete":"address-level2"}},{"type":"SEPARATOR","label":",","identifier":"Comma","length":0,"required":false,"metadata":{}},{"type":"SEPARATOR","label":" ","identifier":"Space","length":0,"required":false,"metadata":{}},{"type":"FIELD","label":"State","identifier":"State","length":0,"required":true,"metadata":{"autocomplete":"address-level1"}},{"type":"SEPARATOR","label":" ","identifier":"Space","length":0,"required":false,"metadata":{}},{"type":"FIELD","label":"ZIP Code","identifier":"Zip","length":0,"required":true,"metadata":{"autocomplete":"postal-code"}}]}},"localizedStrings":{"validation":{"noValidSelection":"A valid selection must be made.","invalidUrl":"Must be a valid URL.","stringTooLong":"Value should have a length no longer than {0}.","containsInvalidKey":"{0} contains an invalid key.","invalidTwitterUsername":"Must be a valid Twitter username.","valueOutsideRange":"Value must be in the range {0} to {1}.","invalidPassword":"Passwords should not contain whitespace.","missingRequiredSubfields":"{0} is missing required subfields: {1}","invalidCurrency":"Currency value should be formatted like 1234 or 123.99.","invalidMapSize":"Value should contain exactly {0} elements.","subfieldsRequired":"All fields in {0} are required.","formSubmissionFailed":"Form submission failed. Review the following information: {0}.","invalidCountryCode":"Country code should have an optional plus and up to 4 digits.","invali
520dDate":"This is not a real date.","required":"{0} is required.","invalidStringLength":"Value should be {0} characters long.","invalidEmail":"Email addresses should follow the format [email protected].","invalidListLength":"Value should be {0} elements long.","allEmpty":"Please fill out at least one form field.","missingRequiredQuestion":"Missing a required question.","invalidQuestion":"Contained an invalid question.","captchaFailure":"Captcha validation failed. Please try again.","stringTooShort":"Value should have a length of at least {0}.","invalid":"{0} is not valid.","formErrors":"Form Errors","containsInvalidValue":"{0} contains an invalid value.","invalidUnsignedNumber":"Numbers must contain only digits and no other characters.","invalidName":"Valid names contain only letters, numbers, spaces, ', or - characters."},"submit":"Submit","status":{"title":"{@} Block","learnMore":"Learn more"},"name":{"firstName":"First Name","lastName":"Last Name"},"lightbox":{"openForm":"Open Form"},"likert":{"agree":"Agree","stronglyDisagree":"Strongly Disagree","disagree":"Disagree","stronglyAgree":"Strongly Agree","neutral":"Neutral"},"time":{"am":"AM","second":"Second","pm":"PM","minute":"Minute","amPm":"AM/PM","hour":"Hour"},"notFound":"Form not found.","date":{"yyyy":"YYYY","year":"Year","mm":"MM","day":"Day","month":"Month","dd":"DD"},"phone":{"country":"Country","number":"Number","prefix":"Prefix","areaCode":"Area Code","line":"Line"},"submitError":"Unable to submit form. Please try again later.","address":{"stateProvince":"State/Province","country":"Country","zipPostalCode":"Zip/Postal Code","address2":"Address 2","address1":"Address 1","city":"City"},"email":{"signUp":"Sign up for news and updates"},"required":"(required)","invalidData":"Invalid form data."}}};</script>
520<script type="text/javascript">SQUARESPACE_ROLLUPS = {};</script>
vendor: 1 bytes, line 520
520
521<script>(function(rollups, name) { if (!rollups[name]) { rollups[name] = {}; } rollups[name].js = ["//assets.squarespace.com/universal/scripts-compressed/visitor-site-error-reporter-857906e2f8b59eb7-min.en-US.js"]; })(SQUARESPACE_ROLLUPS, 'squarespace-visitor_site_error_reporter');</script>
vendor: 1 bytes, line 521
521
522<script crossorigin="anonymous" src="//assets.squarespace.com/universal/scripts-compressed/visitor-site-error-reporter-857906e2f8b59eb7-min.en-US.js" ></script>
522<script>(function(rollups, name) { if (!rollups[name]) { rollups[name] = {}; } rollups[name].js = ["//assets.squarespace.com/universal/scripts-compressed/extract-css-runtime-5fd80ebb4c56858a-min.en-US.js"]; })(SQUARESPACE_ROLLUPS, 'squarespace-extract_css_runtime');</script>
vendor: 1 bytes, line 522
522
523<script crossorigin="anonymous" src="//assets.squarespace.com/universal/scripts-compressed/extract-css-runtime-5fd80ebb4c56858a-min.en-US.js" ></script>
523<script>(function(rollups, name) { if (!rollups[name]) { rollups[name] = {}; } rollups[name].js = ["//assets.squarespace.com/universal/scripts-compressed/extract-css-moment-js-vendor-a5cfdec1ae227f33-min.en-US.js"]; })(SQUARESPACE_ROLLUPS, 'squarespace-extract_css_moment_js_vendor');</script>
vendor: 1 bytes, line 523
523
524<script crossorigin="anonymous" src="//assets.squarespace.com/universal/scripts-compressed/extract-css-moment-js-vendor-a5cfdec1ae227f33-min.en-US.js" ></script>
524<script>(function(rollups, name) { if (!rollups[name]) { rollups[name] = {}; } rollups[name].js = ["//assets.squarespace.com/universal/scripts-compressed/cldr-resource-pack-2c5e18cab442f0cf-min.en-US.js"]; })(SQUARESPACE_ROLLUPS, 'squarespace-cldr_resource_pack');</script>
vendor: 1 bytes, line 524
524
525<script crossorigin="anonymous" src="//assets.squarespace.com/universal/scripts-compressed/cldr-resource-pack-2c5e18cab442f0cf-min.en-US.js" ></script>
525<script>(function(rollups, name) { if (!rollups[name]) { rollups[name] = {}; } rollups[name].js = ["//assets.squarespace.com/universal/scripts-compressed/common-vendors-stable-784b947826b4c445-min.en-US.js"]; })(SQUARESPACE_ROLLUPS, 'squarespace-common_vendors_stable');</script>
vendor: 1 bytes, line 525
525
526<script crossorigin="anonymous" src="//assets.squarespace.com/universal/scripts-compressed/common-vendors-stable-784b947826b4c445-min.en-US.js" ></script>
526<script>(function(rollups, name) { if (!rollups[name]) { rollups[name] = {}; } rollups[name].js = ["//assets.squarespace.com/universal/scripts-compressed/common-vendors-aedb5cee3a9dd458-min.en-US.js"]; })(SQUARESPACE_ROLLUPS, 'squarespace-common_vendors');</script>
vendor: 1 bytes, line 526
526
527<script crossorigin="anonymous" src="//assets.squarespace.com/universal/scripts-compressed/common-vendors-aedb5cee3a9dd458-min.en-US.js" ></script>
527<script>(function(rollups, name) { if (!rollups[name]) { rollups[name] = {}; } rollups[name].js = ["//assets.squarespace.com/universal/scripts-compressed/common-f3b0ba49e516a794-min.en-US.js"]; })(SQUARESPACE_ROLLUPS, 'squarespace-common');</script>
vendor: 1 bytes, line 527
527
528<script crossorigin="anonymous" src="//assets.squarespace.com/universal/scripts-compressed/common-f3b0ba49e516a794-min.en-US.js" ></script>
528<script>(function(rollups, name) { if (!rollups[name]) { rollups[name] = {}; } rollups[name].js = ["//assets.squarespace.com/universal/scripts-compressed/commerce-e0976e549007655a-min.en-US.js"]; })(SQUARESPACE_ROLLUPS, 'squarespace-commerce');</script>
vendor: 1 bytes, line 528
528
529<script crossorigin="anonymous" src="//assets.squarespace.com/universal/scripts-compressed/commerce-e0976e549007655a-min.en-US.js" ></script>
529<script>(function(rollups, name) { if (!rollups[name]) { rollups[name] = {}; } rollups[name].css = ["//assets.squarespace.com/universal/styles-compressed/commerce-d50e5960dc9fd059-min.en-US.css"]; })(SQUARESPACE_ROLLUPS, 'squarespace-commerce');</script>
529
530<link rel="stylesheet" type="text/css" href="//assets.squarespace.com/universal/styles-compressed/commerce-d50e5960dc9fd059-min.en-US.css">
530<script>(function(rollups, name) { if (!rollups[name]) { rollups[name] = {}; } rollups[name].js = ["//assets.squarespace.com/universal/scripts-compressed/user-account-core-d6554b6cf16980c6-min.en-US.js"]; })(SQUARESPACE_ROLLUPS, 'squarespace-user_account_core');</script>
vendor: 1 bytes, line 530
530
531<script crossorigin="anonymous" src="//assets.squarespace.com/universal/scripts-compressed/user-account-core-d6554b6cf16980c6-min.en-US.js" ></script>
531<script>(function(rollups, name) { if (!rollups[name]) { rollups[name] = {}; } rollups[name].css = ["//assets.squarespace.com/universal/styles-compressed/user-account-core-bf8b0e0129e2a7ba-min.en-US.css"]; })(SQUARESPACE_ROLLUPS, 'squarespace-user_account_core');</script>
531
532<link rel="stylesheet" type="text/css" href="//assets.squarespace.com/universal/styles-compressed/user-account-core-bf8b0e0129e2a7ba-min.en-US.css"><link rel="stylesheet" type="text/css" href="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.newsletter/58d67523-2cf5-42f9-95a4-1e436b9263fe_104/website.components.newsletter.styles.css"/><link rel="stylesheet" type="text/css" href="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.code/cfd3d1e7-62c0-46c2-9802-ba86767fc9b2_986/website.components.code.styles.css"/>
532<script src="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.code/cfd3d1e7-62c0-46c2-9802-ba86767fc9b2_986/website.components.code.visitor.js"></script>
532<script src="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.newsletter/58d67523-2cf5-42f9-95a4-1e436b9263fe_104/website.components.newsletter.visitor.js"></script>
532<script>Squarespace.load(window);</script>
vendor: 1 bytes, line 532
532
533<script type="application/ld+json">{"url":"https://www.venndesign.co","name":"Venn Design | Ergonomic Desk Chairs, Office Chairs, Sitting Cushions, Floor Pads, and Wellness Furniture","description":"<p class=\"\" style=\"white-space:pre-wrap;\">Build a Movement Rich Environment in your home and office. Proudly manufactured in Dallas, TX, USA. Created by Tyler Benner.</p>","image":"//images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/a5121991-f8de-41d6-b386-922654a12d14/Venn+Design+logo%402000x-100.jpg","@context":"http://schema.org","@type":"WebSite"}</script>
533<script type="application/ld+json">{"address":"Dallas TX\nUnited States","image":"https://static1.squarespace.com/static/5844c859d1758e37a12febc4/t/6414d49512ec880fa33a54cf/1782590926966/","openingHours":", , , , , , ","@context":"http://schema.org","@type":"LocalBusiness"}</script>
533<link rel="stylesheet" type="text/css" href="https://static1.squarespace.com/static/sitecss/5844c859d1758e37a12febc4/577/55f0aac0e4b0f0a5b7e0b22e/5844c859d1758e37a12febca/360/site.css?nocustom=true"/><link rel="stylesheet" type="text/css" href="https://static1.squarespace.com/static/custom-css/5844c859d1758e37a12febc4/5844c859d1758e37a12febca/64/custom.css"/><!-- Mailchimp Popup -->
534<script id="mcjs">!function(c,h,i,m,p){m=c.createElement(h),p=c.getElementsByTagName(h)[0],m.async=1,m.src=i,p.parentNode.insertBefore(m,p)}(document,"script","https://chimpstatic.com/mcjs-connected/js/users/706f81b7439c291b35c0729f9/12e9d7f4b60638411e32ba54a.js");</script>
534
535
536
537<!-- Google Tag Manager -->
538<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://load.server.venndesign.co/zjqqydcz.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-PSQHM7J');</script>
538
539<!-- End Google Tag Manager -->
540
541
542<!-- Google Tag Manager (noscript) -->
543<noscript><iframe src="https://load.server.venndesign.co/ns.html?id=GTM-PSQHM7J" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
544<!-- End Google Tag Manager (noscript) -->
545
546
547
548<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.1/jquery.min.js"></script>
vendor: 1 bytes, line 548
548
549<script src="/s/twcsl.js"></script>
549
550
551
552<!-- Mini Cart Square Refresh -->
553<link rel="stylesheet" href="https://www.squarerefresh.xyz/assets/plugins/slide-out/css/mini-cart.min.css">
554<!-- Mini Cart Square Refresh -->
555
556
557<!-- FAQs Square Refresh -->
558<link rel="stylesheet" href="https://www.squarerefresh.xyz/assets/plugins/facts/css/facts.min.css">
559<!-- FAQs Square Refresh -->
560
561
562
563<!-- Slides Square Refresh -->
564<link rel="stylesheet" href="https://www.squarerefresh.xyz/assets/plugins/slides/css/slides.min.css">
565<!-- Slides Square Refresh -->
566
567
568
569<!--
570
571  begin store price change
572  
573  License         : < https://bit.ly/3F8sn8W >
574  
575  Version         : 0.5.0
576  
577  SS Versions     : 7.1, 7.0
578  
579  v7.1
580  Fluid
581  Engine
582  Compatible      : Not Applicable
583  
584  v7.0 Templates  : Brine ( Aria, Blend, Burke, Cacao, Clay, Fairfield, Feed,
585                    Foster, Greenwich, Hatch, Heights, Hunter, Hyde, Impact,
586                    Jaunt, Juke, Keene, Kin, Lincoln, Maple, Margot, Marta,
587                    Mentor, Mercer, Miller, Mojave, Moksha, Motto, Nueva, Pedro,
588                    Pursuit, Rally, Rover, Royce, Sofia, Sonora, Stella, Thorne,
589                    Vow, Wav, West )
590                    
591                    Five
592                    
593                    Montauk ( Julia, Kent, Om )
594                    
595                    your template is not listed? then it is not currently
596                    supported
597  
598  Dependancies    : twcsl < https://bit.ly/3JSggyu >
599  
600  Notes           : the code is comprised of several tags all of which must be
601                    present for the effect to work
602                    
603                    the code adds a data-twc-spc-mo attribute with value of
604                    false on the element with class product-price. by changing
605                    the attribute value to true you will cause a mutation which
606                    will cause the search replace text to run. the attribute
607                    value will be set to false after the search replace text run
608                    
609                    the code fails silently. poorly formed regular expressions
610                    will stop the processing of search/replace text pairs
611  
612  By              : Thomas Creedon < http://www.tomsWeb.consulting/ >
613  
614  -->
615  
616  
616<script>
617  
618    if ( window.twc == undefined ) window.twc = { };
619    
620    twc.x8af7a0e8 = {
621    
622      searchReplaceText : {
623      
624        /*
625        
626          the format of each line is a search text and a replacement text or
627          replacement text function
628          
629          if the text has single quotes in them then put a backslash before
630          the single quotes. example: it's becomes it\'s
631          
632          search text can be a string or a regular expression, backslashes
633          need to be escaped in regular expressions
634          
635          replacement text can use regular expression grouping syntax when the
636          search text is a regular expression
637          
638          replacement text functions need to accept node, isDetail, text, and
639          searchText parameters. the function must return replacement text or a
640          boolean. true tells the code to continue to the next search/replace
641          pair without making the replacement. false means skip all further
642          replacements. your function needs to be defined before this code runs
643          
644          following are example lines. copy an example line below and paste
645          after the example lines. remove '// ' at beginning of pasted line.
646          repeat for as many times as needed
647          
648          */
649          
650        // search text and replacment text example line follows
651        
652                  /* remove decimal from price, using regular expression, backslash must
653             be escaped with \, the replacement text uses special replacement
654             patterns */
655          
656          '/(\\d+(?:,\\d{3})*)(?:\\.\\d{2})?/' : '$1',
657        
658        // '[enter search text here between single quotes]' : '[enter replacement text here between single quotes]',
659        
660        // search text and replacment text function example line follows
661        
662        // '[enter search text here between single quotes]' : [enter replacement text function name here],
663        
664        },
665        
666      afterpay : false, // change afterpay prices, use false or true
667      
668      };
669      
670    </script>
670
671    
672  <!-- do not change anything below, there be the borg here -->
673  
674  <style>
675  
676    .ProductItem .ProductItem-details .product-price,
677    .ProductItem .ProductItem-details .afterpayString
678    
679      {
680      
681        visibility : hidden;
682        
683        }
684        
685    body.twc-spc-show .ProductItem .ProductItem-details .product-price,
686    body.twc-spc-show .ProductItem .ProductItem-details .afterpayString
687    
688      {
689      
690        visibility : visible;
691        
692        }
693        
694    </style>
695    
696  
696<script>
697  
698    ( ( ) => {
699    
700      // bail if no mutation observer available
701      
702      if ( ! ( 'MutationObserver' in window ) ) return;
703      
704      const initialize = ( ) => {
705      
706        const isDetail = twcsl.page.store.detail.is;
707        
708        const options = twc.x8af7a0e8;
709        
710        const keys = Object.keys ( options.searchReplaceText );
711        
712        const changeText = ( node ) => {
713        
714          const walker =
715          
716            document.createTreeWalker ( node, NodeFilter.SHOW_TEXT );
717            
718          while ( walker.nextNode ( ) ) {
719          
720            const node = walker.currentNode;
721            
722            let t = node.data;
723            
724            $.each ( keys, function ( i, s ) {
725            
726              const m = s.match ( /\/(.+)\/(.*)/ );
727              
728              let r = options.searchReplaceText [ s ];
729              
730              if ( m !== null ) { // m appears to be a regex pattern
731              
732                try {
733                
734                  s = new RegExp ( m [ 1 ], m [ 2 ] );
735                  
736                  } catch {
737                  
738                    return; // bail on error
739                    
740                    }
741                    
742                if ( ! s.test ( t ) ) return true; // continue if text no match
743                
744                }
745                
746              if ( typeof r == 'function' ) {
747              
748                r = r ( node, isDetail, t, s );
749                
750                if ( typeof r == 'boolean' ) return r;
751                
752                }
753                
754              t = t.replace ( s, r );
755              
756              } );
757              
758            node.data = t;
759            
760            }
761            
762          }
763          
764        const $productPrices = $( '.product-price' )
765        
766          .each ( function ( ) {
767          
768            changeText ( this );
769            
770            } );
771            
772        const $afterpayPrices = $( '.afterpayString' );
773        
774        if ( options.afterpay )
775        
776          $afterpayPrices.each ( function ( ) {
777          
778            changeText ( this );
779            
780            } );
781            
782        if ( ! isDetail ) return; // bail if not detail
783        
784        const attribute = 'data-twc-spc-mo';
785        
786        const observer = new MutationObserver ( mutations => {
787        
788          $.each ( mutations, function ( ) {
789          
790            // continue if no added nodes
791            
792            if ( ! this.addedNodes.length ) return true;
793            
794            const target = this.target;
795            
796            // previous change was forced
797            
798            if ( this.attributeName == attribute )
799            
800              if ( $( target ).attr ( attribute ) == 'true' )
801              
802                $( target ).attr ( attribute, 'false' );
803                
804                else if ( this.oldValue == 'true' )
805                
806                  return true;
807                  
808            observer.disconnect ( );
809            
810            changeText ( target );
811            
812            pricesObserve ( );
813            
814            } );
815            
816          } );
817          
818        const pricesObserve = ( ) => {
819        
820          // listen for changes in product prices
821          
822          $productPrices.each ( function ( ) {
823          
824            observer.observe ( this, {
825            
826              attributeFilter : [ attribute ],
827              
828              attributeOldValue : true,
829              
830              childList : true
831              
832              } );
833              
834            } );
835            
836          // listen for changes in afterpay prices
837          
838          if ( options.afterpay )
839          
840            $afterpayPrices.each ( function ( ) {
841            
842              observer.observe ( this, {
843              
844                attributeFilter : [ attribute ],
845                
846                attributeOldValue : true,
847                
848                childList : true,
849                
850                subtree : true
851                
852                } );
853                
854              } );
855            
856          };
857          
858        pricesObserve ( );
859        
860        $( 'body' ).addClass ( 'twc-spc-show' );
861        
862        };
863        
864      switch ( true ) {
865      
866        case twcsl.ss.is71 :
867        
868          $( initialize );
869          
870          break;
871          
872        case twcsl.ss.is70 :
873        
874          Squarespace.onInitialize ( Y, initialize );
875          
876          break;
877          
878        }
879        
880      } ) ( );
881      
882    </script>
882
883    
884  <!-- end store price change -->
885  <!-- end store price change -->
886  <!-- end store price change -->
887  <!-- end store price change -->
888  <!-- end store price change -->
889  <!-- end store price change -->
890  <!-- end store price change -->
891  <!-- end store price change -->
892  <!-- end store price change -->
893  <!-- end store price change -->
894  <!-- end store price change -->
895  <!-- end store price change -->
896
897
898
899
900
901
902
903
904
905
906<script type="application/ld+json">
907  {
908    "@context": "http://schema.org",
909    "@type": "Organization",
910    "name": "Venn Design",
911    "url": "http://www.venndesign.co",
912    "address": "1214 Sullivan Drive Cedar Hill Texas USA",
913    "sameAs": [
914      "https://www.facebook.com/venndesignco",
915      "https://www.instagram.com/venndesign",
916      "https://www.twitter.com/venndesignco",
917      "https://www.pinterest.com/venndesign/",
918      "https://www.linkedin.com/company/venn-design-co"
919    ]
920  }
921</script>
921
922
923
924<!– Plugin Wiremo Integration –>
925<script src="https://storage.googleapis.com/staticprod/plugin-wiremo-integration.js">
926</script>
vendor: 1 bytes, line 926
926
927<script>pluginWiremoIntegration();</script>
927
928<!– End Plugin Wiremo Integration –>
929
930<!-- Start of Wiremo script -->
931            
931<script>
932                (function () {
933                    var d = document,
934                        s = d.createElement('script');
935                    s.src = 'https://wapi.wiremo.co/v1/attach/carousel/62e199c62827376df077af7e';
936                    (d.head || d.body).appendChild(s);
937                })();
938            </script>
938
939<!-- End of Wiremo Script -->
940
941<!-- Peach's Affiliate Programs -->
942<script src="https://peachs.co/embeds/affinity.min.js" data-program-id="66"></script>
942
943<!-- END Peach's Affiliate Programs -->
944
945 
946<!-- Pinterest Base Code -->
947<script type="text/javascript">
948!function(e){if(!window.pintrk){window.pintrk=function()
949{window.pintrk.queue.push(Array.prototype.slice.call(arguments))};var
950n=window.pintrk;n.queue=[],n.version="3.0";var
951t=document.createElement("script");t.async=!0,t.src=e;var
952r=document.getElementsByTagName("script")[0];r.parentNode.insertBefore(t,r)}}
953("https://s.pinimg.com/ct/core.js"); 
954
955pintrk('load','549761818334', { em: '{customerEmailAddress}', });
956pintrk('page');
957</script>
957 
958<noscript> 
959<img height="1" width="1" style="display:none;" alt=""
960src="https://ct.pinterest.com/v3/?tid=549761818334&noscript=1" /> 
961</noscript>
962<!-- End Pinterest Base Code -->
963
964
965
966<!-- Pinterest Pixel - Tracking clicks on Buttons -->
967<script>
968  function ptTrackingClicks() {
969    // Add to Cart
970    var cartButton = document.querySelector('.sqs-add-to-cart-button');
971    if (cartButton) {
972      cartButton.addEventListener('click', function() {
973        pintrk('track', 'AddToCart',{
974   product_id: '12345'
975 });  
976      }, false);
977    }
978  }
979  document.addEventListener('DOMContentLoaded', ptTrackingClicks);
980</script>
980
981<!-- end Pinterest Pixel - Tracking clicks on Buttons -->
982
983
984
985
986
987
988
989
990
991
992<link rel="preconnect" href="https://venn-motion.pages.dev" crossorigin>
993<link rel="dns-prefetch" href="//venn-motion.pages.dev">
994<link rel="preload" href="https://venn-motion.pages.dev/motion-textures.js?v=3" as="script">
995<link rel="preload" href="https://venn-motion.pages.dev/motion.bundle.js?v=3" as="script">
995<script>Static.COOKIE_BANNER_CAPABLE = true;</script>
vendor: 64 bytes, lines 995-996
995
996<script async src="https://www.googletagmanager.com/gtag/js?id=
996UA-38341504-1
vendor: 11 bytes, line 996
996"></script>
996<script>window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}gtag('js', new Date());gtag('set', 'developer_id.dZjQwMz', true);gtag('config', 'UA-38341504-1');</script>
996<!-- End of Squarespace Headers -->
997  </head>
998  <body id="" class="tweak-site-width-option-full-width tweak-icon-weight-light  tweak-site-ajax-loading-bar-show ancillary-header-top-left-layout-stacked ancillary-header-top-center-layout-stacked ancillary-header-top-right-layout-horizontal ancillary-header-bottom-left-layout-horizontal ancillary-header-bottom-center-layout-stacked ancillary-header-bottom-right-layout-horizontal ancillary-header-branding-position-top-center ancillary-header-tagline-position-top-left ancillary-header-primary-nav-position-top-left ancillary-header-secondary-nav-position-top-right ancillary-header-social-position-hide ancillary-header-search-position-hide ancillary-header-cart-position-top-right ancillary-header-account-position-hide tweak-header-primary-nav-hover-style-active tweak-header-primary-nav-button-style-solid tweak-header-primary-nav-button-shape-square tweak-header-secondary-nav-inherit-styles tweak-header-secondary-nav-hover-style-active tweak-header-secondary-nav-button-style-solid tweak-header-secondary-nav-button-shape-square tweak-header-search-style-underlined tweak-header-search-placeholder-show tweak-header-cart-style-text tweak-header-account-style-text tweak-index-nav-style-none tweak-index-nav-position-right tweak-index-nav-text-show tweak-index-page-fullscreen-none tweak-index-page-scroll-indicator-none tweak-index-page-scroll-indicator-icon-arrow tweak-index-page-scroll-indicator-icon-weight-hairline tweak-index-gallery-layout-packed tweak-index-gallery-spacing-sides-show tweak-index-gallery-spacing-top-bottom-show tweak-index-gallery-fixed-height tweak-index-gallery-apply-bottom-spacing tweak-index-gallery-hover-style-plain tweak-index-gallery-controls-small-arrows tweak-index-gallery-controls-icon-weight-hairline tweak-index-gallery-indicators-lines tweak-index-gallery-autoplay-enable tweak-index-gallery-transition-fade tweak-index-gallery-content-position-top-left tweak-index-gallery-content-text-alignment-left tweak-footer-show tweak-footer-layout-columns tweak-footer-layout-columns-auto tweak-footer-stacked-alignment-left tweak-footer-business-info-show tweak-mobile-bar-top-fixed ancillary-mobile-bar-branding-position-top-left ancillary-mobile-bar-menu-icon-position-top-right tweak-mobile-bar-menu-icon-hamburger ancillary-mobile-bar-search-icon-position-hide ancillary-mobile-bar-cart-position-bottom-right tweak-mobile-bar-cart-style-text ancillary-mobile-bar-account-position-hide tweak-mobile-bar-account-style-text tweak-mobile-overlay-slide-origin-left tweak-mobile-overlay-close-show tweak-mobile-overlay-menu-primary-button-style-solid tweak-mobile-overlay-menu-primary-button-shape-square tweak-mobile-overlay-menu-secondary-button-style-solid tweak-mobile-overlay-menu-secondary-button-shape-square tweak-quote-block-alignment-left tweak-social-icons-style-solid tweak-social-icons-shape-square hide-album-share-link tweak-blog-meta-primary-none tweak-blog-meta-secondary-none tweak-blog-list-style-grid tweak-blog-list-separator-show tweak-blog-list-alignment-left tweak-blog-list-item-image-show tweak-blog-list-item-image-aspect-ratio-grid-11-square tweak-blog-list-item-image-aspect-ratio-stacked-11-square tweak-blog-list-item-title-show tweak-blog-list-item-body-show tweak-blog-list-item-readmore-inline tweak-blog-list-item-meta-position-below-title tweak-blog-list-pagination-link-label-show tweak-blog-list-pagination-link-icon-s
998how tweak-blog-list-pagination-link-icon-weight-light tweak-blog-item-alignment-center tweak-blog-item-meta-position-below-title tweak-blog-item-share-position-below-content tweak-blog-item-pagination-link-icon-show tweak-blog-item-pagination-link-label-show tweak-blog-item-pagination-link-meta-hide tweak-blog-item-pagination-link-icon-weight-hairline event-disable-item-pages event-show-past-events event-thumbnails event-thumbnail-size-32-standard event-date-label event-date-label-time event-list-show-cats event-list-date event-list-time event-list-address event-list-icalgcal-links event-excerpts event-item-back-link gallery-design-slideshow aspect-ratio-auto lightbox-style-dark gallery-navigation-bullets gallery-info-overlay-show-on-hover gallery-aspect-ratio-32-standard gallery-arrow-style-no-background gallery-transitions-fade gallery-show-arrows gallery-auto-crop tweak-product-list-image-aspect-ratio-34-three-four-vertical tweak-product-list-item-hover-behavior-show-alternate-image tweak-product-list-meta-position-under tweak-product-list-mobile-meta-position-overlay tweak-product-list-meta-alignment-under-left tweak-product-list-meta-alignment-overlay-bottom-left tweak-product-list-show-title tweak-product-list-show-price tweak-product-list-filter-display-top tweak-product-list-filter-alignment-left tweak-product-item-nav-show-none tweak-product-item-nav-pagination-style-previousnext tweak-product-item-nav-breadcrumb-alignment-left tweak-product-item-nav-pagination-alignment-right tweak-product-item-gallery-position-left tweak-product-item-gallery-design-slideshow tweak-product-item-gallery-aspect-ratio-11-square tweak-product-item-gallery-thumbnail-alignment-left tweak-product-item-details-alignment-left tweak-product-item-details-show-title tweak-product-item-details-show-price tweak-product-item-details-show-excerpt tweak-product-item-details-excerpt-position-below-add-to-cart-button tweak-product-item-details-show-variants tweak-product-item-details-show-quantity tweak-product-item-details-options-style-square tweak-product-item-details-show-add-to-cart-button tweak-product-item-details-add-to-cart-button-style-solid tweak-product-item-details-add-to-cart-button-shape-square tweak-product-item-details-add-to-cart-button-padding-medium tweak-product-item-image-zoom-enabled tweak-product-item-image-zoom-behavior-click tweak-product-item-lightbox-enabled tweak-related-products-image-aspect-ratio-11-square tweak-related-products-meta-alignment-under-center tweak-product-badge-style-rectangle tweak-product-badge-position-bottom-right tweak-product-badge-inset-floating newsletter-style-custom hide-opentable-icons opentable-style-dark small-button-style-solid small-button-shape-square medium-button-style-solid medium-button-shape-rounded large-button-style-solid large-button-shape-rounded image-block-poster-text-alignment-center image-block-card-dynamic-font-sizing image-block-card-content-position-center image-block-card-text-alignment-left image-block-overlap-content-position-center image-block-overlap-text-alignment-left image-block-collage-dynamic-font-sizing image-block-collage-content-position-top image-block-collage-text-alignment-left image-block-stack-dynamic-font-sizing image-block-stack-text-alignment-left button-style-solid button-corner-style-square tweak-product-quick-view-button-style-floating tweak-product-quick-view-button-position-bottom tweak-product-quick-view-lightbox-excerpt-display-truncate tweak-product-quick-view-lightbox-show-arrows tweak-product-quick-view-lightbox-show-close-button tweak-product-quick-view-lightbox-controls-weight-medium tweak-share-buttons-style-icon-only tweak-share-buttons-icons-show tweak-share-buttons-labels-show tweak-share-buttons-counts-show native-currency-code-usd mobile-style-available sqs-has-custom-cart has-logo-image has-social has-cart enable-load-effects has-primary-nav has-footer-nav has-user-accounts" data-controller="HashManager, SiteLoader, MobileClassname">
999
1000    <div class="Loader"></div>
1001
1002    <div class="Mobile" data-nc-base="mobile-bar" data-controller="AncillaryLayout">
1003  <div class="Mobile-bar Mobile-bar--top" data-nc-group="top" data-controller="MobileOffset">
1004
1005    <div data-nc-container="top-left">
1006      <a href="/" class="Mobile-bar-branding" data-nc-element="branding" data-content-field="site-title">
1007        
1008          
1009            
1010            
1011
1012
1013
1014  
1015  
1016  
1017  
1018
1019  
1020  
1021    
1022  
1023
1024  
1025  <img src="//images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/a5121991-f8de-41d6-b386-922654a12d14/Venn+Design+logo%402000x-100.jpg" alt="Venn Design | Ergonomic Desk Chairs, Office Chairs, Sitting Cushions, Floor Pads, and Wellness Furniture" sizes="240px" class="Mobile-bar-branding-logo" style="display:block" srcset="//images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/a5121991-f8de-41d6-b386-922654a12d14/Venn+Design+logo%402000x-100.jpg?format=100w 100w, //images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/a5121991-f8de-41d6-b386-922654a12d14/Venn+Design+logo%402000x-100.jpg?format=300w 300w, //images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/a5121991-f8de-41d6-b386-922654a12d14/Venn+Design+logo%402000x-100.jpg?format=500w 500w, //images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/a5121991-f8de-41d6-b386-922654a12d14/Venn+Design+logo%402000x-100.jpg?format=750w 750w, //images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/a5121991-f8de-41d6-b386-922654a12d14/Venn+Design+logo%402000x-100.jpg?format=1000w 1000w, //images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/a5121991-f8de-41d6-b386-922654a12d14/Venn+Design+logo%402000x-100.jpg?format=1500w 1500w, //images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/a5121991-f8de-41d6-b386-922654a12d14/Venn+Design+logo%402000x-100.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">
1026
1027
1028          
1029        
1030      </a>
1031    </div>
1032    <div data-nc-container="top-center"></div>
1033    <div data-nc-container="top-right"></div>
1034  </div>
1035  <div class="Mobile-bar Mobile-bar--bottom" data-nc-group="bottom" data-controller="MobileOffset">
1036    <div data-nc-container="bottom-left">
1037      <button
1038        class="Mobile-bar-menu"
1039        data-nc-element="menu-icon"
1040        data-controller-overlay="menu"
1041        data-controller="MobileOverlayToggle"
1042        aria-label="Open navigation menu"
1043      >
1044        <svg class="Icon Icon--hamburger" viewBox="0 0 24 18">
1045          <use xlink:href="/assets/ui-icons.svg#hamburger-icon--even" class="use--even"></use>
1046          <use xlink:href="/assets/ui-icons.svg#hamburger-icon--odd" class="use--odd"></use>
1047        </svg>
1048        <svg class="Icon Icon--hotdog" viewBox="0 0 24 14">
1049          <use xlink:href="/assets/ui-icons.svg#hotdog-icon--even" class="use--even"></use>
1050          <use xlink:href="/assets/ui-icons.svg#hotdog-icon--odd" class="use--odd"></use>
1051        </svg>
1052        <svg class="Icon Icon--plus" viewBox="0 0 20 20">
1053          <use xlink:href="/assets/ui-icons.svg#plus-icon--even" class="use--even"></use>
1054          <use xlink:href="/assets/ui-icons.svg#plus-icon--odd" class="use--odd"></use>
1055        </svg>
1056        <svg class="Icon Icon--dots-horizontal" viewBox="0 0 25 7">
1057          <use xlink:href="/assets/ui-icons.svg#dots-horizontal-icon--even" class="use--even"></use>
1058          <use xlink:href="/assets/ui-icons.svg#dots-horizontal-icon--odd" class="use--odd"></use>
1059        </svg>
1060        <svg class="Icon Icon--dots-vertical" viewBox="0 0 7 25">
1061          <use xlink:href="/assets/ui-icons.svg#dots-vertical-icon--even" class="use--even"></use>
1062          <use xlink:href="/assets/ui-icons.svg#dots-vertical-icon--odd" class="use--odd"></use>
1063        </svg>
1064        <svg class="Icon Icon--squares-horizontal" viewBox="0 0 25 7">
1065          <use xlink:href="/assets/ui-icons.svg#squares-horizontal-icon--even" class="use--even"></use>
1066          <use xlink:href="/assets/ui-icons.svg#squares-horizontal-icon--odd" class="use--odd"></use>
1067        </svg>
1068        <svg class="Icon Icon--squares-vertical" viewBox="0 0 7 25">
1069          <use xlink:href="/assets/ui-icons.svg#squares-vertical-icon--even" class="use--even"></use>
1070          <use xlink:href="/assets/ui-icons.svg#squares-vertical-icon--odd" class="use--odd"></use>
1071        </svg>
1072      </button>
1073    </div>
1074    <div data-nc-container="bottom-center">
1075      
1076  <a href="/cart" class="Cart sqs-custom-cart" data-nc-element="cart" data-test="template-cart">
1077    <span class="Cart-inner">
1078      <span class="Cart-label">Cart</span>
1079
1080      <svg class="Icon Icon--bag-alt" viewBox="0 0 28 28">
1081        <use class="use--odd" xlink:href="/assets/ui-icons.svg#bag-icon-alt--odd"></use>
1082        <use class="use--even" xlink:href="/assets/ui-icons.svg#bag-icon-alt--even"></use>
1083      </svg>
1084      <svg class="Icon Icon--bag" viewBox="0 0 34 38">
1085        <use class="use--odd" xlink:href="/assets/ui-icons.svg#bag-icon--odd"></use>
1086        <use class="use--even" xlink:href="/assets/ui-icons.svg#bag-icon--even"></use>
1087      </svg>
1088      <svg class="Icon Icon--cart-alt" viewBox="0 0 28 28">
1089        <use class="use--odd" xlink:href="/assets/ui-icons.svg#cart-icon-alt--odd"></use>
1090        <use class="use--even" xlink:href="/assets/ui-icons.svg#cart-icon-alt--even"></use>
1091      </svg>
1092      <svg class="Icon Icon--cart" viewBox="0 0 31 26">
1093        <use class="use--odd" xlink:href="/assets/ui-icons.svg#cart-icon--odd"></use>
1094        <use class="use--even" xlink:href="/assets/ui-icons.svg#cart-icon--even"></use>
1095      </svg>
1096
1097      <span class="sqs-cart-quantity">0</span>
1098    </span>
1099  </a>
1100
1101    </div>
1102    <div data-nc-container="bottom-right">
1103      
1104        <div class="Mobile-bar-account" data-nc-element="account" data-controller="UserAccountLink">
1105          <button class="user-accounts-text-link">
1106            <span class="unauth">Sign In</span>
1107            <span class="auth">My Account</span>
1108          </button>
1109          <div class="user-accounts-icon">
1110            <svg class="Icon Icon--user-accounts" viewBox="0 0 28 28">
1111  <use class="use--odd" xlink:href="/assets/ui-icons.svg#accounts-icon--odd"></use>
1112  <use class="use--even" xlink:href="/assets/ui-icons.svg#accounts-icon--even"></use>
1113</svg>
1114
1115          </div>
1116        </div>
1117      
1118      <a href="/search" class="Mobile-bar-search" data-nc-element="search-icon" aria-label="Search">
1119        <svg class="Icon Icon--search" viewBox="0 0 20 20">
1120          <use xlink:href="/assets/ui-icons.svg#search-icon"></use>
1121        </svg>
1122      </a>
1123    </div>
1124  </div>
1125
1126  <div class="Mobile-overlay">
1127    <div class="Mobile-overlay-menu" data-controller="MobileOverlayFolders">
1128      <div class="Mobile-overlay-menu-main">
1129        <nav class="Mobile-overlay-nav Mobile-overlay-nav--primary" data-content-field="navigation">
1130          
1131  
1132    
1133      
1134        
1135          
1136            <a href="/store" class="Mobile-overlay-nav-item">
1137              Store
1138            </a>
1139          
1140        
1141      
1142    
1143    
1144  
1145    
1146      
1147        
1148          
1149            <a href="/philosophy" class="Mobile-overlay-nav-item">
1150              Philosophy
1151            </a>
1152          
1153        
1154      
1155    
1156    
1157  
1158    
1159      
1160        
1161          <a href="/blog" class="Mobile-overlay-nav-item">
1162            Blog
1163          </a>
1164        
1165      
1166    
1167    
1168  
1169    
1170      
1171        
1172          <a href="/contact" class="Mobile-overlay-nav-item">
1173            Contact
1174          </a>
1175        
1176      
1177    
1178    
1179  
1180
1181        </nav>
1182        <nav class="Mobile-overlay-nav Mobile-overlay-nav--secondary" data-content-field="navigation">
1183          
1184        </nav>
1185      </div>
1186      <div class="Mobile-overlay-folders" data-content-field="navigation">
1187        
1188  
1189
1190  
1191
1192  
1193
1194  
1195
1196        
1197      </div>
1198    </div>
1199    <button class="Mobile-overlay-close" data-controller="MobileOverlayToggle" aria-label="Close navigation menu">
1200      <svg class="Icon Icon--close" viewBox="0 0 16 16">
1201        <use xlink:href="/assets/ui-icons.svg#close-icon"></use>
1202      </svg>
1203    </button>
1204    <div class="Mobile-overlay-back" data-controller="MobileOverlayToggle"></div>
1205  </div>
1206</div>
1207
1208
1209    <div class="Parallax-host-outer">
1210      <div class="Parallax-host" data-parallax-host>
1211        
1212          
1213            
1214              
1215            
1216          
1217        
1218      </div>
1219    </div>
1220
1221    <div class="Site" data-nc-base="header" data-controller="AncillaryLayout">
1222      <div class="sqs-announcement-bar-dropzone"></div>
1223
1224      <header class="Header Header--top">
1225        <div class="Header-inner Header-inner--top" data-nc-group="top">
1226          <div data-nc-container="top-left">
1227
1228            <div class="Header-search" data-nc-element="search">
1229              <form class="Header-search-form" action="/search" method="get" role="search">
1230                <input class="Header-search-form-input" name="q" type="text" spellcheck="false" value="" autocomplete="off" placeholder="Search" aria-label="Search"/>
1231                <button class="Header-search-form-submit" type="submit" data-test="template-search" aria-label="Search">
1232                  <svg class="Icon Icon--search--small" viewBox="0 0 15 15">
1233                    <use xlink:href="/assets/ui-icons.svg#search-icon--small"></use>
1234                  </svg>
1235                  <svg class="Icon Icon--search" viewBox="0 0 20 20">
1236                    <use xlink:href="/assets/ui-icons.svg#search-icon"></use>
1237                  </svg>
1238                </button>
1239              </form>
1240            </div>
1241
1242          </div>
1243          <div data-nc-container="top-center">
1244            
1245              <div class="Header-account" data-nc-element="account" data-controller="UserAccountLink">
1246                <button class="user-accounts-text-link">
1247                  <span class="unauth">Sign In</span>
1248                  <span class="auth">My Account</span>
1249                </button>
1250                <div class="user-accounts-icon">
1251                  <svg class="Icon Icon--user-accounts" viewBox="0 0 28 28">
1252  <use class="use--odd" xlink:href="/assets/ui-icons.svg#accounts-icon--odd"></use>
1253  <use class="use--even" xlink:href="/assets/ui-icons.svg#accounts-icon--even"></use>
1254</svg>
1255
1256                </div>
1257              </div>
1258            
1259            
1260              <div class="Header-social" data-nc-element="social">
1261                
1262  <nav class="SocialLinks" data-content-field="connected-accounts">
1263    <div class="SocialLinks-inner">
1264    <a href="https://www.facebook.com/venndesignco" target="_blank" class="SocialLinks-link facebook" style="">
1265        <div>
1266          <svg class="SocialLinks-link-svg" viewBox="0 0 64 64">
1267            
1268            <use class="SocialLinks-link-icon" xlink:href="#facebook-icon"></use>
1269            <use class="SocialLinks-link-mask" xlink:href="#facebook-mask"></use>
1270          </svg>
1271        </div>
1272      </a><a href="http://www.instagram.com/venndesign" target="_blank" class="SocialLinks-link instagram-unauth" style="">
1273        <div>
1274          <svg class="SocialLinks-link-svg" viewBox="0 0 64 64">
1275            
1276            <use class="SocialLinks-link-icon" xlink:href="#instagram-unauth-icon"></use>
1277            <use class="SocialLinks-link-mask" xlink:href="#instagram-unauth-mask"></use>
1278          </svg>
1279        </div>
1280      </a><a href="https://www.pinterest.com/venndesignco/" target="_blank" class="SocialLinks-link pinterest-unauth" style="">
1281        <div>
1282          <svg class="SocialLinks-link-svg" viewBox="0 0 64 64">
1283            
1284            <use class="SocialLinks-link-icon" xlink:href="#pinterest-unauth-icon"></use>
1285            <use class="SocialLinks-link-mask" xlink:href="#pinterest-unauth-mask"></use>
1286          </svg>
1287        </div>
1288      </a><a href="http://twitter.com/venndesignco" target="_blank" class="SocialLinks-link twitter-unauth" style="">
1289        <div>
1290          <svg class="SocialLinks-link-svg" viewBox="0 0 64 64">
1291            
1292            <use class="SocialLinks-link-icon" xlink:href="#twitter-unauth-icon"></use>
1293            <use class="SocialLinks-link-mask" xlink:href="#twitter-unauth-mask"></use>
1294          </svg>
1295        </div>
1296      </a>
1297    </div>
1298  </nav>
1299
1300              </div>
1301            
1302          </div>
1303          <div data-nc-container="top-right">
1304
1305            
1306  <a href="/cart" class="Cart sqs-custom-cart" data-nc-element="cart" data-test="template-cart">
1307    <span class="Cart-inner">
1308      <span class="Cart-label">Cart</span>
1309
1310      <svg class="Icon Icon--bag-alt" viewBox="0 0 28 28">
1311        <use class="use--odd" xlink:href="/assets/ui-icons.svg#bag-icon-alt--odd"></use>
1312        <use class="use--even" xlink:href="/assets/ui-icons.svg#bag-icon-alt--even"></use>
1313      </svg>
1314      <svg class="Icon Icon--bag" viewBox="0 0 34 38">
1315        <use class="use--odd" xlink:href="/assets/ui-icons.svg#bag-icon--odd"></use>
1316        <use class="use--even" xlink:href="/assets/ui-icons.svg#bag-icon--even"></use>
1317      </svg>
1318      <svg class="Icon Icon--cart-alt" viewBox="0 0 28 28">
1319        <use class="use--odd" xlink:href="/assets/ui-icons.svg#cart-icon-alt--odd"></use>
1320        <use class="use--even" xlink:href="/assets/ui-icons.svg#cart-icon-alt--even"></use>
1321      </svg>
1322      <svg class="Icon Icon--cart" viewBox="0 0 31 26">
1323        <use class="use--odd" xlink:href="/assets/ui-icons.svg#cart-icon--odd"></use>
1324        <use class="use--even" xlink:href="/assets/ui-icons.svg#cart-icon--even"></use>
1325      </svg>
1326
1327      <span class="sqs-cart-quantity">0</span>
1328    </span>
1329  </a>
1330
1331
1332          </div>
1333        </div>
1334      </header>
1335
1336      <div class="Site-inner">
1337
1338        <header class="Header Header--bottom">
1339          <div class="Header-inner Header-inner--bottom" data-nc-group="bottom">
1340            <div data-nc-container="bottom-left">
1341              <nav class="Header-nav Header-nav--primary" data-nc-element="primary-nav" data-content-field="navigation">
1342                
1343  <div class="Header-nav-inner">
1344    <a href="/store" class="Header-nav-item" data-test="template-nav">Store</a><a href="/philosophy" class="Header-nav-item" data-test="template-nav">Philosophy</a><a href="/blog" class="Header-nav-item" data-test="template-nav">Blog</a><a href="/contact" class="Header-nav-item" data-test="template-nav">Contact</a>
1345  </div>
1346
1347              </nav>
1348            </div>
1349            <div data-nc-container="bottom-center">
1350
1351              <a href="/" class="Header-branding" data-nc-element="branding" data-content-field="site-title">
1352                
1353                  
1354                    
1355                    
1356                    
1357
1358
1359
1360  
1361  
1362  
1363  
1364
1365  
1366  
1367    
1368  
1369
1370  
1371  <img src="//images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/a5121991-f8de-41d6-b386-922654a12d14/Venn+Design+logo%402000x-100.jpg" alt="Venn Design | Ergonomic Desk Chairs, Office Chairs, Sitting Cushions, Floor Pads, and Wellness Furniture" sizes="320px" class="Header-branding-logo" style="display:block" srcset="//images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/a5121991-f8de-41d6-b386-922654a12d14/Venn+Design+logo%402000x-100.jpg?format=100w 100w, //images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/a5121991-f8de-41d6-b386-922654a12d14/Venn+Design+logo%402000x-100.jpg?format=300w 300w, //images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/a5121991-f8de-41d6-b386-922654a12d14/Venn+Design+logo%402000x-100.jpg?format=500w 500w, //images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/a5121991-f8de-41d6-b386-922654a12d14/Venn+Design+logo%402000x-100.jpg?format=750w 750w, //images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/a5121991-f8de-41d6-b386-922654a12d14/Venn+Design+logo%402000x-100.jpg?format=1000w 1000w, //images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/a5121991-f8de-41d6-b386-922654a12d14/Venn+Design+logo%402000x-100.jpg?format=1500w 1500w, //images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/a5121991-f8de-41d6-b386-922654a12d14/Venn+Design+logo%402000x-100.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">
1372
1373
1374                  
1375                
1376              </a>
1377              
1378
1379            </div>
1380            <div data-nc-container="bottom-right">
1381
1382              <nav class="Header-nav Header-nav--secondary" data-nc-element="secondary-nav" data-content-field="navigation">
1383                
1384              </nav>
1385
1386            </div>
1387          </div>
1388        </header>
1389
1390        <div class="Content-outer">
1391          
1392
1393          <main class="Main" >
1394            
1395              <section class="Main-content" data-content-field="main-content">
1396                <div class="sqs-search-page">
1397  <div class="sqs-search-page-input">
1398    <div class="spinner-wrapper"></div>
1399  </div>
1400  <div class="sqs-search-page-output hide" style="opacity: 0">
1401    <div class="sqs-search-page-notice hide"></div>
1402
1403    <div class="sqs-search-page-result" >
1404      <div class="sqs-search-container-list sqs-search-page-list">
1405        <div class="search-results">
1406          
1407        </div>
1408      </div>
1409    </div>
1410    <div class="sqs-search-page-more-wrapper">
1411      <div
1412        role="button"
1413        tabindex="0"
1414        class="sqs-search-page-more sqs-system-button-style-mixin sqs-editable-button sqs-button-element--primary"
1415      >
1416        <span>See more</span>
1417        <div class="spinner-wrapper"></div>
1418      </div>
1419    </div>
1420  </div>
1421
1422</div>
1423              </section>
1424            
1425          </main>
1426
1427        </div>
1428      </div>
1429
1430      <footer class="Footer" role="contentinfo" data-controller="FooterBreakpoints">
1431
1432  <div class="Footer-inner clear">
1433
1434    <div class="sqs-layout sqs-grid-12 columns-12 Footer-blocks Footer-blocks--top sqs-alternate-block-style-container empty" data-layout-label="Footer Top Blocks" data-type="block-field" data-updated-on="1689469872382" id="footerBlocksTop"><div class="row sqs-row"><div class="col sqs-col-12 span-12"></div></div></div>
1435
1436    <div class="Footer-middle">
1437      <div class="Footer-business">
1438
1439        
1440          <div class="Footer-business-info">
1441            
1442              
1443                
1444                
1445                <div class="Footer-business-info-item">Dallas TX,</div>
1446                <div class="Footer-business-info-item Footer-business-info-item--country">United States</div>
1447              
1448            
1449            
1450              
1451              <a href="mailto:[email protected]" title="[email protected]" target="_blank" class="Footer-business-info-item Footer-business-info-item--email">[email protected]</a>
1452            
1453          </div>
1454        
1455
1456        
1457          
1458            <div class="Footer-business-hours">
1459              <div class="Footer-business-hours-heading">Hours</div>
1460              
1461              
1462              
1463              
1464              
1465              
1466              
1467            </div>
1468          
1469        
1470
1471      </div>
1472
1473      <div class="sqs-layout sqs-grid-12 columns-12 Footer-blocks Footer-blocks--middle sqs-alternate-block-style-container empty" data-layout-label="Footer Middle Blocks" data-type="block-field" data-updated-on="1455302480316" id="footerBlocksMiddle"><div class="row sqs-row"><div class="col sqs-col-12 span-12"></div></div></div>
1474
1475      
1476  <nav class="Footer-nav" data-content-field="navigation">
1477
1478    <div class="Footer-nav-group"><div class="Footer-nav-folder-heading">Info</div>
1479
1480      
1481
1482        
1483          <a href="/faq" class="Footer-nav-folder-item">FAQ - Shipping</a>
1484        
1485
1486      
1487
1488        
1489          <a href="/about-us" class="Footer-nav-folder-item">About Us</a>
1490        
1491
1492      
1493
1494        
1495          <a href="/wholesale" class="Footer-nav-folder-item">Wholesale</a>
1496        
1497
1498      
1499
1500    </div><div class="Footer-nav-group"></div><div class="Footer-nav-group"><div class="Footer-nav-folder-heading">Social</div>
1501
1502      
1503
1504        
1505          
1506            <a href="http://instagram.com/venndesign" target="_blank" class="Footer-nav-folder-item">Instagram</a>
1507          
1508        
1509
1510      
1511
1512        
1513          
1514            <a href="http://facebook.com/venndesignco" target="_blank" class="Footer-nav-folder-item">Facebook</a>
1515          
1516        
1517
1518      
1519
1520        
1521          
1522            <a href="http://pinterest.com/venndesign" target="_blank" class="Footer-nav-folder-item">Pinterest</a>
1523          
1524        
1525
1526      
1527
1528        
1529          
1530            <a href="https://www.tiktok.com/@venndesign" class="Footer-nav-folder-item">TikTok</a>
1531          
1532        
1533
1534      
1535
1536    </div><div class="Footer-nav-group"></div>
1537
1538  </nav>
1539
1540    </div>
1541
1542    <div class="sqs-layout sqs-grid-12 columns-12 Footer-blocks Footer-blocks--bottom sqs-alternate-block-style-container" data-layout-label="Footer Bottom Blocks" data-type="block-field" data-updated-on="1769441506043" id="footerBlocksBottom"><div class="row sqs-row"><div class="col sqs-col-6 span-6"><div class="sqs-block html-block sqs-block-html" data-block-type="2" data-border-radii="&#123;&quot;topLeft&quot;:&#123;&quot;unit&quot;:&quot;px&quot;,&quot;value&quot;:0.0&#125;,&quot;topRight&quot;:&#123;&quot;unit&quot;:&quot;px&quot;,&quot;value&quot;:0.0&#125;,&quot;bottomLeft&quot;:&#123;&quot;unit&quot;:&quot;px&quot;,&quot;value&quot;:0.0&#125;,&quot;bottomRight&quot;:&#123;&quot;unit&quot;:&quot;px&quot;,&quot;value&quot;:0.0&#125;&#125;" data-sqsp-block="text" id="block-yui_3_17_2_40_1444941911080_5166"><div class="sqs-block-content">
1543
1544<div class="sqs-html-content" data-sqsp-text-block-content>
1545  <p class="" style="white-space:pre-wrap;"><strong>venndesign.co – 2026</strong></p><p class="" style="white-space:pre-wrap;">Powered by <a href="http://squarespace.com">Squarespace</a></p>
1546</div>
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567  
1568  
1569
1570
1571
1572</div></div></div><div class="col sqs-col-6 span-6"><div class="sqs-block website-component-block sqs-block-website-component sqs-block-newsletter newsletter-block" data-block-css="[&quot;https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.newsletter/58d67523-2cf5-42f9-95a4-1e436b9263fe_104/web
1572site.components.newsletter.styles.css&quot;]" data-block-scripts="[&quot;https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.newsletter/58d67523-2cf5-42f9-95a4-1e436b9263fe_104/website.components.newsletter.visitor.js&quot;]" data-block-type="1337" data-definition-name="website.components.newsletter" data-sqsp-block="newsletter" data-website-component-id="yui_3_17_2_1_1763861505516_6634" id="block-yui_3_17_2_1_1763861505516_6634"><div class="sqs-block-content">
1573<div class="newsletter-form-banner newsletter-form-banner--hidden">
1574  
1575
1576
1577<div class="sqs-blockStatus" >
1578  
1579  <div class="sqs-blockStatus-box">
1580    <div class="sqs-blockStatus-box-title">Newsletter Block</div>
1581    <div class="sqs-blockStatus-box-message">
1582      This newsletter signup form needs a storage option. Edit the block and enter a storage location via the <strong>Storage</strong> tab.
1583      
1584    </div>
1585  </div>
1586</div>
1587
1588</div>
1589<div class="newsletter-form-wrapper
1590  
1591  newsletter-form-wrapper--layoutFloat
1592  newsletter-form-wrapper--alignRight
1593  
1594  ">
1595  <form
1596    class="newsletter-form"
1597    data-form-id="6922643fb4d0d63e3067d1cb"
1598    
1599    data-form-submission="message"
1600    data-collection-id=""
1601    data-object-name=""
1602    data-error-submit="Error processing form submission. Please reload and try again."
1603    data-error-unknown="Unknown error, please try again later."
1604    data-error-form-key="Could not get a form submission key, please try again later."
1605    data-error-401="Unable to submit form. Please try again later."
1606    data-error-404="This form has not been configured yet."
1607    data-error-429="Unable to submit form. Submission rate limit exceeded. Please try again later."
1608    data-error-500="Unable to send form. Please try again later."
1609    data-submitting-text="Submitting…"
1610    autocomplete="on"
1611    method="POST"
1612    novalidate>
1613    <header class="newsletter-form-header">
1614      <h2 class="newsletter-form-header-title">Want Free USA Delivery?</h2>
1615      <div class="newsletter-form-header-description"><p data-rte-preserve-empty="true" style="white-space:pre-wrap;">Sign up to receive a code for Free USA Shipping straight to your inbox!</p></div>
1616    </header>
1617    <div class="newsletter-form-body">
1618      <div class="newsletter-form-fields-wrapper form-fields" style="vertical-align: middle;">
1619        
1620        
1621          
1622            <div id="email-yui_3_17_2_1_1763861505516_6639" class="newsletter-form-field-wrapper form-item field email required" style="vertical-align: bottom;">
1623              <label class="newsletter-form-field-label title" for="email-yui_3_17_2_1_1763861505516_6639-field">Email Address</label>
1624              <input id="email-yui_3_17_2_1_1763861505516_6639-field" class="newsletter-form-field-element field-element" name="email" x-autocompletetype="email" autocomplete="email" type="email" spellcheck="false" placeholder="Email Address" />
1625            </div>
1626          
1627        
1628          
1629        
1630      </div>
1631      <div data-animation-role="button" class="newsletter-form-button-wrapper submit-wrapper" style="vertical-align: middle;">
1632        <button
1633          class="
1634            newsletter-form-button
1635            sqs-system-button
1636            sqs-editable-button-layout
1637            sqs-editable-button-style
1638            sqs-editable-button-shape
1639            sqs-button-element--primary
1640          "
1641          type="submit"
1642          value="Sign Up"
1643        >
1644          <span class="newsletter-form-spinner sqs-spin light large"></span>
1645          <span class="newsletter-form-button-label">Sign Up</span>
1646          <span class="newsletter-form-button-icon"></span>
1647        </button>
1648      </div>
1649      
1650        <div class="captcha-container
1651          
1652          align-center
1653          
1654          "
1655          data-theme="light"
1656        ></div>
1657      
1658    </div>
1659    <div class="newsletter-form-footnote"><p data-rte-preserve-empty="true" style="white-space:pre-wrap;"></p></div>
1660    <div class="hidden form-submission-text"><p data-rte-preserve-empty="true" style="white-space:pre-wrap;">Thank you! Use code <strong>FREESHIPPING</strong> for free delivery on your next order.</p></div>
1661    <div class="hidden form-submission-html" data-submission-html=""></div>
1662  </form>
1663</div>
1664
1665<style>.fe-block-yui_3_17_2_1_1763861505516_6634 {mix-blend-mode: ;
1666    }</style>
1667
1668<!-- SQUARESPACE_JSONT_ERROR
1669
1670website.components.newsletter
1671
1672(line/character offsets reference the template source code)
1673
1674  1: RuntimeError EXPRESSION_PARSE at line 2 character 1: Error parsing expression: Unexpected character at 22: ?
1675
1676--></div></div><div class="sqs-block website-component-block sqs-block-website-component sqs-block-code code-block" data-block-css="[&quot;https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.c
1676ode/cfd3d1e7-62c0-46c2-9802-ba86767fc9b2_986/website.components.code.styles.css&quot;]" data-block-scripts="[&quot;https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.code/cfd3d1e7-62c0-46c2-9802-ba86767fc9b2_986/website.components.code.visitor.js&quot;]" data-block-type="1337" data-definition-name="website.components.code" data-sqsp-block="code" data-website-component-id="yui_3_17_2_1_1768576468917_23411" id="block-yui_3_17_2_1_1768576468917_23411"><div class="sqs-block-content">
1677  
1678
1679<div
1680  class="sqs-code-container"
1681  
1682  
1683    data-localized="{&quot;enableSafeModeButton&quot;:&quot;Preview in safe mode&quot;,&quot;enableSafeModeText&quot;:&quot;This block contains embedded scripts. Embedded scripts are disabled while you're logged in and editing your site.&quot;,&quot;enableSafeModeTitle&quot;:&quot;Embedded Scripts&quot;,&quot;exitSafeModeButton&quot;:&quot;Exit safe preview&quot;,&quot;exitSafeModeText&quot;:&quot;Please view the page after logging out for accurate rendering.&quot;,&quot;exitSafeModeTitle&quot;:&quot;Safe Preview&quot;,&quot;globalSafeMode&quot;:&quot;Embedded Code: This block contains embedded code that has been disabled.&quot;,&quot;scriptDisabled&quot;:&quot;Script Disabled&quot;}"
1684  
1685  
1686  
1687  
1688>
1689  
1690    <a id="footer-newsletter"></a>
1691  
1692  
1693
1694
1695
1696</div>
1697
1698<style class="transform-overrides-vars">
1699  
1700</style>
1701
1702</div></div></div></div></div>
1703
1704  </div>
1705
1706</footer>
1707
1708
1709    </div>
1710
1711    
1711<script src="https://static1.squarespace.com/static/ta/55f0a9b0e4b0f3eb70352f6d/360/scripts/site-bundle.js" type="text/javascript"></script>
1711
1712
1713    <!-- Mini Cart Square Refresh -->
1714<script>
1715var slideOut = {
1716    cartSide: "right", // Position, left or right
1717    animation: "fade", // Animation, slide or fade
1718    textCart: "Shopping Cart", // Custom Cart Text or HTML
1719    textButton: "Checkout", // Custom Checkout Text
1720    showIfCartUpdated: true, // Show Cart when update true or false
1721    closeOutside: true, // Close cart on overlay click true or false
1722   // textTop: "*psst*", // Custom Top Text
1723    textAboveButton: "Free USA Shipping", // Custom Bottom text
1724    emptyMessageText: "You have nothing in your shopping cart.", // Empty Message text
1725    continueButtonText: "CONTINUE SHOPPING", // Continue Button text
1726};
1727</script>
vendor: 1 bytes, line 1727
1727
1728<script src="https://www.squarerefresh.xyz/assets/plugins/slide-out/js/slide-out.min.js"></script>
1728
1729<!-- Mini Cart Square Refresh -->
1730
1731
1732<!-- FAQs Square Refresh -->
1733<script src="https://www.squarerefresh.xyz/assets/plugins/facts/js/facts.min.js"></script>
1733
1734<!-- FAQs Square Refresh -->
1735
1736
1737<!-- Slides Square Refresh -->
1738<script src="https://www.squarerefresh.xyz/assets/plugins/slides/js/slides.min.js"></script>
1738
1739<!-- Slides Square Refresh -->
1740
1741
1742
1743
1744<!-- remove .00 cents pricing from prices --> 
1745<script src="https://cdn.jsdelivr.net/.../[email protected]/dist/ready.umd.js"></script>
vendor: 1 bytes, line 1745
1745
1746<script>!function(){function reformatPrice(price){var priceClone=price.cloneNode(!0);function reformat(){priceClone.innerHTML=price.innerHTML;var target=priceClone.querySelector(".sqs-money-native")||priceClone,textNode=priceClone.querySelector(".sqs-money-native");target.textContent.length>1?target.textContent=format(target.textContent):textNode&&(textNode.textContent=format(textNode.textContent))}function format(text){return text.replace(/\.\d{2}/,"")}function watch(){var observer;new MutationObserver(reformat).observe(price,{childList:!0})}priceClone.classList.add("product-price-clone"),price.parentNode.insertBefore(priceClone,price.nextElementSibling),price.style.display="none",reformat(),watch()}ready(".product-price:not(.product-price-clone),.original-price:not(.product-price-clone)",reformatPrice)}();</script>
1746
1747<!-- remove .00 cents pricing from prices --> 
1748
1749
1750<!-- Plugin Swatches -->
1751<link href="/s/plugin-swatches.css" rel="stylesheet">
1752<script src="/s/plugin-swatches.js"></script>
vendor: 1 bytes, line 1752
1752
1753<script>pluginSwatches({"optionName":"Solid Wood Type","showTooltip":"true","backgrounds":"Red Oak: http://www.venndesign.co/s/RoMi_Desk_Red_Oak.jpeg,Cherry: http://www.venndesign.co/s/RoMi_Desk_Cherry.jpeg,Walnut: http://www.venndesign.co/s/RoMi_Desk_Walnut.jpeg,Maple: http://www.venndesign.co/s/RoMi_Desk_Maple.jpeg,Quarter Sawn White Oak: http://www.venndesign.co/s/RoMi_Desk_Quarter_Sawn_White_Oak.jpeg,Hickory: http://www.venndesign.co/s/RoMi_Desk_Hickory.jpeg"});</script>
1753
1754
1755<script>pluginSwatches({"optionName":"Accent Finish","showTooltip":"true","backgrounds":"Default - Same Finish: http://www.venndesign.co/s/RoMi_Desk_Default_Same_Finish.jpeg,White Paint: #FFFFFF,Natural Maple: http://www.venndesign.co/s/RoMi_Desk_Natural_Maple.jpeg,Stained Maple - Driftwood: http://www.venndesign.co/s/RoMi_Desk_Stained_Maple_Driftwood.jpeg,Stained Maple - Slate: http://www.venndesign.co/s/RoMi_Desk_Stained_Maple_Slate.jpeg,Charcoal Paint: #636363,Bluesteel Paint: http://www.venndesign.co/s/RoMi_Desk_Bluesteel_Paint.jpeg,Blue Walnut: http://www.venndesign.co/s/RoMi_Desk_Blue_Walnut.jpeg,Stained Maple - Midnight: http://www.venndesign.co/s/RoMi_Desk_Stained_Maple_Midnight.jpeg,Black Paint: #000000"});</script>
1755
1756
1757<script>pluginSwatches({"optionName":"Leg Color","showTooltip":"true","backgrounds":"White Paint: #FFFFFF,Brushed Metal: http://www.venndesign.co/s/RoMi_Desk_Brushed_Metal.jpeg,Black Paint: #000000"});</script>
1757
1758
1759<!-- end Plugin Swatches -->
1760
1761
1762
1763
1764
1765<script>    
1766    // CHANGE THE WORD BETWEEN THE QUOTES BELOW TO THE PATH NAME OF YOUR STORE PAGE
1767    // make sure to use the correct case
1768    var storePageName = "shop";
1769    
1770
1771  	
1772    // create a regex using the variable above that will be formatted like this: /\/store\/./
1773    // the regex makes sure that "/store/" plus at least one character is in the text it's trying to match
1774    var storePageRegEx = new RegExp('\/' + storePageName + '\/.')
1775    
1776    // so if we try to match it against the current page URL, we should get a positive match if we're on a product page
1777    if(document.URL.match(storePageRegEx)){
1778
1779        var ssContextObject;
1780
1781        // grab all the scripts that have been loaded on the page thus far
1782        var ssAllScripts = document.querySelectorAll('script');
1783
1784        // look for the one that has the checkout information we need
1785        for (var scriptIndex = 0; scriptIndex < ssAllScripts.length; scriptIndex++) {
1786            // the .match method returns 'null' if it doesn't find a match
1787            var ssContextObjectScriptHTML = ssAllScripts[scriptIndex].innerHTML.match(/Static\.SQUARESPACE_CONTEXT = (.+?\});/);
1788        
1789            // if the match function above returned something, then we parse it as JSON and store it in our JSON variable
1790            if(ssContextObjectScriptHTML){ 
1791                ssContextObject = JSON.parse(ssContextObjectScriptHTML[1]);
1792
1793                if(typeof(ssContextObject.product) != 'undefined'){
1794                    // STRIP SUPERFLUOUS INFORMATION
1795                    // strip the information in the key "mainImage" from each product variant
1796                    // it's a crazy mess of alphanumeric stuff that we don't need in our dataLayer
1797                    var productVariants = ssContextObject.product.variants || [];
1798
1799                    for(var i=0; i < productVariants.length; i++){
1800                        productVariants[i]['mainImage'] = {};
1801                    }
1802
1803                    // SEARCH FOR CATEGORY TAGS -- THIS MIGHT BE UNRELIABLE
1804                    // the following code attempts to scrape the DOM to find category information for the product
1805                    // if the category information exists it should be found in the class names list within one of the elements in the page
1806                    // if this element exists, it will have one or more classes that start with "category-"
1807                    // so we will attempt to find it and then loop through its classes and find any class with "category-" in the title
1808                    // remove the "category-" and append the rest of the class name to the categoryString variable
1809                    // if there are more than one category it will place a "/" in between each category
1810                    // it will stop looking after the 5th category to comply with Google Analytics 5 category depth limit
1811                    var categoryClassesElement, categoryClasses, categoryString = "";
1812
1813                    categoryClassesElement = document.querySelector('[data-content-field="main-content"]');
1814
1815                    if(categoryClassesElement){
1816                        categoryClassesElement = categoryClassesElement.querySelector('[class*=category-]');
1817                    }
1818                    else{
1819                        categoryClassesElement = document.querySelector('body [class*=category-]');
1820                    }
1821
1822                    categoryClasses = (categoryClassesElement) ? categoryClassesElement.className.match(/\bcategory-[\S]*/g) : [];
1823
1824                    for(var i=0; i < categoryClasses.length && i < 5; i++){
1825                        categoryString = categoryString + ( i!=0 ? "/" : "") + categoryClasses[i].replace(/category-/, '');
1826                    }
1827
1828                    // CREATE AN OBJECT WITH THE RAW SQUARESPACE DATA
1829                    var ssRawProductDetail = {
1830                        "item": ssContextObject.item,
1831                        "product": ssContextObject.product,
1832                        "category": categoryString
1833                    };
1834                
1835
1836                    // PUSH TO DATALAYER
1837                    window.dataLayer = window.dataLayer || [];
1838                    window.dataLayer.push({
1839                        'event' : 'ssRawProductDetailPush',
1840                        'ssRawProductDetail': ssRawProductDetail
1841                    });
1842
1843                    break;
1844                }
1845            }
1846        }                    
1847    }
1848</script>
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865<script>
1866(function () {
1867  'use strict';
1868
1869  if (window.__VENN_SQSP_HERO_RUNTIME_MOUNTED__) return;
1870  window.__VENN_SQSP_HERO_RUNTIME_MOUNTED__ = true;
1871
1872  var ROOT_SELECTOR = '.venn-lp';
1873  var READY_CLASS = 'venn-native-bridge-ready';
1874  var NATIVE_CLASS = 'venn-native-commerce';
1875  var DEBUG_NATIVE = !!window.VENN_SQSP_DEBUG_NATIVE;
1876  var DASH = ' - ';
1877  var HERO_ASSETS = {
1878    roomScene: 'https://images.squarespace-cdn.com/content/5844c859d1758e37a12febc4/5b1fc90f-7eee-4277-b109-0be63d7f9300/venn-hero-gallery-movement-room.jpg?content-type=image%2Fjpeg',
1879    standardFern: 'https://images.squarespace-cdn.com/content/5844c859d1758e37a12febc4/5cfece8c-d7b2-49a5-bd8e-274c4f7110af/_Q0A3786-Hailey-Fern.jpg?content-type=image%2Fjpeg',
1880    officeScene: 'https://images.squarespace-cdn.com/content/5844c859d1758e37a12febc4/1714077360467-INGYT6CADP7A6BK6I2SX/Interior+rooms+project_home+office_tz6.jpg?content-type=image%2Fjpeg',
1881    movementRoom: 'https://images.squarespace-cdn.com/content/5844c859d1758e37a12febc4/1714077365937-R7181A9NK1GU6PGU7ZT0/Interior+rooms+project_studio+apartment_tz4.jpg?content-type=image%2Fjpeg',
1882    sittingCushion: 'https://images.squarespace-cdn.com/content/5844c859d1758e37a12febc4/d288e5e4-e7f9-4d2f-8769-5d7875282947/_Q0A4539-Carmen-Pink-Faux-Velvet.jpg?content-type=image%2Fjpeg'
1883  };
1884  var CUSHION_MAP = {"generatedAt":"2026-06-20T00:00:00Z","source":"https://www.venndesign.co/shop/build-your-sitting-cushion","productTitle":"Build Your Sitting Cushion","itemId":"6a36fdcda65151502568ae4b","collectionId":"5844dfbd197aeafb4a1c3e69","optionNames":["Finish"],"products":[{"key":"fern","family":"Standard","finish":"Fern","nativeFinish":"Standard — Fern","title":"Sitting Cushion - Fern","url":"https://www.venndesign.co/shop/build-your-sitting-cushion","itemId":"6a36fdcda65151502568ae4b","collectionId":"5844dfbd197aeafb4a1c3e69","variantId":"b7c537b9-7de3-4b3b-b8e8-464618fcb9f9","sku":"SQ3034822","price":189,"salePrice":null,"available":true,"image":"https://images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/adaf7a77-9692-411f-815c-8645762758be/_Q0A4626-Hailey-Fern.jpg?format=1500w","thumbnail":"https://images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/adaf7a77-9692-411f-815c-8645762758be/_Q0A4626-Hailey-Fern.jpg?format=300w","imageSource":"native-variant","productType":1},{"key":"steel","family":"Standard","finish":"Steel","nativeFinish":"Standard — Steel","title":"Sitting Cushion - Steel","url":"https://www.venndesign.co/shop/build-your-sitting-cushion","itemId":"6a36fdcda65151502568ae4b","collectionId":"5844dfbd197aeafb4a1c3e69","variantId":"56b01a67-a022-44f4-8b06-e9d5d9e9a231","sku":"SQ4546889","price":189,"salePrice":null,"available":true,"image":"https://static1.squarespace.com/static/5844c859d1758e37a12febc4/5844dfbd197aeafb4a1c3e69/68ef3bf6f8ea550371932efc/1760508938627/_Q0A4554-Hailey-Steel.jpg?format=1500w","thumbnail":"https://static1.squarespace.com/static/5844c859d1758e37a12febc4/5844dfbd197aeafb4a1c3e69/68ef3bf6f8ea550371932efc/1760508938627/_Q0A4554-Hailey-Steel.jpg?format=300w","imageSource":"legacy-venn-thumbnail","productType":1},{"key":"metal","family":"Standard","finish":"Metal","nativeFinish":"Standard — Metal","title":"Sitting Cushion - Metal","url":"https://www.venndesign.co/shop/build-your-sitting-cushion","itemId":"6a36fdcda65151502568ae4b","collectionId":"5844dfbd197aeafb4a1c3e69","variantId":"350ed286-5f93-4272-8a70-2c97448f353d","sku":"SQ8368202","price":189,"salePrice":null,"available":true,"image":"https://static1.squarespace.com/static/5844c859d1758e37a12febc4/5844dfbd197aeafb4a1c3e69/68ef3b5a83a31912dc2d3561/1760508776947/_Q0A4620-Sugarshack-Metal.jpg?format=1500w","thumbnail":"https://static1.squarespace.com/static/5844c859d1758e37a12febc4/5844dfbd197aeafb4a1c3e69/68ef3b5a83a31912dc2d3561/1760508776947/_Q0A4620-Sugarshack-Metal.jpg?format=300w","imageSource":"legacy-venn-thumbnail","productType":1},{"key":"sand","family":"Standard","finish":"Sand","nativeFinish":"Standard — Sand","title":"Sitting Cushion - Sand","url":"https://www.venndesign.co/shop/build-your-sitting-cushion","itemId":"6a36fdcda65151502568ae4b","collectionId":"5844dfbd197aeafb4a1c3e69","variantId":"781fbac1-af3b-454b
1884-9865-92792d135e93","sku":"SQ4181234","price":189,"salePrice":null,"available":true,"image":"https://static1.squarespace.com/static/5844c859d1758e37a12febc4/5844dfbd197aeafb4a1c3e69/68ef3a8df8ea550371932e73/1760508569097/_Q0A4590-Belgian-Sand-Faux-Linen.jpg?format=1500w","thumbnail":"https://static1.squarespace.com/static/5844c859d1758e37a12febc4/5844dfbd197aeafb4a1c3e69/68ef3a8df8ea550371932e73/1760508569097/_Q0A4590-Belgian-Sand-Faux-Linen.jpg?format=300w","imageSource":"legacy-venn-thumbnail","productType":1},{"key":"iron","family":"Standard","finish":"Iron","nativeFinish":"Standard — Iron","title":"Sitting Cushion - Iron","url":"https://www.venndesign.co/shop/build-your-sitting-cushion","itemId":"6a36fdcda65151502568ae4b","collectionId":"5844dfbd197aeafb4a1c3e69","variantId":"a7cd3a20-cb94-438a-b03e-81c60451b4c2","sku":"SQ7847408","price":189,"salePrice":null,"available":true,"image":"https://static1.squarespace.com/static/5844c859d1758e37a12febc4/5844dfbd197aeafb4a1c3e69/68ef39a1c8d07324547d660e/1760508335068/_Q0A4600-Belgian-Iron-Faux-Linen.jpg?format=1500w","thumbnail":"https://static1.squarespace.com/static/5844c859d1758e37a12febc4/5844dfbd197aeafb4a1c3e69/68ef39a1c8d07324547d660e/1760508335068/_Q0A4600-Belgian-Iron-Faux-Linen.jpg?format=300w","imageSource":"legacy-venn-thumbnail","productType":1},{"key":"lagoon","family":"Standard","finish":"Lagoon","nativeFinish":"Standard — Lagoon","title":"Sitting Cushion - Lagoon","url":"https://www.venndesign.co/shop/build-your-sitting-cushion","itemId":"6a36fdcda65151502568ae4b","collectionId":"5844dfbd197aeafb4a1c3e69","variantId":"3dc43c1c-d714-4eba-a2c0-b544350a0983","sku":"SQ4008433","price":189,"salePrice":null,"available":true,"image":"https://static1.squarespace.com/static/5844c859d1758e37a12febc4/5844dfbd197aeafb4a1c3e69/68ef3839c8d07324547d657b/1760507989153/_Q0A4585-Belgian-Lagoon-Faux-Linen.jpg?format=1500w","thumbnail":"https://static1.squarespace.com/static/5844c859d1758e37a12febc4/5844dfbd197aeafb4a1c3e69/68ef3839c8d07324547d657b/1760507989153/_Q0A4585-Belgian-Lagoon-Faux-Linen.jpg?format=300w","imageSource":"legacy-venn-thumbnail","productType":1},{"key":"camel","family":"Standard","finish":"Camel","nativeFinish":"Standard — Camel","title":"Sitting Cushion - Camel","url":"https://www.venndesign.co/shop/build-your-sitting-cushion","itemId":"6a36fdcda65151502568ae4b","collectionId":"5844dfbd197aeafb4a1c3e69","variantId":"3c3d8307-e839-446a-9147-9c9571947c38","sku":"SQ2714359","price":189,"salePrice":null,"available":true,"image":"https://images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/ae6068b1-e4a1-4550-9d11-632b80567052/_Q0A4544-Belgian-Camel-Faux-Linen.jpg?format=1500w","thumbnail":"https://images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/ae6068b1-e4a1-4550-9d11-632b80567052/_Q0A4544-Belgian-Camel-Faux-Linen.jpg?format=300w","imageSource":"native-variant","productType":1},{"key":"mint","family":"Standard","finish":"Mint","nativeFinish":"Standard — Mint","title":"Sitting Cushion - Mint","url":"https://www.venndesign.co/shop/build-your-sitting-cushion","itemId":"6a36fdcda65151502568ae4b","collectionId":"5844dfbd197aeafb4a1c3e69","variantId":"3737a275-ede8-456d-909a-2dc9bd20f209","sku":"SQ5360104","price":189,"salePrice":null,"available":true,"image":"https://static1.squarespace.com/static/5844c859d1758e37a12febc4/5844dfbd197aeafb4a1c3e69/68ef35c0f8ea550371932c5d/1760507348696/_Q0A4595-Downton-Mint-Herringbone.jpg?format=1500w","thumbnail":"https://static1.squarespace.com/static/5844c859d1758e37a12febc4/5844dfbd197aeafb4a1c3e69/68ef35c0f8ea550371932c5d/1760507348696/_Q0A4595-Downton-Mint-Herringbone.jpg?format=300w","imageSource":"legacy-venn-thumbnail","productType":1},{"key":"navy","family":"Standard","finish":"Navy","nativeFinish":"Standard — Navy","title":"Sitting Cushion - Navy","url":"https://www.venndesign.co/shop/build-your-sitting-cushion","itemId":"6a36fdcda65151502568ae4b","collectionId":"5844dfbd197aeafb4a1c3e69","variantId":"4a4b9b65-822f-4d26-8e25-309a81aecedf","sku":"SQ6008318","price":189,"salePrice":null,"available":true,"image":"https://static1.squarespace.com/static/5844c859d1758e37a12febc4/5844dfbd197aeafb4a1c3e69/68ef351886b63e5941e664b4/1760507182777/_Q0A4605-Murano-Navy-Boucle.jpg?format=1500w","thumbnail":"https://static1.squarespace.com/static/5844c859d1758e37a12febc4/5844dfbd197aeafb4a1c3e69/68ef351886b63e5941e664b4/1760507182777/_Q0A4605-Murano-Navy-Boucle.jpg?format=300w","imageSource":"legacy-venn-thumbnail","productType":1},{"key":"graphite","family":"Standard","finish":"Graphite","nativeFinish":"Standard — Graphite","t
1884itle":"Sitting Cushion - Graphite","url":"https://www.venndesign.co/shop/build-your-sitting-cushion","itemId":"6a36fdcda65151502568ae4b","collectionId":"5844dfbd197aeafb4a1c3e69","variantId":"4b6fa91e-65c1-4ddf-8608-1eacabded553","sku":"SQ8688495","price":189,"salePrice":null,"available":true,"image":"https://static1.squarespace.com/static/5844c859d1758e37a12febc4/5844dfbd197aeafb4a1c3e69/68ef344486b63e5941e66465/1760506998829/_Q0A4549-Murano-Graphite-Boucle.jpg?format=1500w","thumbnail":"https://static1.squarespace.com/static/5844c859d1758e37a12febc4/5844dfbd197aeafb4a1c3e69/68ef344486b63e5941e66465/1760506998829/_Q0A4549-Murano-Graphite-Boucle.jpg?format=300w","imageSource":"legacy-venn-thumbnail","productType":1},{"key":"cloud","family":"Standard","finish":"Cloud","nativeFinish":"Standard — Cloud","title":"Sitting Cushion - Cloud","url":"https://www.venndesign.co/shop/build-your-sitting-cushion","itemId":"6a36fdcda65151502568ae4b","collectionId":"5844dfbd197aeafb4a1c3e69","variantId":"4f054c72-71a9-4875-b412-efe8ddc97734","sku":"SQ2234940","price":189,"salePrice":null,"available":true,"image":"https://static1.squarespace.com/static/5844c859d1758e37a12febc4/5844dfbd197aeafb4a1c3e69/68ef329883a31912dc2d315a/1760506561001/_Q0A4569-Murano-Cloud-Boucle.jpg?format=1500w","thumbnail":"https://static1.squarespace.com/static/5844c859d1758e37a12febc4/5844dfbd197aeafb4a1c3e69/68ef329883a31912dc2d315a/1760506561001/_Q0A4569-Murano-Cloud-Boucle.jpg?format=300w","imageSource":"legacy-venn-thumbnail","productType":1},{"key":"natural","family":"Standard","finish":"Natural","nativeFinish":"Standard — Natural","title":"Sitting Cushion - Natural","url":"https://www.venndesign.co/shop/build-your-sitting-cushion","itemId":"6a36fdcda65151502568ae4b","collectionId":"5844dfbd197aeafb4a1c3e69","variantId":"e325310b-8802-47e7-bed1-b2861f5ba295","sku":"SQ4665266","price":189,"salePrice":null,"available":true,"image":"https://static1.squarespace.com/static/5844c859d1758e37a12febc4/5844dfbd197aeafb4a1c3e69/68ef31b9c8d07324547d624e/1760506312155/_Q0A4534-Murano-Natural-Boucle.jpg?format=1500w","thumbnail":"https://static1.squarespace.com/static/5844c859d1758e37a12febc4/5844dfbd197aeafb4a1c3e69/68ef31b9c8d07324547d624e/1760506312155/_Q0A4534-Murano-Natural-Boucle.jpg?format=300w","imageSource":"legacy-venn-thumbnail","productType":1},{"key":"cadet","family":"Standard","finish":"Cadet","nativeFinish":"Standard — Cadet","title":"Sitting Cushion - Cadet","url":"https://www.venndesign.co/shop/build-your-sitting-cushion","itemId":"6a36fdcda65151502568ae4b","collectionId":"5844dfbd197aeafb4a1c3e69","variantId":"d9fbd725-757a-4eb2-ae43-b19cb80eb0d8","sku":"SQ5138149","price":189,"salePrice":null,"available":true,"image":"https://static1.squarespace.com/static/5844c859d1758e37a12febc4/5844dfbd197aeafb4a1c3e69/68ef3048c8d07324547d61ac/1760505973324/_Q0A4615-Macarena-Cadet-Slate.jpg?format=1500w","thumbnail":"https://static1.squarespace.com/static/5844c859d1758e37a12febc4/5844dfbd197aeafb4a1c3e69/68ef3048c8d07324547d61ac/1760505973324/_Q0A4615-Macarena-Cadet-Slate.jpg?format=300w","imageSource":"legacy-venn-thumbnail","productType":1},{"key":"dusty-rose","family":"Standard","finish":"Dusty Rose","nativeFinish":"Standard — Dusty Rose","title":"Sitting Cushion - Dusty Rose","url":"https://www.venndesign.co/shop/build-your-sitting-cushion","itemId":"6a36fdcda65151502568ae4b","collectionId":"5844dfbd197aeafb4a1c3e69","variantId":"896a3ddf-fe94-49da-9bda-0a2c9e72fa35","sku":"SQ9984475","price":189,"salePrice":null,"available":true,"image":"https://images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/6602a4af-9de7-4c42-8382-656fea855a17/_Q0A4564-Carmen-Dusty-Rose-Faux-Velvet.jpg?format=1500w","thumbnail":"https://images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/6602a4af-9de7-4c42-8382-656fea855a17/_Q0A4564-Carmen-Dusty-Rose-Faux-Velvet.jpg?format=300w","imageSource":"native-variant","productType":1},{"key":"pink","family":"Standard","finish":"Pink","nativeFinish":"Standard — Pink","title":"Sitting Cushion - Pink","url":"https://www.venndesign.co/shop/build-your-sitting-cushion","itemId":"6a36fdcda65151502568ae4b","collectionId":"5844dfbd197aeafb4a1c3e69","variantId":"324e85f8-1fda-432b-bd3e-10cbca68fdfd","sku":"SQ8071029","price":189,"salePrice":null,"available":true,"image":"https://images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/d288e5e4-e7f9-4d2f-8769-5d7875282947/_Q0A4539-Carmen-Pink-Faux-Velvet.jpg?format=1500w","thumbnail":"https://images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/d288e5e4-e7f9-4d2f-8769-5d7875282947/_Q0A4539-Carmen-Pink-Faux-Velvet.jpg?format=300w","imageSource":"native-variant","productType":1}
1884,{"key":"dune","family":"Standard","finish":"Dune","nativeFinish":"Standard — Dune","title":"Sitting Cushion - Dune","url":"https://www.venndesign.co/shop/build-your-sitting-cushion","itemId":"6a36fdcda65151502568ae4b","collectionId":"5844dfbd197aeafb4a1c3e69","variantId":"888c71fe-ab27-42a0-baf8-f34ccf76588d","sku":"SQ2582088","price":209,"salePrice":null,"available":true,"image":"https://static1.squarespace.com/static/5844c859d1758e37a12febc4/5844dfbd197aeafb4a1c3e69/68ef2da686b63e5941e66105/1760505304857/_Q0A4631-CurlyQ-Sand-Boucle.jpg?format=1500w","thumbnail":"https://static1.squarespace.com/static/5844c859d1758e37a12febc4/5844dfbd197aeafb4a1c3e69/68ef2da686b63e5941e66105/1760505304857/_Q0A4631-CurlyQ-Sand-Boucle.jpg?format=300w","imageSource":"legacy-venn-thumbnail","productType":1},{"key":"atlas","family":"Standard","finish":"Atlas","nativeFinish":"Standard — Atlas","title":"Sitting Cushion - Atlas","url":"https://www.venndesign.co/shop/build-your-sitting-cushion","itemId":"6a36fdcda65151502568ae4b","collectionId":"5844dfbd197aeafb4a1c3e69","variantId":"c1a089a6-e070-48bd-b9ba-54e59acb6799","sku":"SQ2914629","price":209,"salePrice":null,"available":true,"image":"https://static1.squarespace.com/static/5844c859d1758e37a12febc4/5844dfbd197aeafb4a1c3e69/68ef2d0c86b63e5941e660c4/1760505113087/_Q0A4636-Atlas-Cream.jpg?format=1500w","thumbnail":"https://static1.squarespace.com/static/5844c859d1758e37a12febc4/5844dfbd197aeafb4a1c3e69/68ef2d0c86b63e5941e660c4/1760505113087/_Q0A4636-Atlas-Cream.jpg?format=300w","imageSource":"legacy-venn-thumbnail","productType":1},{"key":"down-under","family":"Standard","finish":"Down Under","nativeFinish":"Standard — Down Under","title":"Sitting Cushion - Down Under","url":"https://www.venndesign.co/shop/build-your-sitting-cushion","itemId":"6a36fdcda65151502568ae4b","collectionId":"5844dfbd197aeafb4a1c3e69","variantId":"182a9081-0a47-462b-9cd5-e643103dc3f9","sku":"SQ0540742","price":209,"salePrice":null,"available":true,"image":"https://static1.squarespace.com/static/5844c859d1758e37a12febc4/5844dfbd197aeafb4a1c3e69/68ef2c8386b63e5941e6608f/1760504988716/_Q0A4559-Down-Under-Grey.jpg?format=1500w","thumbnail":"https://static1.squarespace.com/static/5844c859d1758e37a12febc4/5844dfbd197aeafb4a1c3e69/68ef2c8386b63e5941e6608f/1760504988716/_Q0A4559-Down-Under-Grey.jpg?format=300w","imageSource":"legacy-venn-thumbnail","productType":1},{"key":"woof","family":"Standard","finish":"Woof","nativeFinish":"Standard — Woof","title":"Sitting Cushion - Woof","url":"https://www.venndesign.co/shop/build-your-sitting-cushion","itemId":"6a36fdcda65151502568ae4b","collectionId":"5844dfbd197aeafb4a1c3e69","variantId":"2b29563c-46c2-4d30-ad76-0c5cd2ca7fd1","sku":"SQ0220026","price":209,"salePrice":null,"available":true,"image":"https://images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/234c0ae2-8ee2-4234-a428-dfa8bebb3cb7/_Q0A4636-Atlas-Cream.jpg?format=1500w","thumbnail":"https://images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/234c0ae2-8ee2-4234-a428-dfa8bebb3cb7/_Q0A4636-Atlas-Cream.jpg?format=300w","imageSource":"native-variant","productType":1},{"key":"seastar","family":"Standard","finish":"Seastar","nativeFinish":"Standard — Seastar","title":"Sitting Cushion - Seastar","url":"https://www.venndesign.co/shop/build-your-sitting-cushion","itemId":"6a36fdcda65151502568ae4b","collectionId":"5844dfbd197aeafb4a1c3e69","variantId":"43b93185-f229-4742-b550-c267dd8d74e7","sku":"SQ5596218","price":209,"salePrice":null,"available":true,"image":"https://static1.squarespace.com/static/5844c859d1758e37a12febc4/5844dfbd197aeafb4a1c3e69/68ef2b3dc8d07324547d5f7b/1760504656529/_Q0A4579-Seastar-Starfish-Bottle-Jacquard.jpg?format=1500w","thumbnail":"https://static1.squarespace.com/static/5844c859d1758e37a12febc4/5844dfbd197aeafb4a1c3e69/68ef2b3dc8d07324547d5f7b/1760504656529/_Q0A4579-Seastar-Starfish-Bottle-Jacquard.jpg?format=300w","imageSource":"legacy-venn-thumbnail","productType":1},{"key":"general-store","family":"Standard","finish":"General Store","nativeFinish":"Standard — General Store","title":"Sitting Cushion - General Store","url":"https://www.venndesign.co/shop/build-your-sitting-cushion","itemId":"6a36fdcda65151502568ae4b","collectionId":"5844dfbd197aeafb4a1c3e69","variantId":"e07f186d-7d34-4a7e-908b-e11c20376447","
1884sku":"SQ6811990","price":209,"salePrice":null,"available":true,"image":"https://images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/20e4b3c5-dd7a-4919-9162-2979ed642af2/_Q0A4574-General-Store-Navy.jpg?format=1500w","thumbnail":"https://images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/20e4b3c5-dd7a-4919-9162-2979ed642af2/_Q0A4574-General-Store-Navy.jpg?format=300w","imageSource":"native-variant","productType":1},{"key":"mango","family":"Standard","finish":"Mango","nativeFinish":"Standard — Mango","title":"Sitting Cushion - Mango","url":"https://www.venndesign.co/shop/build-your-sitting-cushion","itemId":"6a36fdcda65151502568ae4b","collectionId":"5844dfbd197aeafb4a1c3e69","variantId":"32ef842e-af6d-4fe2-bf04-0594416731b0","sku":"SQ0597927","price":209,"salePrice":null,"available":true,"image":"https://images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/27b3ee5d-1376-4cc7-b245-1f2cac634b32/_Q0A4525-Tree-of-Life-Mango-Jacquard.jpg?format=1500w","thumbnail":"https://images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/27b3ee5d-1376-4cc7-b245-1f2cac634b32/_Q0A4525-Tree-of-Life-Mango-Jacquard.jpg?format=300w","imageSource":"native-variant","productType":1},{"key":"brick","family":"Standard","finish":"Brick","nativeFinish":"Standard — Brick","title":"Sitting Cushion - Brick","url":"https://www.venndesign.co/shop/build-your-sitting-cushion","itemId":"6a36fdcda65151502568ae4b","collectionId":"5844dfbd197aeafb4a1c3e69","variantId":"25c8f0e5-303e-4bba-8e8b-a8b7f2c9a152","sku":"SQ2108561","price":209,"salePrice":null,"available":true,"image":"https://images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/214fd040-9739-4a54-89ca-cdd8b88ccc2e/_Q0A4610-Tree-of-Life-Brick-Jacquard.jpg?format=1500w","thumbnail":"https://images.squarespace-cdn.com/content/v1/5844c859d1758e37a12febc4/214fd040-9739-4a54-89ca-cdd8b88ccc2e/_Q0A4610-Tree-of-Life-Brick-Jacquard.jpg?format=300w","imageSource":"native-variant","productType":1},{"key":"hyacinth","family":"Pendleton","finish":"Hyacinth","nativeFinish":"Pendleton Wool — Hyacinth","title":"Sitting Cushion - Hyacinth","url":"https://www.venndesign.co/shop/build-your-sitting-cushion","itemId":"6a36fdcda65151502568ae4b","collectionId":"5844dfbd197aeafb4a1c3e69","variantId":"a8a833f8-195d-427a-9cc7-04f9f5e3d67f","sku":"SQ9482838","price":299,"salePrice":null,"available":true,"image":"","thumbnail":"","imageSource":"missing","productType":1},{"key":"marine","family":"Pendleton","finish":"Marine","nativeFinish":"Pendleton Wool — Marine","title":"Sitting Cushion - Marine","url":"https://www.venndesign.co/shop/build-your-sitting-cushion","itemId":"6a36fdcda65151502568ae4b","collectionId":"5844dfbd197aeafb4a1c3e69","variantId":"bc62a07a-ba9b-4ecd-bf44-9bc006c9c852","sku":"SQ9469672","price":299,"salePrice":null,"available":true,"image":"","thumbnail":"","imageSource":"missing","productType":1},{"key":"fern","family":"Pendleton","finish":"Fern","nativeFinish":"Pendleton Wool — Fern","title":"Sitting Cushion - Fern","url":"https://www.venndesign.co/shop/build-your-sitting-cushion","itemId":"6a36fdcda65151502568ae4b","collectionId":"5844dfbd197aeafb4a1c3e69","variantId":"dbcaf082-1c84-475d-8bf6-2e6a209f1ef2","sku":"SQ6306724","price":299,"salePrice":null,"available":true,"image":"https://static1.squarespace.com/static/5844c859d1758e37a12febc4/5844dfbd197aeafb4a1c3e69/68ef3c99c8d07324547d674c/1760509081589/_Q0A4625-Hailey-Fern.jpg?format=1500w","thumbnail":"https://static1.squarespace.com/static/5844c859d1758e37a12febc4/5844dfbd197aeafb4a1c3e69/68ef3c99c8d07324547d674c/1760509081589/_Q0A4625-Hailey-Fern.jpg?format=300w","imageSource":"legacy-venn-thumbnail","productType":1},{"key":"squash","family":"Pendleton","finish":"Squash","nativeFinish":"Pendleton Wool — Squash","title":"Sitting Cushion - Squash","url":"https://www.venndesign.co/shop/build-your-sitting-cushion","itemId":"6a36fdcda65151502568ae4b","collectionId":"5844dfbd197aeafb4a1c3e69","variantId":"0733a1fd-78c7-4e0e-ace4-6582325eccf1","sku":"SQ9417088","price":299,"salePrice":null,"available":true,"image":"","thumbnail":"","imageSource":"missing","productType":1},{"key":"mesquite","family":"Pendleton","finish":"Mesquite","nativeFinish":"Pendleton Wool — Mesquite","title":"Sitting Cushion - Mesquite","url":"https://www.venndesign.co/shop/build-your-sitting-cushion","itemId":"6a36fdcda65151502568ae4b","collectionId":"5844dfbd197aeafb4a1c3e69","variantId":"6d3a5d3f-f3e0-4df4-aebb-55cfdb9e5cf4","sku":"SQ0140185","price":299,"salePrice":null,"available":true,"image":"","thumbnail":"","imageSource":"missing","productType":1},{"key":"dusk-blue","family":"Pendleton","finish":"Dusk Blue","nativeFinish":"Pendleton Wool — Dusk Blue","title":"Sitting Cushion - Dusk Blue","url":"https://www.venndesign.co/shop/build-your-sitting-cushion","itemId":"6a36fdcda65151502568ae4b","collectionId":"5844dfbd197aeafb4a1c3e69","variantId":"3fd04532-83ef-4be9-b38e-3e
1884017e9cbbcf","sku":"SQ1918024","price":299,"salePrice":null,"available":true,"image":"https://static1.squarespace.com/static/5844c859d1758e37a12febc4/5844dfbd197aeafb4a1c3e69/6285b1d8c55a5862104bb199/1652928989520/3Q0A1818-Edit.jpg?format=1500w","thumbnail":"https://static1.squarespace.com/static/5844c859d1758e37a12febc4/5844dfbd197aeafb4a1c3e69/6285b1d8c55a5862104bb199/1652928989520/3Q0A1818-Edit.jpg?format=300w","imageSource":"legacy-venn-thumbnail","productType":1},{"key":"buffalo","family":"Pendleton","finish":"Buffalo","nativeFinish":"Pendleton Jacquard — Buffalo","title":"Sitting Cushion - Buffalo","url":"https://www.venndesign.co/shop/build-your-sitting-cushion","itemId":"6a36fdcda65151502568ae4b","collectionId":"5844dfbd197aeafb4a1c3e69","variantId":"719f77e8-9c17-44e7-8f91-0b1d0e054034","sku":"SQ4350073","price":299,"salePrice":null,"available":true,"image":"","thumbnail":"","imageSource":"missing","productType":1},{"key":"buffalo-2","family":"Pendleton","finish":"Buffalo 2","nativeFinish":"Pendleton Jacquard — Buffalo 2","title":"Sitting Cushion - Buffalo 2","url":"https://www.venndesign.co/shop/build-your-sitting-cushion","itemId":"6a36fdcda65151502568ae4b","collectionId":"5844dfbd197aeafb4a1c3e69","variantId":"0055dad6-a5f4-48eb-90b4-a3dfebd56f0b","sku":"SQ9996075","price":299,"salePrice":null,"available":true,"image":"","thumbnail":"","imageSource":"missing","productType":1}],"skipped":[]};
1885  function asset(path) {
1886    var map = {
1887      'assets/life-room-interior.jpg': HERO_ASSETS.roomScene,
1888      'assets/life-hero-fern.jpg': HERO_ASSETS.standardFern,
1889      'assets/life-womans-office.jpg': HERO_ASSETS.officeScene,
1890      'assets/solar-room.jpg': HERO_ASSETS.movementRoom,
1891      'assets/life-cushion.jpg': HERO_ASSETS.sittingCushion
1892    };
1893    return map[path] || path;
1894  }
1895
1896  var SERIES = [
1897    { key: 'standard', prefix: 'Standard', label: 'Standard Fabric', nativeLabel: 'Standard', base: 299 },
1898    { key: 'solar', prefix: 'Solar', label: 'Solar Series', nativeLabel: 'Solar', base: 349 },
1899    { key: 'sports', prefix: 'Sports', label: 'Sports Series', nativeLabel: 'Sports', base: 349 },
1900    { key: 'pendleton', prefix: 'Pendleton Wool', label: 'Pendleton Wool', nativeLabel: 'Pendleton Wool', base: 399 },
1901    { key: 'jacquard', prefix: 'Pendleton Jacquard', label: 'Pendleton Jacquard', nativeLabel: 'Pendleton Jacquard', base: 429 }
1902  ];
1903
1904  var FALLBACK_FINISHES = [
1905    'Standard \u2014 Fern','Standard \u2014 Steel','Standard \u2014 Metal','Standard \u2014 Sand','Standard \u2014 Iron','Standard \u2014 Lagoon','Standard \u2014 Camel','Standard \u2014 Mint','Standard \u2014 Navy','Standard \u2014 Graphite','Standard \u2014 Cloud','Standard \u2014 Natural','Standard \u2014 Cadet','Standard \u2014 Dusty Rose','Standard \u2014 Pink','Standard \u2014 Dune','Standard \u2014 Atlas','Standard \u2014 Down Under','Standard \u2014 Woof','Standard \u2014 Seastar','Standard \u2014 General Store','Standard \u2014 Mango','Standard \u2014 Brick',
1906    'Solar \u2014 Earth','Solar \u2014 Moon','Solar \u2014 Sol','Solar \u2014 Jupiter','Solar \u2014 Mars',
1907    'Sports \u2014 Basketball','Sports \u2014 Baseball','Sports \u2014 Soccer','Sports \u2014 Golf','Sports \u2014 Tennis','Sports \u2014 Pool','Sports \u2014 Bowling',
1908    'Pendleton Wool \u2014 Hyacinth','Pendleton Wool \u2014 Marine','Pendleton Wool \u2014 Fern','Pendleton Wool \u2014 Squash','Pendleton Wool \u2014 Mesquite','Pendleton Wool \u2014 Dusk Blue',
1909    'Pendleton Jacquard \u2014 Buffalo','Pendleton Jacquard \u2014 Buffalo 2'
1910  ];
1911
1912  var GALLERY = [
1913    { src: 'assets/life-room-interior.jpg', alt: 'A sunlit modern living room composed with Air Chairs at the desk and sofa and Sitting Cushions on the floor', cap: 'One room, more ways to sit - Air Chairs at the desk and sofa, Sitting Cushions on the floor', pos: 'center 42%' },
1914    { src: 'assets/life-hero-fern.jpg', alt: 'Standard Fabric Air Chair in Fern', cap: 'Standard Fabric - Fern photographed in Venn Dallas studio' },
1915    { src: 'assets/life-womans-office.jpg', alt: 'Standard Fabric Air Chairs in a sunlit home office', cap: 'All day at the desk and by the window - the task chair that keeps moving with you' },
1916    { src: 'assets/solar-room.jpg', alt: 'A living room composed with Earth and Moon Air Chairs and Sitting Cushions', cap: 'Compose a room - Earth and Moon Air Chairs with Sitting Cushions on the floor', pos: 'center 46%' },
1917    { src: 'assets/life-cushion.jpg', alt: 'Sitting Cushion in use on the floor', cap: 'The Sitting Cushion - buckwheat one side, pressed wool the other' }
1918  ];
1919
1920  var PRESETS = [
1921    { id: 'seat', name: 'The Seat', best: 'Your first chair - the desk gets better', total: 329, subtotal: 329, credit: 0, badge: '', items: [chair('Standard \u2014 Fern', 'Large')] },
1922    { id: 'desk-floor', name: 'Desk + Floor', best: 'Work upright, reset on the ground', total: 478, subtotal: 518, credit: 40, badge: 'Save $40', items: [chair('Standard \u2014 Fern', 'Large'), cushion('Standard \u2014 Natural')] },
1923    { id: 'movement', name: 'Movement Room', best: 'Desk, lounge, floor, stretch - covered', total: 986, subtotal: 1096, credit: 110, badge: 'Best value', items: [chair('Solar \u2014 Earth', 'Large'), chair('Standard \u2014 Fern', 'Small'), cushion('Standard \u2014 Pink'), cushion('Standard \u2014 Dusty Rose')] },
1924    { id: 'family', name: 'Family / Studio', best: 'Shared rooms, kids, clinics, classes', total: 1526, subtotal: 1734, credit: 208, badge: 'Set pricing', items: [chair('Standard \u2014 Navy', 'Large'), chair('Standard \u2014 Camel', 'Large'), chair('Sports \u2014 Basketball', 'Small'), chair('Standard \u2014 Fern', 'Small'), cushion('Standard \u2014 Graphite'), cushion('Standard \u2014 Sand')] }
1925  ];
1926
1927  var state = {
1928    root: null,
1929    mounted: false,
1930    nativeReady: false,
1931    syncing: false,
1932    series: 'standard',
1933    finish: 'Standard \u2014 Fern',
1934    size: 'Large',
1935    activePreset: 'seat',
1936    gallery: 0,
1937    editing: null,
1938    room: [withUid(chair('Standard \u2014 Fern', 'Large'))],
1939    price: 329,
1940    available: true,
1941    nativeImage: null,
1942    nativeObserver: null,
1943    nativeRetryTimer: null,
1944    productData: null,
1945    nativeFinishValues: [],
1946    nativeSizeValues: [],
1947    variantMap: {},
1948    variantById: {},
1949    variantBySku: {},
1950    visualCache: {},
1951    observerTimer: null,
1952    suppressObserver: false,
1953    galleryThumbsRendered: false,
1954    bound: false,
1955    renderedFinishSeries: '',
1956    cushionOpen: false,
1957    cushionFamily: 'Standard',
1958    selectedCushionKey: '',
1959    addingAirChair: false,
1960    airChairAdded: false,
1961    airChairTimer: null,
1962    addingCushion: false,
1963    cushionAdded: false,
1964    cushionTimer: null,
1965    cushionCartFallback: null,
1966    syncingCushion: false,
1967    cushionNativeReady: false,
1968    cushionNativeKey: '',
1969    cushionNativeError: '',
1970    nativeCartAdds: 0,
1971    cushionPendingProduct: null,
1972    roomAdding: false
1973  };
1974
1975  function chair(finish, size) { return { type: 'chair', finish: finish, size: size || 'Large' }; }
1976  function cushion(finish) { return decorateCushionItem({ type: 'cushion', finish: finish, size: 'One Size' }); }
1977  function withUid(item) {
1978    var copy = {};
1979    Object.keys(item).forEach(function (k) { copy[k] = item[k]; });
1980    if (copy.type === 'cushion') decorateCushionItem(copy);
1981    copy.cartStatus = copy.cartStatus || 'planned';
1982    copy.uid = 'venn-' + Math.random().toString(36).slice(2, 10);
1983    return copy;
1984  }
1985  function money(n) { return '$' + Math.round(Number(n) || 0).toLocaleString('en-US'); }
1986  function esc(s) { return String(s == null ? '' : s).replace(/[&<>\"]/g, function (c) { return ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;' })[c]; }); }
1987  function qs(sel, root) {
1988    try { return (root || document).querySelector(sel); }
1989    catch (err) { return null; }
1990  }
1991  function qsa(sel, root) {
1992    try { return Array.prototype.slice.call((root || document).querySelectorAll(sel)); }
1993    catch (err) { return []; }
1994  }
1995  function normalize(s) { return String(s || '').replace(/\s+/g, ' ').trim(); }
1996  function key(s) { return normalize(s).toLowerCase().replace(/[\u2012\u2013\u2014\u2015-]+/g, ' ').replace(/[^a-z0-9]+/g, ' ').trim(); }
1997  function slug(s) { return key(s).replace(/\s+/g, '-').replace(/^-|-$/g, ''); }
1998  function displayFinish(finish) {
1999    var native = nativeFinishValue(finish);
2000    return native || normalize(finish).replace(/\\u2014/g, '\u2014');
2001  }
2002  function seriesForFinish(finish) {
2003    var value = displayFinish(finish);
2004    return SERIES.find(function (s) { return key(value).indexOf(key(s.prefix)) === 0; }) || SERIES[0];
2005  }
2006  function finishName(finish) {
2007    var value = displayFinish(finish);
2008    var s = seriesForFinish(value);
2009    if (key(value).indexOf(key(s.prefix)) === 0) return normalize(value.slice(s.prefix.length).replace(/^[\s\u2012\u2013\u2014\u2015-]+/, ''));
2010    return normalize(value);
2011  }
2012  function swatchClass(finish) {
2013    var s = seriesForFinish(finish);
2014    return 'venn-finish-chip is-' + s.key + ' is-' + slug(finishName(finish));
2015  }
2016  function standardColor(finish) {
2017    var name = slug(finishName(finish));
2018    var colors = {
2019      fern: '#7b846c', steel: '#858783', metal: '#b0aaa1', sand: '#d9c7aa', iron: '#4c4a45', lagoon: '#5d8f91', camel: '#b58c64', mint: '#a8c8b5', navy: '#252f46', graphite: '#53514d', cloud: '#e7e3da', natural: '#d8c8ae', cadet: '#69788e', 'dusty-rose': '#c88f94', pink: '#e0abb1', dune: '#cbb990', atlas: '#8a7359', 'down-under': '#77806f', woof: '#9a8066', seastar: '#86a7a3', 'general-store': '#a46b4b', mango: '#d99a3c', brick: '#a6503f'
2020    };
2021    return colors[name] || '#d8cfc2';
2022  }
2023  function imageFromVariant(variant) {
2024    var img = variant && variant.mainImage;
2025    return img && (img.url || (img.urls && img.urls.https)) || '';
2026  }
2027  function thumbnailUrl(url) {
2028    if (!url) return '';
2029    if (/images\.squarespace-cdn\.com/.test(url)) return url.replace(/\?.*$/, '') + '?format=300w';
2030    return url;
2031  }
2032  function iconSvg(name) {
2033    if (name === 'edit') return '<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4 20h4l10.5-10.5-4-4L4 16v4z"></path><path d="M13.5 5.5l1.8-1.8a1.4 1.4 0 0 1 2 0l3 3a1.4 1.4 0 0 1 0 2l-1.8 1.8"></path></svg>';
2034    if (name === 'copy') return '<svg viewBox="0 0 24 24" aria-hidden="true"><rect x="8" y="8" width="11" height="11" rx="2"></rect><path d="M5 16H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg>';
2035    return '<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M6 6l12 12"></path><path d="M18 6L6 18"></path></svg>';
2036  }
2037  function variantKey(finish, size) { return key(finish) + '|' + key(size); }
2038  function variantId(variant) { return variant && (variant.id || variant.variantId || variant.itemId || variant.productVariantId) || ''; }
2039  function variantSku(variant) { return variant && (variant.sku || variant.SKU || variant.stockKeepingUnit) || ''; }
2040  function nativeFinishValue(finish) {
2041    var wanted = key(finish);
2042    return state.nativeFinishValues.find(function (value) { return key(value) === wanted; }) || '';
2043  }
2044  function nativeSizeValue(size) {
2045    var wanted = key(size);
2046    return state.nativeSizeValues.find(function (value) { return key(value) === wanted; }) || '';
2047  }
2048  function variantFor(finish, size) {
2049    var nativeFinish = nativeFinishValue(finish) || finish;
2050    var nativeSize = nativeSizeValue(size) || size;
2051    return state.variantMap[variantKey(nativeFinish, nativeSize)] || null;
2052  }
2053  function variantForFinish(finish, size) {
2054    return variantFor(finish, size || state.size) || variantFor(finish, 'Large') || variantFor(finish, 'Small');
2055  }
2056  function resolveAirChairVisual(input) {
2057    if (!input || input.type === 'cushion') return '';
2058    readProductData();
2059    var finish = input.finish || state.finish;
2060    var size = input.size || state.size;
2061    var nativeFinish = nativeFinishValue(finish) || displayFinish(finish);
2062    var series = seriesForFinish(finish);
2063    var cacheKey = [
2064      input.variantId || '',
2065      input.sku || '',
2066      key(nativeFinish),
2067      key(series.key + ' ' + finishName(finish)),
2068      key(size)
2069    ].join('|');
2070    if (state.visualCache[cacheKey] !== undefined) return state.visualCache[cacheKey];
2071    var variant = null;
2072    if (input.variantId && state.variantById[input.variantId]) variant = state.variantById[input.variantId];
2073    if (!variant && input.sku && state.variantBySku[key(input.sku)]) variant = state.variantBySku[key(input.sku)];
2074    if (!variant) variant = variantFor(nativeFinish, size);
2075    if (!variant) variant = variantForFinish(nativeFinish, size);
2076    var url = thumbnailUrl(imageFromVariant(variant));
2077    state.visualCache[cacheKey] = url;
2078    return url;
2079  }
2080  function imageForFinish(finish, size) {
2081    return imageFromVariant(variantForFinish(finish, size || state.size));
2082  }
2083  function finishChipMarkup(finish, active, attr, extraClass) {
2084    var series = seriesForFinish(finish);
2085    var label = finishName(finish);
2086    var image = resolveAirChairVisual({ type: 'chair', finish: finish, size: state.size });
2087    var style = !image && series.key === 'standard' ? ' style="--venn-swatch:' + standardColor(finish) + '"' : '';
2088    var mark = image ? '<span class="venn-finish-mark has-img" aria-hidden="true"><img src="' + esc(image) + '" alt="" loading="lazy" decoding="async"></span>' : '<span class="venn-finish-mark" aria-hidden="true"></span>';
2089    return '<button type="button" ' + attr + ' class="' + swatchClass(finish) + (image ? ' has-image' : '') + (extraClass ? ' ' + extraClass : '') + (active ? ' is-active' : '') + '" title="' + esc(label) + '" aria-label="' + esc(series.label + ' ' + label) + '"' + style + '>' + mark + '<span>' + esc(label) + '</span></button>';
2090  }
2091  function cushionProducts(family) {
2092    return (CUSHION_MAP.products || []).filter(function (p) { return p.family === family && p.available; });
2093  }
2094  function shortCushionName(productOrFinish) {
2095    var value = typeof productOrFinish === 'string' ? productOrFinish : productOrFinish && productOrFinish.finish || '';
2096    value = normalize(value).replace(/^Sitting Cushion\s*-\s*/i, '').replace(/\s*[\u2012\u2013\u2014\u2015-]\s*Pendleton Wool$/i, '');
2097    return value;
2098  }
2099  function cushionFamilyForFinish(finish) {
2100    return /pendleton|walking rock|dusk blue|midnight|slate|charcoal|geranium/i.test(finish || '') ? 'Pendleton' : 'Standard';
2101  }
2102  function cushionKeyForFinish(finish) {
2103    var value = normalize(finish || '').replace(/^Standard\s*[\u2012\u2013\u2014\u2015-]\s*/i, '').replace(/^Pendleton Wool\s*[\u2012\u2013\u2014\u2015-]\s*/i, '');
2104    return key(shortCushionName(value));
2105  }
2106  function cushionProductByKey(cushionKey, family) {
2107    return (CUSHION_MAP.products || []).find(function (p) { return p.family === family && (p.key === cushionKey || key(shortCushionName(p)) === cushionKey); }) || null;
2108  }
2109  function resolveCushionProduct(item) {
2110    if (!item || item.type !== 'cushion') return null;
2111    var products = CUSHION_MAP.products || [];
2112    if (item.variantId) {
2113      var byVariant = products.find(function (p) { return p.variantId === item.variantId; });
2114      if (byVariant) return byVariant;
2115    }
2116    if (item.sku) {
2117      var bySku = products.find(function (p) { return key(p.sku) === key(item.sku); });
2118      if (bySku) return bySku;
2119    }
2120    var family = item.family || cushionFamilyForFinish(item.finish);
2121    var byFinish = cushionProductByKey(item.cushionKey || cushionKeyForFinish(item.finish), family);
2122    if (byFinish) return byFinish;
2123    if (item.itemId) {
2124      var byItem = products.find(function (p) { return p.itemId === item.itemId && (!item.finish || key(p.nativeFinish || p.finish) === key(item.finish) || key(p.finish) === key(shortCushionName(item.finish))); });
2125      if (byItem) return byItem;
2126    }
2127    return null;
2128  }
2129  function decorateCushionItem(item) {
2130    var product = resolveCushionProduct(item);
2131    if (!product) return item;
2132    return applyCushionProduct(item, product);
2133  }
2134  function applyCushionProduct(item, product) {
2135    if (!item || !product) return item;
2136    item.cushionKey = product.key;
2137    item.family = product.family;
2138    item.finish = product.family === 'Standard' ? 'Standard — ' + product.finish : (product.nativeFinish || product.finish);
2139    item.itemId = product.itemId;
2140    item.collectionId = product.collectionId;
2141    item.variantId = product.variantId;
2142    item.sku = product.sku;
2143    item.price = Number(product.salePrice || product.price || 189);
2144    item.productUrl = product.url;
2145    item.nativeFinish = product.nativeFinish || item.finish;
2146    item.nativeImage = product.thumbnail || product.image || '';
2147    item.available = !!product.available;
2148    return item;
2149  }
2150  function resolveCushionVisual(item) {
2151    var product = resolveCushionProduct(item);
2152    return product && (product.thumbnail || product.image) || item && item.nativeImage || '';
2153  }
2154  function cushionProductChip(product, active, attr, extraClass) {
2155    var label = shortCushionName(product);
2156    return '<button type="button" ' + attr + ' class="venn-cushion-chip' + (extraClass ? ' ' + extraClass : '') + (active ? ' is-active' : '') + '" title="' + esc(product.title) + '" aria-label="' + esc(product.family + ' Sitting Cushion ' + label + ', ' + money(product.salePrice || product.price)) + '">' +
2157      '<span class="venn-cushion-mark" aria-hidden="true">' + (product.thumbnail ? '<img src="' + esc(product.thumbnail) + '" alt="" loading="lazy" decoding="async">' : '') + '</span>' +
2158      '<span>' + esc(label) + '</span><small>' + money(product.salePrice || product.price) + '</small></button>';
2159  }
2160  function itemTone(item) {
2161    var image = item && item.type === 'cushion' ? resolveCushionVisual(item) : resolveAirChairVisual(item) || item.nativeImage || '';
2162    if (image) return 'background-image:url(' + esc(image) + ')';
2163    var s = seriesForFinish(item.finish);
2164    if (s.key === 'standard') return 'background:' + standardColor(item.finish);
2165    return 'background:' + (s.key === 'solar' ? '#c9b15f' : s.key === 'sports' ? '#7d8baa' : s.key === 'pendleton' ? '#9b6d58' : '#76605a');
2166  }
2167  function currentNativeImageFor(item) {
2168    if (item && item.type === 'cushion') return resolveCushionVisual(item);
2169    if (state.nativeImage && item && item.type === 'chair' && key(item.finish) === key(state.finish) && key(item.size) === key(state.size)) return state.nativeImage.url;
2170    return resolveAirChairVisual(item) || (item && item.nativeImage ? item.nativeImage : '');
2171  }
2172  function imageAttrsForItem(item) {
2173    var url = currentNativeImageFor(item);
2174    return url ? ' style="background-image:url(' + esc(url) + ')"' : ' style="' + itemTone(item) + '"';
2175  }
2176  function priceFor(item) {
2177    if (item.type === 'cushion') {
2178      var cushionProduct = resolveCushionProduct(item);
2179      return Number(item.price || cushionProduct && (cushionProduct.salePrice || cushionProduct.price) || 189);
2180    }
2181    var variant = variantFor(item.finish, item.size);
2182    if (variant && variant.salePrice && variant.salePrice.decimalValue) return Number(variant.salePrice.decimalValue);
2183    if (variant && variant.price && variant.price.decimalValue) return Number(variant.price.decimalValue);
2184    var s = seriesForFinish(item.finish);
2185    if (key(item.finish) === key(state.finish) && key(item.size) === key(state.size)) return state.price || s.base;
2186    if (s.key === 'standard') return item.size === 'Small' ? 299 : 329;
2187    if (s.key === 'solar' || s.key === 'sports') return 349;
2188    if (s.key === 'pendleton') return 399;
2189    return 429;
2190  }
2191  function creditFor(count, subtotal) {
2192    if (count >= 6) return Math.round(subtotal * 0.12);
2193    if (count >= 4) return 110;
2194    if (count >= 2) return 40;
2195    return 0;
2196  }
2197  function roomTotals() {
2198    var subtotal = state.room.reduce(function (sum, item) { return sum + priceFor(item); }, 0);
2199    var credit = creditFor(state.room.length, subtotal);
2200    return { subtotal: subtotal, credit: credit, total: subtotal - credit, count: state.room.length };
2201  }
2202  function itemCartStatus(item) {
2203    return item && item.cartStatus || 'planned';
2204  }
2205  function roomCartSummary() {
2206    var count = state.room.length;
2207    var added = state.room.filter(function (item) { return itemCartStatus(item) === 'added'; }).length;
2208    var adding = state.room.filter(function (item) { return itemCartStatus(item) === 'adding'; }).length;
2209    var failed = state.room.filter(function (item) { return itemCartStatus(item) === 'failed'; }).length;
2210    return { count: count, added: added, adding: adding, failed: failed, remaining: Math.max(0, count - added) };
2211  }
2212  function sameChair(item, finish, size) {
2213    return item && item.type === 'chair' && key(item.finish) === key(finish) && key(item.size) === key(size);
2214  }
2215  function sameCushion(item, product) {
2216    if (!item || item.type !== 'cushion' || !product) return false;
2217    var resolved = resolveCushionProduct(item);
2218    return !!(resolved && (resolved.variantId === product.variantId || key(resolved.sku) === key(product.sku) || resolved.key === product.key));
2219  }
2220  function firstPlannedRoomItem(match) {
2221    return state.room.find(function (item) { return itemCartStatus(item) !== 'added' && itemCartStatus(item) !== 'adding' && match(item); }) || null;
2222  }
2223
2224  function readProductData() {
2225    var product = window.Static && window.Static.SQUARESPACE_CONTEXT && window.Static.SQUARESPACE_CONTEXT.product;
2226    state.productData = product || state.productData || null;
2227    state.variantMap = {};
2228    state.variantById = {};
2229    state.variantBySku = {};
2230    if (!product || !product.variants) return;
2231    state.nativeFinishValues = [];
2232    state.nativeSizeValues = [];
2233    product.variants.forEach(function (variant) {
2234      var attrs = variant.attributes || {};
2235      if (attrs.Finish && !state.nativeFinishValues.some(function (v) { return key(v) === key(attrs.Finish); })) state.nativeFinishValues.push(attrs.Finish);
2236      if (attrs.Size && !state.nativeSizeValues.some(function (v) { return key(v) === key(attrs.Size); })) state.nativeSizeValues.push(attrs.Size);
2237      if (attrs.Finish && attrs.Size) state.variantMap[variantKey(attrs.Finish, attrs.Size)] = variant;
2238      if (variantId(variant)) state.variantById[variantId(variant)] = variant;
2239      if (variantSku(variant)) state.variantBySku[key(variantSku(variant))] = variant;
2240    });
2241  }
2242  function productRoot() {
2243    return qs('article.ProductItem[data-item-id="6a359f921ae6ff3545098bae"]') || qs('article.ProductItem') || document;
2244  }
2245  function nativeControls() {
2246    readProductData();
2247    var root = productRoot();
2248    var details = qs('.ProductItem-details:not(.ProductItem-details--mobile)', root) || qs('.ProductItem-details', root) || root;
2249    var finishControl = findOptionControl('Finish', details);
2250    var sizeControl = findOptionControl('Size', details);
2251    var addButton = findAddButton(details) || findAddButton(root);
2252    return { finish: finishControl, size: sizeControl, add: addButton, root: details, productRoot: root };
2253  }
2254  function findOptionControl(name, root) {
2255    root = root || productRoot();
2256    var selector = '[data-variant-option-name="' + name + '"]';
2257    var wrapper = qs(selector + '.variant-radiobtn-wrapper', root) || qs(selector, root);
2258    if (wrapper) {
2259      var choices = qsa('input[type="radio"], input[type="checkbox"]', wrapper);
2260      if (choices.length) return { type: 'choice', name: name, node: wrapper, choices: choices };
2261      var select = qs('select', wrapper) || (wrapper.tagName && wrapper.tagName.toLowerCase() === 'select' ? wrapper : null);
2262      if (select) return { type: 'select', name: name, node: select };
2263    }
2264    var direct = qs('select[data-variant-option-name="' + name + '"]', root) || qs('select[aria-label*="' + name + '"]', root);
2265    if (direct) return { type: 'select', name: name, node: direct };
2266    var named = qsa('input[name="variant-option-' + name + '"]', root);
2267    if (named.length) return { type: 'choice', name: name, node: named[0].closest('.variant-radiobtn-wrapper') || named[0].parentElement, choices: named };
2268    return null;
2269  }
2270  function labelFor(input) {
2271    if (input.id) {
2272      var label = qs('label[for="' + input.id.replace(/"/g, '\\"') + '"]');
2273      if (label) return label.textContent;
2274    }
2275    var parent = input.closest('label');
2276    return parent ? parent.textContent : '';
2277  }
2278  function findAddButton(root) {
2279    root = root || productRoot();
2280    return qs('.sqs-add-to-cart-button[data-item-id="6a359f921ae6ff3545098bae"]', root) ||
2281      qs('.sqs-add-to-cart-button[role="button"]', root) ||
2282      qsa('button, input[type="submit"], [role="button"]', root).find(function (button) {
2283        var text = normalize(button.textContent || button.value).toLowerCase();
2284        return /add.*cart|add to bag|purchase/.test(text) && !button.closest(ROOT_SELECTOR);
2285      }) || null;
2286  }
2287  function cushionNativeFinish(product) {
2288    return product && (product.nativeFinish || (product.family === 'Standard' ? 'Standard — ' + product.finish : product.finish)) || '';
2289  }
2290  function cushionProductRoot() {
2291    var itemId = CUSHION_MAP.itemId || '6a36fdcda65151502568ae4b';
2292    var block = qs('#block-yui_3_17_2_1_1782003475875_34001 .product-block.sqs-block-product[data-product*="' + itemId + '"]');
2293    if (block && !block.closest('.ProductItem-relatedProducts') && !block.closest(ROOT_SELECTOR)) return block;
2294    return qsa('.product-block.sqs-block-product[data-product*="' + itemId + '"], .sqs-block-product[data-product*="' + itemId + '"]').find(function (node) {
2295      return !node.closest('.ProductItem-relatedProducts') && !node.closest(ROOT_SELECTOR);
2296    }) || null;
2297  }
2298  function validateCushionProductBlock() {
2299    try {
2300      var itemId = CUSHION_MAP.itemId || '6a36fdcda65151502568ae4b';
2301      var root = cushionProductRoot();
2302      var custom = qs('[data-venn-add-cushion]', state.root);
2303      var productData = root && (root.getAttribute('data-product') || '');
2304      var controls = cushionNativeControls(root);
2305      var valid = !!(root && controls.finish && controls.add && custom && productData.indexOf(itemId) > -1 && !root.closest('.ProductItem-relatedProducts') && !root.closest(ROOT_SELECTOR));
2306      if (valid) {
2307        root.classList.add('venn-cushion-native-root');
2308        document.body.classList.add('venn-cushion-native-ready');
2309        state.cushionNativeError = '';
2310      } else if (custom) {
2311        document.body.classList.remove('venn-cushion-native-ready');
2312        state.cushionNativeError = 'Native Sitting Cushion inline Product Block controls were not found.';
2313        setStatus(state.cushionNativeError, true);
2314      }
2315      return valid;
2316    } catch (err) {
2317      document.body.classList.remove('venn-cushion-native-ready');
2318      state.cushionNativeError = err.message || 'Native Sitting Cushion inline Product Block controls were not found.';
2319      setStatus(state.cushionNativeError, true);
2320      return false;
2321    }
2322  }
2323  function cushionNativeControls(root) {
2324    root = root || cushionProductRoot();
2325    if (!root) return { finish: null, add: null, root: null, productRoot: cushionProductRoot(), variants: null, trigger: null };
2326    var itemId = CUSHION_MAP.itemId || '6a36fdcda65151502568ae4b';
2327    return {
2328      finish: findOptionControl('Finish', root),
2329      add: qs('.sqs-add-to-cart-button[data-item-id="' + itemId + '"]', root) || qs('.sqs-add-to-cart-button', root),
2330      root: root,
2331      productRoot: cushionProductRoot(),
2332      variants: qs('.product-variants[data-item-id="' + itemId + '"]', root),
2333      trigger: null
2334    };
2335  }
2336  function cushionNativeVariant(product, controls) {
2337    if (!product || !controls || !controls.variants) return null;
2338    try {
2339      var variants = JSON.parse(controls.variants.getAttribute('data-variants') || '[]');
2340      return variants.find(function (variant) {
2341        var finish = variant.attributes && variant.attributes.Finish;
2342        return variant.id === product.variantId || key(variant.sku) === key(product.sku) || key(finish) === key(cushionNativeFinish(product));
2343      }) || null;
2344    } catch (err) {
2345      return null;
2346    }
2347  }
2348  function syncNativeCushion(product, inlineRoot) {
2349    if (!product) return Promise.resolve(false);
2350    return Promise.resolve().then(function () {
2351      var controls = cushionNativeControls(inlineRoot);
2352      if (!controls.productRoot) throw new Error('Native Sitting Cushion Product Block was not found.');
2353      if (!controls.finish || !controls.add) throw new Error('Native Sitting Cushion inline controls were not found.');
2354      var nativeVariant = cushionNativeVariant(product, controls);
2355      if (controls.variants && (!nativeVariant || (nativeVariant.id !== product.variantId && key(nativeVariant.sku) !== key(product.sku)))) throw new Error('Native Sitting Cushion variant did not match the selected finish.');
2356      if (!setNativeValue(controls.finish, cushionNativeFinish(product))) throw new Error('Native Sitting Cushion Finish option was not found.');
2357      return delay(240).then(function () {
2358        controls = cushionNativeControls(inlineRoot);
2359        var selected = key(selectedText(controls.finish)) === key(cushionNativeFinish(product));
2360        var verified = cushionNativeVariant(product, controls);
2361        if (!selected || (controls.variants && (!verified || (verified.id !== product.variantId && key(verified.sku) !== key(product.sku))))) throw new Error('Native Sitting Cushion variant did not verify.');
2362        state.cushionNativeReady = true;
2363        state.cushionNativeKey = product.key;
2364        state.cushionNativeError = '';
2365        return true;
2366      });
2367    }).catch(function (err) {
2368      state.cushionNativeReady = false;
2369      state.cushionNativeKey = '';
2370      state.cushionNativeError = err.message;
2371      setStatus(err.message, true);
2372      return false;
2373    });
2374  }
2375  function cartSignal() {
2376    return qsa('.sqs-cart-quantity, .sqs-cart-quantity-label, .cart-quantity, [data-test="cart-quantity"], [class*="cart"] [class*="quantity"]').map(function (node) {
2377      return normalize(node.textContent || node.getAttribute('aria-label') || '');
2378    }).join('|');
2379  }
2380  function nativeCushionAddError(root) {
2381    root = root || document;
2382    return qsa('.form-error, .field-error, .variant-out-of-stock, .product-mark.sold-out, [class*="error"]', root).find(function (node) {
2383      return normalize(node.textContent || '').length;
2384    }) || null;
2385  }
2386  function nativeCushionAddSuccess(root) {
2387    root = root || document;
2388    return qsa('.sqs-add-to-cart-button, .sqs-add-to-cart-button-wrapper, .cart-added, .sqs-cart-added, [class*="success"]', root).some(function (node) {
2389      return /added|view cart|checkout|success/i.test(normalize(node.textContent || node.getAttribute('aria-label') || node.getAttribute('title') || ''));
2390    });
2391  }
2392  function waitForCushionAddResult(root, before, attempt) {
2393    attempt = attempt || 0;
2394    var err = nativeCushionAddError(root);
2395    if (err) return Promise.resolve(false);
2396    if (cartSignal() !== before && attempt > 0) return Promise.resolve(true);
2397    if (nativeCushionAddSuccess(root) && attempt > 0) return Promise.resolve(true);
2398    if (attempt >= 8) return Promise.resolve(false);
2399    return delay(180).then(function () { return waitForCushionAddResult(root, before, attempt + 1); });
2400  }
2401  function cartAction() {
2402    return qs('a[href*="/cart"], a[href*="cart"], button[aria-label*="Cart"], [role="button"][aria-label*="Cart"], .header-actions-action--cart a, .sqs-cart-dropzone a') ||
2403      qsa('a, button, [role="button"]').find(function (node) {
2404        return /cart|bag|checkout/i.test(normalize(node.getAttribute('aria-label') || node.getAttribute('title') || node.textContent || '')) && !node.closest(ROOT_SELECTOR);
2405      }) || null;
2406  }
2407  function openNativeCart() {
2408    var action = cartAction();
2409    if (action && typeof action.click === 'function') {
2410      action.click();
2411      return true;
2412    }
2413    if (action && action.href) {
2414      window.location.href = action.href;
2415      return true;
2416    }
2417    return false;
2418  }
2419  function nearestCommerceRoot(node) {
2420    return node ? (node.closest('.ProductItem-details') || node.closest('article.ProductItem') || node.parentElement) : null;
2421  }
2422  function selectedText(control) {
2423    if (!control) return '';
2424    if (control.type === 'select') {
2425      var opt = control.node.options[control.node.selectedIndex];
2426      return normalize(opt ? opt.textContent || opt.value : control.node.value);
2427    }
2428    if (control.type === 'choice') {
2429      var checked = control.choices.find(function (input) { return input.checked; });
2430      return checked ? normalize(checked.value || labelFor(checked)) : '';
2431    }
2432    return '';
2433  }
2434  function optionValues(control) {
2435    if (!control) return [];
2436    if (control.type === 'select') return qsa('option', control.node).map(function (o) { return normalize(o.textContent || o.value); }).filter(Boolean);
2437    return control.choices.map(function (input) { return normalize(input.value || labelFor(input)); }).filter(Boolean);
2438  }
2439  function setNativeValue(control, intended) {
2440    if (!control) return false;
2441    var intendedKey = key(intended);
2442    if (control.type === 'select') {
2443      var options = qsa('option', control.node);
2444      var option = options.find(function (o) { return key(o.textContent || o.value) === intendedKey || key(o.value) === intendedKey; });
2445      if (!option) return false;
2446      control.node.value = option.value;
2447      dispatchNative(control.node);
2448      return true;
2449    }
2450    if (control.type === 'choice') {
2451      var choice = control.choices.find(function (input) { return key(input.value) === intendedKey || key(labelFor(input)) === intendedKey; });
2452      if (!choice) return false;
2453      var label = choice.id ? qs('label[for="' + choice.id.replace(/"/g, '\\"') + '"]') : null;
2454      if (label && typeof label.click === 'function') label.click();
2455      if (typeof choice.click === 'function') choice.click();
2456      choice.checked = true;
2457      dispatchNative(choice);
2458      return true;
2459    }
2460    return false;
2461  }
2462  function dispatchNative(node) {
2463    ['input', 'change'].forEach(function (type) {
2464      try { node.dispatchEvent(new Event(type, { bubbles: true, cancelable: true })); } catch (err) {}
2465    });
2466  }
2467  function delay(ms) { return new Promise(function (resolve) { setTimeout(resolve, ms); }); }
2468  function syncNative(finish, size, retry) {
2469    if (state.syncing) return Promise.resolve(false);
2470    state.syncing = true;
2471    setStatus('Syncing native Squarespace variant...');
2472    renderLock(true);
2473    return Promise.resolve().then(function () {
2474      var controls = nativeControls();
2475      var nativeFinish = nativeFinishValue(finish) || displayFinish(finish);
2476      var nativeSize = nativeSizeValue(size) || size;
2477      if (!controls.finish || !controls.size || !controls.add) throw new Error('Native Finish, Size, or Add to Cart was not found.');
2478      if (!setNativeValue(controls.finish, nativeFinish)) throw new Error('Native Finish option was not found: ' + nativeFinish);
2479      if (!setNativeValue(controls.size, nativeSize)) throw new Error('Native Size option was not found: ' + nativeSize);
2480      return delay(240).then(function () {
2481        controls = nativeControls();
2482        var ok = key(selectedText(controls.finish)) === key(nativeFinish) && key(selectedText(controls.size)) === key(nativeSize);
2483        if (!ok && retry !== false) {
2484          state.syncing = false;
2485          renderLock(false);
2486          return syncNative(finish, size, false);
2487        }
2488        if (!ok) throw new Error('Native variant did not verify after retry.');
2489        markReady(controls);
2490        readNativeState(controls);
2491        applyVariantImage(finish, size);
2492        observeNativeGallery(controls.productRoot);
2493        setStatus(state.available ? 'Ready to add through Squarespace.' : 'This variant may be unavailable.');
2494        return true;
2495      });
2496    }).catch(function (err) {
2497      setStatus(err.message, true);
2498      return false;
2499    }).then(function (ok) {
2500      state.syncing = false;
2501      renderLock(false);
2502      render();
2503      return ok;
2504    });
2505  }
2506
2507  function attr(node, names) {
2508    for (var i = 0; i < names.length; i++) {
2509      var value = node && node.getAttribute && node.getAttribute(names[i]);
2510      if (value) return value;
2511    }
2512    return '';
2513  }
2514  function bestFromSrcset(srcset) {
2515    if (!srcset) return '';
2516    var candidates = srcset.split(',').map(function (part) {
2517      var pieces = normalize(part).split(' ');
2518      var url = pieces[0];
2519      var width = pieces[1] && /w$/.test(pieces[1]) ? parseInt(pieces[1], 10) : 0;
2520      return { url: url, width: width || 0 };
2521    }).filter(function (item) { return item.url && item.url.indexOf('data:') !== 0; });
2522    if (!candidates.length) return '';
2523    candidates.sort(function (a, b) { return Math.abs((a.width || 1200) - 1200) - Math.abs((b.width || 1200) - 1200); });
2524    return candidates[0].url;
2525  }
2526  function imageUrlFrom(node) {
2527    if (!node) return '';
2528    if (node.tagName && node.tagName.toLowerCase() === 'picture') node = qs('img', node);
2529    var srcset = attr(node, ['srcset', 'data-srcset', 'data-image-srcset']);
2530    return bestFromSrcset(srcset) || node.currentSrc || node.src || attr(node, ['src', 'data-src', 'data-image', 'data-image-src', 'data-original']) || '';
2531  }
2532  function isUsableImage(url) {
2533    return !!url && url.indexOf('data:') !== 0;
2534  }
2535  function findNativeProductImage() {
2536    var selectors = [
2537      '.ProductItem-gallery img', '.ProductItem-gallery-slides img', '.product-gallery img', '.product-image img',
2538      '[data-test*="product"] img', '[class*="ProductItem"] img', '[class*="product"] img'
2539    ];
2540    for (var i = 0; i < selectors.length; i++) {
2541      var images = qsa(selectors[i]).filter(function (img) { return !img.closest(ROOT_SELECTOR); });
2542      for (var j = 0; j < images.length; j++) {
2543        var box = images[j].getBoundingClientRect ? images[j].getBoundingClientRect() : { width: 0, height: 0 };
2544        var url = imageUrlFrom(images[j]);
2545        if (isUsableImage(url) && (box.width >= 80 || images[j].naturalWidth >= 300 || /squarespace|static1/.test(url))) return { url: url, srcset: attr(images[j], ['srcset', 'data-srcset', 'data-image-srcset']) };
2546      }
2547    }
2548    return null;
2549  }
2550  function applyVariantImage(finish, size) {
2551    var image = imageForFinish(finish, size);
2552    if (!image) return false;
2553    state.nativeImage = { url: image, srcset: '' };
2554    state.gallery = -1;
2555    var main = qs('[data-venn-gallery-main]', state.root);
2556    if (main) {
2557      state.suppressObserver = true;
2558      main.removeAttribute('srcset');
2559      main.src = image;
2560      main.alt = finishName(finish) + ' Air Chair';
2561      main.style.objectPosition = 'center';
2562      setTimeout(function () { state.suppressObserver = false; }, 0);
2563    }
2564    return true;
2565  }
2566  function applyNativeImage(image) {
2567    if (!image || !isUsableImage(image.url)) return false;
2568    state.nativeImage = image;
2569    state.gallery = -1;
2570    var main = qs('[data-venn-gallery-main]', state.root);
2571    if (main) {
2572      state.suppressObserver = true;
2573      main.removeAttribute('srcset');
2574      if (image.srcset) main.setAttribute('srcset', image.srcset);
2575      main.src = image.url;
2576      main.alt = finishName(state.finish) + ' Air Chair';
2577      main.style.objectPosition = 'center';
2578      setTimeout(function () { state.suppressObserver = false; }, 0);
2579    }
2580    renderRoom();
2581    return true;
2582  }
2583  function updateNativeImageSoon(attempt, startedAt) {
2584    attempt = attempt || 0;
2585    startedAt = startedAt || Date.now();
2586    if (Date.now() - startedAt > 5000) return;
2587    var image = findNativeProductImage();
2588    if (applyNativeImage(image)) return;
2589    if (attempt < 5) {
2590      clearTimeout(state.nativeRetryTimer);
2591      state.nativeRetryTimer = setTimeout(function () { updateNativeImageSoon(attempt + 1, startedAt); }, 160 + attempt * 120);
2592    }
2593  }
2594  function nativeGalleryRoot(root) {
2595    return qs('.ProductItem-gallery', root || productRoot()) || qs('.product-gallery', root || productRoot()) || null;
2596  }
2597  function observeNativeGallery(root) {
2598    if (state.nativeObserver || !window.MutationObserver) return;
2599    var target = nativeGalleryRoot(root);
2600    if (!target) return;
2601    state.nativeObserver = new MutationObserver(function () {
2602      if (state.suppressObserver) return;
2603      clearTimeout(state.observerTimer);
2604      state.observerTimer = setTimeout(function () { updateNativeImageSoon(0, Date.now()); }, 120);
2605    });
2606    state.nativeObserver.observe(target, { childList: true, subtree: true, attributes: true, attributeFilter: ['src', 'srcset', 'data-src', 'data-srcset', 'data-image-src'] });
2607  }
2608
2609  function readNativeState(controls) {
2610    var root = controls && controls.root ? controls.root : document;
2611    var variant = variantFor(state.finish, state.size);
2612    if (variant && variant.salePrice && variant.salePrice.decimalValue) state.price = Number(variant.salePrice.decimalValue);
2613    else if (variant && variant.price && variant.price.decimalValue) state.price = Number(variant.price.decimalValue);
2614    else {
2615      var priceNode = qs('[data-test*="price"], .product-price, .ProductItem-details-price, [class*="price"]', root) || qs('[data-test*="price"], .product-price, [class*="price"]');
2616      if (priceNode) {
2617        var match = normalize(priceNode.textContent).match(/\$[\d,]+(?:\.\d{2})?/);
2618        if (match) state.price = Number(match[0].replace(/[$,]/g, ''));
2619      }
2620    }
2621    var add = controls && controls.add;
2622    var addText = normalize(add && (add.textContent || add.value) || '');
2623    var soldOut = variant && variant.stock && variant.stock.unlimited === false && Number(variant.stock.quantity || 0) <= 0;
2624    state.available = !soldOut && !(add && (add.disabled || add.getAttribute('aria-disabled') === 'true' || /sold|unavailable|out of stock/i.test(addText)));
2625  }
2626  function markReady(controls) {
2627    if (state.mounted && state.root && state.productData && controls.root && controls.finish && controls.size && controls.add) {
2628      controls.root.classList.add(NATIVE_CLASS);
2629      state.nativeReady = true;
2630      if (!DEBUG_NATIVE) {
2631        document.body.classList.add(READY_CLASS);
2632        prepareNativeFocus(controls.productRoot || productRoot());
2633      }
2634    }
2635  }
2636  function tryMarkNativeReady(attempt) {
2637    attempt = attempt || 0;
2638    try {
2639      readProductData();
2640      var controls = nativeControls();
2641      if (controls.finish && controls.size && controls.add && state.productData) {
2642        markReady(controls);
2643        readNativeState(controls);
2644        renderConfig();
2645        return true;
2646      }
2647    } catch (err) {
2648      if (attempt >= 10) setStatus(err.message || 'Native Air Chair commerce bridge was not found.', true);
2649    }
2650    if (!state.nativeReady && attempt < 10) {
2651      clearTimeout(state.nativeRetryTimer);
2652      state.nativeRetryTimer = setTimeout(function () { tryMarkNativeReady(attempt + 1); }, 150);
2653    } else if (!state.nativeReady && attempt >= 10) {
2654      setStatus('Native Air Chair commerce bridge was not found.', true);
2655    }
2656    return false;
2657  }
2658  function prepareNativeFocus(root) {
2659    var wrappers = qsa('.ProductItem-gallery, .ProductItem-details-title, .ProductItem-details-price, .ProductItem-details-excerpt, .variant-option, .product-quantity-input, .sqs-add-to-cart-button-wrapper, .ProductItem-details-share', root || productRoot()).filter(function (node) { return !node.closest(ROOT_SELECTOR); });
2660    wrappers.forEach(function (node) {
2661      qsa('a, button, input, select, textarea, [tabindex], [role="button"]', node).forEach(function (focusable) {
2662        if (!focusable.hasAttribute('data-venn-native-tabindex')) focusable.setAttribute('data-venn-native-tabindex', focusable.getAttribute('tabindex') || '');
2663        focusable.setAttribute('tabindex', '-1');
2664      });
2665    });
2666  }
2667  function setStatus(message, error) {
2668    state.status = message;
2669    state.statusError = !!error;
2670    var node = qs('[data-venn-status]', state.root);
2671    if (node) {
2672      node.textContent = message || '';
2673      node.classList.toggle('is-error', !!error);
2674    }
2675  }
2676  function renderLock(locked) {
2677    if (!state.root) return;
2678    state.root.classList.toggle('venn-is-syncing', !!locked);
2679    qsa('button', state.root).forEach(function (button) { button.disabled = !!locked && !button.hasAttribute('data-venn-gallery'); });
2680  }
2681
2682  function availableFinishes() {
2683    readProductData();
2684    var values = state.nativeFinishValues.slice();
2685    if (!values.length) {
2686      var controls = nativeControls();
2687      values = optionValues(controls.finish);
2688    }
2689    return values.length ? values : FALLBACK_FINISHES.map(function (v) { return v.replace(/\\u2014/g, '\u2014'); });
2690  }
2691  function finishesForSeries(seriesKey) {
2692    var series = SERIES.find(function (s) { return s.key === seriesKey; }) || SERIES[0];
2693    return availableFinishes().filter(function (f) { return key(f).indexOf(key(series.prefix)) === 0; });
2694  }
2695  function currentSeries() { return SERIES.find(function (s) { return s.key === state.series; }) || SERIES[0]; }
2696
2697  function canonicalFinish(finish) {
2698    var wanted = key(finish);
2699    return availableFinishes().find(function (f) { return key(f) === wanted; }) || normalize(finish).replace(/\\u2014/g, '\u2014');
2700  }
2701  function availableCushionProductByKeys(keys, family) {
2702    var fams = family ? [family] : ['Standard', 'Pendleton'];
2703    for (var f = 0; f < fams.length; f += 1) {
2704      for (var i = 0; i < keys.length; i += 1) {
2705        var product = cushionProductByKey(keys[i], fams[f]);
2706        if (product && product.available) return product;
2707      }
2708    }
2709    return null;
2710  }
2711  function exactStandardCushionForFinish(finish) {
2712    var s = seriesForFinish(finish);
2713    if (s.key !== 'standard') return null;
2714    return cushionProductByKey(slug(finishName(finish)), 'Standard');
2715  }
2716  function cushionForIntent(role, finish) {
2717    var exact = exactStandardCushionForFinish(finish);
2718    if (exact && (role === 'match' || role === 'primary')) return cushion(exact.nativeFinish || ('Standard \u2014 ' + exact.finish));
2719
2720    var s = seriesForFinish(finish);
2721    var name = slug(finishName(finish));
2722    var preferred = [];
2723
2724    if (s.key === 'standard') {
2725      if (['pink', 'dusty-rose', 'mango', 'brick'].indexOf(name) > -1) preferred = role === 'contrast' ? ['natural', 'cloud', 'sand'] : [name, 'dusty-rose', 'pink', 'natural'];
2726      else if (['fern', 'mint', 'lagoon'].indexOf(name) > -1) preferred = role === 'contrast' ? ['pink', 'dusty-rose', 'mango'] : [name, 'natural', 'cloud', 'sand'];
2727      else preferred = [name, 'natural', 'cloud', 'graphite', 'sand'];
2728    } else if (s.key === 'solar') {
2729      preferred = role === 'contrast' ? ['pink', 'dusty-rose', 'mango', 'lagoon'] : ['natural', 'cloud', 'graphite', 'sand', 'fern'];
2730    } else if (s.key === 'sports') {
2731      preferred = role === 'contrast' ? ['mango', 'pink', 'lagoon', 'dusty-rose'] : ['natural', 'graphite', 'sand', 'cloud'];
2732    } else {
2733      preferred = role === 'contrast' ? ['mango', 'dusty-rose', 'brick'] 
2733: ['natural', 'graphite', 'sand', 'cloud'];
2734    }
2735
2736    var product = availableCushionProductByKeys(preferred, 'Standard') || availableCushionProductByKeys(['natural', 'cloud', 'graphite', 'sand', 'fern'], 'Standard');
2737    return product ? cushion(product.nativeFinish || ('Standard \u2014 ' + product.finish)) : cushion('Standard \u2014 Natural');
2738  }
2739  function companionChairForIntent(finish, size) {
2740    var s = seriesForFinish(finish);
2741    var name = slug(finishName(finish));
2742    var target = 'Standard \u2014 Fern';
2743
2744    if (s.key === 'standard') {
2745      if (['pink', 'dusty-rose', 'mango', 'brick'].indexOf(name) > -1) target = 'Standard \u2014 Natural';
2746      else if (['navy', 'graphite', 'iron'].indexOf(name) > -1) target = 'Standard \u2014 Cloud';
2747      else target = 'Standard \u2014 Natural';
2748    } else if (s.key === 'solar') {
2749      target = 'Standard \u2014 Fern';
2750    } else if (s.key === 'sports') {
2751      target = 'Standard \u2014 Navy';
2752    } else if (s.key === 'pendleton') {
2753      target = 'Standard \u2014 Natural';
2754    } else if (s.key === 'jacquard') {
2755      target = 'Standard \u2014 Camel';
2756    }
2757
2758    target = canonicalFinish(target);
2759    return chair(target, size === 'Large' ? 'Small' : 'Large');
2760  }
2761  function studioPaletteForIntent(finish, size) {
2762    var primary = chair(finish, size || 'Large');
2763    var s = seriesForFinish(finish);
2764    var second = companionChairForIntent(finish, size || 'Large');
2765    var third = s.key === 'sports' ? chair(canonicalFinish('Sports \u2014 Basketball'), 'Small') : chair(canonicalFinish('Standard \u2014 Navy'), 'Large');
2766    var fourth = chair(canonicalFinish('Standard \u2014 Fern'), 'Small');
2767    return [primary, second, third, fourth, cushionForIntent('primary', finish), cushionForIntent('contrast', finish)];
2768  }
2769  function setupItemsForPreset(preset) {
2770    var finish = canonicalFinish(state.finish);
2771    var size = state.size || 'Large';
2772    if (!preset || preset.id === 'seat') return [chair(finish, size)];
2773    if (preset.id === 'desk-floor') return [chair(finish, size), cushionForIntent('primary', finish)];
2774    if (preset.id === 'movement') return [chair(finish, size), companionChairForIntent(finish, size), cushionForIntent('primary', finish), cushionForIntent('contrast', finish)];
2775    if (preset.id === 'family') return studioPaletteForIntent(finish, size);
2776    return (preset.items || []).map(function (item) { return item.type === 'chair' ? chair(finish, item.size || size) : item; });
2777  }
2778  function totalsForItems(items) {
2779    var subtotal = items.reduce(function (sum, item) { return sum + priceFor(item); }, 0);
2780    var credit = creditFor(items.length, subtotal);
2781    return { subtotal: subtotal, credit: credit, total: subtotal - credit, count: items.length };
2782  }
2783  function applyIntentToActiveSetup() {
2784    var preset = PRESETS.find(function (p) { return p.id === state.activePreset; }) || PRESETS[0];
2785    state.room = setupItemsForPreset(preset).map(function (item) { return withUid(item); });
2786    state.editing = null;
2787    state.roomAdding = false;
2788  }
2789  function preloadVariantImage(finish, size) {
2790    var url = imageForFinish(finish, size || state.size);
2791    if (!url) return;
2792    var img = new Image();
2793    img.src = thumbnailUrl(url).replace('format=300w', 'format=1000w');
2794  }
2795  function selectAirChairIntent(finish, size, options) {
2796    options = options || {};
2797    if (!finish) return false;
2798    state.finish = canonicalFinish(finish);
2799    state.size = size || state.size || 'Large';
2800    state.series = seriesForFinish(state.finish).key;
2801    state.renderedFinishSeries = '';
2802    preloadVariantImage(state.finish, state.size);
2803    applyVariantImage(state.finish, state.size);
2804    applyIntentToActiveSetup();
2805    syncNative(state.finish, state.size);
2806    render();
2807    if (options.scroll !== false && state.root) {
2808      requestAnimationFrame(function () {
2809        state.root.scrollIntoView({ behavior: options.instant ? 'auto' : 'smooth', block: 'start' });
2810      });
2811    }
2812    return true;
2813  }
2814
2815
2816  function render() {
2817    if (!state.root) return;
2818    renderGallery();
2819    renderSetups();
2820    renderConfig();
2821    renderRoom();
2822    setStatus(state.status || '', state.statusError);
2823  }
2824  function renderGallery() {
2825    var main = qs('[data-venn-gallery-main]', state.root);
2826    var caption = qs('[data-venn-gallery-caption]', state.root);
2827    var thumbs = qs('[data-venn-gallery-thumbs]', state.root);
2828    if (state.gallery < 0 && state.nativeImage && main) {
2829      main.removeAttribute('srcset');
2830      if (state.nativeImage.srcset) main.setAttribute('srcset', state.nativeImage.srcset);
2831      main.src = state.nativeImage.url;
2832      main.alt = finishName(state.finish) + ' Air Chair';
2833      main.style.objectPosition = 'center';
2834      if (caption) caption.textContent = finishName(state.finish) + ' - selected product image';
2835    } else {
2836      var g = GALLERY[state.gallery] || GALLERY[0];
2837      if (main) {
2838        main.removeAttribute('srcset');
2839        main.src = asset(g.src);
2840        main.alt = g.alt;
2841        main.style.objectPosition = g.pos || 'center';
2842      }
2843      if (caption) caption.textContent = g.cap;
2844    }
2845    if (thumbs && !state.galleryThumbsRendered) {
2846      state.galleryThumbsRendered = true;
2847      thumbs.innerHTML = GALLERY.map(function (item, i) {
2848        return '<button type="button" data-venn-gallery="' + i + '" class="' + (i === state.gallery ? 'is-active' : '') + '" aria-label="' + esc(item.alt) + '"><img src="' + esc(asset(item.src)) + '" alt="" loading="lazy" decoding="async"></button>';
2849      }).join('');
2850    }
2851  }
2852  function renderSetups() {
2853    var row = qs('[data-venn-setups]', state.root);
2854    var selected = qs('[data-venn-selected-setup]', state.root);
2855    if (row) {
2856      row.innerHTML = PRESETS.map(function (p) {
2857        var items = setupItemsForPreset(p);
2858        var t = totalsForItems(items);
2859        var selectedClass = p.id === state.activePreset ? ' is-selected' : '';
2860        var badge = p.id === 'movement' ? 'Best value' : p.id === 'family' ? 'Set pricing' : t.credit ? 'Save ' + money(t.credit) : '';
2861        return '<button type="button" class="venn-setup-card' + selectedClass + '" data-venn-preset="' + p.id + '" aria-pressed="' + (p.id === state.activePreset) + '">' +
2862          '<span class="venn-setup-mini">' + dots(items) + '</span>' +
2863          '<span class="venn-setup-name">' + esc(p.name) + '</span>' +
2864          '<span class="venn-setup-desc">' + esc(p.best) + '</span>' +
2865          '<span class="venn-setup-price">' + money(t.total) + (t.credit ? ' <s>' + money(t.subtotal) + '</s>' : '') + '</span>' +
2866          (badge ? '<span class="venn-badge ' + (t.credit && p.id !== 'movement' ? 'is-save' : '') + '">' + esc(badge) + '</span>' : '') +
2867        '</button>';
2868      }).join('');
2869    }
2870    if (selected) {
2871      var p2 = PRESETS.find(function (p) { return p.id === state.activePreset; }) || PRESETS[0];
2872      var items2 = setupItemsForPreset(p2);
2873      var t2 = totalsForItems(items2);
2874      selected.innerHTML = '<div class="venn-selected-copy"><span class="venn-selected-kicker">' + esc(p2.name) + '</span><div class="venn-selected-strip" aria-label="' + esc(p2.name + ' included products') + '">' + selectedDots(items2) + '</div><strong>' + esc(setupSummary(items2)) + '</strong><span>' + esc(p2.best) + '</span></div>' +
2875        '<div class="venn-selected-price"><span>Today</span><strong>' + money(t2.total) + '</strong>' + (t2.credit ? '<s>' + money(t2.subtotal) + '</s>' : '') + '<em>' + (t2.credit ? 'Room credit -' + money(t2.credit) : 'Ready now') + '</em></div>';
2876    }
2877  }
2878  function renderConfig() {
2879    var seriesNode = qs('[data-venn-series]', state.root);
2880    var finishNode = qs('[data-venn-finishes]', state.root);
2881    var sizeNode = qs('[data-venn-sizes]', state.root);
2882    var labelSeries = qs('[data-venn-series-label]', state.root);
2883    var labelFinish = qs('[data-venn-finish-label]', state.root);
2884    var labelSize = qs('[data-venn-size-label]', state.root);
2885    var add = qs('[data-venn-add-air-chair]', state.root);
2886    var addCushion = qs('[data-venn-add-cushion]', state.root);
2887    var s = currentSeries();
2888    var finishes = finishesForSeries(s.key);
2889    if (finishes.indexOf(state.finish) < 0 && !finishes.some(function (f) { return key(f) === key(state.finish); })) state.finish = finishes[0] || state.finish;
2890    if (labelSeries) labelSeries.textContent = s.label + ' - from ' + money(s.base);
2891    if (labelFinish) labelFinish.textContent = finishName(state.finish);
2892    if (labelSize) labelSize.textContent = state.size + (state.size === 'Large' ? ' - 65 cm' : ' - 55 cm');
2893    if (seriesNode) {
2894      seriesNode.innerHTML = SERIES.map(function (item) {
2895        return '<button type="button" data-venn-series-key="' + item.key + '" class="' + (item.key === state.series ? 'is-active' : '') + '">' + esc(item.label) + '</button>';
2896      }).join('');
2897    }
2898    if (finishNode) {
2899      if (state.renderedFinishSeries !== state.series || !finishNode.children.length) {
2900        state.renderedFinishSeries = state.series;
2901        finishNode.innerHTML = finishes.map(function (finish) {
2902          return finishChipMarkup(finish, key(finish) === key(state.finish), 'data-venn-finish="' + esc(finish) + '"', '');
2903        }).join('');
2904      } else {
2905        qsa('[data-venn-finish]', finishNode).forEach(function (button) {
2906          button.classList.toggle('is-active', key(button.getAttribute('data-venn-finish')) === key(state.finish));
2907        });
2908      }
2909    }
2910    if (sizeNode) {
2911      sizeNode.innerHTML = ['Large', 'Small'].map(function (size) {
2912        return '<button type="button" data-venn-size="' + size + '" class="' + (size === state.size ? 'is-active' : '') + '"><strong>' + size + '</strong><small>' + (size === 'Large' ? '65 cm - desk & task' : '55 cm - lounge & kids') + '</small></button>';
2913      }).join('');
2914    }
2915    if (add) {
2916      add.disabled = state.addingAirChair || state.syncing || !state.available;
2917      if (state.addingAirChair) add.setAttribute('aria-busy', 'true');
2918      else add.removeAttribute('aria-busy');
2919      add.textContent = state.addingAirChair ? 'Adding...' : state.airChairAdded ? 'Added ✓' : state.available ? 'Add Air Chair - ' + money(state.price || s.base) : 'Unavailable';
2920    }
2921    if (addCushion) {
2922      var selectedCushion = cushionProductByKey(state.selectedCushionKey, state.cushionFamily);
2923      addCushion.disabled = state.addingCushion || (state.cushionOpen && !selectedCushion);
2924      if (state.addingCushion) addCushion.setAttribute('aria-busy', 'true');
2925      else addCushion.removeAttribute('aria-busy');
2926      addCushion.textContent = state.addingCushion ? 'Adding...' : state.cushionAdded ? 'Added ✓' : !state.cushionOpen ? '+ Sitting Cushion - from $189' : selectedCushion ? 'Add ' + shortCushionName(selectedCushion) + ' Cushion - ' + money(selectedCushion.salePrice || selectedCushion.price) : 'Select a Cushion finish';
2927      renderCushionSelector(addCushion);
2928    }
2929  }
2930  function renderCushionSelector(anchor) {
2931    if (!anchor || !anchor.parentElement) return;
2932    var node = qs('[data-venn-cushion-selector]', state.root);
2933    if (!state.cushionOpen) {
2934      if (node) node.remove();
2935      return;
2936    }
2937    if (!node) {
2938      node = document.createElement('div');
2939      node.className = 'venn-cushion-selector';
2940      node.setAttribute('data-venn-cushion-selector', '');
2941      anchor.parentElement.insertBefore(node, anchor.nextSibling);
2942    }
2943    var selected = cushionProductByKey(state.selectedCushionKey, state.cushionFamily);
2944    var families = ['Standard', 'Pendleton'];
2945    node.innerHTML = '<div class="venn-editor-label">Sitting Cushion</div>' +
2946      '<div class="venn-cushion-family" role="group" aria-label="Sitting Cushion family">' + families.map(function (family) {
2947        return '<button type="button" data-venn-cushion-family="' + family + '" class="' + (family === state.cushionFamily ? 'is-active' : '') + '">' + family + '</button>';
2948      }).join('') + '</div>' +
2949      '<div class="venn-cushion-rail" role="group" aria-label="' + esc(state.cushionFamily) + ' Sitting Cushion products">' + cushionProducts(state.cushionFamily).map(function (product) {
2950        return cushionProductChip(product, selected && product.key === selected.key, 'data-venn-cushion-pick="' + esc(product.key) + '"', '');
2951      }).join('') + '</div>' +
2952      (selected ? '<p class="venn-cushion-note">' + esc(selected.title) + ' - ' + money(selected.salePrice || selected.price) + '</p>' : '<p class="venn-cushion-note">Select a verified Cushion before adding.</p>') +
2953      (state.cushionNativeError ? '<p class="venn-cushion-note is-error">' + esc(state.cushionNativeError) + '</p>' : '');
2954  }
2955  function roomUpgradeIncentiveMarkup(t) {
2956    if (!t || !t.count) return '';
2957    var nextCount = t.count + 1;
2958    var nextCredit = creditFor(nextCount, t.subtotal + 189);
2959    if (t.count === 1) {
2960      return '<div class="venn-room-incentive"><strong>Add the floor posture.</strong><span>One Sitting Cushion starts your room credit at $40 and gives the setup a second w
2960ay to sit.</span></div>';
2961    }
2962    if (t.count > 1 && t.count < 4) {
2963      var needed = 4 - t.count;
2964      return '<div class="venn-room-incentive"><strong>' + needed + ' more piece' + (needed === 1 ? '' : 's') + ' raises the room credit.</strong><span>Four-piece rooms get $110 back and cover desk, lounge, floor, and stretch.</span></div>';
2965    }
2966    if (t.count >= 4 && t.count < 6) {
2967      var left = 6 - t.count;
2968      return '<div class="venn-room-incentive"><strong>' + left + ' more piece' + (left === 1 ? '' : 's') + ' unlocks set pricing.</strong><span>Six-piece rooms move to 12% room credit for shared spaces, kids, studios, and clinics.</span></div>';
2969    }
2970    return '<div class="venn-room-incentive is-active"><strong>Set pricing is active.</strong><span>Your room already qualifies for the highest multi-piece credit.</span></div>';
2971  }
2972  function roomTrustMarkup() {
2973    return '<div class="venn-room-trust" aria-label="Purchase confidence">' +
2974      '<span><b>Free USA</b><small>shipping</small></span>' +
2975      '<span><b>5-year</b><small>warranty</small></span>' +
2976      '<span><b>Pump</b><small>included</small></span>' +
2977      '<span><b>30-day</b><small>returns</small></span>' +
2978      '<span><b>Made</b><small>in USA</small></span>' +
2979    '</div>';
2980  }
2981  function renderRoom() {
2982    var meta = qs('[data-venn-room-meta]', state.root);
2983    var plan = qs('[data-venn-room-plan]', state.root);
2984    var list = qs('[data-venn-room-items]', state.root);
2985    var chips = qs('[data-venn-chips]', state.root);
2986    var totals = qs('[data-venn-totals]', state.root);
2987    var clear = qs('[data-venn-clear-room]', state.root);
2988    var t = roomTotals();
2989    if (meta) meta.textContent = t.count ? t.count + ' piece' + (t.count === 1 ? '' : 's') + (t.credit ? ', -' + money(t.credit) + ' credit' : '') : 'empty';
2990    if (clear) clear.hidden = !t.count;
2991    if (plan) plan.innerHTML = t.count ? state.room.map(planPiece).join('') : '<span class="venn-empty">Pieces appear here as you add them.</span>';
2992    if (list) list.innerHTML = t.count ? state.room.map(itemRow).join('') : '<div class="venn-empty">Your room is empty. Start with a setup above, or add a piece below.</div>';
2993    if (chips) chips.innerHTML = ['Desk', 'Perch', 'Lounge', 'Floor', 'Stretch'].map(function (c) { return '<span class="venn-chip ' + (covered(c) ? 'is-on' : '') + '">' + c + '</span>'; }).join('');
2994    if (totals) {
2995      totals.innerHTML = '<div class="venn-total-row"><span>Subtotal &middot; ' + t.count + ' piece' + (t.count === 1 ? '' : 's') + '</span><strong>' + money(t.subtotal) + '</strong></div>' +
2996        (t.credit ? '<div class="venn-total-row is-credit"><span>Room credit</span><strong>-' + money(t.credit) + '</strong></div>' : '') +
2997        '<div class="venn-total-row is-total"><span>Today</span><strong>' + money(t.total) + '</strong></div>' +
2998        roomCheckoutMarkup(t.count);
2999    }
3000  }
3001  function roomCheckoutMarkup(count) {
3002    if (!count) return '';
3003    var summary = roomCartSummary();
3004    if (summary.count && summary.added === summary.count) {
3005      return '<div class="venn-room-checkout">' + roomTrustMarkup() + '<button type="button" class="venn-btn venn-btn-primary" data-venn-room-review>Review cart</button><p>' + summary.added + ' of ' + summary.count + ' piece' + (summary.count === 1 ? '' : 's') + ' added to cart.</p></div>';
3006    }
3007    var label = summary.count === 1 ? 'Add to cart' : 'Add setup to cart';
3008    var t = roomTotals();
3009    return '<div class="venn-room-checkout">' + roomUpgradeIncentiveMarkup(t) + '<button type="button" class="venn-btn venn-btn-primary" data-venn-room-add-remaining ' + (state.roomAdding ? 'disabled aria-busy="true"' : '') + '>' + (state.roomAdding ? 'Adding to cart...' : label) + '</button>' + (summary.failed ? '<p class="is-error">One piece could not be added. Try again.</p>' : '') + roomTrustMarkup() + '</div>';
3010  }
3011  function dots(items) {
3012    return items.map(function (it) {
3013      var d = it.type === 'cushion' ? 12 : it.size === 'Small' ? 18 : 22;
3014      return '<span class="venn-dot" style="width:' + d + 'px;height:' + d + 'px;' + itemTone(it) + '"></span>';
3015    }).join('');
3016  }
3017  function selectedDots(items) {
3018    return items.map(function (it) {
3019      var isCushion = it.type === 'cushion';
3020      var shortLabel = isCushion ? 'cushion' : it.size.toLowerCase();
3021      var label = isCushion ? 'Sitting Cushion, ' + finishName(it.finish) : 'Air Chair, ' + finishName(it.finish) + ', ' + it.size;
3022      var url = currentNativeImageFor(it);
3023      var visual = url ? '<img src="' + esc(url) + '" alt="" loading="lazy" decoding="async">' : '<i' + imageAttrsForItem(it) + '></i>';
3024      return '<span class="venn-selected-piece" role="img" aria-label="' + esc(label) + '" title="' + esc(label) + '"><span class="venn-selected-thumb">' + visual + '</span><small>' + esc(shortLabel) + '</small></span>';
3025    }).join('');
3026  }
3027  function setupSummary(items) {
3028    var chairs = items.filter(function (it) { return it.type === 'chair'; }).length;
3029    var cushions = items.filter(function (it) { return it.type === 'cushion'; }).length;
3030    var parts = [];
3031    if (chairs) parts.push(chairs + ' Air Chair' + (chairs === 1 ? '' : 's'));
3032    if (cushions) parts.push(cushions + ' Sitting Cushion' + (cushions === 1 ? '' : 's'));
3033    return parts.join(' + ');
3034  }
3035  function planPiece(item) {
3036    var d = item.type === 'cushion' ? 12 : item.size === 'Small' ? 18 : 22;
3037    return '<button type="button" class="venn-plan-piece" data-venn-edit="' + item.uid + '"><i style="width:' + d + 'px;height:' + d + 'px;' + itemTone(item) + '"></i><small>' + (item.type === 'cushion' ? 'cushion' : item.size.toLowerCase()) + '</small></button>';
3038  }
3039  function itemRow(item) {
3040    var editing = state.editing === item.uid;
3041    var status = itemCartStatus(item);
3042    var statusText = status === 'added' ? 'Added to cart' : status === 'adding' ? 'Adding to cart' : status === 'failed' ? 'Add failed' : 'Planned';
3043    return '<div class="venn-item"><div class="venn-item-row"><button type="button" class="venn-item-thumb" data-venn-edit="' + item.uid + '" aria-label="Edit ' + esc(finishName(item.finish)) + '" title="Edit"><span' + imageAttrsForItem(item) + '></span></button><div class="venn-item-info"><div class="venn-item-kind">' + (item.type === 'chair' ? 'Air Chair' : 'Sitting Cushion') + '</div><div class="venn-item-name">' + esc(finishName(item.finish)) + '</div><div class="venn-item-spec">' + esc(item.type === 'chair' ? item.size + ' - ' + (item.size === 'Large' ? '65 cm desk height' : '55 cm lounge height') : 'Buckwheat + wool') + ' <span class="venn-cart-state is-' + esc(status) + '">' + esc(statusText) + '</span></div></div><strong class="venn-item-price">' + money(priceFor(item)) + '</strong><div class="venn-item-actions"><button type="button" class="venn-icon-btn ' + (editing ? 'is-active' : '') + '" data-venn-edit="' + item.uid + '" aria-label="Edit" title="Edit">' + iconSvg('edit') + '</button><button type="button" class="venn-icon-btn" data-venn-duplicate="' + item.uid + '" aria-label="Duplicate" title="Duplicate">' + iconSvg('copy') + '</button><button type="button" class="venn-icon-btn" data-venn-remove="' + item.uid + '" aria-label="Remove" title="Remove">' + iconSvg('remove') + '</button></div></div>' + (editing ? editor(item) : '') + '</div>';
3044  }
3045  function editor(item) {
3046    if (item.type !== 'chair') return cushionEditor(item);
3047    var itemSeries = seriesForFinish(item.finish).key;
3048    var finishes = finishesForSeries(itemSeries);
3049    return '<div class="venn-editor">' +
3050      '<div><div class="venn-editor-label">Series</div><div class="venn-editor-row venn-editor-series">' + SERIES.map(function (s) { return '<button type="button" data-venn-edit-series="' + item.uid + ':' + s.key + '" class="' + (s.key === itemSeries ? 'is-active' : '') + '">' + esc(s.label) + '</button>'; }).join('') + '</div></div>' +
3051      '<div><div class="venn-editor-label">Finish</div><div class="venn-editor-row venn-editor-finishes">' + finishes.map(function (finish) { return finishChipMarkup(finish, key(finish) === key(item.finish), 'data-venn-edit-finish="' + item.uid + ':' + esc(finish) + '"', 'venn-editor-finish'); }).join('') + '</div></div>' +
3052      '<div><div class="venn-editor-label">Size</div><div class="venn-editor-row">' + ['Large','Small'].map(function (size) { return '<button type="button" data-venn-edit-size="' + item.uid + ':' + size + '" class="' + (item.size === size ? 'is-active' : '') + '">' + size + '</button>'; }).join('') + '</div></div>' +
3053      '<button type="button" class="venn-btn venn-btn-secondary" data-venn-done>Done</button></div>';
3054  }
3055  function cushionEditor(item) {
3056    decorateCushionItem(item);
3057    var family = item.family || 'Standard';
3058    var selected = resolveCushionProduct(item);
3059    return '<div class="venn-editor">' +
3060      '<div><div class="venn-editor-label">Family</div><div class="venn-editor-row venn-editor-series">' + ['Standard','Pendleton'].map(function (f) { return '<button type="button" data-venn-edit-cushion-family="' + item.uid + ':' + f + '" class="' + (f === family ? 'is-active' : '') + '">' + f + '</button>'; }).join('') + '</div></div>' +
3061      '<div><div class="venn-editor-label">Finish</div><div class="venn-editor-row venn-cushion-rail">' + cushionProducts(family).map(function (product) { return cushionProductChip(product, selected && product.key === selected.key, 'data-venn-edit-cushion="' + item.uid + ':' + esc(product.key) + '"', ''); }).join('') + '</div></div>' +
3062      '<p class="venn-cushion-note">' + (selected ? esc(selected.title) + ' - ' + money(selected.salePrice || selected.price) : 'Select a verified Cushion.') + '</p>' +
3063      '<button type="button" class="venn-btn venn-btn-secondary" data-venn-done>Done</button></div>';
3064  }
3065  function covered(label) {
3066    return state.room.some(function (it) {
3067      if (label === 'Desk') return it.type === 'chair' && it.size === 'Large';
3068      if (label === 'Perch') return it.type === 'chair';
3069      if (label === 'Lounge' || label === 'Stretch') return it.type === 'chair' && it.size === 'Small';
3070      if (label === 'Floor') return it.type === 'cushion';
3071      return false;
3072    });
3073  }
3074
3075  function usePreset(id) {
3076    var preset = PRESETS.find(function (p) { return p.id === id; }) || PRESETS[0];
3077    state.activePreset = preset.id;
3078    applyIntentToActiveSetup();
3079    syncNative(state.finish, state.size);
3080    applyVariantImage(state.finish, state.size);
3081    render();
3082  }
3083  function addCurrentChair() {
3084    if (state.addingAirChair || !state.available) return;
3085    clearTimeout(state.airChairTimer);
3086    state.airChairAdded = false;
3087    state.addingAirChair = true;
3088    renderConfig();
3089    syncNative(state.finish, state.size).then(function (ok) {
3090      if (!ok) {
3091        state.addingAirChair = false;
3092        setStatus('Could not add this Air Chair. Please try again.', true);
3093        renderConfig();
3094        return;
3095      }
3096      var controls = nativeControls();
3097      if (controls.add && !controls.add.disabled && controls.add.getAttribute('aria-disabled') !== 'true') {
3098        controls.add.click();
3099        var planned = firstPlannedRoomItem(function (item) { return sameChair(item, state.finish, state.size); });
3100        if (planned) {
3101          planned.cartStatus = 'added';
3102          planned.nativeImage = imageForFinish(state.finish, state.size);
3103        } else {
3104          var openPlannedChair = state.room.find(function (item) {
3105            return item.type === 'chair' && itemCartStatus(item) !== 'added' && itemCartStatus(item) !== 'adding';
3106          });
3107          if (openPlannedChair) {
3108            openPlannedChair.finish = state.finish;
3109            openPlannedChair.size = state.size;
3110            openPlannedChair.nativeImage = imageForFinish(state.finish, state.size);
3111            openPlannedChair.cartStatus = 'added';
3112          } else {
3113            var addedChair = withUid(chair(state.finish, state.size));
3114            addedChair.cartStatus = 'added';
3115            addedChair.nativeImage = imageForFinish(state.finish, state.size);
3116            state.room.push(addedChair);
3117          }
3118        }
3119        state.addingAirChair = false;
3120        state.airChairAdded = true;
3121        state.nativeCartAdds += 1;
3122        renderConfig();
3123        renderRoom();
3124        state.airChairTimer = setTimeout(function () {
3125          state.airChairAdded = false;
3126          renderConfig();
3127        }, 1300);
3128      } else {
3129        state.addingAirChair = false;
3130        setStatus('Could not add this Air Chair. Please try again.', true);
3131        renderConfig();
3132      }
3133    });
3134  }
3135  function addChairRoomItemToCart(item) {
3136    item.cartStatus = 'adding';
3137    renderRoom();
3138    return syncNative(item.finish, item.size).then(function (ok) {
3139      if (!ok) throw new Error('Could not add this Air Chair.');
3140      var controls = nativeControls();
3141      if (!controls.add || controls.add.disabled || controls.add.getAttribute('aria-disabled') === 'true') throw new Error('Native Air Chair Add to Cart was not available.');
3142      controls.add.click();
3143      item.cartStatus = 'added';
3144      state.nativeCartAdds += 1;
3145      renderRoom();
3146      return true;
3147    }).catch(function (err) {
3148      item.cartStatus = 'failed';
3149      renderRoom();
3150      throw err;
3151    });
3152  }
3153  function addCushionNativeProductToCart(mappedProduct) {
3154    if (!validateCushionProductBlock()) throw new Error(state.cushionNativeError || 'Native Sitting Cushion inline Product Block controls were not found.');
3155    var productRoot = cushionProductRoot();
3156    if (!productRoot) throw new Error('Native Sitting Cushion Product Block was not found.');
3157    return syncNativeCushion(mappedProduct, productRoot).then(function (ok) {
3158      if (!ok) throw new Error(state.cushionNativeError || 'Native Sitting Cushion variant did n
3158ot verify.');
3159      var controls = cushionNativeControls(productRoot);
3160      if (!controls.add) throw new Error('Native Sitting Cushion Add to Cart was not found.');
3161      var before = cartSignal();
3162      controls.add.click();
3163      return waitForCushionAddResult(productRoot, before, 0).then(function (added) {
3164        if (!added) throw new Error('Squarespace did not confirm the Sitting Cushion add.');
3165        state.nativeCartAdds += 1;
3166        return true;
3167      });
3168    });
3169  }
3170  function addCushionRoomItemToCart(item) {
3171    var product = resolveCushionProduct(item);
3172    if (!product) return Promise.reject(new Error('Could not resolve this Sitting Cushion.'));
3173    item.cartStatus = 'adding';
3174    renderRoom();
3175    return addCushionNativeProductToCart(product).then(function () {
3176      applyCushionProduct(item, product);
3177      item.cartStatus = 'added';
3178      renderRoom();
3179      return true;
3180    }).catch(function (err) {
3181      item.cartStatus = 'failed';
3182      renderRoom();
3183      throw err;
3184    });
3185  }
3186  function addRoomItemToCart(item) {
3187    return item.type === 'cushion' ? addCushionRoomItemToCart(item) : addChairRoomItemToCart(item);
3188  }
3189  function addRemainingRoomItems() {
3190    if (state.roomAdding) return;
3191    var remaining = state.room.filter(function (item) { return itemCartStatus(item) !== 'added'; });
3192    if (!remaining.length) return;
3193    state.roomAdding = true;
3194    renderRoom();
3195    var chain = Promise.resolve();
3196    remaining.forEach(function (item) {
3197      chain = chain.then(function () { return addRoomItemToCart(item); });
3198    });
3199    chain.then(function () {
3200      state.roomAdding = false;
3201      setStatus('Room pieces added to Squarespace cart.', false);
3202      renderRoom();
3203    }).catch(function (err) {
3204      state.roomAdding = false;
3205      setStatus(err.message || 'Could not add every room piece.', true);
3206      renderRoom();
3207    });
3208  }
3209  function addMappedCushionToCart(mappedProduct) {
3210    state.cushionCartFallback = null;
3211    if (!mappedProduct || !mappedProduct.available || !mappedProduct.itemId || !mappedProduct.variantId || !mappedProduct.sku) {
3212      setStatus('Select an available Sitting Cushion before adding.', true);
3213      return false;
3214    }
3215    if (state.addingCushion) return false;
3216    clearTimeout(state.cushionTimer);
3217    state.cushionAdded = false;
3218    state.addingCushion = true;
3219    state.cushionPendingProduct = mappedProduct;
3220    renderConfig();
3221    Promise.resolve().then(function () {
3222      return addCushionNativeProductToCart(mappedProduct).then(function () {
3223          var planned = firstPlannedRoomItem(function (item) { return sameCushion(item, mappedProduct); });
3224          if (planned) {
3225            applyCushionProduct(planned, mappedProduct);
3226            planned.cartStatus = 'added';
3227          } else {
3228            state.room.push(withUid(decorateCushionItem({ type: 'cushion', cushionKey: mappedProduct.key, family: mappedProduct.family, finish: mappedProduct.nativeFinish || mappedProduct.finish, size: 'One Size', variantId: mappedProduct.variantId, sku: mappedProduct.sku, itemId: mappedProduct.itemId, cartStatus: 'added' })));
3229          }
3230          state.addingCushion = false;
3231          state.cushionAdded = true;
3232          state.cushionPendingProduct = null;
3233          setStatus('Sitting Cushion added through Squarespace.', false);
3234          render();
3235          state.cushionTimer = setTimeout(function () {
3236            state.cushionAdded = false;
3237            renderConfig();
3238          }, 1300);
3239          return true;
3240      });
3241    }).catch(function (err) {
3242      state.addingCushion = false;
3243      state.cushionAdded = false;
3244      state.cushionNativeReady = false;
3245      state.cushionNativeKey = '';
3246      state.cushionNativeError = err.message;
3247      state.cushionPendingProduct = null;
3248      setStatus(err.message || 'Could not add this Sitting Cushion. Please try again.', true);
3249      renderConfig();
3250      return false;
3251    });
3252    return false;
3253  }
3254  function bind() {
3255    if (state.bound || !state.root) return;
3256    state.bound = true;
3257    state.root.addEventListener('click', function (event) {
3258      var root = state.root;
3259      if (!root.contains(event.target)) return;
3260      var gallery = event.target.closest('[data-venn-gallery]');
3261      var preset = event.target.closest('[data-venn-preset]');
3262      var series = event.target.closest('[data-venn-series-key]');
3263      var finish = event.target.closest('[data-venn-finish]');
3264      var size = event.target.closest('[data-venn-size]');
3265      var edit = event.target.closest('[data-venn-edit]');
3266      var remove = event.target.closest('[data-venn-remove]');
3267      var duplicate = event.target.closest('[data-venn-duplicate]');
3268      var editSize = event.target.closest('[data-venn-edit-size]');
3269      var editSeries = event.target.closest('[data-venn-edit-series]');
3270      var editFinish = event.target.closest('[data-venn-edit-finish]');
3271      var cushionFamily = event.target.closest('[data-venn-cushion-family]');
3272      var cushionPick = event.target.closest('[data-venn-cushion-pick]');
3273      var editCushionFamily = event.target.closest('[data-venn-edit-cushion-family]');
3274      var editCushion = event.target.closest('[data-venn-edit-cushion]');
3275      if (gallery) { state.gallery = Number(gallery.getAttribute('data-venn-gallery')) || 0; renderGallery(); return; }
3276      if (preset) { usePreset(preset.getAttribute('data-venn-preset')); return; }
3277      if (series) {
3278        state.series = series.getAttribute('data-venn-series-key');
3279        state.finish = finishesForSeries(state.series)[0] || state.finish;
3280        state.renderedFinishSeries = '';
3281        applyIntentToActiveSetup();
3282        syncNative(state.finish, state.size);
3283        applyVariantImage(state.finish, state.size);
3284        render();
3285        return;
3286      }
3287      if (finish) {
3288        state.finish = finish.getAttribute('data-venn-finish');
3289        state.series = seriesForFinish(state.finish).key;
3290        applyIntentToActiveSetup();
3291        syncNative(state.finish, state.size);
3292        applyVariantImage(state.finish, state.size);
3293        render();
3294        return;
3295      }
3296      if (size) {
3297        state.size = size.getAttribute('data-venn-size');
3298        applyIntentToActiveSetup();
3299        syncNative(state.finish, state.size);
3300        applyVariantImage(state.finish, state.size);
3301        render();
3302        return;
3303      }
3304      if (event.target.closest('[data-venn-add-air-chair]')) { addCurrentChair(); return; }
3305      if (event.target.closest('[data-venn-room-review]')) {
3306        if (!openNativeCart()) setStatus('Open the Squarespace cart from the site header to checkout.', true);
3307        return;
3308      }
3309      if (event.target.closest('[data-venn-room-add-remaining]')) {
3310        addRemainingRoomItems();
3311        return;
3312      }
3313      if (event.target.closest('[data-venn-add-cushion]')) {
3314        if (!state.cushionOpen) {
3315          state.cushionOpen = true;
3316          state.selectedCushionKey = '';
3317          state.cushionCartFallback = null;
3318          state.cushionNativeReady = false;
3319          state.cushionNativeKey = '';
3320          state.cushionNativeError = '';
3321          renderConfig();
3322          setStatus('Choose a Sitting Cushion finish.', false);
3323          return;
3324        }
3325        if (!state.selectedCushionKey) {
3326          state.cushionOpen = false;
3327          state.cushionCartFallback = null;
3328          state.cushionNativeReady = false;
3329          state.cushionNativeKey = '';
3330          state.cushionNativeError = '';
3331          renderConfig();
3332          setStatus('', false);
3333          return;
3334        }
3335        addMappedCushionToCart(cushionProductByKey(state.selectedCushionKey, state.cushionFamily));
3336        return;
3337      }
3338      if (cushionFamily) {
3339        state.cushionFamily = cushionFamily.getAttribute('data-venn-cushion-family');
3340        state.selectedCushionKey = '';
3341        state.cushionCartFallback = null;
3342        state.cushionNativeReady = false;
3343        state.cushionNativeKey = '';
3344        state.cushionNativeError = '';
3345        renderConfig();
3346        return;
3347      }
3348      if (cushionPick) {
3349        state.selectedCushionKey = cushionPick.getAttribute('data-venn-cushion-pick');
3350        state.cushionCartFallback = null;
3351        state.cushionNativeReady = false;
3352        state.cushionNativeKey = '';
3353        state.cushionNativeError = '';
3354        renderConfig();
3355        return;
3356      }
3357      if (event.target.closest('[data-venn-clear-room]')) { state.room = []; state.editing = null; state.roomAdding = false; render(); return; }
3358      if (edit) { var editId = edit.getAttribute('data-venn-edit'); state.editing = state.editing === editId ? null : editId; renderRoom(); return; }
3359      if (remove) { state.room = state.room.filter(function (it) { return it.uid !== remove.getAttribute('data-venn-remove'); }); renderRoom(); return; }
3360      if (duplicate) {
3361        var src = state.room.find(function (it) { return it.uid === duplicate.getAttribute('data-venn-dupl
3361icate'); });
3362        if (src) {
3363          var copy = withUid(src);
3364          copy.cartStatus = 'planned';
3365          state.room.push(copy);
3366        }
3367        renderRoom();
3368        return;
3369      }
3370      if (editSeries) {
3371        var seriesParts = editSeries.getAttribute('data-venn-edit-series').split(':');
3372        var seriesItem = state.room.find(function (it) { return it.uid === seriesParts[0]; });
3373        var firstFinish = finishesForSeries(seriesParts[1])[0];
3374        if (seriesItem && firstFinish) {
3375          seriesItem.finish = firstFinish;
3376          seriesItem.nativeImage = imageForFinish(seriesItem.finish, seriesItem.size);
3377          seriesItem.cartStatus = 'planned';
3378          state.finish = canonicalFinish(seriesItem.finish);
3379          state.size = seriesItem.size || state.size;
3380          state.series = seriesForFinish(state.finish).key;
3381          state.renderedFinishSeries = '';
3382          syncNative(state.finish, state.size);
3383        }
3384        render();
3385        return;
3386      }
3387      if (editFinish) {
3388        var finishValue = editFinish.getAttribute('data-venn-edit-finish');
3389        var finishUid = finishValue.slice(0, finishValue.indexOf(':'));
3390        var nextFinish = finishValue.slice(finishValue.indexOf(':') + 1);
3391        var finishItem = state.room.find(function (it) { return it.uid === finishUid; });
3392        if (finishItem) {
3393          finishItem.finish = nextFinish;
3394          finishItem.nativeImage = imageForFinish(finishItem.finish, finishItem.size);
3395          finishItem.cartStatus = 'planned';
3396          state.finish = canonicalFinish(finishItem.finish);
3397          state.size = finishItem.size || state.size;
3398          state.series = seriesForFinish(state.finish).key;
3399          state.renderedFinishSeries = '';
3400          syncNative(state.finish, state.size);
3401        }
3402        render();
3403        return;
3404      }
3405      if (editSize) {
3406        var parts = editSize.getAttribute('data-venn-edit-size').split(':');
3407        var item = state.room.find(function (it) { return it.uid === parts[0]; });
3408        if (item) {
3409          item.size = parts[1];
3410          item.nativeImage = imageForFinish(item.finish, item.size);
3411          item.cartStatus = 'planned';
3412          if (item.type === 'chair') {
3413            state.finish = canonicalFinish(item.finish);
3414            state.size = item.size || state.size;
3415            state.series = seriesForFinish(state.finish).key;
3416            state.renderedFinishSeries = '';
3417            syncNative(state.finish, state.size);
3418          }
3419        }
3420        render();
3421        return;
3422      }
3423      if (editCushionFamily) {
3424        var cushionFamilyParts = editCushionFamily.getAttribute('data-venn-edit-cushion-family').split(':');
3425        var cushionFamilyItem = state.room.find(function (it) { return it.uid === cushionFamilyParts[0]; });
3426        var firstCushion = cushionProducts(cushionFamilyParts[1])[0];
3427        if (cushionFamilyItem && firstCushion) {
3428          applyCushionProduct(cushionFamilyItem, firstCushion);
3429          cushionFamilyItem.cartStatus = 'planned';
3430        }
3431        renderRoom();
3432        return;
3433      }
3434      if (editCushion) {
3435        var cushionValue = editCushion.getAttribute('data-venn-edit-cushion');
3436        var cushionUid = cushionValue.slice(0, cushionValue.indexOf(':'));
3437        var cushionKey = cushionValue.slice(cushionValue.indexOf(':') + 1);
3438        var cushionItem = state.room.find(function (it) { return it.uid === cushionUid; });
3439        if (cushionItem) {
3440          var nextCushion = cushionProductByKey(cushionKey, cushionItem.family || 'Standard') || cushionProductByKey(cushionKey, 'Standard') || cushionProductByKey(cushionKey, 'Pendleton');
3441          if (nextCushion) {
3442            applyCushionProduct(cushionItem, nextCushion);
3443            cushionItem.cartStatus = 'planned';
3444          }
3445        }
3446        renderRoom();
3447        return;
3448      }
3449      if (event.target.closest('[data-venn-done]')) { state.editing = null; renderRoom(); }
3450    });
3451  }
3452
3453  function vafLabelFromThumb(node) {
3454    var img = qs('img', node);
3455    var small = qs('small', node);
3456    return normalize(
3457      node.getAttribute('data-vaf-finish') ||
3458      node.getAttribute('title') ||
3459      node.getAttribute('aria-label') ||
3460      (img && img.alt) ||
3461      (small && small.textContent) ||
3462      node.textContent
3463    ).replace(/^Configure\s+/i, '').replace(/^Preview\s+/i, '').replace(/[↑→]/g, '').trim();
3464  }
3465  function vafScope(node) {
3466    return node && (node.closest('.vaf-world-row') || node.closest('.vaf-world-row-dark') || node.closest('.vaf-world-sports-target') || node.closest('.vaf-pair-card') || node.closest('.vaf-section'));
3467  }
3468  function vafFamilyFromScope(scope) {
3469    var text = scope ? scope.textContent.toLowerCase() : '';
3470    if (text.indexOf('pendleton jacquard') > -1) return 'Pendleton Jacquard';
3471    if (text.indexOf('pendleton wool') > -1) return 'Pendleton Wool';
3472    if (text.indexOf('sports series') > -1) return 'Sports';
3473    if (text.indexOf('solar series') > -1) return 'Solar';
3474    return 'Standard';
3475  }
3476  function vafFinishFromNode(node) {
3477    var raw = node.getAttribute('data-vaf-finish');
3478    if (raw) return normalize(raw).replace(/\\u2014/g, '\u2014');
3479    var label = vafLabelFromThumb(node).replace(/\s*Air Chair\s*$/i, '').replace(/\s*Series\s*$/i, '').replace(/\s*360.*$/i, '').trim();
3480    if (!label) return '';
3481    if (label.indexOf('\u2014') > -1) return label;
3482    return vafFamilyFromScope(vafScope(node)) + ' \u2014 ' + label;
3483  }
3484  function vafImageFromNode(node) {
3485    var img = qs('img', node);
3486    var src = img && img.getAttribute('src');
3487    if (!src) return '';
3488    if (/squarespace-cdn\.com|static1\.squarespace\.com/.test(src)) return src.replace(/\?.*$/, '') + '?format=1000w';
3489    return src;
3490  }
3491  function vafPreviewForScope(scope) {
3492    return scope && (qs('img[data-vaf-air-main]', scope) || qs('.vaf-world-image img', scope) || qs('figure img', scope));
3493  }
3494  function vafSetActive(scope, node) {
3495    if (!scope || !node) return;
3496    qsa('.vaf-real-thumb, .vaf-sport-item', scope).forEach(function (item) { item.classList.remove('is-active'); });
3497    node.classList.add('is-active');
3498  }
3499  function vafUpdatePreview(node) {
3500    var scope = vafScope(node);
3501    var finish = vafFinishFromNode(node);
3502    var size = node.getAttribute('data-vaf-size') || (node.closest('[data-size]') && node.closest('[data-size]').getAttribute('data-size')) || 'Large';
3503    var preview = vafPreviewForScope(scope);
3504    var src = vafImageFromNode(node);
3505    if (scope && finish) {
3506      scope.setAttribute('data-vaf-selected-finish', finish);
3507      scope.setAttribute('data-vaf-selected-size', size);
3508    }
3509    if (preview && src) {
3510      preview.removeAttribute('srcset');
3511      preview.src = src;
3512      preview.setAttribute('data-vaf-air-main', finish);
3513      preview.setAttribute('data-vaf-size', size);
3514      preview.alt = finishName(finish) + ' Air Chair';
3515    }
3516    if (finish) preloadVariantImage(finish, size);
3517    vafSetActive(scope, node);
3518  }
3519  function vafSelectedFromScope(scope) {
3520    var active = scope && (qs('.vaf-real-thumb.is-active', scope) || qs('.vaf-sport-item.is-active', scope));
3521    var finish = scope && scope.getAttribute('data-vaf-selected-finish');
3522    var size = scope && scope.getAttribute('data-vaf-selected-size') || 'Large';
3523    if (!finish && active) {
3524      finish = vafFinishFromNode(active);
3525      size = active.getAttribute('data-vaf-size') || size;
3526    }
3527    if (!finish) {
3528      var preview = vafPreviewForScope(scope);
3529      finish = preview && preview.getAttribute('data-vaf-air-main');
3530      size = preview && preview.getAttribute('data-vaf-size') || size;
3531    }
3532    if (!finish) {
3533      var first = scope && (qs('.vaf-real-thumb', scope) || qs('.vaf-sport-item', scope));
3534      finish = first && vafFinishFromNode(first);
3535      size = first && first.getAttribute('data-vaf-size') || size;
3536    }
3537    return { finish: finish || '', size: size || 'Large' };
3538  }
3539  function bindAfterHeroWorlds() {
3540    if (window.__VENN_AFTER_HERO_WORLDS_BOUND__) return;
3541    window.__VENN_AFTER_HERO_WORLDS_BOUND__ = true;
3542
3543    document.addEventListener('click', function (event) {
3544      var root = qs('#venn-worlds-and-sizes-final');
3545      if (!root) return;
3546
3547      var thumb = event.target.closest('#venn-worlds-and-sizes-final .vaf-real-thumb, #venn-worlds-and-sizes-final .vaf-sport-item');
3548      if (thumb) {
3549        event.preventDefault();
3550        event.stopPropagation();
3551        vafUpdatePreview(thumb);
3552        return;
3553      }
3554
3555      var link = event.target.closest('#venn-worlds-and-sizes-final .vaf-text-link');
3556      if (link) {
3557        var selected = vafSelectedFromScope(vafScope(link));
3558        if (selected.finish) {
3559          event.preventDefault();
3560          event.stopPropagation();
3561          selectAirChairIntent(selected.finish, selected.size, { scroll: true });
3562        }
3563      }
3564    }, true);
3565
3566    var sizeRoot = qs('#venn-worlds-and-sizes-final .vaf-size-target');
3567    if (sizeRoot) {
3568      var triggers = qsa('.vaf-size-tabs span, .vaf-size-tabs button, [data-view-trigger]', sizeRoot);
3569      ['room', 'large', 'small'].forEach(function (view, i) {
3570        var trigger = triggers[i];
3571        if (!trigger) return;
3572        trigger.setAttribute('role', 'button');
3573        trigger.setAttribute('tabindex', '0');
3574        trigger.setAttribute('data-view-trigger', view);
3575        trigger.addEventListener('click', function () {
3576          sizeRoot.setAttribute('data-view', view);
3577          triggers.forEach(function (t) { t.classList.toggle('is-active', t === trigger); });
3578        });
3579        trigger.addEventListener('keydown', function (e) {
3580          if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); trigger.click(); }
3581        });
3582      });
3583    }
3584
3585    window.VENN_SELECT_AIR_CHAIR_INTENT = selectAirChairIntent;
3586  }
3587
3588  function init() {
3589    state.root = qs(ROOT_SELECTOR);
3590    if (!state.root || state.root.getAttribute('data-venn-mounted') === 'true') return;
3591    state.root.setAttribute('data-venn-mounted', 'true');
3592    state.mounted = true;
3593    bind();
3594    render();
3595    tryMarkNativeReady(0);
3596    try { validateCushionProductBlock(); }
3597    catch (err) {
3598      state.cushionNativeError = err.message || 'Native Sitting Cushion bridge did not initialize.';
3599    }
3600    renderConfig();
3601    bindAfterHeroWorlds();
3602    window.VENN_SELECT_AIR_CHAIR_INTENT = selectAirChairIntent;
3603  }
3604  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init);
3605  else init();
3606})();
3607</script>
3607
3608
3609
3610
3611
3612<!-- Venn Motion Loader — V6 godmode choreography -->
3613<script>
3614(function () {
3615  if (window.__VENN_MOTION_LOADER_V6__) return;
3616  window.__VENN_MOTION_LOADER_V6__ = true;
3617
3618  var loaded = false;
3619  var loading = false;
3620  var base = 'https://venn-motion.pages.dev/';
3621
3622  function appendScript(src, done) {
3623    var s = document.createElement('script');
3624    s.src = src;
3625    s.async = true;
3626    s.onload = done || function () {};
3627    s.onerror = function () {
3628      console.warn('Failed to load Venn motion file:', src);
3629    };
3630    document.body.appendChild(s);
3631  }
3632
3633  function loadMotion() {
3634    if (loaded || loading) return;
3635    loading = true;
3636
3637    appendScript(base + 'motion-textures.js?v=6', function () {
3638      appendScript(base + 'motion.bundle.js?v=6', function () {
3639        loaded = true;
3640      });
3641    });
3642  }
3643
3644  function boot() {
3645    var movement = document.getElementById('movement');
3646    if (!movement) return;
3647
3648    if (document.readyState === 'complete') {
3649      setTimeout(loadMotion, 300);
3650    } else {
3651      window.addEventListener('load', function () {
3652        setTimeout(loadMotion, 300);
3653      }, { once: true });
3654    }
3655
3656    if ('IntersectionObserver' in window) {
3657      var io = new IntersectionObserver(function (entries) {
3658        if (entries.some(function (entry) { return entry.isIntersecting; })) {
3659          io.disconnect();
3660          loadMotion();
3661        }
3662      }, { rootMargin: '6500px 0px' });
3663
3664      io.observe(movement);
3665    }
3666
3667    if (location.hash === '#movement') {
3668      loadMotion();
3669    }
3670  }
3671
3672  if (document.readyState === 'loading') {
3673    document.addEventListener('DOMContentLoaded', boot);
3674  } else {
3675    boot();
3676  }
3677})();
3678</script>
3678<script data-sqs-type="imageloader-bootstrapper">if(window.ImageLoader) window.ImageLoader.bootstrap({}, document);</script>
3678<script>Squarespace.afterBodyLoad(Y);</script>
3678<svg xmlns="http://www.w3.org/2000/svg" version="1.1" style="display:none" data-usage="social-icons-svg"><symbol id="facebook-icon" viewBox="0 0 64 64"><path d="M34.1,47V33.3h4.6l0.7-5.3h-5.3v-3.4c0-1.5,0.4-2.6,2.6-2.6l2.8,0v-4.8c-0.5-0.1-2.2-0.2-4.1-0.2 c-4.1,0-6.9,2.5-6.9,7V28H24v5.3h4.6V47H34.1z"/></symbol><symbol id="facebook-mask" viewBox="0 0 64 64"><path d="M0,0v64h64V0H0z M39.6,22l-2.8,0c-2.2,0-2.6,1.1-2.6,2.6V28h5.3l-0.7,5.3h-4.6V47h-5.5V33.3H24V28h4.6V24 c0-4.6,2.8-7,6.9-7c2,0,3.6,0.1,4.1,0.2V22z"/></symbol><symbol id="instagram-unauth-icon" viewBox="0 0 64 64"><path d="M46.91,25.816c-0.073-1.597-0.326-2.687-0.697-3.641c-0.383-0.986-0.896-1.823-1.73-2.657c-0.834-0.834-1.67-1.347-2.657-1.73c-0.954-0.371-2.045-0.624-3.641-0.697C36.585,17.017,36.074,17,32,17s-4.585,0.017-6.184,0.09c-1.597,0.073-2.687,0.326-3.641,0.697c-0.986,0.383-1.823,0.896-2.657,1.73c-0.834,0.834-1.347,1.67-1.73,2.657c-0.371,0.954-0.624,2.045-0.697,3.641C17.017,27.415,17,27.926,17,32c0,4.074,0.017,4.585,0.09,6.184c0.073,1.597,0.326,2.687,0.697,3.641c0.383,0.986,0.896,1.823,1.73,2.657c0.834,0.834,1.67,1.347,2.657,1.73c0.954,0.371,2.045,0.624,3.641,0.697C27.415,46.983,27.926,47,32,47s4.585-0.017,6.184-0.09c1.597-0.073,2.687-0.326,3.641-0.697c0.986-0.383,1.823-0.896,2.657-1.73c0.834-0.834,1.347-1.67,1.73-2.657c0.371-0.954,0.624-2.045,0.697-3.641C46.983,36.585,47,36.074,47,32S46.983,27.415,46.91,25.816z M44.21,38.061c-0.067,1.462-0.311,2.257-0.516,2.785c-0.272,0.7-0.597,1.2-1.122,1.725c-0.525,0.525-1.025,0.85-1.725,1.122c-0.529,0.205-1.323,0.45-2.785,0.516c-1.581,0.072-2.056,0.087-6.061,0.087s-4.48-0.015-6.061-0.087c-1.462-0.067-2.257-0.311-2.785-0.516c-0.7-0.272-1.2-0.597-1.725-1.122c-0.525-0.525-0.85-1.025-1.122-1.725c-0.205-0.529-0.45-1.323-0.516-2.785c-0.072-1.582-0.087-2.056-0.087-6.061s0.015-4.48,0.087-6.061c0.067-1.462,0.311-2.257,0.516-2.785c0.272-0.7,0.597-1.2,1.122-1.725c0.525-0.525,1.025-0.85,1.725-1.122c0.529-0.205,1.323-0.45,2.785-0.516c1.582-0.072,2.056-0.087,6.061-0.087s4.48,0.015,6.061,0.087c1.462,0.067,2.257,0.311,2.785,0.516c0.7,0.272,1.2,0.597,1.725,1.122c0.525,0.525,0.85,1.025,1.122,1.725c0.205,0.529,0.45,1.323,0.516,2.785c0.072,1.582,0.087,2.056,0.087,6.061S44.282,36.48,44.21,38.061z M32,24.297c-4.254,0-7.703,3.449-7.703,7.703c0,4.254,3.449,7.703,7.703,7.703c4.254,0,7.703-3.449,7.703-7.703C39.703,27.746,36.254,24.297,32,24.297z M32,37c-2.761,0-5-2.239-5-5c0-2.761,2.239-5,5-5s5,2.239,5,5C37,34.761,34.761,37,32,37z M40.007,22.193c-0.994,0-1.8,0.806-1.8,1.8c0,0.994,0.806,1.8,1.8,1.8c0.994,0,1.8-0.806,1.8-1.8C41.807,22.999,41.001,22.193,40.007,22.193z"/></symbol><symbol id="instagram-unauth-mask" viewBox="0 0 64 64"><path d="M43.693,23.153c-0.272-0.7-0.597-1.2-1.122-1.725c-0.525-0.525-1.025-0.85-1.725-1.122c-0.529-0.205-1.323-0.45-2.785-0.517c-1.582-0.072-2.056-0.087-6.061-0.087s-4.48,0.015-6.061,0.087c-1.462,0.067-2.257,0.311-2.785,0.517c-0.7,0.272-1.2,0.597-1.725,1.122c-0.525,0.525-0.85,1.025-1.122,1.725c-0.205,0.529-0.45,1.323-0.516,2.785c-0.072,1.582-0.087,2.056-0.087,6.061s0.015,4.48,0.087,6.061c0.067,1.462,0.311,2.257,0.516,2.785c0.272,0.7,0.597,1.2,1.122,1.725s1.025,0.85,1.725,1.122c0.529,0.205,1.323,0.45,2.785,0.516c1.581,0.072,2.056,0.087,6.061,0.087s4.48-0.015,6.061-0.087c1.462-0.067,2.257-0.311,2.785-0.516c0.7-0.272,1.2-0.597,1.725-1.122s0.85-1.025,1.122-1.725c0.205-0.529,0.45-1.323,0.516-2.785c0.072-1.582,0.087-2.056,0.087-6.061s-0.015-4.48-0.087-6.061C44.143,24.476,43.899,23.682,43.693,23.153z M32,39.703c-4.254,0-7.703-3.449-7.703-7.703s3.449-7.703,7.703-7.703s7.703,3.449,7.703,7.703S36.254,39.703,32,39.703z M40.007,25.793c-0.994,0-1.8-0.806-1.8-1.8c0-0.994,0.806-1.8,1.8-1.8c0.994,0,1.8,0.806,1.8,1.8C41.807,24.987,41.001,25.793,40.007,25.793z M0,0v64h64V0H0z M46.91,38.184c-0.073,1.597-0.326,2.687-0.697,3.641c-0.383,0.986-0.896,1.823-1.73,2.657c-0.834,0.834-1.67,1.347-2.657,1.73c-0.954,0.371-2.044,0.624-3.641,0.697C36.585,46.983,36.074,47,32,47s-4.585-0.017-6.184-0.09c-1.597-0.073-2.687-0.326-3.641-0.697c-0.986-0.383-1.823-0.896-2.657-1.73c-0.834-0.834-1.347-1.67-1.73-2.657c-0.371-0.954-0.624-2.044-0.697-3.641C17.017,36.585,17,36.074,17,32c0-4.074,0.017-4.585,0.09-6.185c0.073-1.597,0.326-2.687,0.697-3.641c0.383-0.986,0.896-1.823,1.73-2.657c0.834-0.834,1.67-1.347,2.657-1.73c0.954-0.371,2.045-0.624,3.641-0.697C27.415,17.017,27.926,17,32,17s4.585,0.017,6.184,0.09c1.597,0.073,2.687,0.326,3.641,0.697c0.986,0.383,1.823,0.896,2.657,1.73c0.834,0.834,1.347,1.67,1.73,2.657c0.371,0.954,0.624,2.044,0.697,3.641C46.983,27.415,47,27.926,47,32C47,36.074,46.983,36.585,46.91,38.184z M32,27c-2.761,0-5,2.239-5,5s2.239,5,5,5s5-2.239,5-5S34.761,27,32,27z"/></symbol>
3678<symbol id="pinterest-unauth-icon" viewBox="0 0 64 64"><path d="M32,16c-8.8,0-16,7.2-16,16c0,6.6,3.9,12.2,9.6,14.7c0-1.1,0-2.5,0.3-3.7 c0.3-1.3,2.1-8.7,2.1-8.7s-0.5-1-0.5-2.5c0-2.4,1.4-4.1,3.1-4.1c1.5,0,2.2,1.1,2.2,2.4c0,1.5-0.9,3.7-1.4,5.7 c-0.4,1.7,0.9,3.1,2.5,3.1c3,0,5.1-3.9,5.1-8.5c0-3.5-2.4-6.1-6.7-6.1c-4.9,0-7.9,3.6-7.9,7.7c0,1.4,0.4,2.4,1.1,3.1 c0.3,0.3,0.3,0.5,0.2,0.9c-0.1,0.3-0.3,1-0.3,1.3c-0.1,0.4-0.4,0.6-0.8,0.4c-2.2-0.9-3.3-3.4-3.3-6.1c0-4.5,3.8-10,11.4-10 c6.1,0,10.1,4.4,10.1,9.2c0,6.3-3.5,11-8.6,11c-1.7,0-3.4-0.9-3.9-2c0,0-0.9,3.7-1.1,4.4c-0.3,1.2-1,2.5-1.6,3.4 c1.4,0.4,3,0.7,4.5,0.7c8.8,0,16-7.2,16-16C48,23.2,40.8,16,32,16z"/></symbol><symbol id="pinterest-unauth-mask" viewBox="0 0 64 64"><path d="M0,0v64h64V0H0z M32,48c-1.6,0-3.1-0.2-4.5-0.7c0.6-1,1.3-2.2,1.6-3.4c0.2-0.7,1.1-4.4,1.1-4.4 c0.6,1.1,2.2,2,3.9,2c5.1,0,8.6-4.7,8.6-11c0-4.7-4-9.2-10.1-9.2c-7.6,0-11.4,5.5-11.4,10c0,2.8,1,5.2,3.3,6.1 c0.4,0.1,0.7,0,0.8-0.4c0.1-0.3,0.2-1,0.3-1.3c0.1-0.4,0.1-0.5-0.2-0.9c-0.6-0.8-1.1-1.7-1.1-3.1c0-4,3-7.7,7.9-7.7 c4.3,0,6.7,2.6,6.7,6.1c0,4.6-2,8.5-5.1,8.5c-1.7,0-2.9-1.4-2.5-3.1c0.5-2,1.4-4.2,1.4-5.7c0-1.3-0.7-2.4-2.2-2.4 c-1.7,0-3.1,1.8-3.1,4.1c0,1.5,0.5,2.5,0.5,2.5s-1.8,7.4-2.1,8.7c-0.3,1.2-0.3,2.6-0.3,3.7C19.9,44.2,16,38.6,16,32 c0-8.8,7.2-16,16-16c8.8,0,16,7.2,16,16C48,40.8,40.8,48,32,48z"/></symbol><symbol id="twitter-unauth-icon" viewBox="0 0 64 64"><path d="M48,22.1c-1.2,0.5-2.4,0.9-3.8,1c1.4-0.8,2.4-2.1,2.9-3.6c-1.3,0.8-2.7,1.3-4.2,1.6 C41.7,19.8,40,19,38.2,19c-3.6,0-6.6,2.9-6.6,6.6c0,0.5,0.1,1,0.2,1.5c-5.5-0.3-10.3-2.9-13.5-6.9c-0.6,1-0.9,2.1-0.9,3.3 c0,2.3,1.2,4.3,2.9,5.5c-1.1,0-2.1-0.3-3-0.8c0,0,0,0.1,0,0.1c0,3.2,2.3,5.8,5.3,6.4c-0.6,0.1-1.1,0.2-1.7,0.2c-0.4,0-0.8,0-1.2-0.1 c0.8,2.6,3.3,4.5,6.1,4.6c-2.2,1.8-5.1,2.8-8.2,2.8c-0.5,0-1.1,0-1.6-0.1c2.9,1.9,6.4,2.9,10.1,2.9c12.1,0,18.7-10,18.7-18.7 c0-0.3,0-0.6,0-0.8C46,24.5,47.1,23.4,48,22.1z"/></symbol><symbol id="twitter-unauth-mask" viewBox="0 0 64 64"><path d="M0,0v64h64V0H0z M44.7,25.5c0,0.3,0,0.6,0,0.8C44.7,35,38.1,45,26.1,45c-3.7,0-7.2-1.1-10.1-2.9 c0.5,0.1,1,0.1,1.6,0.1c3.1,0,5.9-1,8.2-2.8c-2.9-0.1-5.3-2-6.1-4.6c0.4,0.1,0.8,0.1,1.2,0.1c0.6,0,1.2-0.1,1.7-0.2 c-3-0.6-5.3-3.3-5.3-6.4c0,0,0-0.1,0-0.1c0.9,0.5,1.9,0.8,3,0.8c-1.8-1.2-2.9-3.2-2.9-5.5c0-1.2,0.3-2.3,0.9-3.3 c3.2,4,8.1,6.6,13.5,6.9c-0.1-0.5-0.2-1-0.2-1.5c0-3.6,2.9-6.6,6.6-6.6c1.9,0,3.6,0.8,4.8,2.1c1.5-0.3,2.9-0.8,4.2-1.6 c-0.5,1.5-1.5,2.8-2.9,3.6c1.3-0.2,2.6-0.5,3.8-1C47.1,23.4,46,24.5,44.7,25.5z"/></symbol></svg>
3679
3680  </body>
3681</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.