/* ============================================================
   One stylesheet. fonts.css and lqip.css used to be two more
   render-blocking requests before anything could paint; they are
   inlined here in order (faces, then placeholders, then the page).
   Regenerate the LQIP block with the same generator as before.
   ============================================================ */

/* Self-hosted Google Fonts. These are the exact files Google was serving,
   so the rendering is unchanged — only the two extra DNS/TLS handshakes and
   the render-blocking third-party stylesheet are gone. latin + latin-ext
   only; vietnamese, greek and cyrillic subsets were dropped.
   Regenerate: re-fetch the css2 URL with a modern UA, keep these subsets. */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 200 400;
  font-display: swap;
  src: url(../fonts/fraunces-200-400-latin-ext.woff2) format('woff2');
  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;
}
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 200 400;
  font-display: swap;
  src: url(../fonts/fraunces-200-400-latin.woff2) format('woff2');
  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;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300 500;
  font-display: swap;
  src: url(../fonts/inter-latin-ext.woff2) format('woff2');
  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;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300 500;
  font-display: swap;
  src: url(../fonts/inter-latin.woff2) format('woff2');
  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;
}

/* LQIP blur-up placeholders — generated, 20px-wide JPEGs inlined. */
.ph[data-src="burger"]{background-image:url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD//gAPTGF2YzYxLjMuMTAwAP/bAEMAFA4PEg8NFBIQEhcVFBgeMiEeHBwePSwuJDJJQExLR0BGRVBac2JQVW1WRUZkiGVtd3uBgoFOYI2XjH2Wc36BfP/bAEMBFRcXHhoeOyEhO3xTRlN8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fP/AABEIACQAFAMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/AMS5SW2uHjmG0nkEHgj1FQkhedwZT684rbmEWpWeCAP4Qf7j/wCB6GqNlpRM5e8j2RQ8uPX/AOtUpluLuRQ6ddXEYkhgyh6E4GaK3oLmaeMNHIIUHCrgHj3opczK5EYtvdPbzSRlWBc7mVQT71s2M0d0GjVTvxnByp/AHrWRcssepb1lMDqcgtz/AJFXomUuJHvkDBgysMZHt1rB66muq0M3VjL9szAz7CoPAI56UVryXVnG2B5k2eS6pkE0Vam0tiHC/UilSOf/AFkat+dV2s4FPypj8aKKhNmli5b2iNHnc457GiiigR//2Q==)}
.ph[data-src="chicken-rice"]{background-image:url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDABQODxIPDRQSEBIXFRQYHjIhHhwcHj0sLiQySUBMS0dARkVQWnNiUFVtVkVGZIhlbXd7gYKBTmCNl4x9lnN+gXz/2wBDARUXFx4aHjshITt8U0ZTfHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHz/wAARCAANABQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDH0vYvmuxXGNpDKG6/Xp9a0ksrZ7BhE0YIG5v4vzzzWKuM8A/nQzMqsu9trDpurKcZN3TNYONrMjxC3IRgO3NFTLAu3rRWtjK5/9k=)}
.ph[data-src="choc-cake"]{background-image:url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDABQODxIPDRQSEBIXFRQYHjIhHhwcHj0sLiQySUBMS0dARkVQWnNiUFVtVkVGZIhlbXd7gYKBTmCNl4x9lnN+gXz/2wBDARUXFx4aHjshITt8U0ZTfHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHz/wAARCAANABQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDGW1gNnFJEJZ5W+8qjhfb1zVmPRzJAkhfymY42ODkc4qmsIHzBmB9QcGrMElwjhluJOP72G/mKLMLogmsTDIUkVgw9Ohoq+/79zJKzu56ktRVCP//Z)}
.ph[data-src="falooda"]{background-image:url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDABQODxIPDRQSEBIXFRQYHjIhHhwcHj0sLiQySUBMS0dARkVQWnNiUFVtVkVGZIhlbXd7gYKBTmCNl4x9lnN+gXz/2wBDARUXFx4aHjshITt8U0ZTfHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHz/wAARCAANABQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDCs4Ynn2yAsduQvrWjdadFPbJLbxBX6Oo4ArGhkkSUOj4Ye1aQ1K5MbLuQFhgsF5xUSUr3RtGUORpoz3hZG2tGVPoetFWhDv8AmZ2JPUmirMT/2Q==)}
.ph[data-src="hero"]{background-image:url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDABQODxIPDRQSEBIXFRQYHjIhHhwcHj0sLiQySUBMS0dARkVQWnNiUFVtVkVGZIhlbXd7gYKBTmCNl4x9lnN+gXz/2wBDARUXFx4aHjshITt8U0ZTfHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHz/wAARCAANABQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwCa7E0MrFp1iRQdqJglvrmmWuono4MhHpgCtd1juFzJEp98c1mzabGNzwsY9p+71BrJxlfRmsZQ+0i9FaQyoG+bjg/KD/OipIx5caoucAYorVbGT3P/2Q==)}
.ph[data-src="hummus"]{background-image:url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDABQODxIPDRQSEBIXFRQYHjIhHhwcHj0sLiQySUBMS0dARkVQWnNiUFVtVkVGZIhlbXd7gYKBTmCNl4x9lnN+gXz/2wBDARUXFx4aHjshITt8U0ZTfHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHz/wAARCAAeABQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwCpdfZiqEHzNyA4Udaq2ljczOW8pkGDjd+ma3IEigCyAL5bfuzFtxhvQEVHMsg3EIgb2YgsPf8ADNcnteXRHS6fNqzMk0pFcjc30UAge3JzRVp2d5GZpAhJ6Y9qKXtpD9kuxaS8RB5kSh9w5U9j61laje3bTZG2PHRlOSPxqe8iCNlSQsnYDGKzZLME5d2Yema1jTT1MpTtoyqzRliZJcsep5NFadpYQTI7CH5Q5AzIc4/Kiquhan//2Q==)}
.ph[data-src="jerk-platter"]{background-image:url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDABQODxIPDRQSEBIXFRQYHjIhHhwcHj0sLiQySUBMS0dARkVQWnNiUFVtVkVGZIhlbXd7gYKBTmCNl4x9lnN+gXz/2wBDARUXFx4aHjshITt8U0ZTfHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHz/wAARCAAeABQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDJm09lTdES+OoUDj61o2tnbxwqpRGmYYJcg8n+VIl1FanYnmGMcdAATj1PWnQGzlLeZIyPnOyRtqmuSU5LQ6Iw301IpdLVWwtk5GOomGDRWptB/wBXKMewAxRS9uP2RzvmgwhQuw7cFgeDUbXSpkSK5GOhXqfr6ULcFGkXy18rH3Qx5PYmo4G8wMF4HbPNbct3sDlyxTuT2+sJAhU72JbJOwUVE1uhP7wlm9QMUU/Yxe6M/ayP/9k=)}
.ph[data-src="lamb-rice"]{background-image:url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDABQODxIPDRQSEBIXFRQYHjIhHhwcHj0sLiQySUBMS0dARkVQWnNiUFVtVkVGZIhlbXd7gYKBTmCNl4x9lnN+gXz/2wBDARUXFx4aHjshITt8U0ZTfHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHz/wAARCAANABQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDGeyl+UGFtx7ZFSRaVM2GW3dgeeCK6WW3WRTtZkz1296yriI2rFlcsM8g1Dcl0LiovdmdNpkqPgxY47uBRXSxyMsajJPFFWQf/2Q==)}
.ph[data-src="occasion-a"]{background-image:url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDABQODxIPDRQSEBIXFRQYHjIhHhwcHj0sLiQySUBMS0dARkVQWnNiUFVtVkVGZIhlbXd7gYKBTmCNl4x9lnN+gXz/2wBDARUXFx4aHjshITt8U0ZTfHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHz/wAARCAAeABQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDUkjKp8uAewPeqsZnK/vbVFIOTOG7ZqO9O0Ru0u9m6oOmCP6VNaTp5WxGIGc4zXM6zvsbqlpcsQ+XOm9CCM4oqrJbwlyRgZ5OO5opqqw9nEy754Q+9DvU/L8hyV/D0pLASXFw2IpGQdz8oH5VoJp1sGLOnmZOcN0H0qeQLtEaFogOmzir9nfUHVS0jsWIgmwfKD+FFUhFgczTMf94CiqSkuxm2j//Z)}
.ph[data-src="occasion-b"]{background-image:url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDABQODxIPDRQSEBIXFRQYHjIhHhwcHj0sLiQySUBMS0dARkVQWnNiUFVtVkVGZIhlbXd7gYKBTmCNl4x9lnN+gXz/2wBDARUXFx4aHjshITt8U0ZTfHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHz/wAARCAAeABQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDBSHdENo55Kj1A6+9alvaT29itwqqpUnfuTnrx+FXS0UFvhEMa4CjJ598H1FOjuhIgCByxGGXlgR7n+dczrXNvZM5/UrmJrgEwqG2Dds+UE+uKK0JfD5nkMlo8YjP8Ltyp9PeitlOPcz5WJPeWkEmVPmsTkgDOD9elQrqVzOy28G2FWOM46D3NZPmiM4Rcn1bpUiieQgtKRjkBeMVnGkjWVR7G99gTA8y4nZu5DYooW5lljjkAX5l5yT16UVOqDRn/2Q==)}
.ph[data-src="shawarma-platter"]{background-image:url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDABQODxIPDRQSEBIXFRQYHjIhHhwcHj0sLiQySUBMS0dARkVQWnNiUFVtVkVGZIhlbXd7gYKBTmCNl4x9lnN+gXz/2wBDARUXFx4aHjshITt8U0ZTfHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHz/wAARCAANABQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwC9ceXBGw2tlBk7eMf5xVWCRZXMqFtwI3o7cY9RxVjVJGeRIhhQ4yDjkEU+1tPLVZZJDJIeclQMflWUlJy02NVyxjqLGqyruYxtk8FfSinswRiAoorSxnc//9k=)}
.ph[data-src="tikka-platter"]{background-image:url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDABQODxIPDRQSEBIXFRQYHjIhHhwcHj0sLiQySUBMS0dARkVQWnNiUFVtVkVGZIhlbXd7gYKBTmCNl4x9lnN+gXz/2wBDARUXFx4aHjshITt8U0ZTfHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHz/wAARCAAeABQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDZNvleOOOKrxxyRW0kc0at824TbxwM/nkVXkubiSKOXaUSQZXvgdR+NThjNaCKVQ5OQSepH1FYOtG9jVU3a5KrxFQdx5/2TRTrO1ZbdVNxJwSB09aK0Tk1clqKZl6kJ2AKAtHEoyo7D1x6UaTNJMCNoEafxE9Pb3pU02IzNJJJISTkbWxirPlhCPLRQAcg5OazlTvqa+0SXKjQicxxgd+tFVBccd6K6ErKxzt3P//Z)}
.ph[data-src="wrap-chicken"]{background-image:url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDABQODxIPDRQSEBIXFRQYHjIhHhwcHj0sLiQySUBMS0dARkVQWnNiUFVtVkVGZIhlbXd7gYKBTmCNl4x9lnN+gXz/2wBDARUXFx4aHjshITt8U0ZTfHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHz/wAARCAANABQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwChb2cksLPLIqhh8jbj/L0pp0wzwKUf94RyOcH6VXHmAjy32j0xxVq2EquGWY5HTcoNZOM76M1ThYyXtCGIDDFFbZtyx3FwSeeUFFamR//Z)}
.ph[data-src="wrap-jerk"]{background-image:url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDABQODxIPDRQSEBIXFRQYHjIhHhwcHj0sLiQySUBMS0dARkVQWnNiUFVtVkVGZIhlbXd7gYKBTmCNl4x9lnN+gXz/2wBDARUXFx4aHjshITt8U0ZTfHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHz/wAARCAANABQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDPtLaWcMzSrsI+Rtx6/SrCaS0kLl7gLIOFxk7z/SslQ68o5X6VbtpJ0YlZ2GexANYuNS90zVOFtUUrqGS3uZIWZSY22kg0VceJncsXySc/dFFbIyP/2Q==)}
.ph[data-src="wrap-lamb"]{background-image:url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDABQODxIPDRQSEBIXFRQYHjIhHhwcHj0sLiQySUBMS0dARkVQWnNiUFVtVkVGZIhlbXd7gYKBTmCNl4x9lnN+gXz/2wBDARUXFx4aHjshITt8U0ZTfHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHz/wAARCAAeABQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDONyxIbyTg8A54zS/aJHjLrBIUXqw6D8am+wXFvGotLkF2IIR14J9R6H61DHpd9DN5KhxIRkEHcjD3HSslUvdo0cLOzIPtZ/55n8xRUd3aTRTstw3lSd1K7fxwKKvmJ5TQs/PgZpWA5+UOjZwD3zV2XUmkVXhkIk27ioHIx0z+dYUTPEco5Ht2q3BdIWWN48EtnKnvisZQaN1NT33F1jz7++MxCjCheG9Bz+uaKhnaWSUsjhF9KKtKdjNyh2P/2Q==)}
.ph[data-src="wrap-shawarma"]{background-image:url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDABQODxIPDRQSEBIXFRQYHjIhHhwcHj0sLiQySUBMS0dARkVQWnNiUFVtVkVGZIhlbXd7gYKBTmCNl4x9lnN+gXz/2wBDARUXFx4aHjshITt8U0ZTfHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHz/wAARCAANABQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDMs7G3e28x53Dei9qu/wBmibd/pCS7o9wLRhcH3I6Viwh4GWRJDleRWmt3vgGIwPMTLZOfwrBxlc2ThYzBakjLSRgnttJop0+I5SoB/OitrGVz/9k=)}
.ph[data-src="wrap-tikka"]{background-image:url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDABQODxIPDRQSEBIXFRQYHjIhHhwcHj0sLiQySUBMS0dARkVQWnNiUFVtVkVGZIhlbXd7gYKBTmCNl4x9lnN+gXz/2wBDARUXFx4aHjshITt8U0ZTfHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHz/wAARCAANABQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDMsbKEostznyz90DofqashdLhTAj81n5DNkhR7/rVGK4IGFG0egNJO+8YcbgTnGcCsnGTe5qpRS2LD2Vs7bo5vLU9Ayk/rRVIRxnnyxRVcsu5PMux//9k=)}
/* hero clip — same treatment, keyed to the video frame not a .ph */
.hero__vid{background-image:url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAgADhAN5AAD//gAPTGF2YzYxLjMuMTAwAP/bAEMACBAQExATFhYWFhYWGhgaGxsbGhoaGhsbGx0dHSIiIh0dHRsbHR0gICIiJSYlIyMiIyYmKCgoMDAuLjg4OkVFU//EAH8AAAIDAQEAAAAAAAAAAAAAAAUGAwIEAAcBAAMBAQAAAAAAAAAAAAAAAAABBAMCEAACAQEGAQsBCQEAAAAAAAACAREAIRIxQQMEE6FSYXGSUULRgSIjM8GxkVNiJHIyBdIRAAIBBAMBAQAAAAAAAAAAAAABEgNRAhFhQTHwof/AABEIACQAFAMBIgACEQADEQD/2gAMAwEAAhEDEQA/APDmMVGxpqPbBN21t5rFZOxwkpxbdZFsmSbRN++FClNemL6FWU0bwyF27XXaMPQaeI/jVeB+oe0qclc5g7DktxthWk0wZlGEpqfzG7TUO21LGth/uLy28NiS+a+gAZn2ivDLyUt0iPTiUxZGP9kKkVPeSeNUXsdwDcFih+1ZRk6ldHvb3z4WKr00tcehs9Pb3mjI7ysKRLHouvDrtqPh7Xnl2T/6oUetqoneJXs5mcPXKouOfPHl8qcMr/oTw+Q36nw6D4aQNKJFQ8c3i310L3WmO20VcVpxJO0re540T3P0CrJ/pfR0/T7qrIwfwRSGJtSbztfXXcJdPJ5Vs8IfxVUoA//Z)}

/* ============================================================
   Catering4Professional — "Marquet" direction
   Cream ground, ink-navy dark, arch-masked photography,
   light-weight display serif over a soft grotesk.
   ============================================================ */

:root{
  --cream:      #F0EBE2;
  --cream-deep: #E7E0D4;   /* warm second ground — bands, not one flat slab */
  --cream-soft: #EAE4D9;
  --ink:        #14181F;   /* near-black, cooled toward the brand navy */
  --navy:       #0B1A38;   /* dark ground */
  --navy-deep:  #071227;
  --brass:      #B08A4F;   /* one warm accent — rules, dots, ornaments */
  --rule:       rgba(20,24,31,.16);
  --rule-soft:  rgba(20,24,31,.09);
  --rule-light: rgba(240,235,226,.20);
  --muted:      rgba(20,24,31,.62);
  --muted-light:rgba(240,235,226,.66);

  --display: "Fraunces", "Times New Roman", serif;
  --body:    "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  --gut: clamp(20px, 5vw, 72px);
  /* The signature shape. Written so the two top horizontal radii sum to
     exactly 100% of the width — anything larger makes the browser scale
     ALL four radii down and the dome collapses into a flat corner. */
  --arch: 50% 50% 10px 10px / 45% 45% 10px 10px;
  --arch-soft: 50% 50% 10px 10px / 26% 26% 10px 10px;
  --ease: cubic-bezier(.22,.61,.36,1);
  --ease-out: cubic-bezier(.16,1,.3,1);
  --expo: cubic-bezier(.19,1,.22,1);   /* outExpo — marquet's easing */
  --grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
}

*,*::before,*::after{ box-sizing:border-box }
html{ -webkit-text-size-adjust:100% }
html.has-smooth{ scroll-behavior:auto }
body{
  margin:0; background:var(--cream); color:var(--ink);
  font-family:var(--body); font-weight:300; font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
/* One grain sheet over the whole page, not just the dark blocks — it is
   what stops the cream reading as blank browser white. */
body::after{
  content:""; position:fixed; inset:0; z-index:900; pointer-events:none;
  opacity:.028; background-image:var(--grain);
}
img{ display:block; max-width:100%; height:auto }
a{ color:inherit; text-decoration:none }
ul,ol{ margin:0; padding:0; list-style:none }
h1,h2,h3{ margin:0; font-weight:300 }
figure{ margin:0 }

/* Display type: Fraunces held light and soft — the closest free face to
   Moranga, which is what marquet.nyc uses. */
h1,h2,h3,.display{
  font-family:var(--display);
  font-variation-settings:"opsz" 144, "SOFT" 60, "WONK" 0;
  font-weight:300; line-height:.94; letter-spacing:-.02em;
}
em{ font-style:italic; font-variation-settings:"opsz" 144,"SOFT" 80,"WONK" 1 }
/* Fraunces italic overhangs its right sidebearing; without this the word
   after an italic collides with it at display sizes. */
h1 em, h2 em, h3 em, .statement__lead em, .quote em{ margin-right:.09em }

.eyebrow{
  margin:0 0 1.4rem; font-size:11px; font-weight:500; letter-spacing:.14em;
  text-transform:uppercase; color:var(--muted);
}
.eyebrow--light{ color:var(--muted-light) }
/* the brass tick that opens every eyebrow */
.eyebrow::before{
  content:""; display:inline-block; width:16px; height:1px; margin:0 12px 4px 0;
  background:var(--brass); vertical-align:middle;
}

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  height:38px; padding:0 20px; border-radius:99px;
  font-size:12.5px; font-weight:400; letter-spacing:.01em;
  border:1px solid currentColor; transition:background .4s var(--ease), color .4s var(--ease);
}
.btn--ghost{ color:var(--cream) }
.btn--ghost:hover{ background:var(--cream); color:var(--navy) }
.nav--solid .btn--ghost{ color:var(--ink) }
.nav--solid .btn--ghost:hover{ background:var(--ink); color:var(--cream) }
.btn--solid{
  height:52px; padding:0 30px; background:var(--cream); color:var(--navy);
  border-color:var(--cream); font-size:13px; letter-spacing:.04em;
}
.btn--solid i{ font-style:normal; transition:transform .5s var(--expo) }
.btn--solid:hover{ background:transparent; color:var(--cream) }
.btn--solid:hover i{ transform:translateX(5px) }

/* ── loader ───────────────────────────────────────────────── */
.loader{
  position:fixed; inset:0; z-index:1000; background:var(--navy-deep);
  display:flex; align-items:flex-end; justify-content:flex-end;
  padding:var(--gut); transition:opacity .6s var(--ease), visibility .6s;
}
.loader__bar{
  font-family:var(--display); font-size:clamp(48px,12vw,120px);
  color:var(--cream); line-height:1; font-variant-numeric:tabular-nums;
}
body.ready .loader{ opacity:0; visibility:hidden; pointer-events:none }

/* ── nav ──────────────────────────────────────────────────── */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:100;
  display:flex; align-items:center; gap:24px;
  padding:22px var(--gut); color:var(--cream);
  opacity:0; transform:translateY(-8px);
  transition:opacity .8s var(--ease) .2s, transform .8s var(--ease) .2s,
             background .5s var(--ease), color .5s var(--ease), padding .4s var(--ease);
}
body.ready .nav{ opacity:1; transform:none }
.nav--solid{
  background:rgba(240,235,226,.86); backdrop-filter:blur(14px) saturate(1.2);
  -webkit-backdrop-filter:blur(14px) saturate(1.2);
  color:var(--ink); padding-top:14px; padding-bottom:14px;
  border-bottom:1px solid var(--rule-soft);
}
.nav__mark{ font-family:var(--display); font-size:17px; letter-spacing:-.01em; margin-right:auto }
.nav__mark span{ font-style:italic }
.nav__links{ display:flex; gap:26px; font-size:13px }
.nav__links a{ position:relative; opacity:.82 }
.nav__links a::after{
  content:""; position:absolute; left:0; bottom:-3px; width:100%; height:1px;
  background:currentColor; transform:scaleX(0); transform-origin:right;
  transition:transform .45s var(--ease-out);
}
.nav__links a:hover{ opacity:1 }
.nav__links a:hover::after{ transform:scaleX(1); transform-origin:left }

/* ── blur-up image loading ────────────────────────────────── */
/* .ph carries a 20px inlined JPEG (see lqip.css). The real photo sits on
   top at opacity 0 and cross-fades in once decoded. */
.ph{ position:relative; overflow:hidden;
  background-size:cover; background-position:center; background-repeat:no-repeat }
/* The blur layer is a compositing layer per image, and there are twenty of
   them. Once the real photo has faded in it has nothing left to blur, so it
   is taken out of the tree entirely rather than left at opacity 0. */
.ph::after{
  content:""; position:absolute; inset:0; z-index:3; backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px); transition:opacity .8s var(--ease);
}
.ph.is-clean::after{ display:none }
/* .ph__in owns the load-in settle; the <img> inside owns the scroll
   parallax. Two elements so the two transforms never overwrite each other. */
.ph__in{
  position:relative; display:block; width:100%; height:100%;
  opacity:0; transform:scale(1.05);
  transition:opacity 1.1s var(--ease), transform 1.8s var(--expo);
}
/* The grade. The photo set comes from three different shoots; a shared
   tone wash and a hairline edge are what make them read as one campaign
   instead of a folder of stock. */
.ph__in::after{
  content:""; position:absolute; inset:0; z-index:2; pointer-events:none;
  background:
    linear-gradient(180deg, rgba(7,18,39,.16), rgba(7,18,39,0) 34%,
                            rgba(7,18,39,0) 56%, rgba(7,18,39,.30)),
    radial-gradient(120% 78% at 50% 42%, rgba(0,0,0,0) 48%, rgba(7,18,39,.20));
}
.ph img{
  display:block; width:100%; height:100%; object-fit:cover;
  /* per-frame framing, set inline where a subject sits off-centre */
  object-position:var(--pos, 50% 50%);
  transform:scale(1.12);          /* headroom for the parallax travel */
  filter:saturate(1.05) contrast(1.03);
}
.ph.is-loaded .ph__in{ opacity:1; transform:none }
.ph.is-loaded::after{ opacity:0 }

.arch{ border-radius:var(--arch) }

/* ── hero ───────────────────────────────────────────────────
   Split hero. Copy column left, a silent looping grill clip in the
   signature arch right. The old centred oval + curved tagline read as a
   logo screen; this one has to sell in the first screen. Navy ground on
   both halves so the fixed nav keeps one colour the whole way across —
   a cream left half would strand the nav links mid-bar. */
.hero{
  position:relative; min-height:100svh; overflow:hidden; isolation:isolate;
  background:var(--navy-deep); color:var(--cream);
  display:grid; grid-template-columns:1fr; align-content:center;
  gap:clamp(34px,6vw,60px);
  padding:clamp(84px,11vh,132px) var(--gut) clamp(56px,8vh,110px);
}
@media(min-width:900px){
  .hero{
    grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr);
    align-items:center; column-gap:clamp(40px,5vw,86px);
    padding-top:100px; padding-bottom:92px;
  }
}
.hero__grain{
  position:absolute; inset:-50%; z-index:3; pointer-events:none; opacity:.05;
  background-image:var(--grain);
}
/* soft off-centre glow so the flat black doesn't read as dead */
.hero::before{
  content:""; position:absolute; inset:0; z-index:0;
  background:radial-gradient(66% 52% at 58% 40%, rgba(78,96,140,.15), transparent 72%);
}

/* ── left: the pitch ─────────────────────────────────────── */
.hero__copy{ position:relative; z-index:2; max-width:660px; will-change:transform }
.hero__copy .eyebrow{
  margin-bottom:clamp(18px,2.4vw,26px);
  opacity:0; transition:opacity .9s var(--ease) .35s;
}
body.ready .hero__copy .eyebrow{ opacity:1 }

.hero__word{
  margin:0 0 clamp(20px,2.6vw,30px);
  font-size:clamp(34px,7.2vw,98px); line-height:.94; letter-spacing:-.03em;
}
.hero__word em{ font-style:italic }
/* Splitting into inline-block letters lets the browser break mid-word. */
.hero__word .l{ display:block; white-space:nowrap }
.hero__word .l > em{ display:inline-block }
/* Letters are split by JS. Each rises from +12% over 1200ms on outExpo,
   staggered — the reference's exact recipe, kept from the old hero. */
.hero__word .ch{
  display:inline-block; white-space:pre;
  opacity:0; transform:translate3d(0,12%,0);
  transition:opacity 900ms var(--ease), transform 1200ms var(--expo);
  transition-delay:inherit;
}
body.ready .hero__word .ch{ opacity:1; transform:none }
/* Once the entrance has played, the scroll loop writes these inline. */
body.hero-live .hero__word .ch{ transition:none }

.hero__lead{
  margin:0 0 clamp(26px,3.2vw,36px); max-width:46ch;
  font-size:clamp(14.5px,1.05vw,16.5px); line-height:1.75;
  color:var(--muted-light);
  opacity:0; transition:opacity 1s var(--ease) .55s;
}
.hero__cta{
  display:flex; flex-wrap:wrap; align-items:center; gap:14px clamp(20px,2.4vw,30px);
  opacity:0; transition:opacity 1s var(--ease) .7s;
}
.hero__link{
  display:inline-flex; align-items:center; gap:9px; padding-bottom:4px;
  font-size:13px; letter-spacing:.02em;
  border-bottom:1px solid rgba(240,235,226,.34);
  transition:border-color .4s var(--ease);
}
.hero__link i{ font-style:normal; transition:transform .5s var(--expo) }
.hero__link:hover{ border-bottom-color:var(--cream) }
.hero__link:hover i{ transform:translateX(5px) }

.hero__facts{
  display:grid; grid-template-columns:repeat(3,auto); justify-content:start;
  gap:clamp(18px,3vw,48px);
  margin:clamp(32px,4.6vw,52px) 0 0; padding-top:clamp(18px,2.2vw,26px);
  border-top:1px solid var(--rule-light);
  opacity:0; transition:opacity 1s var(--ease) .85s;
}
.hero__facts strong{
  display:block; font-family:var(--display); font-weight:300;
  font-variation-settings:"opsz" 144,"SOFT" 60,"WONK" 0;
  font-size:clamp(20px,2vw,26px); letter-spacing:-.01em;
}
.hero__facts span{
  display:block; margin-top:6px; font-size:10.5px; letter-spacing:.13em;
  text-transform:uppercase; color:var(--muted-light);
}
body.ready .hero__lead,
body.ready .hero__cta,
body.ready .hero__facts{ opacity:1 }

/* ── right: the clip ─────────────────────────────────────── */
.hero__media{
  position:relative; z-index:1; width:100%; justify-self:center;
  max-width:440px; will-change:transform;
}
@media(min-width:900px){ .hero__media{ justify-self:end; max-width:none } }

.hero__vid{
  position:relative; overflow:hidden; border-radius:var(--arch);
  aspect-ratio:.88; background-color:var(--navy);
  background-size:cover; background-position:center;
  opacity:0; transform:translateY(20px);
  transition:opacity 1.2s var(--ease) .15s, transform 1.5s var(--expo) .15s;
}
body.ready .hero__vid{ opacity:1; transform:none }
@media(max-width:639px){
  /* Phone: the pitch has to reach the CTA inside the first screen, so the
     clip is cropped square-ish rather than kept at the 9:16 it was shot in. */
  .hero__vid{ aspect-ratio:1.04 }
  .hero__lead{ font-size:14.5px; line-height:1.62 }
}
@media(min-width:640px){ .hero__vid{ aspect-ratio:.8 } }
@media(min-width:900px){ .hero__vid{ aspect-ratio:auto; height:min(76vh,700px) } }

.hero__vid video{
  display:block; width:100%; height:100%; object-fit:cover;
  /* same settle as the old hero photo, and the same grade as every still */
  transform:scale(1.16); transition:transform 3.6s var(--expo);
  filter:saturate(1.05) contrast(1.03);
}
body.ready .hero__vid video{ transform:scale(1.02) }
.hero__vid::after{
  content:""; position:absolute; inset:0; z-index:2; pointer-events:none;
  background:
    linear-gradient(180deg, rgba(7,18,39,.30), rgba(7,18,39,0) 32%,
                            rgba(7,18,39,0) 50%, rgba(7,18,39,.50)),
    radial-gradient(120% 78% at 50% 42%, rgba(0,0,0,0) 46%, rgba(7,18,39,.26));
}
/* hairline ring picks the arch back out of the navy */
.hero__vid::before{
  content:""; position:absolute; inset:0; z-index:3; pointer-events:none;
  border:1px solid rgba(240,235,226,.16); border-radius:inherit;
}
.hero__chip{
  position:absolute; z-index:4; left:50%; bottom:clamp(16px,2.2vw,26px);
  transform:translateX(-50%);
  display:inline-flex; align-items:center; gap:9px; white-space:nowrap;
  padding:9px 16px; border-radius:99px;
  background:rgba(7,18,39,.46); border:1px solid rgba(240,235,226,.18);
  backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  font-size:10px; letter-spacing:.14em; text-transform:uppercase;
  opacity:0; transition:opacity 1s var(--ease) 1.1s;
}
body.ready .hero__chip{ opacity:.94 }
.hero__chip::before{
  content:""; width:6px; height:6px; border-radius:50%; background:var(--brass);
  animation:pulse 2.6s var(--ease) infinite;
}
@keyframes pulse{ 0%,100%{ opacity:.35 } 50%{ opacity:1 } }

.hero__cue{
  position:absolute; z-index:4; bottom:26px; left:var(--gut);
  color:var(--cream); font-size:11px; letter-spacing:.16em; text-transform:uppercase;
  display:none; align-items:center; gap:10px; opacity:0;
  transition:opacity 1s var(--ease) 1.2s;
}
@media(min-width:900px){ .hero__cue{ display:flex } }
body.ready .hero__cue{ opacity:.7 }
.hero__cue span{ width:1px; height:26px; background:currentColor; display:block;
  animation:cue 2.4s var(--ease) infinite }
@keyframes cue{ 0%,100%{ transform:scaleY(.35); transform-origin:top } 50%{ transform:scaleY(1); transform-origin:top } }

/* ── statement ────────────────────────────────────────────── */
/* Editorial two-column: a narrow label rail that stays put while the
   lead reads past it. The lone paragraph on empty cream was the flattest
   moment on the page. */
.statement{
  padding:clamp(88px,13vw,170px) var(--gut) clamp(60px,8vw,110px);
  display:grid; grid-template-columns:1fr; gap:clamp(28px,4vw,56px);
  border-bottom:1px solid var(--rule-soft);
}
@media(min-width:900px){
  .statement{ grid-template-columns:180px minmax(0,1fr); column-gap:clamp(40px,6vw,90px) }
  .statement__rail{ position:sticky; top:26vh; align-self:start }
  .statement__meta{ grid-column:2 }
}
.statement__rail .eyebrow{ margin-bottom:18px }
.statement__rail p{ margin:0; font-size:12.5px; line-height:1.7; color:var(--muted); max-width:22ch }
.statement__lead{
  margin:0; font-family:var(--display); font-weight:300;
  font-variation-settings:"opsz" 144,"SOFT" 60,"WONK" 0;
  font-size:clamp(26px, 4.2vw, 54px); line-height:1.14; letter-spacing:-.02em;
  max-width:20ch;
}
@media(min-width:900px){ .statement__lead{ max-width:none } }
.statement__lead em{ font-style:italic }

/* stats as a ruled grid, not three floating numbers */
.statement__meta{
  display:grid; grid-template-columns:1fr; margin-top:clamp(40px,5vw,64px);
  border-top:1px solid var(--rule);
}
@media(min-width:640px){ .statement__meta{ grid-template-columns:repeat(3,1fr) } }
.statement__meta div{
  display:flex; flex-direction:column; gap:4px;
  padding:24px 26px 26px 0; border-bottom:1px solid var(--rule-soft);
  position:relative;
}
@media(min-width:640px){
  .statement__meta div{ border-bottom:0; padding-left:26px }
  .statement__meta div:first-child{ padding-left:0 }
  .statement__meta div + div{ border-left:1px solid var(--rule-soft) }
}
.statement__meta strong{
  font-family:var(--display); font-weight:300; font-size:clamp(34px,4vw,46px);
  line-height:1; font-variant-numeric:tabular-nums;
}
.statement__meta span{ font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted) }

/* ── section heads ────────────────────────────────────────── */
.sec-head{ padding:0 var(--gut); margin-bottom:clamp(40px,6vw,72px) }
.sec-head h2{ font-size:clamp(38px,6.6vw,88px) }
.sec-head h2 em{ font-style:italic }
.sec-head--split{ display:grid; grid-template-columns:1fr; gap:22px; align-items:end }
.sec-head__note{ margin:0; max-width:36ch; font-size:14.5px; color:var(--muted) }
/* The split head hangs its note off in the top right, which on a two-line
   display heading reads as a stray paragraph. The ruled variant keeps the
   note under the heading and closes the block with a full-width hairline —
   the same move the menu list makes, so the two sections rhyme. */
.sec-head--rule{ display:block; padding-bottom:clamp(22px,3vw,34px);
  border-bottom:1px solid var(--rule); margin-bottom:clamp(34px,4.6vw,60px) }
.sec-head--rule h2{ max-width:16ch }
.sec-head--rule .sec-head__note{ margin-top:clamp(18px,2.2vw,26px); max-width:52ch }
@media(min-width:900px){
  .sec-head--rule{ display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);
    column-gap:clamp(40px,6vw,90px); align-items:end;
    grid-template-areas:"e e" "h n" }
  .sec-head--rule .eyebrow{ grid-area:e }
  .sec-head--rule h2{ grid-area:h; max-width:none }
  .sec-head--rule .sec-head__note{ grid-area:n; margin-top:0; padding-bottom:.5em }
}
@media(min-width:900px){
  .sec-head--split{ grid-template-columns:1fr auto; grid-template-areas:"e e" "h n" }
  .sec-head--split .eyebrow{ grid-area:e }
  .sec-head--split h2{ grid-area:h }
  .sec-head--split .sec-head__note{ grid-area:n; padding-bottom:.6em }
}

/* ── services cards ───────────────────────────────────────────
   Was: three arch-cropped portraits with the caption floating under them.
   The dome ate the top third of every plate and the stagger left the row
   looking accidental. Now: plain rectangles that show the whole dish, a
   ruled caption plate under each, and hairline gutters between the columns
   so the three read as one index rather than three loose cards. */
.services{ padding:clamp(64px,9vw,120px) 0 clamp(40px,6vw,80px) }
.cards{
  display:grid; gap:clamp(34px,4vw,0px); padding:0 var(--gut);
  grid-template-columns:1fr;
}
@media(min-width:760px){
  /* The divider lives in the gap, not on the card. Padding the cards to
     make room for a border made the outer two wider than the middle one —
     equal columns, three different photo heights. */
  .cards{ --cardgap:clamp(28px,3.4vw,52px);
    grid-template-columns:repeat(3,1fr); gap:0 var(--cardgap) }
  .cards .card{ position:relative }
  .cards .card + .card::before{
    content:""; position:absolute; top:0; bottom:0;
    left:calc(var(--cardgap) / -2); width:1px; background:var(--rule-soft);
  }
}
.card{ display:flex; flex-direction:column }
.card__frame{ position:relative; margin-bottom:clamp(18px,2vw,26px) }
.card__img{
  aspect-ratio:4/5; border-radius:3px; background-color:var(--cream-deep);
}
/* A cream ring is invisible on cream — the frame needs an ink hairline to
   sit on this ground, unlike the ones over the navy. */
.card__frame::after{
  content:""; position:absolute; inset:0; border-radius:3px;
  box-shadow:inset 0 0 0 1px rgba(20,24,31,.10); pointer-events:none; z-index:4;
}
.card__img img{ transition:transform 1.1s var(--expo), filter .8s var(--ease) }
.card__body{ display:flex; flex-direction:column; flex:1 }
.card__idx{
  display:flex; align-items:baseline; gap:14px; margin:0 0 12px;
  padding-top:16px; border-top:1px solid var(--rule);
}
.card__idx span{
  font-size:11px; letter-spacing:.2em; color:var(--brass);
  font-variant-numeric:tabular-nums;
}
.card__idx h3{ font-size:clamp(24px,2.2vw,30px); line-height:1 }
.card__desc{ margin:0 0 20px; font-size:14.5px; color:var(--muted); max-width:36ch }
.card__more{
  margin-top:auto; display:inline-flex; align-items:center; gap:9px;
  font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted);
  transition:color .4s var(--ease);
}
.card__more i{ font-style:normal; transition:transform .55s var(--expo) }
.card:hover .card__more{ color:var(--ink) }
.card:hover .card__more i{ transform:translateX(6px) }
.card:hover .card__img img{ transform:scale(1.16); filter:saturate(1.1) contrast(1.04) }

/* ── menu ─────────────────────────────────────────────────── */
.menu{ padding:clamp(60px,9vw,120px) 0; border-top:1px solid var(--rule-soft) }
.menu__grid{ display:flex; flex-direction:column; gap:clamp(56px,8vw,120px) }
.mrow{
  display:grid; gap:clamp(24px,4vw,60px); padding:0 var(--gut);
  grid-template-columns:1fr; align-items:center;
}
@media(min-width:860px){
  .mrow{ grid-template-columns:1.15fr .85fr }
  .mrow--flip .mrow__txt{ order:2 }
  .mrow--flip .mrow__img{ order:1 }
}
.mrow__txt{ position:relative }
/* ghost numeral behind the category — depth without another element */
.mrow__txt::before{
  content:attr(data-n); position:absolute; z-index:0; right:0; top:-.34em;
  font-family:var(--display); font-weight:300; font-size:clamp(90px,11vw,170px);
  line-height:1; color:rgba(20,24,31,.055); pointer-events:none;
}
.mrow__no,.mrow__txt h3,.mrow__txt ul{ position:relative; z-index:1 }
.mrow__no{ margin:0 0 10px; font-size:11px; letter-spacing:.18em; color:var(--muted) }
.mrow__txt h3{ font-size:clamp(30px,4.6vw,54px); margin-bottom:26px }
.mrow__txt li{
  display:flex; align-items:baseline; gap:12px;
  padding:13px 10px 13px 0; border-top:1px solid var(--rule-soft); font-size:15px;
  transition:padding-left .5s var(--expo), background-color .5s var(--ease);
}
.mrow__txt li:last-child{ border-bottom:1px solid var(--rule-soft) }
.mrow__txt li i{ flex:1; height:1px; background:var(--rule); align-self:center }
.mrow__txt li span:last-child{ color:var(--muted); font-size:13px; text-align:right }
@media(hover:hover){
  .mrow__txt li:hover{
    padding-left:14px;
    background-color:rgba(20,24,31,.035);
  }
}
/* Rectangles, not arches: the dome cropped the top of every board and both
   ends of every tray. A 5:4 window at this width shows the whole dish. */
.mrow__img{ aspect-ratio:1.15; background-color:var(--cream-deep); border-radius:3px }
@media(min-width:860px){ .mrow__img{ aspect-ratio:1.05 } }
/* NOT ::after — .mrow__img is a .ph and ::after is the LQIP blur layer.
   An outline pulled inward draws over the photo without claiming it. */
.mrow__img{ outline:1px solid rgba(20,24,31,.10); outline-offset:-1px }

/* ── the dark interlude: ticker + photo marquee ───────────── */
/* The page was one unbroken cream slab from the statement to the footer.
   This is the break — a dark band two thirds of the way down that resets
   the eye before the process and the quote. */
.showcase{
  position:relative; background:var(--navy-deep); color:var(--cream);
  padding-bottom:clamp(52px,7vw,92px); overflow:hidden; isolation:isolate;
}
.showcase::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:radial-gradient(74% 60% at 50% 0%, rgba(78,96,140,.16), transparent 70%);
}
.ticker{
  position:relative; z-index:1; overflow:hidden;
  border-bottom:1px solid var(--rule-light);
  padding:20px 0; margin-bottom:clamp(46px,6vw,80px);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);
}
.ticker__row{ display:flex; width:max-content; animation:tick 46s linear infinite }
.ticker__row b{
  font-weight:400; padding:0 22px; white-space:nowrap;
  font-size:11.5px; letter-spacing:.26em; text-transform:uppercase;
  color:var(--muted-light);
}
.ticker__row b::after{ content:"✦"; margin-left:22px; color:var(--brass); letter-spacing:0 }
@keyframes tick{ to{ transform:translateX(-50%) } }

.gallery{ position:relative; z-index:1; overflow:hidden }
.gallery__track{
  display:flex; align-items:flex-start; gap:22px; width:max-content;
  padding:0 18px; will-change:transform;
}
.gitem{ flex:none; margin:0 }
.g{ background-color:rgba(240,235,226,.07); overflow:hidden; border-radius:var(--arch-soft) }
.gitem--tall .g{ width:clamp(190px,24vw,300px); aspect-ratio:.72 }
.gitem--wide .g{ width:clamp(280px,36vw,460px); aspect-ratio:1.4 }
.gitem figcaption{
  margin-top:13px; font-size:10.5px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--muted-light);
}
/* every other tile drops to give the strip a rhythm rather than a flat band */
.gallery__track > .gitem:nth-child(even){ margin-top:52px }
.gallery__track > .gitem:nth-child(3n){ margin-top:24px }

/* ── process ──────────────────────────────────────────────── */
.process{ padding:clamp(72px,10vw,140px) 0 clamp(60px,8vw,110px) }
.steps{
  display:grid; gap:clamp(28px,4vw,44px); padding:0 var(--gut);
  grid-template-columns:1fr;
}
@media(min-width:760px){ .steps{ grid-template-columns:repeat(3,1fr) } }
.steps li{ position:relative; padding-top:26px; border-top:1px solid var(--rule) }
/* a brass node on the rule at each step — the connector reads as a timeline */
.steps li::before{
  content:""; position:absolute; top:-3.5px; left:0; width:7px; height:7px;
  border-radius:50%; background:var(--brass);
}
.steps li::after{
  content:attr(data-n); position:absolute; right:0; top:14px;
  font-family:var(--display); font-weight:300; font-size:clamp(64px,7vw,104px);
  line-height:1; color:rgba(20,24,31,.05); pointer-events:none;
}
.steps span{ font-size:11px; letter-spacing:.18em; color:var(--muted) }
.steps h3{ font-size:25px; margin:14px 0 10px; position:relative; z-index:1 }
.steps p{ margin:0; font-size:14.5px; color:var(--muted); max-width:32ch; position:relative; z-index:1 }

/* ── quote ────────────────────────────────────────────────── */
.quote{
  position:relative; background:var(--cream-deep);
  padding:clamp(72px,10vw,140px) var(--gut);
  border-top:1px solid var(--rule-soft); border-bottom:1px solid var(--rule-soft);
  text-align:center; overflow:hidden;
}
/* Measure in px, not ch: 20ch of a 44px display face is a poem column. */
.quote blockquote{ margin:0 auto; max-width:880px; position:relative; z-index:1 }
.quote__mark{
  position:absolute; z-index:0; left:50%; top:clamp(20px,4vw,48px);
  transform:translateX(-50%);
  font-family:var(--display); font-size:clamp(180px,26vw,340px); line-height:1;
  color:rgba(20,24,31,.045); pointer-events:none; user-select:none;
}
.quote p{
  margin:0 0 26px; font-family:var(--display); font-weight:300;
  font-variation-settings:"opsz" 144,"SOFT" 60,"WONK" 0;
  font-size:clamp(24px,3.6vw,44px); line-height:1.18; letter-spacing:-.02em;
}
.quote cite{
  font-style:normal; font-size:11.5px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--muted);
  display:inline-flex; align-items:center; gap:12px;
}
.quote cite::before{ content:""; width:26px; height:1px; background:var(--brass) }

/* ── contact ──────────────────────────────────────────────── */
.contact{
  position:relative; background:var(--navy); color:var(--cream);
  padding:clamp(76px,10vw,150px) var(--gut); overflow:hidden; isolation:isolate;
  display:grid; gap:clamp(36px,5vw,72px); align-items:center;
  grid-template-columns:1fr;
}
@media(min-width:900px){ .contact{ grid-template-columns:.92fr 1.08fr } }
.contact__grain{
  position:absolute; inset:0; z-index:3; pointer-events:none; opacity:.05;
  background-image:var(--grain);
}
.contact::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:radial-gradient(58% 60% at 22% 45%, rgba(78,96,140,.20), transparent 68%);
}
.contact__arch{
  position:relative; z-index:1;
  border-radius:var(--arch); aspect-ratio:.78;
  max-width:470px; width:100%; background-color:var(--navy-deep);
}
.contact__body{ position:relative; z-index:1 }
.contact__body h2{ font-size:clamp(40px,7vw,96px) }
.contact__body h2 em{ font-style:italic }
.contact__note{ margin:24px 0 32px; max-width:38ch; font-size:15px; color:var(--muted-light) }
.contact__links{ display:flex; flex-direction:column; gap:8px;
  font-family:var(--display); font-size:clamp(19px,2.4vw,28px) }
.contact__links a{ width:fit-content; border-bottom:1px solid var(--rule-light);
  padding-bottom:5px; transition:border-color .4s var(--ease) }
.contact__links a:hover{ border-color:var(--cream) }
.contact__cta{ margin-top:34px }
/* the detail rail fills the dead space the old layout left under the links */
.contact__facts{
  display:grid; grid-template-columns:1fr; gap:0;
  margin-top:clamp(36px,5vw,54px); border-top:1px solid var(--rule-light);
}
@media(min-width:620px){ .contact__facts{ grid-template-columns:repeat(3,1fr) } }
.contact__facts div{ padding:18px 20px 18px 0 }
@media(min-width:620px){
  .contact__facts div{ padding-left:20px }
  .contact__facts div:first-child{ padding-left:0 }
  .contact__facts div + div{ border-left:1px solid var(--rule-light) }
}
.contact__facts dt{ font-size:10.5px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--muted-light); margin-bottom:7px }
.contact__facts dd{ margin:0; font-size:14px; line-height:1.5 }

/* ── footer ───────────────────────────────────────────────── */
.foot{
  background:var(--navy-deep); color:var(--muted-light);
  padding:clamp(48px,6vw,76px) var(--gut) 30px;
  border-top:1px solid var(--rule-light);
}
.foot__word{
  font-family:var(--display); font-weight:300; color:var(--cream);
  font-size:clamp(38px,9vw,132px); line-height:.9; letter-spacing:-.03em;
  margin:0 0 clamp(34px,5vw,58px);
}
.foot__word em{ font-style:italic }
.foot__cols{
  display:grid; grid-template-columns:1fr; gap:26px;
  padding-top:26px; border-top:1px solid var(--rule-light);
  font-size:12.5px; letter-spacing:.04em;
}
@media(min-width:700px){ .foot__cols{ grid-template-columns:repeat(3,1fr) } }
.foot__cols h4{ margin:0 0 12px; font-family:var(--body); font-weight:400;
  font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--cream) }
.foot__cols li{ margin-bottom:6px }
.foot__cols a:hover{ color:var(--cream) }
.foot__base{
  display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between;
  margin-top:clamp(34px,4vw,50px); padding-top:22px;
  border-top:1px solid var(--rule-light); font-size:11.5px; letter-spacing:.05em;
}

/* ── scroll reveal ────────────────────────────────────────── */
.reveal{ opacity:0; transform:translateY(38px);
  transition:opacity 1.1s var(--ease), transform 1.3s var(--expo) }
.reveal.in{ opacity:1; transform:none }
/* Menu lines and step headings arrive one after another, not as a slab. */
.mrow__txt li, .steps h3{
  opacity:0; transform:translateY(14px);
  transition:opacity .8s var(--ease), transform .9s var(--expo),
             padding-left .5s var(--expo), background-color .5s var(--ease);
}
/* `.reveal.in .steps h3` could never match: each <li> IS the .reveal, so
   .steps is its parent, not its descendant — the three step headings were
   stuck at opacity 0 for good. Match the li directly instead. */
.reveal.in .mrow__txt li{ opacity:1; transform:none }
.steps li.reveal.in h3{ opacity:1; transform:none }
/* the three steps arrive together, so the stagger has to be declared */
.steps li:nth-child(2) h3{ transition-delay:.09s }
.steps li:nth-child(3) h3{ transition-delay:.18s }

/* ── motion & fallbacks ───────────────────────────────────── */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important; animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  .reveal{ opacity:1; transform:none }
  .mrow__txt li,.steps h3{ opacity:1; transform:none }
  .hero__word .ch{ opacity:1; transform:none }
  .ph__in{ opacity:1; transform:none }
  .hero__vid video{ transform:scale(1.02) }
  .hero__vid,.hero__copy .eyebrow,.hero__lead,.hero__cta,.hero__facts,
  .hero__chip,.hero__word .l,.hero__cue,.nav{ opacity:1; transform:none }
  .gallery__track{ transform:none !important }
  .ticker__row{ animation:none }
}
/* If JS never runs, nothing may stay hidden. */
html.no-js .loader{ display:none }
html.no-js .reveal,html.no-js .nav,html.no-js .hero__vid,html.no-js .hero__word .l,
html.no-js .hero__copy .eyebrow,html.no-js .hero__lead,html.no-js .hero__cta,
html.no-js .hero__facts,html.no-js .hero__chip,html.no-js .hero__cue{ opacity:1; transform:none }
html.no-js .ph__in{ opacity:1; transform:none }
html.no-js .hero__word .ch{ opacity:1; transform:none }
html.no-js .hero__vid video{ transform:scale(1.02) }
html.no-js .mrow__txt li,html.no-js .steps h3{ opacity:1; transform:none }
html.no-js .ph::after{ opacity:0 }

/* ── narrow screens ───────────────────────────────────────── */
@media (max-width:899px){
  /* Stacked hero: the clip leads, the pitch reads under it. */
  .hero__media{ order:-1 }
}
@media (max-width:720px){
  /* The three nav links won't fit beside the wordmark and the button;
     the same links live in the page and the footer, so drop them here
     rather than hiding real navigation behind a hamburger. */
  .nav__links{ display:none }
  .nav__mark{ font-size:15px }
  .btn{ height:34px; padding:0 16px; font-size:12px }
  .hero__facts{ gap:16px }
  .hero__facts span{ font-size:9.5px; letter-spacing:.1em }
  .statement__meta strong{ font-size:30px }
  .mrow__txt li{ flex-wrap:wrap; gap:2px 10px }
  .mrow__txt li i{ display:none }
  .mrow__txt li span:last-child{ flex:1 0 100%; text-align:left }
  .mrow__txt::before{ font-size:96px; top:-.28em }
  .contact__arch{ max-width:300px }
  .gitem--tall .g{ width:190px }
  .gitem--wide .g{ width:270px }
  .gallery__track > .gitem:nth-child(even){ margin-top:30px }
}

/* ═══════════════════════════════════════════════════════════
   Second motion pass — the page below the hero was too static.
   Four devices, all built from the same gesture as the hero:
   something masked, rising, on outExpo.
   ═══════════════════════════════════════════════════════════ */

/* ── 1. images unmask upward into their arch ─────────────────
   The frame's own border-radius still clips, so the photo appears
   to be poured into the arch rather than fading on top of it. */
.ph{ clip-path:inset(101% 0 0 0); transition:clip-path 1.25s var(--expo) }
.ph.is-shown{ clip-path:inset(0 0 0 0) }
.g.ph{ clip-path:none }   /* the moving strip is exempt */

/* ── 2. headings rise word by word out of a mask ───────────── */
.w{
  display:inline-block; overflow:hidden; vertical-align:top;
  /* The mask clips at the padding edge, so pad for the parts of a glyph
     that sit outside its advance width — descenders below, and Fraunces
     italic's overhang to the right — then pull the box back in. */
  padding:0 .1em .14em; margin:0 -.1em -.14em;
}
.w > i{
  display:block; font-style:inherit;
  transform:translateY(108%);
  transition:transform 1.15s var(--expo);
}
.is-shown .w > i, .in .w > i{ transform:none }

/* ── 3. the menu becomes a pinned photo beside a scrolling list ──
   One image at a time, held in place while its category scrolls past.
   Built by JS on wide screens only; the markup stays a plain list. */
@media(min-width:900px){
  .menu--pinned .menu__grid{
    display:grid; grid-template-columns:1.02fr .98fr;
    gap:clamp(40px,5vw,90px); align-items:start;
    padding:0 var(--gut);
  }
  .menu--pinned .menu__list{ display:flex; flex-direction:column }
  .menu--pinned .mrow{
    padding:0; min-height:76vh;
    display:flex; flex-direction:column; justify-content:center;
    align-items:stretch;   /* .mrow's base align-items:center would shrink the list */
  }
  .menu--pinned .mrow__txt{ max-width:none }

  .menu__media{
    position:sticky; top:13vh; height:74vh;
    display:flex; flex-direction:column; gap:18px;
  }
  .menu__stack{
    position:relative; flex:1; border-radius:3px;
    overflow:hidden; background-color:var(--cream-deep);
  }
  /* Hairline inside the frame. Ink, not cream — this one sits on the cream
     ground, and a cream ring on cream is nothing. */
  .menu__stack::after{
    content:""; position:absolute; inset:0; z-index:5; pointer-events:none;
    border-radius:inherit; box-shadow:inset 0 0 0 1px rgba(20,24,31,.12);
  }
  .menu__stack .mrow__img{
    position:absolute; inset:0; aspect-ratio:auto; border-radius:0;
    opacity:0; transition:opacity .9s var(--ease);
  }
  .menu__stack .mrow__img.is-current{ opacity:1 }
  /* the pinned frame is already revealed; the wipe would fight the fade */
  .menu__stack .ph{ clip-path:none }

  /* The caption used to float on the photo as a blurred chip. It is now a
     rail under the frame with the counter, so nothing is laid over the food
     and the photo is shown whole. */
  .menu__rail{
    display:flex; align-items:center; gap:clamp(14px,1.6vw,22px);
    padding-top:16px; border-top:1px solid var(--rule);
  }
  .menu__cap{
    margin:0; display:inline-flex; align-items:center; gap:10px;
    font-family:var(--display); font-weight:300; font-size:20px;
    letter-spacing:-.01em; color:var(--ink); white-space:nowrap;
  }
  .menu__cap::before{ content:""; width:5px; height:5px; border-radius:50%;
    background:var(--brass); flex:none }

  .menu__count{
    margin:0 0 0 auto; display:flex; align-items:center; gap:12px;
    font-size:11px; letter-spacing:.18em; color:var(--muted);
    font-variant-numeric:tabular-nums; flex:1; max-width:230px;
  }
  .menu__count b{
    font-weight:400; font-size:11px; letter-spacing:.18em; color:var(--ink);
  }
  .menu__count .bar{
    flex:1; height:1px; background:var(--rule); position:relative; overflow:hidden;
  }
  .menu__count .bar span{
    position:absolute; inset:0; background:var(--ink);
    transform-origin:left; transform:scaleX(0);
    transition:transform .7s var(--expo);
  }
}

@media (prefers-reduced-motion:reduce){
  .ph{ clip-path:none !important }
  .w > i{ transform:none !important }
  .menu__stack .mrow__img{ opacity:1 }
}
html.no-js .ph{ clip-path:none }
html.no-js .w > i{ transform:none }

/* ═══════════════════════════════════════════════════════════
   Sixth pass — the phone. Three complaints:
   (a) after the hero it is a wall of text with nothing to look at,
   (b) the page keeps scrolling past the footer into an empty screen,
   (c) the logo was nowhere on the site.
   ═══════════════════════════════════════════════════════════ */

/* ── (b) the empty screen after the end ──────────────────────
   Nothing was actually taller than the document — the page ends exactly
   at the footer. What you see on a phone is the rubber band: iOS Safari
   (and Chrome's overscroll) drags the page past its end and paints the
   ROOT background behind it. That root was `body`'s cream, so overscroll
   below a navy footer showed a blank cream screen and read as a second,
   empty page.
   Two fixes, both needed: stop the chain/bounce where the browser allows
   it, and make the root ground match the ends of the page so any bounce
   that still happens is invisible. Keep BOTH on every future site. */
html{
  background:var(--navy-deep);          /* hero top and footer bottom are both navy-deep */
  overscroll-behavior:none;             /* both axes: no bounce, no pull-to-refresh */
}
body{ overscroll-behavior:none }

/* ── (c) the logo ────────────────────────────────────────────
   These were `mask-image` + `background:currentColor`, which recolours for
   free — and which fails CLOSED: when the mask image doesn't resolve, or the
   engine reads a greyscale PNG as a luminance mask instead of an alpha one,
   the element keeps its box and paints NOTHING. That is exactly what he saw:
   the footer masthead holding its space as an empty navy block. Not worth 20KB.
   Plain <img>, one file per colour, swapped by the nav's own state. */
.nav__mark{ display:inline-flex; align-items:center; gap:11px }
.nav__mark > span{ font-style:normal }     /* .nav__mark span used to italicise everything */
.nav__logo{ display:block; flex:none; width:auto; height:29px }
.nav__logo--ink{ display:none }
.nav--solid .nav__logo--cream{ display:none }
.nav--solid .nav__logo--ink{ display:block }
.nav__name{ font-family:var(--display); font-size:17px; letter-spacing:-.01em }
.nav__name span{ font-style:italic }
@media(max-width:720px){
  .nav__logo{ height:25px }
  .nav__name{ font-size:15px }
}
/* On a wide bar a small mark next to 17px type disappears into the gutter. */
@media(min-width:900px){
  .nav__logo{ height:36px }
  .nav__name{ font-size:19px }
  .nav--solid .nav__logo{ height:32px }
  .nav--solid .nav__name{ font-size:17px }
}

.loader__mark{
  margin-right:auto; align-self:flex-end; display:block;
  width:clamp(30px,8vw,44px); height:auto; opacity:.85;
}

/* The footer masthead is the real lockup now, not type set to look like it.
   It also fixes the 375px nit where the Fraunces word ran into the gutter. */
.foot__logo{ display:block; width:min(280px,58vw); height:auto }
@media(min-width:900px){ .foot__logo{ width:min(420px,32vw) } }
@media(min-width:700px){
  .loader__mark{ width:min(230px,26vw) }   /* the one place the logo owns the screen */
}


/* ── (a1) a photograph directly under the hero ───────────────
   Two frames, the wide one dropped against the tall one, ruled captions
   underneath. On a phone this is what now follows the hero instead of a
   paragraph; on desktop it fills the column beside the sticky rail. */
.statement__art{
  display:grid; grid-template-columns:1.06fr .94fr;
  gap:clamp(12px,2.4vw,22px); align-items:start;
  margin-top:clamp(34px,4.6vw,56px);
}
/* PHONES ONLY. The desktop statement was already right — a lead beside a
   sticky rail — and this pair only crowded it. Capping it and pushing it
   right was still the wrong call: the fix was for the phone, so it stops at
   the phone. `display:none` also means the two images are never fetched on
   desktop (lazy images inside a none-d subtree don't load). */
@media(min-width:900px){ .statement__art{ display:none } }
.sart{ margin:0 }
.sart--b{ margin-top:clamp(26px,5vw,64px) }
.sart__img{
  border-radius:3px; background-color:var(--cream-deep);
  outline:1px solid rgba(20,24,31,.10); outline-offset:-1px;
}
.sart--a .sart__img{ aspect-ratio:.76 }
.sart--b .sart__img{ aspect-ratio:.92 }
.sart figcaption{
  display:flex; align-items:baseline; gap:10px;
  margin-top:12px; padding-top:10px; border-top:1px solid var(--rule);
  font-size:10.5px; letter-spacing:.15em; text-transform:uppercase; color:var(--muted);
}
.sart figcaption span{ color:var(--brass); font-variant-numeric:tabular-nums }

/* ── (a2) the stats stop being three tall rows of text ───────
   They were one column below 640px, which is three more paragraphs of
   scrolling. Three ruled columns reads as one band instead. */
.statement__meta{ grid-template-columns:repeat(3,1fr) }
@media(max-width:639px){
  .statement__meta div{
    border-bottom:0; padding:18px 10px 18px 0;
  }
  .statement__meta div + div{ border-left:1px solid var(--rule-soft); padding-left:12px }
  .statement__meta strong{ font-size:clamp(19px,5.6vw,30px) }
  .statement__meta span{ font-size:9px; letter-spacing:.08em; line-height:1.35 }
}

/* ── (a3) the three service cards become a swipeable rail ────
   Stacked, they were three photo-plus-paragraph blocks in a row — the
   longest text run on the page. Side by side in a snap rail they cost one
   screen instead of three, and the swipe is the interaction the section
   was missing. Desktop keeps the ruled three-up grid. */
.cards__hint{ display:none }
@media(max-width:759px){
  .cards__hint{
    display:flex; align-items:center; justify-content:flex-end; gap:8px;
    margin:0 0 14px; padding:0 var(--gut);
    font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted);
  }
  .cards__hint i{ font-style:normal; color:var(--brass);
    animation:nudge 2.4s var(--ease) infinite }
  @keyframes nudge{ 0%,100%{ transform:translateX(0) } 50%{ transform:translateX(5px) } }

  .cards{
    grid-auto-flow:column; grid-auto-columns:78%; grid-template-columns:none;
    gap:16px; overflow-x:auto; overscroll-behavior-x:contain;
    scroll-snap-type:x mandatory; scroll-padding-left:var(--gut);
    -webkit-overflow-scrolling:touch; scrollbar-width:none;
  }
  .cards::-webkit-scrollbar{ display:none }
  .card{ scroll-snap-align:start }
  .card__desc{ font-size:14px }
}

/* ── (a4) the menu leads with the food, full bleed ───────────
   Every category used to open with a title and four ruled lines, with its
   photo underneath — so on a phone you read four blocks of text before
   seeing anything. The photo now comes first and runs edge to edge, so
   the section alternates picture, list, picture, list. */
@media(max-width:859px){
  .mrow{ gap:clamp(20px,4vw,30px) }
  .mrow__img{
    order:-1;
    margin-inline:calc(var(--gut) * -1);   /* the row's own gutter, cancelled */
    border-radius:0; outline:0; aspect-ratio:1.22;
  }
  .menu__grid{ gap:clamp(46px,9vw,80px) }
}

/* ── (a5) the process reads as a timeline, not three paragraphs ──
   The brass nodes were already there; on a phone there was nothing
   joining them, so the three steps read as three unrelated blocks. */
@media(max-width:759px){
  /* The connector is a border on each step, not one absolute line down the
     column: it then ends exactly at the last node instead of trailing a
     tail past it, and it needs no magic number to do it. */
  .steps{ gap:0 }
  .steps li{
    border-top:0; border-left:1px solid rgba(176,138,79,.34);
    padding:0 0 38px 28px;
  }
  .steps li:last-child{ border-left-color:transparent; padding-bottom:0 }
  .steps li::before{ top:7px; left:-4px }     /* the node straddles the line */
  .steps li::after{ font-size:72px; top:-8px }
  .steps h3{ margin-top:10px }
}

/* ── (a6) the closing photo earns its screen ─────────────────
   It was capped at 300px on a 375px screen — a thumbnail under a headline. */
@media(max-width:720px){
  .contact__arch{ max-width:none; width:100%; aspect-ratio:1.02 }
}

/* new pieces, same fallbacks as everything else */
@media (prefers-reduced-motion:reduce){
  .cards__hint i{ animation:none }
  .statement__art{ opacity:1; transform:none }
}
html.no-js .statement__art{ opacity:1; transform:none }


/* ═══════════════════════════════════════════════════════════
   Seventh pass — "paper". A brand motif under the cream, instead of
   flat #F0EBE2 everywhere.
   TOGGLE: this is ALL scoped to `body.paper`. Drop the `paper` class in
   index.html and the site is back to plain cream, no other edits.
   The motif is the site's own vocabulary, not clip art: the arch from
   `--arch` drawn as a hairline, and the brass ✦ the ticker already uses.
   ═══════════════════════════════════════════════════════════ */

:root{ --paper-tile:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='460' height='460' viewBox='0 0 460 460'><g fill='none' stroke='%23B08A4F' stroke-opacity='.34' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'><g transform='translate%2896 102%29 rotate%2814%29'><g transform='rotate%280%29'><path d='M0,0 C12.6,-14.7 9.1,-34.4 0,-42.0 C-9.1,-34.4 -12.6,-14.7 0,0 Z'/></g><g transform='rotate%2845%29'><path d='M0,0 C12.6,-14.7 9.1,-34.4 0,-42.0 C-9.1,-34.4 -12.6,-14.7 0,0 Z'/></g><g transform='rotate%2890%29'><path d='M0,0 C12.6,-14.7 9.1,-34.4 0,-42.0 C-9.1,-34.4 -12.6,-14.7 0,0 Z'/></g><g transform='rotate%28135%29'><path d='M0,0 C12.6,-14.7 9.1,-34.4 0,-42.0 C-9.1,-34.4 -12.6,-14.7 0,0 Z'/></g><g transform='rotate%28180%29'><path d='M0,0 C12.6,-14.7 9.1,-34.4 0,-42.0 C-9.1,-34.4 -12.6,-14.7 0,0 Z'/></g><g transform='rotate%28225%29'><path d='M0,0 C12.6,-14.7 9.1,-34.4 0,-42.0 C-9.1,-34.4 -12.6,-14.7 0,0 Z'/></g><g transform='rotate%28270%29'><path d='M0,0 C12.6,-14.7 9.1,-34.4 0,-42.0 C-9.1,-34.4 -12.6,-14.7 0,0 Z'/></g><g transform='rotate%28315%29'><path d='M0,0 C12.6,-14.7 9.1,-34.4 0,-42.0 C-9.1,-34.4 -12.6,-14.7 0,0 Z'/></g><circle cx='0' cy='0' r='6.3'/></g><g transform='translate%28214 352%29 rotate%28-12%29'><path d='M0,0 C51,-15 105,-22 150,-18'/><g transform='translate%2834.0 -8.8%29 rotate%2829%29'><path d='M0,0 Q15.0,-9.3 30.0,0 Q15.0,9.3 0,0 Z'/></g><g transform='translate%2866.5 -14.8%29 rotate%28-51%29'><path d='M0,0 Q15.0,-9.3 30.0,0 Q15.0,9.3 0,0 Z'/></g><g transform='translate%2898.5 -18.4%29 rotate%2838%29'><path d='M0,0 Q15.0,-9.3 30.0,0 Q15.0,9.3 0,0 Z'/></g><g transform='translate%28129.2 -19.2%29 rotate%28-41%29'><path d='M0,0 Q15.0,-9.3 30.0,0 Q15.0,9.3 0,0 Z'/></g><circle cx='9.2' cy='4.9' r='6.8'/></g><g transform='translate%28400 166%29 rotate%2822%29'><ellipse cx='0' cy='0' rx='6.8' ry='13'/><path d='M0,-9.4 L0,9.4'/></g></g><g fill='none' stroke='%2314181F' stroke-opacity='.10' stroke-width='1' stroke-linecap='round' stroke-linejoin='round'><g transform='translate%28392 404%29 rotate%28-166%29'><path d='M0,0 C39,-12 81,-17 116,-14'/><g transform='translate%2826.3 -6.8%29 rotate%2829%29'><path d='M0,0 Q11.6,-7.2 23.2,0 Q11.6,7.2 0,0 Z'/></g><g transform='translate%2851.4 -11.5%29 rotate%28-51%29'><path d='M0,0 Q11.6,-7.2 23.2,0 Q11.6,7.2 0,0 Z'/></g><g transform='translate%2876.1 -14.2%29 rotate%2838%29'><path d='M0,0 Q11.6,-7.2 23.2,0 Q11.6,7.2 0,0 Z'/></g><circle cx='7.1' cy='3.8' r='5.2'/></g><g transform='translate%28322 60%29 rotate%28-18%29'><g transform='rotate%280%29'><path d='M0,0 C7.2,-8.4 5.2,-19.7 0,-24.0 C-5.2,-19.7 -7.2,-8.4 0,0 Z'/></g><g transform='rotate%2845%29'><path d='M0,0 C7.2,-8.4 5.2,-19.7 0,-24.0 C-5.2,-19.7 -7.2,-8.4 0,0 Z'/></g><g transform='rotate%2890%29'><path d='M0,0 C7.2,-8.4 5.2,-19.7 0,-24.0 C-5.2,-19.7 -7.2,-8.4 0,0 Z'/></g><g transform='rotate%28135%29'><path d='M0,0 C7.2,-8.4 5.2,-19.7 0,-24.0 C-5.2,-19.7 -7.2,-8.4 0,0 Z'/></g><g transform='rotate%28180%29'><path d='M0,0 C7.2,-8.4 5.2,-19.7 0,-24.0 C-5.2,-19.7 -7.2,-8.4 0,0 Z'/></g><g transform='rotate%28225%29'><path d='M0,0 C7.2,-8.4 5.2,-19.7 0,-24.0 C-5.2,-19.7 -7.2,-8.4 0,0 Z'/></g><g transform='rotate%28270%29'><path d='M0,0 C7.2,-8.4 5.2,-19.7 0,-24.0 C-5.2,-19.7 -7.2,-8.4 0,0 Z'/></g><g transform='rotate%28315%29'><path d='M0,0 C7.2,-8.4 5.2,-19.7 0,-24.0 C-5.2,-19.7 -7.2,-8.4 0,0 Z'/></g><circle cx='0' cy='0' r='3.6'/></g><g transform='translate%28150 238%29 rotate%28-34%29'><ellipse cx='0' cy='0' rx='5.2' ry='10'/><path d='M0,-7.2 L0,7.2'/></g></g></svg>") }

/* The dark sections (hero, showcase, contact, footer) all paint their own
   opaque grounds, so putting the motif on `body` shows it through exactly
   the cream sections and nowhere else — one paint layer, no extra elements,
   no stacking-context games. */
body.paper{
  background-image:var(--paper-tile);
  background-repeat:repeat;
  background-size:460px 460px;
}
/* .quote is the one cream section with a background of its own, so it would
   cover the body layer — it carries the motif itself. */
body.paper .quote{
  background-image:var(--paper-tile);
  background-size:460px 460px;
}
@media(max-width:720px){
  body.paper, body.paper .quote{ background-size:320px 320px }
}

/* Two oversized watermarks of the mark itself, bleeding off opposite edges.
   The tile gives the ground texture; these give it a brand. z-index:-1 keeps
   them above the body tile and behind every bit of content — both sections
   have no background of their own, so nothing hides them. */
/* overflow:hidden is load-bearing — the watermarks bleed off the section
   edge on purpose, and without it they push documentElement.scrollWidth past
   the viewport (1440 -> 1678 when this was first added). Neither section has
   a sticky descendant, so clipping them costs nothing. */
body.paper .services,
body.paper .process{ position:relative; overflow:hidden }
body.paper .services::after,
body.paper .process::after{
  content:""; position:absolute; z-index:-1; pointer-events:none;
  width:min(560px,62vw); aspect-ratio:220/318;
  background:url(../img/logo-mark-ink.png) center/contain no-repeat;
  opacity:.06;
}
body.paper .services::after{ top:-4%;  right:-14%; transform:rotate(8deg) }
body.paper .process::after{  bottom:-6%; left:-16%; transform:rotate(-10deg) }
@media(max-width:720px){
  body.paper .services::after,
  body.paper .process::after{ width:74vw; opacity:.028 }
}

/* The existing grain sheet sits on top of all of this and ties it together;
   it is dialled back a touch so the two textures don't fight. */
body.paper::after{ opacity:.022 }


/* ═══════════════════════════════════════════════════════════
   Eighth pass — desktop only.
   (1) The footer stacked the lockup above the columns and left half the
       band empty to its right. Logo and columns now share one row.
   (2) The cream ground is no longer a repeating tile on desktop. He asked
       for something abstract that is NOT the same thing wallpapered down
       the page, so each cream section gets ONE bespoke composition,
       scaled and bled off a different edge. Phones keep the botanical
       tile — big single figures need width to read, and at 390px they
       just look like a stray line.

   NINTH PASS replaces those compositions. They were concentric rings,
   arcs and ellipses — geometry, and it read as boring. They are now
   HAND-DRAWN CULINARY LINE ART: a platter and its service, the cloche
   from the mark, a frieze of the kitchen, the pot and its steam, a
   wreath. Same architecture — one `background-image` per section, so
   nothing can overflow and there are no extra elements or stacking
   contexts. Every stroke is a parametric curve resampled with smooth
   noise pushed along its normal (periodic noise for closed shapes, so
   the ends meet), emitted as an M/Q/T chain with no transform
   attributes. Generated by `hand.py`; regenerate there, don't hand-edit
   the path data.
   ═══════════════════════════════════════════════════════════ */

@media(min-width:900px){
  /* ── footer: one row ─────────────────────────────────────── */
  .foot{
    display:grid; align-items:start;
    grid-template-columns:minmax(0,.85fr) minmax(0,1.55fr);
    column-gap:clamp(48px,7vw,120px);
  }
  .foot__word{ grid-column:1; margin:0 }
  .foot__logo{ width:min(340px,26vw) }
  /* the rule and its padding existed to separate the columns from the
     masthead ABOVE them; side by side there is nothing to separate. */
  .foot__cols{ grid-column:2; align-self:center; border-top:0; padding-top:0; gap:clamp(24px,3vw,48px) }
  .foot__base{ grid-column:1 / -1 }

  /* ── the abstract figures ────────────────────────────────── */
  body.paper{ background-image:none }              /* no tile on desktop */
  body.paper .services::after,
  body.paper .process::after{ display:none }       /* the logo watermarks go with it */

  body.paper .statement,
  body.paper .services,
  body.paper .menu,
  body.paper .process,
  body.paper .quote{ background-repeat:no-repeat }

  /* FIGURES:DESKTOP — generated by tools/hand.py, do not hand-edit */
  /* a platter and its service, bled off the left gutter */
  body.paper .statement{
    background-image:var(--fig-statement);
    background-size:min(940px,66vw) auto;
    background-position:left -150px center;
  }
  /* the cloche of the mark, steam rising past the section head */
  body.paper .services{
    background-image:var(--fig-services);
    background-size:min(640px,42vw) auto;
    background-position:right -120px top -10px;
  }
  /* a frieze of the kitchen under the section head */
  body.paper .menu{
    background-image:var(--fig-menu);
    background-size:62% auto;
    background-position:center top 4%;
  }
  /* the pot, and what rises off it, out of the bottom corner */
  body.paper .process{
    background-image:var(--fig-process);
    background-size:min(620px,42vw) auto;
    background-position:right -120px bottom -260px;
  }
  /* an open wreath around the pull quote */
  body.paper .quote{
    background-image:var(--fig-quote);
    background-size:min(1240px,88vw) auto;
    background-position:center center;
  }
  /* FIGURES:DESKTOP END */
}

/* FIGURES:GROUND — generated by tools/hand.py, do not hand-edit */
:root{
  --fig-statement:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='1000' height='1000' viewBox='0 0 1000 1000'><g fill='none' stroke='%23B08A4F' stroke-opacity='0.34' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'><path d='M666,429Q669,499 661,534T635,602T591,665T531,719T459,761T378,789T293,800T209,795T130,775T59,741T2,694T-39,636T-62,570T-66,501T-51,431T-16,365T37,306T104,259T181,224T264,204T350,200T432,212T507,240T571,282T620,335T653,396T668,464T669,499Z'/><path d='M592,443Q593,504 583,535T555,593T510,645T451,687T381,716T306,731T230,730T159,714T98,682T50,638T20,585T10,526T18,466T45,407T89,354T149,312T219,282T294,269T370,271T440,288T502,319T550,362T581,415T592,474T593,504Z'/><path d='M24,716Q51,703 64,697T90,683T117,670T143,656T169,642T182,635'/><path d='M40,708Q40,714 37,717T30,721T23,722T18,719T18,713T24,708T31,705T38,706T40,711T40,714Z'/><path d='M180,632Q185,624 188,620T194,612T203,603T214,594T228,584T247,572T271,560T284,553'/><path d='M203,616Q218,608 225,604T240,596T255,588T270,580T285,573T293,569'/><path d='M184,638Q193,639 198,640T209,640T220,638T234,635T251,629T271,620T296,608T309,602'/><path d='M210,630Q226,623 233,620T248,612T263,604T279,597T293,589T300,585'/><path d='M32,324Q59,337 73,342T100,354T127,367T154,380T181,393T194,399'/><path d='M50,332Q45,336 40,335T32,332T27,327T26,321T31,318T39,319T46,323T49,326'/><path d='M305,451Q295,462 287,465T268,469T247,466T226,458T208,446T195,430T190,413T192,399T202,388T218,382T238,382T259,387T279,397T295,412T305,428T307,444T300,457T295,462Z'/><path d='M429,735Q443,726 450,721T464,712T478,703T491,693T505,685T518,676T531,668T544,660T558,653T572,648T586,643T600,639T614,635T621,633'/><path d='M461,714Q462,719 465,722T472,728T482,732T491,730T500,726T505,721T506,717T501,712T494,706T485,701T475,703T467,707T463,710'/><path d='M511,680Q515,680 519,678T526,672T530,664T530,655T527,647T525,642T521,641T515,643T509,649T504,657T503,666T506,674T508,677'/><path d='M561,653Q562,657 564,660T569,666T575,671T584,671T591,668T595,665T597,662T595,657T590,651T583,647T575,647T567,648T564,650'/><path d='M613,634Q616,635 619,634T626,632T632,627T634,621T633,614T632,609T630,607T625,607T619,610T614,615T611,622T610,628T611,632'/></g><g fill='none' stroke='%2314181F' stroke-opacity='0.09' stroke-width='1.1' stroke-linecap='round' stroke-linejoin='round'><path d='M616,439Q617,502 608,534T581,595T536,651T477,698T406,733T328,752T249,755T172,742T104,714T48,673T9,620T-12,561T-14,498T3,434T39,375T91,324T157,284T232,256T312,244T390,249T463,270T525,305T573,353T605,409T616,471T617,502Z'/><path d='M288,443Q281,451 275,453T261,455T245,452T229,446T216,435T208,423T207,411T212,402T222,396T235,394T251,397T267,404T280,414T288,426T289,438T285,447T281,451Z'/><path d='M494,532Q490,544 485,548T473,553T460,552T451,543T447,532T451,521T460,513T473,511T485,516T492,526T492,538T490,544Z'/><path d='M531,588Q528,595 525,598T518,601T510,600T504,595T502,588T504,581T510,576T518,574T525,578T530,584T529,592T528,595Z'/><path d='M462,616Q461,621 459,623T453,624T448,624T444,621T442,616T444,611T448,608T453,607T458,609T461,614T461,619T461,621Z'/></g></svg>");
  --fig-services:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='900' height='900' viewBox='0 0 900 900'><g fill='none' stroke='%23B08A4F' stroke-opacity='0.34' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'><path d='M191,560Q193,531 196,517T206,488T220,461T238,436T261,413T287,393T315,375T347,360T380,349T415,340T452,336T488,336T525,340T560,348T594,359T626,373T655,391T681,412T703,435T721,461T734,488T743,517T748,545T749,560'/><path d='M173,560Q272,559 322,559T421,559T519,559T618,559T717,559T767,560'/><path d='M502,305Q497,323 490,329T474,336T457,334T444,322T439,305T444,288T457,277T474,275T491,282T500,296T500,314T497,323Z'/><path d='M470,336Q470,336 470,336T470,336T470,337T470,337T470,337T470,337'/><path d='M520,337Q512,344 502,346T477,349T450,348T429,343T422,337T429,331T450,326T477,325T502,328T516,334T516,340T512,344Z'/><path d='M872,566Q854,585 830,592T769,606T684,616T581,624T470,627T358,626T256,618T171,607T110,592T78,575T79,558T110,541T171,526T256,514T358,506T470,504T582,507T684,516T769,527T830,541T863,557T863,575T854,585Z'/><path d='M331,301Q339,287 343,280T349,267T354,254T355,241T352,228T344,215T332,201T318,188T304,175T294,162T288,149T289,135T299,122T316,110T336,97T347,91'/><path d='M607,297Q617,283 622,275T629,261T632,247T630,233T623,219T609,204T592,190T576,177T565,163T563,149T571,135T587,120T610,106T634,93T654,80T662,73'/><path d='M60,705Q76,697 84,693T100,684T116,674T131,666T147,657T162,650T178,643T194,637T209,632T225,627T240,622T256,617T271,615T279,614'/><path d='M97,686Q97,690 100,694T107,702T117,707T128,706T137,702T143,698T144,694T140,687T134,679T124,675T113,675T103,679T99,682'/><path d='M140,661Q145,661 149,659T157,654T162,645T164,635T161,626T158,620T154,619T148,620T140,626T134,634T133,644T135,654T137,657'/><path d='M183,641Q184,645 186,649T192,655T199,661T209,662T217,660T222,656T223,653T221,647T216,640T208,635T199,634T191,637T187,638'/><path d='M227,625Q231,625 235,624T242,621T249,615T251,607T250,599T249,594T246,592T240,592T233,595T226,601T224,610T225,618T225,621'/><path d='M271,616Q270,619 271,623T274,629T279,635T286,638T294,638T299,637T300,634T299,629T297,622T292,616T285,613T277,614T274,614'/><path d='M828,690Q833,680 835,675T834,665T829,656T823,651T818,650T813,653T810,660T811,671T816,680T824,686T828,690T831,685T833,680Z'/><path d='M828,690Q839,687 843,684T849,676T853,666T853,659T850,654T844,653T837,657T830,665T826,674T827,685T828,690T833,688T839,687Z'/><path d='M828,690Q838,695 843,697T853,697T862,691T868,685T868,680T865,676T858,673T847,673T838,677T831,685T828,690T833,692T838,695Z'/><path d='M828,690Q832,700 834,705T842,712T851,715T859,715T864,712T864,706T861,699T854,691T844,688T833,689T828,690T830,695T832,700Z'/><path d='M828,690Q824,700 821,705T821,715T827,724T833,730T838,730T842,727T846,720T846,709T841,700T832,693T828,690T826,695T824,700Z'/><path d='M828,690Q817,693 813,696T807,704T803,714T803,721T806,726T812,727T819,724T827,716T830,706T829,695T828,690T823,692T817,693Z'/><path d='M828,690Q818,685 813,683T803,684T793,688T788,695T788,700T791,705T798,708T809,707T818,703T824,694T828,690T823,688T818,685Z'/><path d='M827,690Q825,679 822,674T815,667T805,665T797,665T792,668T792,674T795,681T802,688T812,693T823,692T828,690T826,685T825,679Z'/><path d='M835,688Q834,693 832,695T828,697T824,696T822,692T822,687T825,684T830,684T832,685'/></g><g fill='none' stroke='%2314181F' stroke-opacity='0.09' stroke-width='1.1' stroke-linecap='round' stroke-linejoin='round'><path d='M232,536Q238,509 244,496T257,471T276,448T299,428T325,411T354,396T385,385T419,378T453,374T487,374T521,377T555,384T586,395T615,410T641,428T663,449T682,472T696,497T705,523T708,536'/><path d='M800,564Q783,578 760,584T700,597T618,607T521,612T419,612T322,606T240,597T180,585T148,571T148,556T179,542T239,530T322,522T419,518T521,518T618,522T701,530T761,542T792,556T792,571T783,578Z'/><path d='M471,252Q478,236 481,227T488,210T492,193T494,177T492,160T488,144T480,127T469,109T457,93T445,76T435,59T431,43T431,26T437,9T448,-8T455,-17'/></g></svg>");
  --fig-menu:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='1500' height='560' viewBox='0 0 1500 560'><g fill='none' stroke='%23B08A4F' stroke-opacity='0.34' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round'><path d='M56,116Q85,118 99,119T128,121T157,122T186,124T215,125T230,125'/><path d='M74,117Q71,122 67,123T59,123T52,121T50,116T53,111T60,109T68,110T73,114T72,119T71,122Z'/><path d='M230,121Q238,116 243,115T252,111T263,108T277,106T294,104T316,103T342,104T357,104'/><path d='M257,118Q274,119 282,119T298,120T315,120T331,121T348,122T356,123'/><path d='M230,129Q238,134 241,137T250,142T261,146T274,150T291,153T313,155T339,157T354,159'/><path d='M256,135Q273,136 281,136T297,137T314,139T330,140T347,140T355,141'/><path d='M574,132Q570,159 564,172T548,194T526,210T500,217T473,217T447,209T425,193T408,172T400,146T400,118T408,92T424,70T446,54T472,47T499,47T525,55T547,71T564,92T572,118T572,146T570,159Z'/><path d='M494,135Q504,137 509,139T519,143T528,146T538,148T548,152T553,153'/><path d='M525,154Q526,157 526,159T525,162T525,165T525,168T523,170T521,171T518,173T516,174T513,174T510,174T507,173T505,172'/><path d='M488,141Q489,151 490,156T493,166T496,176T498,186T500,196T501,201'/><path d='M486,177Q484,179 482,180T480,182T477,183T474,183T472,182T469,182T467,181T465,179T463,177T461,174T461,170T461,169'/><path d='M480,138Q471,144 468,148T460,155T453,162T445,169T438,176T434,180'/><path d='M447,155Q444,154 442,153T440,152T438,150T436,147T436,145T435,142T435,140T435,137T436,134T437,131T440,129T441,128'/><path d='M478,129Q468,126 463,124T453,121T443,118T434,116T424,113T419,111'/><path d='M447,110Q447,107 447,105T446,102T447,99T448,96T449,94T451,92T454,91T456,91T459,90T462,90T465,91T467,91'/><path d='M485,123Q482,113 481,108T479,98T477,88T474,78T472,68T470,63'/><path d='M485,87Q488,85 490,84T492,83T495,81T498,80T500,81T503,82T505,84T507,85T509,88T511,90T512,93T512,95'/><path d='M493,126Q500,119 504,116T512,109T519,102T527,95T534,88T538,85'/><path d='M525,109Q528,110 530,111T532,112T534,114T536,117T537,119T537,122T537,124T537,127T536,130T534,132T532,135T531,137'/><path d='M744,104Q764,85 775,78T796,66T817,60T838,57T859,58T880,62T900,70T919,80T936,93T953,107T961,114'/><path d='M753,146Q773,132 783,127T802,119T822,114T841,111T861,110T879,109T898,110T916,111T934,113T952,114T961,114'/><path d='M748,120Q733,109 725,105T710,98T696,92T682,86T669,81T657,75T646,66T641,61'/><path d='M735,102Q737,110 738,114T739,122T741,130T743,139T745,147T746,151'/><path d='M1094,86Q1114,74 1124,69T1144,56T1163,45T1183,33T1202,23T1222,13T1241,4T1261,-4T1281,-11T1300,-19T1319,-26T1339,-30T1359,-33T1369,-34'/><path d='M1138,59Q1140,65 1143,69T1152,77T1163,83T1176,82T1187,78T1194,73T1195,68T1191,60T1182,52T1171,47T1158,47T1147,52T1142,54'/><path d='M1194,28Q1199,27 1203,24T1212,18T1219,8T1221,-3T1218,-14T1214,-21T1209,-23T1202,-19T1193,-13T1187,-3T1185,8T1187,19T1189,24'/><path d='M1248,1Q1250,6 1252,10T1257,18T1266,25T1277,25T1287,22T1294,18T1295,14T1292,7T1286,-1T1277,-7T1266,-7T1256,-5T1252,-3'/><path d='M1303,-20Q1307,-20 1311,-22T1320,-25T1327,-32T1330,-42T1330,-51T1328,-57T1324,-59T1317,-58T1309,-54T1301,-47T1298,-38T1299,-28T1300,-24'/><path d='M1357,-33Q1357,-29 1358,-25T1362,-17T1367,-10T1376,-7T1385,-7T1390,-9T1392,-12T1391,-18T1388,-26T1382,-33T1374,-36T1365,-36T1361,-35'/><path d='M50,300Q121,291 157,287T228,279T299,271T370,261T441,252T477,247'/><path d='M476,245Q481,244 483,245T487,245T492,244T496,245T500,244T503,244'/><path d='M70,283Q78,273 82,268T98,260T122,254T140,255T152,262T158,274T159,294T153,309T141,319T126,325T108,330T94,328T82,318T75,305T72,290T74,278T78,273Z'/><path d='M174,263Q183,253 188,249T206,245T231,244T248,246T259,254T264,268T260,288T251,301T238,309T223,314T205,316T191,311T181,299T177,285T175,270T179,258T183,253Z'/><path d='M280,243Q291,236 296,233T314,231T338,233T356,238T366,248T367,262T361,281T350,293T336,299T320,301T302,299T289,293T280,280T277,266T279,251T285,240T291,236Z'/><path d='M387,225Q398,219 404,217T422,217T446,223T462,231T471,242T470,257T460,275T448,285T433,288T417,287T400,284T388,275T381,260T380,246T384,231T393,222T398,219Z'/><path d='M558,281Q579,283 590,285T611,289T632,291T653,293T675,295T685,297'/><path d='M554,323Q575,323 586,324T607,326T628,327T650,329T671,331T682,332'/><path d='M554,322Q547,321 544,319T539,314T536,307T536,300T538,293T542,287T547,283T554,281T558,281'/><path d='M693,295Q724,288 740,287T771,284T802,284T833,288T862,296T891,306T918,318T942,333T954,341'/><path d='M690,333Q724,338 741,339T775,342T807,344T839,346T868,347T896,347T921,345T944,342T954,340'/><path d='M694,295Q693,301 692,304T692,311T691,317T691,323T690,329T690,332'/><path d='M1355,350Q1348,359 1339,363T1317,370T1286,376T1249,379T1212,378T1178,373T1151,367T1133,359T1126,350T1132,340T1150,332T1178,326T1212,323T1249,322T1286,325T1317,329T1340,336T1352,345T1352,354T1348,359Z'/><path d='M1125,350Q1129,380 1133,393T1143,416T1155,434T1170,449T1187,459T1207,467T1228,471T1240,473'/><path d='M1355,350Q1350,380 1346,393T1336,416T1325,435T1310,449T1293,460T1274,467T1252,470T1240,471'/><path d='M1277,488Q1271,494 1263,496T1245,499T1225,498T1210,494T1205,488T1210,482T1225,478T1245,477T1263,479T1271,482'/><path d='M1199,325Q1206,317 1209,313T1215,304T1218,296T1219,287T1217,279T1212,271T1204,262T1193,254T1182,245T1173,237T1167,229T1165,220T1168,212T1177,203T1190,195T1198,190'/><path d='M196,467Q220,466 232,465T256,463T280,461T304,459T328,458T340,457'/><path d='M211,467Q210,472 206,473T199,474T193,472T191,468T193,464T199,461T205,462T209,463'/><path d='M437,451Q435,463 431,468T419,478T403,485T385,487T367,485T353,478T342,469T339,458T341,447T350,436T363,427T381,423T399,423T416,427T428,435T435,446T436,457T435,463Z'/><path d='M626,470Q638,462 643,458T649,446T649,433T646,424T641,419T633,419T626,426T620,438T619,451T623,464T626,470T632,466T638,462Z'/><path d='M626,470Q640,474 646,474T659,469T668,460T674,451T673,444T667,439T657,439T644,443T634,451T628,463T626,470T633,472T640,474Z'/><path d='M626,470Q634,481 638,486T650,492T663,493T673,491T678,485T677,477T670,470T658,464T645,463T633,467T626,470T630,476T634,481Z'/><path d='M626,470Q623,484 622,491T627,503T636,513T645,517T652,516T656,511T657,501T654,488T645,478T633,473T626,470T624,477T623,484Z'/><path d='M626,470Q614,478 609,482T603,494T603,507T606,516T612,521T619,521T626,514T633,502T633,489T629,477T626,470T620,474T614,478Z'/><path d='M626,470Q612,467 606,467T594,471T584,480T579,489T579,496T585,501T595,501T608,498T618,489T623,476T626,470T619,469T612,467Z'/><path d='M626,470Q618,458 614,453T602,447T589,446T579,449T575,455T576,463T583,470T594,476T607,477T619,473T626,470T622,464T618,458Z'/><path d='M626,470Q629,456 629,450T625,437T616,428T607,423T600,424T595,429T595,439T598,452T607,462T619,467T626,470T628,463T629,456Z'/><path d='M635,472Q631,478 628,478T622,477T618,473T618,468T621,463T627,462T632,464T634,466'/><path d='M1424,190Q1428,183 1430,179T1430,171T1427,164T1424,159T1419,158T1415,160T1413,165T1412,174T1415,181T1421,187T1424,190T1426,186T1428,183Z'/><path d='M1424,190Q1432,188 1436,187T1442,182T1446,174T1446,168T1444,164T1439,163T1434,166T1428,171T1424,178T1424,186T1424,190T1428,189T1432,188Z'/><path d='M1424,190Q1431,195 1435,196T1443,196T1450,193T1454,190T1456,185T1454,181T1448,179T1440,178T1433,181T1427,187T1424,190T1427,193T1431,195Z'/><path d='M1424,190Q1426,198 1427,202T1433,207T1440,211T1446,212T1450,210T1451,205T1449,199T1444,193T1437,190T1428,190T1424,190T1425,194T1426,198Z'/><path d='M1424,190Q1420,198 1418,201T1418,209T1420,216T1424,221T1428,222T1433,220T1435,215T1435,206T1433,199T1427,193T1424,190T1422,194T1420,198Z'/><path d='M1424,190Q1416,192 1412,194T1406,199T1403,206T1402,212T1404,216T1409,217T1414,215T1420,209T1424,202T1424,194T1424,190T1420,191T1416,192Z'/><path d='M1424,190Q1417,185 1413,183T1405,184T1398,187T1393,190T1392,195T1394,199T1399,201T1408,202T1415,199T1421,193T1424,189T1421,187T1417,185Z'/><path d='M1424,190Q1422,182 1421,177T1416,171T1408,169T1402,168T1398,171T1398,175T1400,180T1404,187T1411,190T1420,191T1424,190T1423,186T1422,182Z'/><path d='M1429,189Q1429,193 1427,194T1424,195T1421,194T1419,191T1420,187T1422,185T1426,185T1428,186'/></g><g fill='none' stroke='%2314181F' stroke-opacity='0.09' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M561,132Q556,156 550,167T535,185T515,198T492,204T468,203T446,194T428,177T418,156T414,132T417,108T428,87T446,71T468,61T492,59T515,66T535,79T550,97T559,120T558,144T556,156Z'/><path d='M1332,350Q1325,357 1317,361T1294,367T1265,371T1232,372T1200,369T1173,364T1156,358T1150,350T1156,342T1173,335T1200,330T1232,329T1265,330T1294,333T1317,338T1329,346T1329,354T1325,357Z'/><path d='M1277,327Q1282,321 1284,318T1289,312T1293,305T1296,299T1295,292T1292,286T1286,280T1279,274T1271,267T1263,260T1255,254T1250,247T1247,241T1248,235T1252,228T1256,225'/><path d='M424,452Q421,461 417,464T408,471T396,475T382,476T369,474T359,469T353,461T352,453T358,445T367,439T379,434T393,433T406,435T416,440T422,448T423,456T421,461Z'/></g></svg>");
  --fig-process:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='820' height='900' viewBox='0 0 820 900'><g fill='none' stroke='%23B08A4F' stroke-opacity='0.34' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'><path d='M635,520Q625,534 609,541T570,552T516,560T453,564T387,563T324,559T270,551T230,541T210,527T210,513T231,501T270,490T324,480T387,475T453,475T516,480T570,489T609,500T630,513T630,527T625,534Z'/><path d='M206,520Q207,572 209,596T212,641T217,681T225,716T234,746T243,772T255,794T267,812T273,820'/><path d='M635,520Q632,572 631,596T627,641T621,680T615,716T607,746T598,772T586,794T573,812T566,820'/><path d='M567,820Q564,827 559,830T548,836T533,841T512,845T489,848T462,850T434,851T406,851T378,850T351,848T328,845T308,840T291,835T280,830T275,823T273,820'/><path d='M209,562Q197,563 191,565T181,570T173,578T168,588T167,598T169,608T174,618T181,626T191,631T203,634T209,635'/><path d='M631,562Q643,563 648,565T658,571T667,578T672,588T674,598T671,608T666,617T659,625T648,631T637,634T631,635'/><path d='M301,500Q310,481 316,472T325,453T331,435T331,416T324,397T312,378T296,359T278,341T262,323T253,303T252,284T259,265T276,247T300,229T325,210T337,200'/><path d='M556,508Q570,488 576,477T585,456T589,434T585,413T572,392T553,372T533,351T516,330T507,309T509,287T524,266T548,246T577,226T603,204T619,183T624,172'/><path d='M641,300Q652,277 657,265T669,242T681,219T694,196T707,174T714,163'/><path d='M648,285Q651,290 650,293T647,300T643,305T637,305T635,301T635,294T640,288T643,285'/><path d='M763,68Q772,78 774,85T777,101T774,119T766,137T754,152T739,162T725,166T712,164T702,155T698,141T699,123T705,105T715,88T729,75T743,67T757,66T768,73T772,78Z'/><path d='M131,701Q138,694 141,690T144,681T144,672T141,666T137,663T132,664T126,669T122,677T123,687T127,696T130,700T134,697T138,694Z'/><path d='M130,699Q140,702 145,701T153,697T159,690T162,683T161,678T157,675T150,675T141,679T135,686T131,695T130,700T135,701T140,702Z'/><path d='M130,700Q136,708 140,711T149,714T158,713T164,711T167,706T167,701T161,696T152,693T143,693T135,698T130,700T133,704T136,708Z'/><path d='M130,700Q129,710 129,715T133,724T140,730T147,732T152,731T154,727T154,720T151,711T144,704T135,701T130,700T129,705T129,710Z'/><path d='M130,700Q122,706 119,710T116,719T117,728T119,735T123,738T129,737T134,731T137,722T136,713T132,705T130,700T126,703T122,706Z'/><path d='M130,700Q120,699 115,700T107,703T100,710T97,717T99,722T103,724T110,724T119,721T126,715T128,705T130,700T125,700T120,699Z'/><path d='M130,700Q124,692 120,689T111,686T102,687T96,689T93,694T93,699T99,704T107,707T117,707T125,702T130,700T127,696T124,692Z'/><path d='M130,700Q132,690 131,685T127,677T120,671T113,668T108,669T106,673T105,680T109,689T116,696T125,698T130,700T131,695T132,690Z'/><path d='M136,701Q134,705 132,706T128,706T125,703T124,699T126,695T130,694T134,695T136,697'/><path d='M561,761Q573,753 580,748T592,740T605,732T618,725T630,718T643,711T656,705T669,700T682,696T694,691T707,687T720,684T732,681T739,680'/><path d='M590,742Q590,747 593,750T599,757T608,761T618,760T626,756T630,752T631,749T628,743T622,737T613,732T604,733T596,737T592,739'/><path d='M637,715Q641,714 644,713T651,709T656,701T657,693T655,685T652,680T649,679T644,681T636,685T631,692T630,701T632,709T634,712'/><path d='M684,694Q685,698 686,701T690,707T696,712T704,712T711,710T716,708T717,706T715,701T711,695T705,690T697,689T690,690T687,691'/><path d='M732,680Q735,681 738,681T744,679T750,675T753,669T753,662T752,658T750,656T745,656T739,658T733,662T730,668T730,675T730,678'/></g><g fill='none' stroke='%2314181F' stroke-opacity='0.09' stroke-width='1.1' stroke-linecap='round' stroke-linejoin='round'><path d='M605,520Q595,533 581,538T544,546T493,552T435,555T375,555T320,551T276,543T248,531T238,520T248,508T276,498T320,489T375,485T435,484T493,487T543,494T580,503T600,514T600,526T595,533Z'/><path d='M430,476Q436,460 440,453T447,437T453,422T456,407T455,392T450,377T441,361T429,346T417,330T404,315T393,301T387,285T387,270T394,255T407,239T414,232'/><path d='M756,82Q763,89 764,94T765,107T761,120T754,134T745,144T734,151T724,152T716,147T712,138T711,126T713,112T720,99T731,89T741,83T751,81T760,85T763,89Z'/></g></svg>");
  --fig-quote:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='1400' height='640' viewBox='0 0 1400 640'><g fill='none' stroke='%23B08A4F' stroke-opacity='0.34' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'><path d='M636,682Q579,667 553,655T501,628T454,594T413,552T380,504T356,451T340,395T332,337T334,279T345,222T364,167T391,116T426,69T469,29T518,-3T571,-27T598,-38'/><path d='M578,667Q582,663 584,657T586,645T584,633T576,623T565,617T557,614T552,616T549,624T547,636T548,649T556,659T567,665T572,667'/><path d='M469,607Q465,601 460,597T448,590T433,588T419,594T409,604T404,612T404,618T411,625T423,632T438,634T452,628T462,618T466,614'/><path d='M386,515Q394,512 400,508T412,498T420,484T421,468T415,453T408,445T401,442T392,447T380,457T372,471T372,488T377,503T380,509'/><path d='M339,399Q339,391 337,384T331,368T320,355T303,350T287,352T275,355T271,361T273,373T280,388T291,400T308,405T324,405T332,404'/><path d='M332,275Q340,279 347,280T364,279T380,272T391,259T397,243T397,232T392,226T381,223T365,223T348,230T338,244T333,259T332,267'/><path d='M367,155Q374,150 376,143T380,128T378,112T369,98T357,88T347,85T340,87T335,97T330,112T331,128T341,142T353,151T360,154'/><path d='M440,55Q443,61 448,65T459,74T473,79T488,76T499,67T506,60T507,54T501,46T489,37T475,34T461,37T448,44T443,48'/><path d='M542,-16Q549,-17 553,-20T563,-27T570,-38T571,-50T568,-62T564,-69T559,-72T551,-69T541,-61T534,-50T533,-38T536,-26T538,-21'/><path d='M764,683Q821,668 848,657T899,629T946,594T986,551T1018,503T1043,450T1060,395T1068,337T1067,279T1056,222T1036,167T1009,116T973,69T931,29T883,-4T830,-28T802,-38'/><path d='M822,667Q828,667 833,665T844,659T852,649T853,636T851,624T848,616T843,614T834,617T824,623T816,633T814,645T816,657T818,663'/><path d='M931,607Q933,614 937,619T948,628T962,634T976,631T989,624T996,618T997,612T992,603T981,594T967,589T953,591T940,598T935,602'/><path d='M1014,515Q1020,509 1023,503T1028,488T1028,472T1020,457T1008,447T998,442T991,444T985,453T980,468T980,484T988,498T1000,508T1006,512'/><path d='M1062,399Q1068,404 1075,405T1092,406T1108,400T1120,388T1127,373T1129,361T1125,355T1114,352T1097,351T1080,355T1068,368T1062,384T1061,391'/><path d='M1068,276Q1069,267 1067,259T1062,244T1051,230T1035,223T1019,223T1008,226T1003,232T1003,243T1009,259T1020,273T1036,279T1052,279T1060,279'/><path d='M1032,156Q1041,155 1047,151T1059,142T1068,128T1070,112T1066,97T1060,87T1053,85T1043,90T1030,98T1020,112T1020,128T1025,143T1028,149'/><path d='M960,55Q956,48 951,44T940,36T925,33T911,38T900,47T894,54T894,60T900,68T912,76T927,79T941,74T952,65T956,61'/><path d='M858,-17Q862,-21 864,-26T868,-38T867,-51T859,-61T849,-68T841,-71T836,-69T832,-62T828,-50T829,-38T837,-27T847,-21T852,-18'/><path d='M570,584Q539,565 524,554T495,530T470,504T448,474T431,441T417,406T408,370T404,334T405,296T410,260T420,224T434,190T453,158T475,129T500,102T528,78T543,67'/><path d='M537,565Q534,562 530,560T522,556T512,555T503,560T496,567T493,572T495,576T500,580T508,584T518,585T527,580T534,574T536,570'/><path d='M458,489Q464,487 468,484T477,476T482,465T480,453T476,442T471,436T466,435T459,438T451,446T446,458T447,470T452,480T454,484'/><path d='M413,389Q413,382 411,376T406,365T396,355T383,352T371,352T362,355T359,360T361,369T366,380T376,389T389,393T401,392T407,392'/><path d='M407,278Q413,281 418,282T431,282T444,277T452,266T456,254T458,245T454,240T445,239T433,239T420,244T411,254T407,266T405,272'/><path d='M442,174Q446,170 449,165T452,154T451,142T445,131T436,124T429,121T424,122T419,128T416,140T416,152T423,162T432,169T436,172'/><path d='M513,89Q514,94 517,97T524,103T533,107T543,105T551,101T556,97T557,92T554,87T547,80T537,77T527,79T519,83T515,85'/><path d='M830,584Q862,566 877,555T906,531T931,504T951,473T968,440T981,406T991,370T995,333T995,296T990,260T981,224T966,190T948,158T925,129T900,102T872,77T857,66'/><path d='M862,565Q864,570 867,573T873,580T882,585T892,585T900,580T906,576T907,572T904,567T897,560T888,556T878,556T869,559T866,561'/><path d='M942,489Q947,485 949,480T953,470T954,458T949,447T941,438T934,434T929,436T924,442T920,453T919,465T924,476T932,484T936,487'/><path d='M988,388Q993,391 999,392T1012,393T1025,390T1034,380T1040,369T1041,360T1038,355T1029,353T1017,352T1003,355T994,364T989,376T987,382'/><path d='M994,279Q994,272 993,266T988,254T980,244T967,239T955,238T946,241T943,245T943,254T947,267T956,277T969,281T982,281T988,281'/><path d='M958,174Q964,173 969,170T977,162T983,152T984,139T981,128T976,122T971,121T964,124T955,131T948,142T948,154T952,165T955,169'/><path d='M887,89Q885,85 881,82T873,78T863,77T854,81T847,87T843,93T843,97T849,101T857,105T867,107T876,103T883,97T886,93'/><path d='M700,710Q708,701 711,697T713,686T710,676T705,669T700,666T694,668T690,675T687,686T690,696T697,705T700,710T704,706T708,701Z'/><path d='M700,711Q712,710 717,708T726,702T731,693T733,685T730,679T725,677T717,678T708,684T702,693T700,704T700,710T706,710T712,710Z'/><path d='M700,710Q709,718 713,721T724,722T734,720T741,715T744,710T742,704T735,700T724,697T713,700T705,706T700,710T704,714T709,718Z'/><path d='M700,710Q700,722 702,727T708,736T717,741T725,743T731,741T734,735T732,727T726,718T717,712T706,711T700,710T700,716T700,722Z'/><path d='M700,710Q693,719 690,723T688,734T690,744T694,751T700,754T706,752T710,745T712,734T710,723T704,714T700,710T696,714T693,719Z'/><path d='M700,711Q688,711 683,712T674,718T668,727T666,735T669,741T675,743T682,741T692,735T698,727T700,716T700,710T694,711T688,711Z'/><path d='M700,711Q691,702 687,699T676,697T665,700T658,704T656,710T659,715T666,720T676,722T686,720T695,713T700,710T695,706T691,702Z'/><path d='M701,710Q699,698 698,693T692,684T682,679T675,677T669,679T667,685T668,693T674,702T683,708T694,710T700,710T700,704T699,698Z'/><path d='M708,710Q705,714 703,716T699,717T695,714T693,710T694,706T699,703T703,704T706,705'/><path d='M700,-75Q706,-79 709,-82T712,-88T712,-96T710,-102T706,-104T702,-103T699,-99T695,-92T695,-85T698,-77T700,-74T703,-77T706,-79Z'/><path d='M700,-75Q708,-73 712,-73T719,-76T724,-81T727,-86T726,-91T722,-93T716,-93T709,-90T704,-85T702,-78T700,-74T704,-74T708,-73Z'/><path d='M700,-74Q705,-68 708,-65T715,-62T722,-63T727,-65T729,-68T729,-72T725,-76T718,-79T711,-80T703,-76T700,-74T702,-71T705,-68Z'/><path d='M700,-74Q700,-66 699,-62T702,-55T707,-50T712,-48T716,-49T718,-52T719,-58T717,-65T712,-70T704,-73T700,-74T700,-70T700,-66Z'/><path d='M700,-74Q693,-69 691,-67T688,-59T689,-52T690,-47T694,-44T698,-45T701,-49T705,-56T705,-63T702,-71T700,-74T697,-72T693,-69Z'/><path d='M700,-74Q692,-75 688,-75T681,-72T676,-67T674,-61T675,-58T678,-55T684,-55T691,-57T696,-63T699,-70T700,-74T696,-74T692,-75Z'/><path d='M700,-74Q695,-80 692,-83T686,-86T678,-86T673,-84T671,-80T671,-76T675,-73T682,-69T689,-68T697,-72T700,-74T697,-77T695,-80Z'/><path d='M700,-74Q701,-82 701,-86T698,-92T692,-97T687,-100T683,-100T681,-96T681,-90T683,-83T688,-77T696,-75T700,-74T700,-78T701,-82Z'/><path d='M705,-73Q703,-70 702,-70T698,-70T696,-72T695,-75T697,-78T700,-79T703,-77T705,-77'/></g></svg>");
}

/* Phones get the same drawings, not the botanical tile — he asked for one
   design at both widths. They are scaled so the OBJECTS stay about the size
   they are on desktop (a figure shrunk to fit 390px is just a stray line)
   and bled off an edge, so each section shows a part of one drawing rather
   than a small complete picture. The tile and the two logo watermarks are
   switched off here; `--paper-tile` is left in the sheet, so putting the
   texture back is one declaration. */
@media(max-width:899px){
  body.paper{ background-image:none }
  body.paper .services::after,
  body.paper .process::after{ display:none }

  body.paper .statement,
  body.paper .services,
  body.paper .menu,
  body.paper .process,
  body.paper .quote{ background-repeat:no-repeat }

  /* the platter, behind the lead — only lightly bled, or all that shows on a phone is its rim */
  body.paper .statement{
    background-image:var(--fig-statement);
    background-size:clamp(430px,110vw,900px) auto;
    background-position:left -40px top 22%;
  }
  /* the cloche, off the top-right, steam past the head */
  body.paper .services{
    background-image:var(--fig-services);
    background-size:clamp(360px,92vw,640px) auto;
    background-position:right -120px top 8px;
  }
  /* the frieze twice, a different third of it each time */
  body.paper .menu{
    background-image:var(--fig-menu), var(--fig-menu);
    background-size:190% auto, 190% auto;
    background-position:left -4% top 26px, right -6% top 62%;
  }
  /* the pot, low right — the body has to clear the section edge or only the steam shows */
  body.paper .process{
    background-image:var(--fig-process);
    background-size:clamp(320px,82vw,600px) auto;
    background-position:right -70px bottom -30px;
  }
  /* the wreath, bleeding off both edges of the short band */
  body.paper .quote{
    background-image:var(--fig-quote);
    background-size:175% auto;
    background-position:center center;
  }
}
/* FIGURES:GROUND END */
/* PAGES:BEGIN */
/* ═══════════════════════════════════════════════════════════
   Multi-page pass (2026-09-15). Generated into style.css by
   Tools/scripts/pages.py from Tools/scripts/pages.css. Edit the .css
   file there and re-run; don't hand-edit between the markers.
   ═══════════════════════════════════════════════════════════ */
.vh{ position:absolute!important; width:1px; height:1px; margin:-1px; padding:0;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0 }
/* the intro plays on the first page of a visit only */
.no-intro .loader{ display:none }
.skip{ position:fixed; left:var(--gut); top:-80px; z-index:1001; padding:10px 18px;
  border-radius:99px; background:var(--cream); color:var(--navy); font-size:13px }
.skip:focus{ top:12px }
:focus-visible{ outline:2px solid var(--brass); outline-offset:3px }

/* ── nav: six pages + a burger below 1100px ──────────────── */
.nav__links a[aria-current="page"]{ opacity:1 }
.nav__links a[aria-current="page"]::after{ transform:scaleX(1) }
.nav__burger{
  display:none; flex:none; width:40px; height:40px; margin-right:-8px; padding:0;
  border:0; background:none; color:inherit; cursor:pointer;
  flex-direction:column; align-items:center; justify-content:center; gap:7px;
}
.nav__burger span{ display:block; width:22px; height:1px; background:currentColor;
  transition:transform .5s var(--expo) }
.menu-open .nav__burger span:first-child{ transform:translateY(4px) rotate(45deg) }
.menu-open .nav__burger span:last-child{ transform:translateY(-4px) rotate(-45deg) }
@media(max-width:1099px){
  .nav__links{ display:none }
  .nav__burger{ display:inline-flex }
}
@media(max-width:720px){ .nav{ gap:14px } }
@media(max-width:459px){ .nav__cta{ display:none } }

.mnav{
  position:fixed; inset:0; z-index:99; overflow-y:auto;
  display:flex; flex-direction:column;
  padding:104px var(--gut) 36px; background:var(--navy-deep); color:var(--cream);
  opacity:0; visibility:hidden; transition:opacity .45s var(--ease), visibility .45s;
}
.menu-open .mnav{ opacity:1; visibility:visible }
.menu-open body{ overflow:hidden }
.menu-open .nav{ background:transparent; color:var(--cream); border-bottom-color:transparent;
  -webkit-backdrop-filter:none; backdrop-filter:none }
.menu-open .nav .nav__logo--cream{ display:block }
.menu-open .nav .nav__logo--ink{ display:none }
.menu-open .nav .btn--ghost{ color:var(--cream) }
.mnav ol{ counter-reset:m; border-top:1px solid var(--rule-light) }
.mnav li{ border-bottom:1px solid var(--rule-light) }
.mnav li a{
  display:flex; align-items:baseline; gap:16px; padding:13px 0;
  font-family:var(--display); font-weight:300; font-variation-settings:"opsz" 144,"SOFT" 60,"WONK" 0;
  font-size:clamp(26px,7vw,40px); line-height:1.1; letter-spacing:-.02em;
}
.mnav li a::before{ counter-increment:m; content:counter(m,decimal-leading-zero);
  min-width:22px; font-family:var(--body); font-size:11px; letter-spacing:.18em; color:var(--brass) }
.mnav li a[aria-current="page"]{ font-style:italic }
.mnav__foot{ margin-top:auto; padding-top:32px; display:flex; flex-direction:column; gap:14px;
  font-size:14px; color:var(--muted-light) }
.mnav__foot .btn{ align-self:flex-start }
.mnav__foot address{ font-style:normal }
@media(min-width:1100px){ .mnav{ display:none } }

/* ── page hero: the home hero's language, a photo not a clip ─ */
.phero{
  position:relative; overflow:hidden; isolation:isolate;
  background:var(--navy-deep); color:var(--cream);
  display:grid; grid-template-columns:1fr; gap:clamp(34px,5vw,60px);
  padding:clamp(104px,14vh,150px) var(--gut) clamp(56px,8vw,100px);
}
.phero::before{
  content:""; position:absolute; inset:0; z-index:0;
  background:radial-gradient(66% 52% at 58% 40%, rgba(78,96,140,.15), transparent 72%);
}
@media(min-width:900px){
  .phero{ grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); align-items:center;
    column-gap:clamp(40px,5vw,86px); min-height:min(94vh,880px); padding-top:128px }
}
.phero__copy{ position:relative; z-index:2; max-width:700px }
.phero h1{ margin:0 0 clamp(20px,2.6vw,30px); font-size:clamp(40px,6.2vw,90px);
  line-height:.98; letter-spacing:-.03em }
.phero h1 em{ font-style:italic }
.phero__lead{ margin:0 0 clamp(26px,3.2vw,36px); max-width:48ch;
  font-size:clamp(15px,1.1vw,17px); line-height:1.75; color:var(--muted-light) }
.phero__media{ position:relative; z-index:1; width:100%; max-width:540px; justify-self:center }
@media(min-width:900px){ .phero__media{ justify-self:end } }
.phero__img{ border-radius:var(--arch); aspect-ratio:.8; background-color:var(--navy) }
@media(max-width:899px){ .phero__img{ aspect-ratio:1.1; border-radius:var(--arch-soft) } }
.phero__cap{ display:flex; align-items:center; gap:10px; margin-top:16px;
  font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted-light) }
.phero__cap::before{ content:""; width:5px; height:5px; border-radius:50%; background:var(--brass) }
.phero--404{ min-height:100svh }

.crumbs ol{ display:flex; flex-wrap:wrap; gap:8px; margin:0 0 clamp(22px,3vw,34px);
  font-size:12px; letter-spacing:.06em; color:var(--muted-light) }
.crumbs li + li::before{ content:"/"; margin-right:8px; opacity:.6 }
.crumbs a{ border-bottom:1px solid var(--rule-light) }
.crumbs a:hover{ color:var(--cream); border-color:var(--cream) }

/* text link on cream */
.tlink{ display:inline-flex; align-items:center; gap:9px; padding-bottom:4px;
  font-size:13px; letter-spacing:.02em; color:var(--ink); border-bottom:1px solid var(--rule);
  transition:border-color .4s var(--ease) }
.tlink i{ font-style:normal; transition:transform .5s var(--expo) }
.tlink:hover{ border-color:var(--ink) }
.tlink:hover i{ transform:translateX(5px) }
.sec-head__note .tlink, .statement__rail .tlink{ margin-top:16px }
a.card__more{ width:fit-content }

.tags{ display:flex; flex-wrap:wrap; gap:10px; margin-top:clamp(26px,3vw,38px) }
.tags li{ padding:8px 16px; border:1px solid var(--rule); border-radius:99px; font-size:13px;
  background:rgba(240,235,226,.7) }

/* ── what's included: a ruled index ─────────────────────── */
.included{ padding:clamp(64px,9vw,120px) 0; border-top:1px solid var(--rule-soft) }
.incl{ display:grid; grid-template-columns:1fr; gap:0 clamp(28px,3.4vw,52px); padding:0 var(--gut) }
@media(min-width:640px){ .incl{ grid-template-columns:repeat(2,minmax(0,1fr)) } }
@media(min-width:1000px){ .incl{ grid-template-columns:repeat(3,minmax(0,1fr)) } }
.incl li{ position:relative; padding:24px 0 32px; border-top:1px solid var(--rule) }
.incl li::before{ content:""; position:absolute; top:-3.5px; left:0; width:7px; height:7px;
  border-radius:50%; background:var(--brass) }
.incl__n{ font-size:11px; letter-spacing:.18em; color:var(--muted) }
.incl h3{ margin:12px 0 10px; font-size:clamp(22px,2.2vw,28px); line-height:1.08 }
.incl p{ margin:0; max-width:38ch; font-size:14.5px; color:var(--muted); overflow-wrap:anywhere }
.incl p a{ color:var(--ink); border-bottom:1px solid var(--rule) }
.incl address{ font-style:normal }

/* ── photo strip ──────────────────────────────────────────── */
.pstrip{ padding:0 var(--gut) clamp(64px,9vw,120px) }
.pstrip__grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(14px,2.4vw,36px); align-items:start }
.pfig:first-child{ grid-column:1 / -1 }
.pfig .card__img{ aspect-ratio:4/5 }
@media(max-width:759px){ .pfig:first-child .card__img{ aspect-ratio:1.3 } }
@media(min-width:760px){
  .pstrip__grid{ grid-template-columns:1fr 1.25fr 1fr }
  .pfig:first-child{ grid-column:auto }
  .pfig:nth-child(2){ margin-top:clamp(40px,6vw,90px) }
}
.pfig figcaption{ display:flex; align-items:baseline; gap:12px; margin-top:4px; padding-top:12px;
  border-top:1px solid var(--rule); font-family:var(--display); font-size:clamp(16px,1.6vw,21px) }
.pfig figcaption span{ font-family:var(--body); font-size:11px; letter-spacing:.2em; color:var(--muted) }

/* ── from the menu ────────────────────────────────────────── */
.picks{ padding:clamp(64px,9vw,120px) 0; border-top:1px solid var(--rule-soft) }
.picks__grid{ display:grid; grid-template-columns:1fr; gap:clamp(48px,6vw,90px); padding:0 var(--gut) }
@media(min-width:860px){ .picks__grid{ grid-template-columns:1fr 1fr } }
.picks__more{ padding:clamp(34px,4vw,50px) var(--gut) 0 }
.mrow__note{ position:relative; z-index:1; margin:-12px 0 22px; max-width:44ch; font-size:14px; color:var(--muted) }

/* ── FAQ ──────────────────────────────────────────────────── */
.faq{ padding:clamp(64px,9vw,120px) 0; background:var(--cream-deep); border-top:1px solid var(--rule-soft) }
.faq__list{ padding:0 var(--gut); max-width:1120px }
.faq__item{ border-top:1px solid var(--rule) }
.faq__item:last-child{ border-bottom:1px solid var(--rule) }
.faq__item summary{
  list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between;
  gap:24px; padding:22px 0; font-family:var(--display); font-weight:300;
  font-variation-settings:"opsz" 144,"SOFT" 60,"WONK" 0;
  font-size:clamp(20px,2.2vw,28px); line-height:1.2; letter-spacing:-.01em;
}
.faq__item summary::-webkit-details-marker{ display:none }
.faq__item summary i{ position:relative; flex:none; width:14px; height:14px }
.faq__item summary i::before,
.faq__item summary i::after{ content:""; position:absolute; left:0; top:50%; width:14px; height:1px;
  background:currentColor; transition:transform .45s var(--expo) }
.faq__item summary i::after{ transform:rotate(90deg) }
.faq__item[open] summary i::after{ transform:none }
.faq__a p{ margin:0 0 24px; max-width:62ch; font-size:15px; color:var(--muted) }
.faq__a a{ color:var(--ink); border-bottom:1px solid var(--rule) }

/* ── footer: four columns now ─────────────────────────────── */
.foot__word a{ display:inline-block }
.foot__cols a{ display:inline-block; padding:3px 0 }
.foot__cols li{ overflow-wrap:anywhere }
.foot__cols address{ font-style:normal; line-height:1.6 }
@media(min-width:700px){ .foot__cols--4{ grid-template-columns:repeat(2,minmax(0,1fr)) } }
@media(min-width:1100px){ .foot__cols--4{ grid-template-columns:repeat(4,minmax(0,1fr)) } }
@media (prefers-reduced-motion:reduce){ .mnav{ transition:none } }
/* PAGES:END */
