  :root{
    --brown-dark:#2B1A10;
    --brown:#4A2E1D;
    --brown-mid:#6B4226;
    --gold:#C89B3C;
    --gold-light:#E4C069;
    --gold-pale:#F1DFAE;
    --cream:#FBF4E7;
    --cream-alt:#F3E6CB;
    --berry:#A8482F;
    --text:#2B1A10;
    --shadow: 0 20px 50px -20px rgba(43,26,16,0.35);

    /* The nav slab is one flat pour of tempered dark chocolate. --choc-deep is where
       the bar ends and the drip curtain begins, so the two meet without a seam; it must
       stay identical to the fill inside --drip-curtain. Change one, change both. */
    --choc-lit:#4A2D18;
    --choc:#3A2213;
    --choc-deep:#2D1A0C;

    /* The drip curtain: one 1080x220 SVG tile, traced from the reference artwork.
       Chunky rounded lobes hang off a gently sagging edge, with two long drips
       necking down to a heavy rounded bulb, and a caramel (#9C6A3A) catch-light down
       the inside of each. The reference art used peach for that catch-light, but against
       dark chocolate peach reads as a sticker rather than a sheen, so it was warmed down. Left and right edges sit at the same height so it repeats seamlessly
       across any viewport. Held in a variable because both the bar and the mobile
       dropdown panel drip from their lower edge. Regenerate rather than hand-edit.
       Named --drip-curtain, not --drip: .crepe-stage already uses --drip for the
       drizzle colour on the hero illustration. */
    --drip-curtain:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201080%20220'%20preserveAspectRatio='none'%3E%3Cg%20fill='%232D1A0C'%3E%3Cpath%20d='M0,0H1080V3L1075,3L1070,8.6L1065,12.4L1060,12.8L1055,9.6L1050,3L1045,3L1040,3L1035,3L1030,3L1025,3L1020,3L1015,3L1010,3L1005,3L1000,3L995,3L990,3L985,3L980,3L975,3L970,3L965,3L960,3L955,3L950,3L945,3L940,3L935,3L930,3L925,3L920,3L915,7.4L910,13.1L905,17.9L900,21.8L895,25L890,27.3L885,28.6L880,29L875,28.4L870,26.9L865,24.4L860,21.1L855,17L850,12.1L845,6.2L840,3L835,3L830,3L825,3L820,3L815,3L810,3L805,3L800,3L795,3L790,3L785,3L780,3L775,3L770,3L765,3L760,8L755,14L750,18.4L745,21.1L740,21.9L735,20.7L730,17.7L725,12.9L720,6.5L715,3L710,3L705,3L700,3L695,3L690,3L685,3L680,3L675,3L670,3L665,3L660,3L655,3L650,3L645,3L640,3L635,3L630,3L625,3L620,3L615,3L610,3L605,3L600,3L595,3L590,3L585,3L580,3L575,3L570,3L565,6.1L560,3L555,3L550,3L545,3L540,3L535,3L530,3L525,3L520,3L515,3L510,3L505,3L500,3L495,3L490,3L485,3L480,3L475,3L470,3L465,3L460,3L455,3L450,3L445,3L440,3L435,3L430,3L425,5L420,12.2L415,17.9L410,22.6L405,26L400,28.2L395,29L390,28.4L385,26.5L380,23.4L375,19L370,13.4L365,6.7L360,3L355,3L350,3L345,3L340,3L335,3L330,3L325,3L320,3L315,3L310,3L305,3L300,9.8L295,13.5L290,14.2L285,11.7L280,6.3L275,3L270,3L265,3L260,3L255,3L250,3L245,3L240,3L235,3L230,3L225,3L220,3L215,3L210,3L205,3L200,3L195,3L190,3L185,3L180,3L175,3L170,3L165,3L160,3L155,3L150,3L145,8.7L140,9.3L135,4.7L130,3L125,3L120,3L115,3L110,3L105,3L100,3L95,3L90,3L85,3L80,3L75,3L70,3L65,3L60,3L55,3L50,3L45,3L40,3L35,3L30,3L25,3L20,3L15,3L10,3L5,3L0,3Z'/%3E%3Cpath%20d='M-6,-16L-6,0L-5.9,1.4L-5.8,2.9L-5.6,4.3L-5.4,5.7L-5.1,7.2L-4.8,8.6L-4.5,10L-4.2,11.5L-3.9,12.9L-3.5,14.3L-3.1,15.8L-2.7,17.2L-2.3,18.6L-1.9,20.1L-1.4,21.5L-1,22.9L-0.5,24.4L0,25.8L0.5,27.2L1,28.7L1.5,30.1L2.1,31.5L2.6,33L3.2,34.4L3.8,35.8L4.3,37.3L4.9,38.7L5.5,40.1L6.2,41.6L6.8,43L7,47.9L7.6,52.7L8.7,57.5L10.2,62.2L12,66.7L14.3,71L16.9,75.1L19.9,79L23.2,82.6L26.8,85.9L30.7,88.9L34.8,91.5L39.1,93.8L43.6,95.6L48.3,97.1L53.1,98.1L57.9,98.8L62.8,99L67.7,98.8L72.5,98.1L77.3,97.1L81.9,95.6L86.5,93.8L90.8,91.5L94.9,88.9L98.8,85.9L102.4,82.6L105.7,79L108.7,75.1L111.3,71L113.5,66.7L115.4,62.2L116.9,57.5L117.9,52.7L118.6,47.9L118.8,43L119.6,41.6L120.3,40.1L121,38.7L121.8,37.3L122.5,35.8L123.2,34.4L123.8,33L124.5,31.5L125.1,30.1L125.8,28.7L126.4,27.2L127,25.8L127.6,24.4L128.1,22.9L128.7,21.5L129.2,20.1L129.7,18.6L130.2,17.2L130.7,15.8L131.1,14.3L131.5,12.9L131.9,11.5L132.3,10L132.7,8.6L133,7.2L133.3,5.7L133.5,4.3L133.7,2.9L133.9,1.4L134,0L134,-16Z'/%3E%3Cpath%20d='M1074,-16L1074,0L1074.1,1.4L1074.2,2.9L1074.4,4.3L1074.6,5.7L1074.9,7.2L1075.2,8.6L1075.5,10L1075.8,11.5L1076.1,12.9L1076.5,14.3L1076.9,15.8L1077.3,17.2L1077.7,18.6L1078.1,20.1L1078.6,21.5L1079,22.9L1079.5,24.4L1080,25.8L1080.5,27.2L1081,28.7L1081.5,30.1L1082.1,31.5L1082.6,33L1083.2,34.4L1083.8,35.8L1084.3,37.3L1084.9,38.7L1085.5,40.1L1086.2,41.6L1086.8,43L1087,47.9L1087.6,52.7L1088.7,57.5L1090.2,62.2L1092,66.7L1094.3,71L1096.9,75.1L1099.9,79L1103.2,82.6L1106.8,85.9L1110.7,88.9L1114.8,91.5L1119.1,93.8L1123.6,95.6L1128.3,97.1L1133.1,98.1L1137.9,98.8L1142.8,99L1147.7,98.8L1152.5,98.1L1157.3,97.1L1161.9,95.6L1166.5,93.8L1170.8,91.5L1174.9,88.9L1178.8,85.9L1182.4,82.6L1185.7,79L1188.7,75.1L1191.3,71L1193.5,66.7L1195.4,62.2L1196.9,57.5L1197.9,52.7L1198.6,47.9L1198.8,43L1199.6,41.6L1200.3,40.1L1201,38.7L1201.8,37.3L1202.5,35.8L1203.2,34.4L1203.8,33L1204.5,31.5L1205.1,30.1L1205.8,28.7L1206.4,27.2L1207,25.8L1207.6,24.4L1208.1,22.9L1208.7,21.5L1209.2,20.1L1209.7,18.6L1210.2,17.2L1210.7,15.8L1211.1,14.3L1211.5,12.9L1211.9,11.5L1212.3,10L1212.7,8.6L1213,7.2L1213.3,5.7L1213.5,4.3L1213.7,2.9L1213.9,1.4L1214,0L1214,-16Z'/%3E%3Cpath%20d='M150,-16L150,0L150.1,2.4L150.2,4.8L150.5,7.2L150.7,9.6L151,12L151.3,14.4L151.6,16.8L152,19.1L152.4,21.5L152.8,23.9L153.3,26.3L153.7,28.7L154.2,31.1L154.7,33.5L155.3,35.9L155.8,38.3L156.4,40.7L157,43.1L157.6,45.5L158.2,47.9L158.8,50.3L159.5,52.7L160.1,55L160.8,57.4L161.5,59.8L162.2,62.2L162.9,64.6L163.7,67L164.4,69.4L165.2,71.8L165.4,76.3L166,80.7L166.9,85.1L168.3,89.3L170,93.4L172.1,97.4L174.5,101.2L177.2,104.7L180.2,108L183.5,111L187,113.7L190.8,116.1L194.8,118.2L198.9,119.9L203.2,121.3L207.5,122.2L211.9,122.8L216.4,123L220.9,122.8L225.3,122.2L229.7,121.3L233.9,119.9L238,118.2L242,116.1L245.8,113.7L249.3,111L252.6,108L255.6,104.7L258.3,101.2L260.7,97.4L262.8,93.4L264.5,89.3L265.9,85.1L266.8,80.7L267.4,76.3L267.6,71.8L268.1,69.4L268.6,67L269.1,64.6L269.6,62.2L270,59.8L270.5,57.4L270.9,55L271.4,52.7L271.8,50.3L272.2,47.9L272.7,45.5L273.1,43.1L273.5,40.7L273.8,38.3L274.2,35.9L274.6,33.5L274.9,31.1L275.3,28.7L275.6,26.3L275.9,23.9L276.2,21.5L276.5,19.1L276.8,16.8L277,14.4L277.2,12L277.5,9.6L277.6,7.2L277.8,4.8L277.9,2.4L278,0L278,-16Z'/%3E%3Cpath%20d='M305,-16L305,0L307.3,6.4L308.5,12.9L309.4,19.3L310.2,25.8L310.9,32.2L311.5,38.7L312,45.1L312.5,51.6L313,58L313.4,64.4L313.8,70.9L314.2,77.3L314.5,83.8L314.8,90.2L314.8,96.7L314.6,103.1L314.2,109.5L313.7,116L312.9,122.4L312.1,128.9L311.2,135.3L310.2,141.8L309.3,148.2L308.4,154.7L307.5,161.1L306.7,167.5L306.1,174L305.6,180.4L305.3,186.9L305.2,193.3L305.3,195.6L305.5,198L306,200.2L306.6,202.4L307.4,204.6L308.3,206.7L309.4,208.6L310.6,210.5L312,212.2L313.5,213.8L315.1,215.2L316.8,216.4L318.6,217.5L320.4,218.4L322.4,219.1L324.4,219.6L326.4,219.9L328.4,220L330.4,219.9L332.4,219.6L334.4,219.1L336.3,218.4L338.2,217.5L340,216.4L341.7,215.2L343.3,213.8L344.8,212.2L346.2,210.5L347.4,208.6L348.5,206.7L349.4,204.6L350.2,202.4L350.8,200.2L351.2,198L351.5,195.6L351.6,193.3L352.1,186.9L352.4,180.4L352.5,174L352.5,167.5L352.3,161.1L351.9,154.7L351.6,148.2L351.1,141.8L350.7,135.3L350.3,128.9L349.9,122.4L349.6,116L349.5,109.5L349.5,103.1L349.7,96.7L350.1,90.2L350.8,83.8L351.4,77.3L352.1,70.9L352.8,64.4L353.5,58L354.3,51.6L355,45.1L355.8,38.7L356.6,32.2L357.4,25.8L358.4,19.3L359.4,12.9L360.6,6.4L363,0L363,-16Z'/%3E%3Cpath%20d='M426,-16L426,0L426.1,0.9L426.2,1.8L426.4,2.7L426.7,3.5L426.9,4.4L427.2,5.3L427.6,6.2L427.9,7.1L428.3,8L428.7,8.9L429.1,9.8L429.5,10.6L430,11.5L430.5,12.4L430.9,13.3L431.5,14.2L432,15.1L432.5,16L433.1,16.8L433.6,17.7L434.2,18.6L434.8,19.5L435.4,20.4L436,21.3L436.7,22.2L437.3,23.1L438,23.9L438.7,24.8L439.4,25.7L440.1,26.6L440.3,31.3L440.9,36L441.9,40.7L443.3,45.2L445.1,49.6L447.3,53.8L449.9,57.8L452.8,61.6L456,65.1L459.5,68.3L463.2,71.2L467.3,73.7L471.5,75.9L475.8,77.7L480.4,79.1L485,80.2L489.7,80.8L494.5,81L499.2,80.8L503.9,80.2L508.5,79.1L513.1,77.7L517.4,75.9L521.7,73.7L525.7,71.2L529.4,68.3L532.9,65.1L536.1,61.6L539,57.8L541.6,53.8L543.8,49.6L545.6,45.2L547,40.7L548,36L548.6,31.3L548.9,26.6L549.5,25.7L550.1,24.8L550.8,23.9L551.4,23.1L552,22.2L552.6,21.3L553.2,20.4L553.7,19.5L554.3,18.6L554.8,17.7L555.4,16.8L555.9,16L556.4,15.1L556.9,14.2L557.3,13.3L557.8,12.4L558.2,11.5L558.7,10.6L559.1,9.8L559.5,8.9L559.8,8L560.2,7.1L560.5,6.2L560.8,5.3L561.1,4.4L561.4,3.5L561.6,2.7L561.8,1.8L561.9,0.9L562,0L562,-16Z'/%3E%3Cpath%20d='M570,-16L570,0L570.1,0.5L570.3,1L570.5,1.5L570.7,2L571,2.5L571.3,3L571.7,3.5L572,3.9L572.4,4.4L572.8,4.9L573.3,5.4L573.7,5.9L574.2,6.4L574.7,6.9L575.2,7.4L575.7,7.9L576.2,8.4L576.8,8.9L577.4,9.4L578,9.9L578.6,10.4L579.2,10.9L579.8,11.3L580.5,11.8L581.1,12.3L581.8,12.8L582.5,13.3L583.2,13.8L583.9,14.3L584.6,14.8L584.8,20L585.5,25.1L586.6,30.1L588.2,35L590.2,39.8L592.5,44.4L595.3,48.8L598.5,52.9L601.9,56.7L605.8,60.1L609.8,63.3L614.2,66.1L618.8,68.5L623.6,70.4L628.5,72L633.5,73.1L638.6,73.8L643.8,74L649,73.8L654.1,73.1L659.1,72L664.1,70.4L668.8,68.5L673.4,66.1L677.8,63.3L681.9,60.1L685.7,56.7L689.2,52.9L692.3,48.8L695.1,44.4L697.5,39.8L699.4,35L701,30.1L702.1,25.1L702.8,20L703,14.8L703.8,14.3L704.5,13.8L705.2,13.3L705.9,12.8L706.6,12.3L707.3,11.8L707.9,11.3L708.6,10.9L709.2,10.4L709.8,9.9L710.5,9.4L711,8.9L711.6,8.4L712.2,7.9L712.7,7.4L713.2,6.9L713.7,6.4L714.2,5.9L714.7,5.4L715.1,4.9L715.5,4.4L715.9,3.9L716.3,3.5L716.7,3L717,2.5L717.3,2L717.5,1.5L717.7,1L717.9,0.5L718,0L718,-16Z'/%3E%3Cpath%20d='M763,-16L763,0L763.1,3L763.2,5.9L763.3,8.9L763.5,11.9L763.7,14.8L763.9,17.8L764.1,20.8L764.4,23.7L764.6,26.7L764.9,29.7L765.2,32.6L765.5,35.6L765.9,38.6L766.2,41.5L766.6,44.5L766.9,47.5L767.3,50.4L767.7,53.4L768.1,56.4L768.5,59.3L769,62.3L769.4,65.3L769.9,68.2L770.3,71.2L770.8,74.2L771.3,77.1L771.8,80.1L772.3,83.1L772.8,86L773.4,89L773.5,91.8L773.9,94.6L774.5,97.3L775.3,99.9L776.4,102.5L777.7,105L779.2,107.4L780.9,109.6L782.7,111.6L784.8,113.5L787,115.2L789.4,116.7L791.8,118L794.4,119.1L797.1,119.9L799.8,120.5L802.6,120.9L805.4,121L808.2,120.9L810.9,120.5L813.7,119.9L816.3,119.1L818.9,118L821.4,116.7L823.7,115.2L825.9,113.5L828,111.6L829.9,109.6L831.6,107.4L833.1,105L834.4,102.5L835.4,99.9L836.3,97.3L836.9,94.6L837.3,91.8L837.4,89L837.6,86L837.9,83.1L838.2,80.1L838.4,77.1L838.7,74.2L838.9,71.2L839.1,68.2L839.4,65.3L839.6,62.3L839.8,59.3L840.1,56.4L840.3,53.4L840.5,50.4L840.7,47.5L840.9,44.5L841.1,41.5L841.3,38.6L841.5,35.6L841.7,32.6L841.8,29.7L842,26.7L842.1,23.7L842.3,20.8L842.4,17.8L842.6,14.8L842.7,11.9L842.8,8.9L842.9,5.9L843,3L843,0L843,-16Z'/%3E%3Cpath%20d='M918,-16L918,0L918,2.1L918.1,4.2L918.2,6.2L918.3,8.3L918.5,10.4L918.6,12.5L918.8,14.6L919,16.6L919.1,18.7L919.3,20.8L919.5,22.9L919.7,25L919.9,27L920.2,29.1L920.4,31.2L920.6,33.3L920.9,35.4L921.1,37.4L921.3,39.5L921.6,41.6L921.9,43.7L922.1,45.8L922.4,47.8L922.7,49.9L923,52L923.3,54.1L923.6,56.2L923.9,58.2L924.2,60.3L924.5,62.4L924.6,65.3L925,68.2L925.6,71.1L926.5,73.9L927.6,76.6L929,79.2L930.6,81.7L932.3,84L934.3,86.2L936.5,88.1L938.8,89.9L941.3,91.5L943.9,92.9L946.6,94L949.4,94.9L952.2,95.5L955.1,95.9L958.1,96L961,95.9L963.9,95.5L966.8,94.9L969.6,94L972.3,92.9L974.9,91.5L977.3,89.9L979.7,88.1L981.8,86.2L983.8,84L985.6,81.7L987.2,79.2L988.5,76.6L989.7,73.9L990.5,71.1L991.2,68.2L991.5,65.3L991.7,62.4L992.2,60.3L992.7,58.2L993.2,56.2L993.7,54.1L994.2,52L994.7,49.9L995.1,47.8L995.6,45.8L996,43.7L996.5,41.6L996.9,39.5L997.3,37.4L997.7,35.4L998.1,33.3L998.4,31.2L998.8,29.1L999.1,27L999.5,25L999.8,22.9L1000.1,20.8L1000.4,18.7L1000.6,16.6L1000.9,14.6L1001.1,12.5L1001.3,10.4L1001.5,8.3L1001.7,6.2L1001.8,4.2L1001.9,2.1L1002,0L1002,-16Z'/%3E%3Cpath%20d='M994,-16L994,0L996.3,5.8L997.5,11.6L998.5,17.4L999.4,23.2L1000.2,29L1001,34.8L1001.8,40.7L1002.5,46.5L1003.2,52.3L1004,58.1L1004.7,63.9L1005.4,69.7L1006,75.5L1006.7,81.3L1007.1,87.1L1007.4,92.9L1007.4,98.7L1007.3,104.5L1007.1,110.4L1006.8,116.2L1006.4,122L1006,127.8L1005.6,133.6L1005.3,139.4L1005,145.2L1004.9,151L1004.9,156.8L1005,162.6L1005.3,168.4L1005.9,174.2L1006,176.5L1006.3,178.7L1006.7,180.9L1007.3,183.1L1008,185.1L1008.9,187.1L1010,189L1011.2,190.8L1012.5,192.5L1013.9,194L1015.5,195.3L1017.1,196.5L1018.9,197.6L1020.7,198.4L1022.5,199.1L1024.4,199.6L1026.4,199.9L1028.3,200L1030.3,199.9L1032.2,199.6L1034.1,199.1L1036,198.4L1037.8,197.6L1039.5,196.5L1041.2,195.3L1042.7,194L1044.2,192.5L1045.5,190.8L1046.7,189L1047.7,187.1L1048.6,185.1L1049.4,183.1L1050,180.9L1050.4,178.7L1050.6,176.5L1050.7,174.2L1050.6,168.4L1050.3,162.6L1049.7,156.8L1049.1,151L1048.3,145.2L1047.4,139.4L1046.4,133.6L1045.5,127.8L1044.5,122L1043.6,116.2L1042.8,110.4L1042,104.5L1041.4,98.7L1041,92.9L1040.8,87.1L1040.8,81.3L1041,75.5L1041.3,69.7L1041.6,63.9L1042,58.1L1042.4,52.3L1042.8,46.5L1043.3,40.7L1043.8,34.8L1044.4,29L1045,23.2L1045.8,17.4L1046.6,11.6L1047.8,5.8L1050,0L1050,-16Z'/%3E%3C/g%3E%3Cg%20fill='%239C6A3A'%3E%3Cpath%20d='M12,8.9L12.6,11.5L13.3,14.1L14,16.7L14.7,19.3L15.5,21.9L16.4,24.6L17.3,27.2L18.2,29.8L19.2,32.4L20.2,35L21.3,37.6L22.4,40.2L23.5,42.8L23.6,45.4L23.8,48L24.1,50.6L24.5,53.2L25.1,55.8L25.8,58.4L26.6,61.1L27.5,63.7L28.6,66.3L29.9,68.9L31.4,71.5L33,74.1L34.9,76.7L36.9,79.3L39.3,81.9L42,84.5L45.1,87.1L45.1,87.1L44.9,84.5L43.7,81.9L42.5,79.3L41.4,76.7L40.4,74.1L39.5,71.5L38.7,68.9L38,66.3L37.4,63.7L36.9,61.1L36.4,58.4L35.9,55.8L35.6,53.2L35.3,50.6L35,48L34.8,45.4L34.6,42.8L33.2,40.2L31.9,37.6L30.5,35L29.1,32.4L27.6,29.8L26.1,27.2L24.5,24.6L22.9,21.9L21.2,19.3L19.5,16.7L17.6,14.1L15.5,11.5L12,8.9Z'/%3E%3Cpath%20d='M1092,8.9L1092.6,11.5L1093.3,14.1L1094,16.7L1094.7,19.3L1095.5,21.9L1096.4,24.6L1097.3,27.2L1098.2,29.8L1099.2,32.4L1100.2,35L1101.3,37.6L1102.4,40.2L1103.5,42.8L1103.6,45.4L1103.8,48L1104.1,50.6L1104.5,53.2L1105.1,55.8L1105.8,58.4L1106.6,61.1L1107.5,63.7L1108.6,66.3L1109.9,68.9L1111.4,71.5L1113,74.1L1114.9,76.7L1116.9,79.3L1119.3,81.9L1122,84.5L1125.1,87.1L1125.1,87.1L1124.9,84.5L1123.7,81.9L1122.5,79.3L1121.4,76.7L1120.4,74.1L1119.5,71.5L1118.7,68.9L1118,66.3L1117.4,63.7L1116.9,61.1L1116.4,58.4L1115.9,55.8L1115.6,53.2L1115.3,50.6L1115,48L1114.8,45.4L1114.6,42.8L1113.2,40.2L1111.9,37.6L1110.5,35L1109.1,32.4L1107.6,29.8L1106.1,27.2L1104.5,24.6L1102.9,21.9L1101.2,19.3L1099.5,16.7L1097.6,14.1L1095.5,11.5L1092,8.9Z'/%3E%3Cpath%20d='M166.2,11.1L166.7,14.4L167.2,17.7L167.7,21L168.3,24.4L168.9,27.7L169.6,31L170.3,34.3L171,37.6L171.8,41L172.6,44.3L173.5,47.6L174.3,50.9L175.3,54.2L176.2,57.6L177.2,60.9L178.2,64.2L179.2,67.5L180.3,70.8L180.6,74.2L180.9,77.5L181.4,80.8L182.1,84.1L183,87.5L184.2,90.8L185.7,94.1L187.4,97.4L189.5,100.7L192,104.1L194.9,107.4L198.5,110.7L198.5,110.7L197.6,107.4L196,104.1L194.6,100.7L193.4,97.4L192.4,94.1L191.7,90.8L191.1,87.5L190.6,84.1L190.4,80.8L190.3,77.5L190.3,74.2L190.2,70.8L189.3,67.5L188.4,64.2L187.4,60.9L186.4,57.6L185.4,54.2L184.3,50.9L183.2,47.6L182,44.3L180.8,41L179.6,37.6L178.3,34.3L177,31L175.7,27.7L174.2,24.4L172.7,21L171.1,17.7L169.3,14.4L166.2,11.1Z'/%3E%3Cpath%20d='M316.4,19.8L317,24.3L317.5,28.7L317.9,33.2L318.4,37.7L318.7,42.2L319.1,46.6L319.5,51.1L319.8,55.6L320.1,60.1L320.4,64.5L320.7,69L320.9,73.5L321.2,78L321.4,82.4L321.6,86.9L321.8,91.4L321.8,95.8L321.7,100.3L321.5,104.8L321.2,109.3L320.8,113.7L320.4,118.2L319.9,122.7L319.3,127.2L318.7,131.6L318,136.1L317.4,140.6L316.7,145.1L316.1,149.5L315.4,154L315.4,154L317.3,149.5L318.5,145.1L319.7,140.6L320.7,136.1L321.7,131.6L322.7,127.2L323.5,122.7L324.3,118.2L324.9,113.7L325.5,109.3L325.9,104.8L326.2,100.3L326.4,95.8L326.4,91.4L326.3,86.9L326,82.4L325.8,78L325.4,73.5L325.1,69L324.7,64.5L324.2,60.1L323.7,55.6L323.1,51.1L322.5,46.6L321.8,42.2L321.1,37.7L320.2,33.2L319.3,28.7L318.2,24.3L316.4,19.8Z'/%3E%3Cpath%20d='M444,7.3L445,9.4L446.1,11.5L447.2,13.6L448.4,15.7L449.6,17.8L451,19.9L452.3,22L453.5,24.1L454.4,26.2L455.1,28.4L455.5,30.5L455.9,32.6L456.2,34.7L456.6,36.8L457,38.9L457.4,41L458,43.1L458.7,45.2L459.4,47.3L460.3,49.4L461.3,51.5L462.4,53.6L463.7,55.7L465.1,57.8L466.6,59.9L468.3,62L470.2,64.2L472.3,66.3L474.5,68.4L476.8,70.5L476.8,70.5L476.4,68.4L475.3,66.3L474.2,64.2L473.1,62L472.1,59.9L471.2,57.8L470.3,55.7L469.5,53.6L468.8,51.5L468.1,49.4L467.5,47.3L466.9,45.2L466.4,43.1L465.9,41L465.5,38.9L465,36.8L464.6,34.7L464.1,32.6L463.6,30.5L462.9,28.4L461.9,26.2L460.5,24.1L458.9,22L457.1,19.9L455.1,17.8L453.1,15.7L451.1,13.6L449.1,11.5L446.9,9.4L444,7.3Z'/%3E%3Cpath%20d='M591.9,6.7L594.1,8.6L596.2,10.5L598.1,12.4L599.6,14.4L600.7,16.3L601.3,18.2L601.8,20.1L602.1,22.1L602.4,24L602.7,25.9L603.1,27.8L603.5,29.7L604,31.7L604.6,33.6L605.2,35.5L605.9,37.4L606.7,39.4L607.6,41.3L608.5,43.2L609.6,45.1L610.7,47.1L612,49L613.4,50.9L614.9,52.8L616.6,54.8L618.4,56.7L620.4,58.6L622.6,60.5L624.9,62.5L627.3,64.4L627.3,64.4L626.6,62.5L625.4,60.5L624,58.6L622.8,56.7L621.6,54.8L620.5,52.8L619.4,50.9L618.5,49L617.5,47.1L616.7,45.1L615.9,43.2L615.1,41.3L614.4,39.4L613.7,37.4L613,35.5L612.3,33.6L611.7,31.7L611,29.7L610.4,27.8L609.8,25.9L609.2,24L608.6,22.1L607.8,20.1L606.9,18.2L605.7,16.3L604,14.4L601.7,12.4L598.9,10.5L595.8,8.6L591.9,6.7Z'/%3E%3Cpath%20d='M773,10.9L773.2,14L773.4,17.1L773.7,20.2L773.9,23.3L774.2,26.4L774.5,29.5L774.8,32.6L775.1,35.7L775.5,38.8L775.8,41.9L776.2,45.1L776.6,48.2L777,51.3L777.4,54.4L777.9,57.5L778.3,60.6L778.8,63.7L779.3,66.8L779.7,69.9L780.2,73L780.7,76.1L781.3,79.2L781.8,82.3L782.3,85.4L782.9,88.5L783.1,91.6L783.5,94.7L784.2,97.8L785.3,101L786.7,104.1L786.7,104.1L786.9,101L786.7,97.8L786.7,94.7L786.8,91.6L787.1,88.5L787,85.4L786.8,82.3L786.6,79.2L786.4,76.1L786.1,73L785.8,69.9L785.5,66.8L785.1,63.7L784.7,60.6L784.3,57.5L783.8,54.4L783.3,51.3L782.8,48.2L782.3,45.1L781.7,41.9L781.1,38.8L780.5,35.7L779.8,32.6L779.1,29.5L778.4,26.4L777.6,23.3L776.8,20.2L775.9,17.1L774.9,14L773,10.9Z'/%3E%3Cpath%20d='M928.4,8.6L928.6,11L928.8,13.4L929,15.8L929.2,18.2L929.4,20.6L929.6,23L929.8,25.4L930.1,27.8L930.4,30.2L930.6,32.6L930.9,35L931.2,37.4L931.5,39.8L931.8,42.2L932.1,44.6L932.4,47L932.7,49.4L933,51.8L933.4,54.2L933.7,56.6L934.1,59L934.4,61.4L934.6,63.8L934.8,66.2L935.1,68.6L935.7,71L936.4,73.4L937.4,75.8L938.5,78.2L939.9,80.6L939.9,80.6L940.3,78.2L940,75.8L939.7,73.4L939.6,71L939.6,68.6L939.7,66.2L939.9,63.8L940,61.4L940,59L939.9,56.6L939.7,54.2L939.6,51.8L939.3,49.4L939.1,47L938.8,44.6L938.5,42.2L938.1,39.8L937.7,37.4L937.3,35L936.8,32.6L936.3,30.2L935.7,27.8L935.1,25.4L934.5,23L933.8,20.6L933.1,18.2L932.3,15.8L931.4,13.4L930.3,11L928.4,8.6Z'/%3E%3Cpath%20d='M1005.3,18L1005.9,21.9L1006.5,25.9L1007.1,29.8L1007.6,33.7L1008.1,37.7L1008.6,41.6L1009.1,45.5L1009.6,49.5L1010.1,53.4L1010.6,57.3L1011.1,61.3L1011.5,65.2L1012,69.1L1012.5,73.1L1012.9,77L1013.4,80.9L1013.7,84.9L1013.9,88.8L1014.1,92.7L1014.1,96.7L1014.1,100.6L1014,104.5L1013.9,108.5L1013.7,112.4L1013.5,116.3L1013.2,120.3L1013,124.2L1012.7,128.1L1012.4,132.1L1012.2,136L1012.2,136L1013.6,132.1L1014.4,128.1L1015.2,124.2L1015.8,120.3L1016.4,116.3L1016.9,112.4L1017.4,108.5L1017.8,104.5L1018,100.6L1018.2,96.7L1018.3,92.7L1018.3,88.8L1018.1,84.9L1017.8,80.9L1017.4,77L1016.9,73.1L1016.4,69.1L1015.9,65.2L1015.3,61.3L1014.7,57.3L1014.1,53.4L1013.4,49.5L1012.6,45.5L1011.9,41.6L1011.1,37.7L1010.2,33.7L1009.3,29.8L1008.2,25.9L1007.1,21.9L1005.3,18Z'/%3E%3C/g%3E%3C/svg%3E");

    /* The script half of the logo, cropped away from the "DESSERTS & COFFEE" lockup
       and quantised to 16 colours — at pin size the tagline is four pixels tall and
       reads as dirt on the lens. 2.2KB, declared here so both location pins share
       one copy rather than inlining the artwork twice. */
    --logo-word:url("data:image/png;base64,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");
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    font-family:'Jost', sans-serif;
    background:var(--cream);
    color:var(--text);
    line-height:1.6;
    overflow-x:hidden;
    overflow-wrap:break-word;
  }
  h1,h2,h3,.script{
    font-family:'Fraunces', serif;
  }
  a{text-decoration:none;color:inherit;}
  ul{list-style:none;}
  img{max-width:100%;display:block;}
  .wrap{max-width:1140px;margin:0 auto;padding:0 32px;}

  /* ===== NAV ===== */
  /* The bar is a slab of tempered chocolate — warm gradient body, a gloss raked
     across the top where light would catch it, and a curtain of drips hanging off
     its lower edge. Hovering the bar lets the chocolate sag a little further. */
  header{
    position:fixed;top:0;left:0;right:0;z-index:100;
    background:linear-gradient(180deg,var(--choc-lit) 0%,var(--choc) 48%,var(--choc-deep) 100%);
    box-shadow:0 12px 34px -14px rgba(43,26,16,.55);
    /* How far the curtain hangs. One variable so the hover sag and the condensed
       scroll state multiply into a single transform instead of fighting. */
    --drip-scale:1;
    transition:box-shadow .35s ease;
  }
  /* Gloss and a darkening toward the lower edge, so the slab reads as thick and
     wet rather than flat brown. Opaque on purpose: the drips below cannot be
     translucent without showing a seam where they meet the bar. */
  header::before{
    content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
    background:
      radial-gradient(130% 200% at 14% -60%,rgba(201,152,104,.10),transparent 56%),
      linear-gradient(180deg,transparent 72%,rgba(0,0,0,.07) 100%);
  }
  header::after{
    content:'';position:absolute;top:calc(100% - 1px);left:0;right:0;height:221px;
    background:var(--drip-curtain) repeat-x left top;
    background-size:1080px 220px;
    transform-origin:top;
    transform:scaleY(var(--drip-scale));
    transition:transform .7s cubic-bezier(.34,1.3,.64,1);
    pointer-events:none;z-index:1;
  }
  header:hover{--drip-scale:1.09;}

  /* Droplets that let go of the longest drips every so often. Their offsets are
     measured from the left edge, where the first copy of the drip tile always
     starts, so each one falls from the point of an actual drip. */
  .drip-fall{position:absolute;top:100%;left:0;width:0;height:0;z-index:1;pointer-events:none;}
  .drip-fall::before,.drip-fall::after{
    content:'';position:absolute;width:12px;height:16px;
    background:radial-gradient(circle at 36% 30%,#553219,var(--choc-deep) 72%);
    border-radius:50% 50% 48% 48% / 62% 62% 38% 38%;
    animation:choc-drop 8.5s ease-in infinite;
  }
  /* Offsets are the two long drips' bulb tips in the tile: x 327/220 and x 1030/200. */
  .drip-fall::before{left:321px;top:211px;}
  .drip-fall::after{
    left:1025px;top:191px;width:10px;height:14px;
    animation-duration:11.5s;animation-delay:3.4s;
  }
  /* Gathers at the tip, stretches as it falls, gone before it reaches the content. */
  @keyframes choc-drop{
    0%,66%{transform:translateY(0) scale(.5,.4);opacity:0;}
    72%{transform:translateY(2px) scale(1,1);opacity:1;}
    100%{transform:translateY(190px) scale(.72,1.55);opacity:0;}
  }

  nav{
    display:flex;align-items:center;justify-content:space-between;
    max-width:1140px;margin:0 auto;padding:18px 32px;
  }
  .logo{
    font-size:1.5rem;font-weight:600;color:var(--cream);
    display:flex;align-items:center;gap:10px;letter-spacing:.5px;
    cursor:pointer;opacity:1;transition:opacity .25s ease;
  }
  .logo:hover{opacity:.75;}
  .logo-mark{
    height:44px;width:auto;object-fit:contain;
    /* the wordmark is gold on transparent — a shadow lifts it off the chocolate */
    filter:drop-shadow(0 2px 5px rgba(20,10,4,.45));
  }
  .nav-links{display:flex;gap:36px;font-size:.95rem;letter-spacing:.3px;}
  .nav-links a{position:relative;padding-bottom:4px;color:var(--cream);transition:color .25s ease;}
  .nav-links a::after{
    content:'';position:absolute;left:0;bottom:0;width:0;height:1.5px;background:var(--gold-light);
    transition:width .3s ease;
  }
  .nav-links a:hover{color:var(--gold-light);}
  .nav-links a:hover::after{width:100%;}

  /* ===== NAV: Locations ===== */
  /* Both stores hang off the bar by name, so nobody has to open the homepage and
     scroll to learn there are two of them. The panel drops on hover or keyboard
     focus; on mobile it flattens into the open menu (see the 880px block). */
  .nav-item-sub{position:relative;}
  .nav-caret{
    display:inline-block;width:0;height:0;margin-left:7px;vertical-align:.18em;
    border-left:4px solid transparent;border-right:4px solid transparent;
    border-top:4px solid currentColor;opacity:.7;transition:transform .25s ease;
  }
  .nav-item-sub:hover .nav-caret,
  .nav-item-sub:focus-within .nav-caret,
  .nav-item-sub.sub-open .nav-caret{transform:rotate(180deg);}
  .nav-sub{
    /* 30px clears the bar itself: the label sits mid-slab, so 100% is still
       inside the chocolate. The panel hangs just past its lower edge. */
    position:absolute;top:calc(100% + 30px);left:50%;z-index:4;
    min-width:236px;padding:8px;list-style:none;
    transform:translate(-50%,-8px);
    background:linear-gradient(180deg,var(--choc-lit) 0%,var(--choc-deep) 100%);
    border:1px solid rgba(201,152,104,.28);border-radius:14px;
    box-shadow:0 20px 38px -18px rgba(20,10,4,.85);
    opacity:0;visibility:hidden;pointer-events:none;
    transition:opacity .25s ease,transform .25s ease,visibility .25s;
  }
  /* an invisible bridge across the gap, so the pointer can travel label -> panel */
  .nav-sub::before{content:'';position:absolute;left:0;right:0;top:-32px;height:32px;}
  .nav-item-sub:hover .nav-sub,
  .nav-item-sub:focus-within .nav-sub,
  .nav-item-sub.sub-open .nav-sub{
    opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0);
  }
  .nav-sub a{
    display:block;padding:10px 14px;border-radius:9px;line-height:1.3;
    transition:background .25s ease,color .25s ease;
  }
  .nav-sub a::after{display:none;}   /* the underline sweep belongs to the top bar only */
  .nav-sub a em{
    display:block;margin-top:3px;font-style:normal;font-size:.75rem;
    letter-spacing:.5px;color:var(--gold-pale);opacity:.68;
  }
  .nav-sub a:hover,.nav-sub a:focus-visible{background:rgba(201,152,104,.16);color:var(--gold-light);}
  /* jumping to a card from the menu must not park it behind the fixed bar */
  .loc-card{scroll-margin-top:150px;}
  /* Gold on chocolate, the same pairing the dark sections use — the brown-dark
     pill this used to be would disappear into the bar. */
  .nav-cta{
    background:var(--gold);color:var(--brown-dark)!important;
    padding:10px 22px;border-radius:30px;font-size:.85rem;letter-spacing:.5px;
    transition:background .3s ease, transform .3s ease, box-shadow .3s ease;
  }
  .nav-cta:hover{
    background:var(--gold-light);transform:translateY(-1px);
    box-shadow:0 8px 18px -8px rgba(20,10,4,.7);
  }
  .menu-toggle{display:none;background:none;border:none;font-size:1.6rem;color:var(--cream);cursor:pointer;}

  /* ===== HERO ===== */
  .hero{
    min-height:100vh;
    display:flex;align-items:center;
    position:relative;
    padding:252px 0 80px;
    background:
      radial-gradient(circle at 85% 15%, rgba(200,155,60,0.18), transparent 45%),
      radial-gradient(circle at 10% 90%, rgba(168,72,47,0.12), transparent 40%),
      var(--cream);
    overflow:hidden;
  }
  .hero-grid{
    display:grid;grid-template-columns:1.1fr 0.9fr;gap:60px;align-items:center;
  }
  .eyebrow{
    display:inline-flex;align-items:center;gap:10px;
    font-size:.78rem;letter-spacing:3px;text-transform:uppercase;
    color:var(--berry);margin-bottom:22px;font-weight:500;
  }
  .eyebrow::before{content:'';width:26px;height:1px;background:var(--berry);}
  .hero h1{
    font-size:clamp(2.8rem,5.5vw,4.6rem);
    font-weight:600;color:var(--brown-dark);line-height:1.03;
    letter-spacing:-1px;
  }
  .hero h1 em{
    font-style:italic;font-weight:500;color:var(--gold);
    position:relative;
  }
  .hero p.lead{
    margin-top:24px;max-width:440px;font-size:1.08rem;color:var(--brown);
  }
  .hero-ctas{margin-top:36px;display:flex;gap:16px;flex-wrap:wrap;}
  .btn{
    display:inline-flex;align-items:center;gap:8px;
    padding:15px 30px;border-radius:34px;font-size:.92rem;letter-spacing:.4px;
    font-weight:500;cursor:pointer;border:1px solid transparent;
    transition:transform .3s ease, box-shadow .3s ease, background .3s ease;
  }
  .btn-primary{background:var(--brown-dark);color:var(--cream);}
  .btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow);background:var(--berry);}
  .btn-outline{border-color:var(--brown-dark);color:var(--brown-dark);}
  .btn-outline:hover{background:var(--brown-dark);color:var(--cream);transform:translateY(-2px);}

  /* On dark sections the default .btn-primary is brown-dark on brown-dark, so the
     button shape vanishes and only its label shows. Gold on brown-dark clears AA
     (6.5:1) and echoes the gold accents those sections already use. */
  .gifts .btn-primary,
  .loyalty-cta .btn-primary,
  .order-photo .btn-primary{background:var(--gold);color:var(--brown-dark);}
  .gifts .btn-primary:hover,
  .loyalty-cta .btn-primary:hover,
  .order-photo .btn-primary:hover{background:var(--gold-light);color:var(--brown-dark);}

  /* Signature: the Belgian chocolate drip */
  .crepe-stage{
    position:relative;width:100%;aspect-ratio:1/1;max-width:420px;margin:0 auto;
    --milk:#8A5A2B; --milk-l:#B67C3E; --dark:#3B2417; --dark-l:#5C3620;
    --white:#F1E4C6; --white-l:#FFFAEE;
    --drip:var(--milk); --drip-l:var(--milk-l);
  }
  .crepe-stage.dark{ --drip:var(--dark); --drip-l:var(--dark-l); }
  .crepe-stage.white{ --drip:var(--white); --drip-l:var(--white-l); --drip-stroke:rgba(43,26,16,0.18); }
  .crepe-plate{
    position:absolute;inset:0;border-radius:50%;
    background:radial-gradient(circle at 35% 30%, #fff, var(--cream-alt) 70%);
    box-shadow: var(--shadow), inset 0 0 0 1px rgba(43,26,16,0.05);
  }
  .crepe-svg{position:absolute;inset:6%;overflow:visible;}
  .hero-photo{
    position:absolute;inset:3%;width:94%;height:94%;border-radius:50%;
    object-fit:cover;box-shadow:0 10px 30px -8px rgba(43,26,16,0.35);
  }
  .crepe-fold{fill:url(#crepeGrad);transition:filter .4s ease;}
  .drizzle-line{
    stroke:var(--drip);
    stroke-width:9;
    stroke-linecap:round;
    stroke-linejoin:round;
    transition:stroke .4s ease;
  }
  .drop{fill:var(--drip-l);stroke:var(--drip-stroke, none);stroke-width:1px;transition:fill .4s ease, stroke .4s ease;transform-box:fill-box;transform-origin:center;
    opacity:0;}
  .crepe-stage.pouring .drop{
    animation:dripFall 3.2s ease-in infinite;
  }
  .drop1{animation-delay:1.3s;}
  .drop2{animation-delay:2.1s;}
  .drop3{animation-delay:2.9s;}
  .drop4{animation-delay:1.7s;}
  .drop5{animation-delay:3.5s;}
  @keyframes dripFall{
    0%{opacity:0;transform:translateY(0) scale(.6);}
    12%{opacity:1;transform:translateY(0) scale(1);}
    80%{opacity:.9;transform:translateY(38px) scale(.85);}
    100%{opacity:0;transform:translateY(50px) scale(.6);}
  }
  .crepe-stage:active .crepe-fold, .crepe-stage.pouring .crepe-fold{filter:brightness(1.04);}
  .choc-toggle{
    display:flex;gap:8px;justify-content:center;margin-top:22px;flex-wrap:wrap;
  }
  .choc-btn{
    padding:8px 18px;border-radius:24px;border:1px solid var(--brown-mid);
    background:transparent;color:var(--brown);font-family:'Jost',sans-serif;font-size:.82rem;
    letter-spacing:.3px;cursor:pointer;transition:all .25s ease;
  }
  .choc-btn:hover{transform:translateY(-1px);box-shadow:0 6px 14px -8px rgba(43,26,16,0.4);}
  .choc-btn.active{background:var(--brown-dark);color:var(--cream);border-color:var(--brown-dark);}

  /* location selector (menu + visit) */
  .loc-toggle{
    display:flex;gap:10px;justify-content:center;margin:0 0 40px;flex-wrap:wrap;
  }
  .loc-btn{
    padding:10px 20px;border-radius:30px;border:1px solid var(--brown-mid);
    background:transparent;color:var(--brown);font-family:'Jost',sans-serif;font-size:.88rem;
    letter-spacing:.3px;cursor:pointer;transition:all .25s ease;
  }
  .loc-btn.active,.loc-btn:hover{background:var(--brown-dark);color:var(--cream);border-color:var(--brown-dark);}
  .loc-btn .soon{opacity:.7;font-size:.85em;}
  .loc-menu{display:none;}
  .loc-menu.active{display:block;}
  .loc-visit{display:none;}
  .loc-visit.active{display:block;}
  @media (prefers-reduced-motion: reduce){
    .crepe-stage.pouring .drop{animation:none!important;opacity:1!important;transform:none!important;}
  }

  /* scallop divider */
  .scallop{
    height:34px;width:100%;
    background:radial-gradient(circle at 10px 0, transparent 12px, var(--cream) 13px) 0 -1px / 24px 24px repeat-x;
  }
  .scallop.flip{transform:rotate(180deg);}
  .scallop.on-brown{background:radial-gradient(circle at 10px 0, transparent 12px, var(--brown-dark) 13px) 0 -1px / 24px 24px repeat-x;}
  .scallop.on-cream-alt{background:radial-gradient(circle at 10px 0, transparent 12px, var(--cream-alt) 13px) 0 -1px / 24px 24px repeat-x;}

  section{padding:110px 0;position:relative;}
  .section-head{max-width:600px;margin-bottom:56px;}
  .section-head .eyebrow{color:var(--gold);}
  .section-head .eyebrow::before{background:var(--gold);}
  .section-head h2{font-size:clamp(2rem,3.5vw,2.8rem);color:var(--brown-dark);font-weight:600;}

  /* ===== ABOUT ===== */
  .about{background:var(--cream-alt);}
  .about-grid{display:grid;grid-template-columns:0.9fr 1.1fr;gap:70px;align-items:center;}
  .photo-stack{
    position:relative;aspect-ratio:4/5;max-width:420px;margin:0 auto;
  }
  .stack-card{
    position:absolute;inset:0;border-radius:16px;overflow:hidden;
    border:none;padding:0;cursor:pointer;background:none;
    box-shadow:var(--shadow);
    transition:transform .55s cubic-bezier(.4,0,.2,1), box-shadow .4s ease;
  }
  .stack-card img{width:100%;height:100%;object-fit:cover;display:block;}
  .stack-card.active{box-shadow:0 24px 55px -18px rgba(43,26,16,0.45);}
  .about-text p{margin-bottom:18px;color:var(--brown);font-size:1.02rem;}
  .stat-row{display:flex;gap:40px;margin-top:34px;flex-wrap:wrap;}
  .stat b{display:block;font-family:'Fraunces',serif;font-size:2rem;color:var(--gold);}
  .stat span{font-size:.82rem;color:var(--brown);letter-spacing:.4px;}

  /* ===== MENU ===== */
  .menu{background:var(--cream);}
  .tabs{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:46px;}
  .tab{
    padding:10px 22px;border-radius:30px;border:1px solid var(--brown-mid);
    font-size:.88rem;letter-spacing:.3px;cursor:pointer;background:transparent;color:var(--brown);
    transition:all .25s ease;
  }
  .tab.active,.tab:hover{background:var(--brown-dark);color:var(--cream);border-color:var(--brown-dark);}
  .menu-grid{display:none;grid-template-columns:1fr 1fr;gap:14px 50px;}
  .menu-grid.active{display:grid;}
  .menu-item{
    display:flex;justify-content:space-between;gap:16px;padding:18px 0;
    border-bottom:1px dashed rgba(43,26,16,0.2);
  }
  .menu-item > div{min-width:0;}
  .menu-item h4{font-family:'Fraunces',serif;font-weight:500;font-size:1.08rem;color:var(--brown-dark);}
  .menu-item p{font-size:.86rem;color:var(--brown-mid);margin-top:4px;max-width:280px;}
  .menu-item .price{font-family:'Fraunces',serif;color:var(--gold);font-weight:600;white-space:nowrap;}
  .menu-note{margin-top:30px;font-size:.85rem;color:var(--brown-mid);font-style:italic;}

  /* ===== GALLERY ===== */
  .gallery{background:var(--cream);}
  .gallery-grid{
    display:grid;grid-template-columns:repeat(4,1fr);gap:16px;
  }
  .gallery-grid a{
    display:block;border-radius:14px;overflow:hidden;position:relative;
    box-shadow:0 12px 30px -14px rgba(43,26,16,0.3);
  }
  .gallery-grid img{
    width:100%;height:100%;object-fit:cover;aspect-ratio:1/1;
    transition:transform .5s ease;
  }
  .gallery-grid a:hover img{transform:scale(1.07);}
  .gallery-grid .tall{grid-row:span 2;}
  .gallery-grid .tall img{aspect-ratio:1/2.15;}
  @media (max-width:880px){
    .gallery-grid{grid-template-columns:repeat(2,1fr);}
    .gallery-grid .tall{grid-row:span 1;}
    .gallery-grid .tall img{aspect-ratio:1/1;}
  }

  /* ===== INSTAGRAM ===== */
  .insta{background:var(--cream-alt);}
  .insta .section-head{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:16px;}
  .insta-follow{
    display:inline-flex;align-items:center;gap:8px;
    padding:12px 24px;border-radius:30px;background:var(--brown-dark);color:var(--cream);
    font-size:.9rem;letter-spacing:.3px;transition:all .25s ease;
  }
  .insta-follow:hover{background:var(--berry);transform:translateY(-2px);}
  .insta-grid{
    display:grid;grid-template-columns:repeat(6,1fr);gap:10px;
  }
  .insta-grid a{
    display:block;position:relative;aspect-ratio:1/1;border-radius:10px;overflow:hidden;
  }
  .insta-grid img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease;}
  .insta-grid a::after{
    content:'♥ · view on Instagram';
    position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
    background:rgba(43,26,16,0.55);color:var(--cream);font-size:.72rem;letter-spacing:.3px;
    opacity:0;transition:opacity .3s ease;text-align:center;padding:0 10px;
  }
  .insta-grid a:hover::after{opacity:1;}
  .insta-grid a:hover img{transform:scale(1.06);}
  .insta-note{margin-top:22px;font-size:.82rem;color:var(--brown-mid);font-style:italic;}
  @media (max-width:880px){
    .insta-grid{grid-template-columns:repeat(3,1fr);}
  }

  /* ===== GIFT CARDS ===== */
  .gifts{background:var(--brown-dark);color:var(--cream-alt);}
  .gifts .eyebrow{color:var(--gold-light);}
  .gifts .eyebrow::before{background:var(--gold-light);}
  .gifts .section-head h2{color:var(--cream);}
  .gift-grid{display:grid;grid-template-columns:1.05fr 0.95fr;gap:60px;align-items:center;}
  .gift-card-visual{
    aspect-ratio:16/10;border-radius:18px;position:relative;
    background:linear-gradient(135deg, var(--gold-light) 0%, var(--gold) 45%, var(--brown-mid) 100%);
    box-shadow:0 30px 60px -20px rgba(0,0,0,0.5);
    padding:30px;display:flex;flex-direction:column;justify-content:space-between;
    transform:rotate(-4deg);
  }
  .gift-card-visual .brand{font-family:'Fraunces',serif;font-size:1.4rem;color:var(--brown-dark);font-weight:600;}
  .gift-card-visual .amount{font-family:'Fraunces',serif;font-size:2.6rem;color:var(--brown-dark);font-weight:600;}
  .gift-card-visual .sub{font-size:.78rem;letter-spacing:2px;text-transform:uppercase;color:rgba(43,26,16,0.7);}
  .gift-amounts{display:flex;gap:12px;margin:28px 0;flex-wrap:wrap;}
  .amt-pill{
    padding:12px 20px;border-radius:30px;border:1px solid rgba(251,244,231,0.35);
    font-family:'Fraunces',serif;cursor:pointer;transition:all .25s ease;
  }
  .amt-pill.active,.amt-pill:hover{background:var(--gold);color:var(--brown-dark);border-color:var(--gold);}
  .gifts p.lead{color:var(--cream-alt);opacity:.85;max-width:460px;}

  /* ===== ORDER ONLINE ===== */
  .order{background:var(--cream-alt);text-align:center;}
  .order h2{font-size:clamp(1.9rem,3.2vw,2.6rem);max-width:640px;margin:0 auto 20px;color:var(--brown-dark);}
  .order p{max-width:520px;margin:0 auto 34px;color:var(--brown);}
  .order-ctas{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;}
  .order-photo{
    position:relative;background-image:var(--order-bg);background-size:cover;background-position:center;
    isolation:isolate;
  }
  .order-photo::before{
    content:'';position:absolute;inset:0;z-index:-1;
    background:linear-gradient(180deg, rgba(43,26,16,0.72), rgba(43,26,16,0.82));
  }
  .order-photo .eyebrow{color:var(--gold-light);}
  .order-photo .eyebrow::before{background:var(--gold-light);}
  .order-photo .btn-outline{border-color:var(--cream);color:var(--cream);}
  .order-photo .btn-outline:hover{background:var(--cream);color:var(--brown-dark);}
  .order-photo h2{color:var(--cream);}
  .order-photo p{color:var(--cream-alt);opacity:.9;}

  /* ===== MENU TEASER PHOTO ===== */
  .menu-teaser-photo{
    border-radius:20px;overflow:hidden;box-shadow:var(--shadow);aspect-ratio:4/5;
  }
  .menu-teaser-photo img{width:100%;height:100%;object-fit:cover;display:block;}
  @media (max-width:880px){ .menu-teaser-photo{order:-1;} }

  /* ===== GIFT CARD PHOTO BADGE ===== */
  .gift-card-photo{
    position:absolute;bottom:-18px;right:-18px;width:96px;height:96px;border-radius:50%;
    overflow:hidden;border:4px solid var(--cream);box-shadow:0 12px 24px -10px rgba(0,0,0,0.5);
    transform:rotate(6deg);
  }
  .gift-card-photo img{width:100%;height:100%;object-fit:cover;display:block;}

  /* ===== VISIT ===== */
  .visit{background:var(--cream);}
  .section-lede{margin-top:16px;color:var(--brown);max-width:54ch;}
  .info-block{margin-bottom:22px;}
  .info-block h3,.info-block h4{
    font-family:'Jost',sans-serif;font-size:.78rem;color:var(--gold);
    margin-bottom:8px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;
  }
  .info-block p{color:var(--brown);}
  .info-block a{color:var(--brown);text-decoration:underline;text-underline-offset:3px;
    text-decoration-color:rgba(43,26,16,0.28);}
  .info-block a:hover{color:var(--brown-dark);text-decoration-color:var(--gold);}

  /* both locations are always visible side by side — no toggle, nothing hidden */
  .loc-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:36px;align-items:stretch;}
  .loc-card{
    display:flex;flex-direction:column;background:var(--cream-alt);
    border-radius:20px;overflow:hidden;box-shadow:var(--shadow);
    border:1px solid rgba(43,26,16,0.08);
  }
  .loc-card-map{position:relative;aspect-ratio:16/10;background:var(--cream);}
  /* pointer-events off: the pin below is painted at the map's centre point, which is
     only where Google's own marker sits while the embed is at its starting position.
     Let a visitor drag the map and the two would part company, so the embed is frozen
     and .map-open hands the whole tile to Google in a new tab instead. Fewer scroll
     traps on a phone, too. */
  .loc-card-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;pointer-events:none;}

  /* The brand pin. One element: the pill is a two-layer background (wordmark over a
     chocolate gradient) and ::after is the point below it. Anchored bottom-centre so
     the tip — not the middle of the pill — lands on the map's centre point, and sized
     to blanket Google's red marker, which stands about 27x43 up from that same tip. */
  .map-pin{
    position:absolute;left:50%;top:50%;
    width:108px;height:36px;
    transform:translate(-50%,calc(-100% - 8px));
    border-radius:999px;
    background:var(--logo-word) no-repeat center / 78px auto,
               linear-gradient(180deg,var(--choc-lit) 0%,var(--choc) 55%,var(--choc-deep) 100%);
    box-shadow:inset 0 1px 0 rgba(241,223,174,0.22);
    /* Two shadows, not a border: drop-shadow traces the silhouette, so the cream halo
       and the cast shadow both wrap the point as well as the pill. A border would stop
       at the pill and leave the point bare. */
    filter:drop-shadow(0 0 2px rgba(251,244,231,0.85)) drop-shadow(0 7px 12px rgba(20,10,4,0.45));
    pointer-events:none;z-index:2;
    animation:pinDrop .62s cubic-bezier(.22,1.4,.5,1) both;
  }
  .map-pin::after{
    content:'';position:absolute;left:50%;bottom:-8px;margin-left:-7px;
    width:0;height:0;border:7px solid transparent;border-bottom:0;
    border-top:9px solid var(--choc-deep);
  }
  /* translate rather than transform, so the drop composes with the anchoring above
     instead of overwriting it. */
  @keyframes pinDrop{
    from{translate:0 -34px;opacity:0;}
    60%{opacity:1;}
    to{translate:none;opacity:1;}
  }

  .map-open{position:absolute;inset:0;z-index:3;display:block;}
  .map-open span{
    position:absolute;width:1px;height:1px;margin:-1px;padding:0;
    overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0;
  }
  .map-open:focus-visible{outline:3px solid var(--gold);outline-offset:-3px;}
  .loc-card-body{display:flex;flex-direction:column;flex:1;padding:28px 30px 32px;}
  .loc-status{
    align-self:flex-start;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;
    font-weight:600;padding:6px 13px;border-radius:999px;margin-bottom:14px;
  }
  .loc-status.is-open{background:var(--brown-dark);color:var(--gold-pale);}
  .loc-status.is-soon{background:transparent;color:var(--brown-mid);border:1px solid rgba(43,26,16,0.28);}
  .loc-card h3{
    font-family:'Fraunces',serif;font-size:1.55rem;font-weight:600;
    color:var(--brown-dark);margin-bottom:22px;
  }
  .loc-directions{margin-top:auto;align-self:flex-start;}
  @media (max-width:880px){
    .loc-cards{grid-template-columns:1fr;gap:28px;}
  }

  footer{
    background:var(--brown-dark);color:var(--gold-pale);padding:60px 0 30px;
  }
  .footer-grid{display:flex;justify-content:space-between;flex-wrap:wrap;gap:40px;margin-bottom:40px;}
  footer h4{font-family:'Fraunces',serif;font-size:1.2rem;color:var(--cream);margin-bottom:14px;}
  footer .cols{display:flex;gap:70px;flex-wrap:wrap;}
  footer ul li{margin-bottom:9px;font-size:.92rem;opacity:.85;}
  footer ul li a:hover{color:var(--gold-light);}
  .footer-bottom{
    border-top:1px solid rgba(251,244,231,0.12);padding-top:24px;
    display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px 24px;
    font-size:.8rem;opacity:.65;
  }
  .footer-bottom a{color:inherit;}
  .footer-bottom a:hover{color:var(--gold-light);opacity:1;}

  /* ===== POLICY PAGE ===== */
  .policy-page{padding-top:252px;padding-bottom:100px;}
  .policy-page .wrap{max-width:820px;}
  .policy-page h1{font-size:clamp(2rem,4vw,2.8rem);color:var(--brown-dark);margin-bottom:10px;}
  .policy-page .updated{font-size:.85rem;color:var(--brown-mid);margin-bottom:44px;display:block;}
  .policy-page h2{font-size:1.35rem;color:var(--brown-dark);margin:38px 0 14px;font-family:'Fraunces',serif;}
  .policy-page p{margin-bottom:16px;color:var(--brown);line-height:1.75;}
  .policy-page ul{margin:0 0 16px 22px;color:var(--brown);line-height:1.75;}
  .policy-page li{margin-bottom:6px;}
  .policy-page a{color:var(--berry);text-decoration:underline;}
  .policy-page strong{color:var(--brown-dark);}

  /* ===== CONTACT PAGE ===== */
  .contact-page{padding-top:252px;padding-bottom:100px;}
  .contact-page .section-head{margin-bottom:44px;}
  .contact-intro{margin-top:18px;color:var(--brown);line-height:1.75;font-size:1.05rem;}
  .contact-grid{
    display:grid;grid-template-columns:1.35fr .85fr;gap:56px;align-items:start;
  }
  .contact-form{
    background:#fff;border:1px solid rgba(43,26,16,0.08);border-radius:18px;
    padding:38px 34px;box-shadow:0 24px 60px -40px rgba(43,26,16,0.45);
  }
  .field{margin-bottom:24px;display:flex;flex-direction:column;gap:8px;}
  .field label{
    font-size:.82rem;letter-spacing:1.2px;text-transform:uppercase;
    color:var(--brown-mid);font-weight:500;
  }
  .field input,.field select,.field textarea{
    width:100%;font-family:'Jost',sans-serif;font-size:1rem;color:var(--brown-dark);
    background:var(--cream);border:1px solid rgba(43,26,16,0.14);border-radius:10px;
    padding:13px 15px;transition:border-color .25s ease, box-shadow .25s ease, background .25s ease;
  }
  .field textarea{resize:vertical;min-height:140px;line-height:1.6;}
  .field select{
    appearance:none;cursor:pointer;padding-right:42px;
    background-image:linear-gradient(45deg,transparent 50%,var(--brown-mid) 50%),
      linear-gradient(135deg,var(--brown-mid) 50%,transparent 50%);
    background-position:calc(100% - 22px) calc(50% + 2px), calc(100% - 16px) calc(50% + 2px);
    background-size:6px 6px, 6px 6px;background-repeat:no-repeat;
  }
  .field input::placeholder,.field textarea::placeholder{color:rgba(74,46,29,.45);}
  .field input:focus,.field select:focus,.field textarea:focus{
    outline:none;background:#fff;border-color:var(--gold);
    box-shadow:0 0 0 3px rgba(200,155,60,0.18);
  }
  .field-hint{font-size:.8rem;color:var(--brown-mid);opacity:.85;}
  .contact-form .btn{width:100%;justify-content:center;text-align:center;margin-top:6px;cursor:pointer;border:none;
    font-family:'Jost',sans-serif;}
  .contact-form .btn:disabled{opacity:.6;cursor:progress;transform:none;}
  .hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
  .form-status{margin-top:16px;font-size:.9rem;color:var(--brown);line-height:1.6;}
  .form-status.is-error{color:var(--berry);}
  .form-privacy{margin-top:14px;font-size:.8rem;color:var(--brown-mid);opacity:.85;line-height:1.6;}
  .form-privacy a{color:var(--berry);text-decoration:underline;}
  .contact-success{
    background:#fff;border:1px solid rgba(43,26,16,0.08);border-radius:18px;
    padding:52px 34px;text-align:center;box-shadow:0 24px 60px -40px rgba(43,26,16,0.45);
  }
  .contact-success .success-mark{
    display:inline-flex;align-items:center;justify-content:center;
    width:56px;height:56px;border-radius:50%;background:var(--gold-pale);
    color:var(--brown-dark);font-size:1.5rem;margin-bottom:18px;
  }
  .contact-success h3{font-family:'Fraunces',serif;font-size:1.6rem;color:var(--brown-dark);margin-bottom:12px;}
  .contact-success p{color:var(--brown);line-height:1.75;max-width:420px;margin:0 auto 26px;}
  .contact-aside h3{
    font-family:'Fraunces',serif;font-size:1.3rem;color:var(--brown-dark);margin-bottom:26px;
  }
  .contact-aside .info-block{margin-bottom:22px;}
  .contact-aside .info-block h4{
    font-size:.78rem;letter-spacing:1.5px;text-transform:uppercase;
    color:var(--gold);margin-bottom:6px;font-family:'Jost',sans-serif;font-weight:500;
  }
  .contact-aside .info-block p{color:var(--brown);line-height:1.7;font-size:.96rem;}
  .contact-aside a{color:var(--berry);}
  .contact-aside a:hover{text-decoration:underline;}

  @media (max-width: 880px){
    .contact-grid{grid-template-columns:1fr;gap:40px;}
    .contact-page{padding-top:196px;padding-bottom:70px;}
  }

  @media (max-width: 480px){
    .contact-form{padding:28px 22px;}
    .contact-success{padding:40px 22px;}
  }

  @media (max-width: 880px){
    nav{padding:14px 20px;gap:14px;}
    /* The open panel is a continuation of the slab, and drips from its own lower
       edge. z-index keeps it over the bar's drips while it is down. */
    .nav-links{position:absolute;top:100%;left:0;right:0;z-index:3;
      background:linear-gradient(180deg,var(--choc) 0%,var(--choc-deep) 100%);
      flex-direction:column;
      padding:20px 32px 24px;gap:18px;border-bottom:none;
      transform:translateY(-150%);transition:transform .35s ease;}
    .nav-links::after{
      content:'';position:absolute;top:calc(100% - 1px);left:0;right:0;height:121px;
      background:var(--drip-curtain) repeat-x left top;background-size:700px 120px;
      pointer-events:none;}
    .nav-links.open{transform:translateY(0);}
    /* Shorter drips on small screens, and no droplets — the tile is scaled here, so
       the fixed droplet offsets would no longer line up with any bulb. */
    header::after{height:121px;background-size:700px 120px;}
    .drip-fall{display:none;}
    .menu-toggle{display:block;}
    /* Inside the open panel there is nothing to hover, so both stores are simply
       listed under Locations rather than hidden behind a second tap. */
    .nav-sub{
      position:static;transform:none;z-index:auto;min-width:0;
      display:flex;flex-direction:column;gap:12px;
      margin:12px 0 2px;padding:2px 0 2px 14px;
      background:none;border:none;border-left:1px solid rgba(201,152,104,.35);
      border-radius:0;box-shadow:none;
      opacity:1;visibility:visible;pointer-events:auto;
    }
    .nav-sub::before{display:none;}
    .nav-sub a{padding:0;border-radius:0;}
    .nav-sub a:hover,.nav-sub a:focus-visible{background:none;}
    .nav-caret{display:none;}
    .loc-card{scroll-margin-top:118px;}
    .hero-grid,.about-grid,.gift-grid,.visit-grid{grid-template-columns:1fr;}
    .photo-stack{order:-1;}
    .menu-grid{grid-template-columns:1fr;}
    section{padding:80px 0;}
    .hero{padding-top:196px;}
    .wrap{padding:0 20px;}
    .stat-row{gap:24px;}
    .menu-page-hero{padding-top:196px;}
    .policy-page{padding-top:196px;}
    .gift-card-photo{width:76px;height:76px;bottom:-12px;right:-12px;}
  }

  @media (max-width:480px){
    header::after{height:93px;background-size:520px 92px;}
    .nav-links::after{height:93px;background-size:520px 92px;}
    .hero{padding-top:168px;}
    .menu-page-hero,.policy-page,.contact-page{padding-top:168px;}
    .loyalty-hero{padding-top:168px;}
    .logo-mark{height:36px;}
    .nav-cta{padding:8px 16px;font-size:.8rem;}
    .insta-grid{grid-template-columns:repeat(2,1fr);}
    .hero h1{letter-spacing:-.5px;}
    .btn{padding:13px 24px;font-size:.86rem;}
    .footer-bottom{flex-direction:column;align-items:flex-start;gap:8px;}
  }


/* ===== Standalone Menu page ===== */
.menu-page-hero{padding-top:252px;}
.nav-links a.active-link{color:var(--gold-light);font-weight:600;}
.nav-links a.active-link::after{width:100%;}

  /* the nav gained a seventh item — tighten it before the mobile menu kicks in */
  @media (min-width:881px) and (max-width:1080px){
    .nav-links{gap:22px;font-size:.9rem;}
  }

  /* ===== REWARDS CARD (homepage section + loyalty page) ===== */
  /* Deliberately the inverse of .gift-card-visual — dark with gold accents —
     so a rewards card is never mistaken for a gift card at a glance. */
  .reward-card{
    position:relative;border-radius:20px;overflow:hidden;
    background:linear-gradient(150deg,#3A2416 0%,var(--brown-dark) 55%,#1E1109 100%);
    border:1px solid rgba(200,155,60,0.35);
    box-shadow:0 30px 60px -22px rgba(43,26,16,0.55);
    padding:30px 30px 26px;display:flex;flex-direction:column;gap:26px;
    color:var(--cream-alt);transform:rotate(3deg);
  }
  .reward-card::before{
    content:'';position:absolute;inset:0;pointer-events:none;
    background:radial-gradient(circle at 85% 8%, rgba(228,192,105,0.22), transparent 55%);
  }
  .reward-card > *{position:relative;}
  .reward-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;}
  .reward-card .brand{font-family:'Fraunces',serif;font-size:1.35rem;color:var(--cream);font-weight:600;line-height:1.2;}
  .reward-card .sub{font-size:.72rem;letter-spacing:2px;text-transform:uppercase;color:var(--gold-light);margin-top:4px;}
  .reward-seal{
    flex:none;width:42px;height:42px;border-radius:50%;background:var(--gold);
    color:var(--brown-dark);display:flex;align-items:center;justify-content:center;
    font-size:1.05rem;box-shadow:0 6px 16px -6px rgba(0,0,0,0.6);
  }
  .reward-progress{display:flex;gap:10px;flex-wrap:wrap;}
  .pip{
    width:26px;height:26px;border-radius:50%;
    border:1px solid rgba(241,223,174,0.35);background:rgba(251,244,231,0.06);
  }
  .pip.is-earned{background:var(--gold);border-color:var(--gold);box-shadow:0 0 0 3px rgba(200,155,60,0.18);}
  .reward-card-foot{
    display:flex;align-items:baseline;justify-content:space-between;gap:16px;
    border-top:1px solid rgba(241,223,174,0.18);padding-top:16px;
  }
  .reward-card-foot span{font-size:.72rem;letter-spacing:1.6px;text-transform:uppercase;color:rgba(241,223,174,0.75);}
  .reward-card-foot strong{font-family:'Fraunces',serif;font-size:1.15rem;color:var(--gold-light);font-weight:600;}

  /* ===== REWARDS SECTION (homepage) ===== */
  .rewards{background:var(--cream);}
  .rewards-grid{display:grid;grid-template-columns:1.05fr 0.95fr;gap:60px;align-items:center;}
  .rewards-text h2{
    font-size:clamp(1.9rem,3.2vw,2.6rem);color:var(--brown-dark);
    font-weight:600;line-height:1.12;margin-bottom:18px;
  }
  .rewards-text h2 em{font-style:italic;font-weight:500;color:var(--gold);}
  .rewards p.lead{max-width:470px;color:var(--brown);font-size:1.05rem;}
  .rewards-points{margin:28px 0 34px;display:flex;flex-direction:column;gap:14px;}
  .rewards-points li{
    display:flex;align-items:flex-start;gap:14px;
    color:var(--brown);font-size:.98rem;line-height:1.55;
  }
  .rewards-points li span{
    flex:none;width:28px;height:28px;border-radius:50%;
    background:var(--gold-pale);color:var(--brown-dark);
    font-family:'Fraunces',serif;font-size:.9rem;font-weight:600;
    display:inline-flex;align-items:center;justify-content:center;margin-top:1px;
  }
  .rewards-visual{max-width:400px;width:100%;margin:0 auto;}

  /* ===== LOYALTY PAGE ===== */
  .loyalty-hero{
    padding-top:252px;padding-bottom:90px;
    background:
      radial-gradient(circle at 85% 15%, rgba(200,155,60,0.18), transparent 45%),
      radial-gradient(circle at 10% 90%, rgba(168,72,47,0.12), transparent 40%),
      var(--cream);
    overflow:hidden;
  }
  .loyalty-hero-grid{display:grid;grid-template-columns:1.08fr 0.92fr;gap:60px;align-items:center;}
  .loyalty-hero h1{
    font-size:clamp(2.4rem,4.6vw,3.8rem);font-weight:600;
    color:var(--brown-dark);line-height:1.05;letter-spacing:-1px;
  }
  .loyalty-hero h1 em{font-style:italic;font-weight:500;color:var(--gold);}
  .loyalty-hero p.lead{margin-top:24px;max-width:470px;font-size:1.08rem;color:var(--brown);}
  .loyalty-hero-note{margin-top:24px;font-size:.85rem;color:var(--brown-mid);font-style:italic;max-width:430px;}
  .reward-card-wrap{max-width:420px;width:100%;margin:0 auto;}
  .reward-card-caption{text-align:center;font-size:.75rem;color:var(--brown-mid);margin-top:28px;font-style:italic;}

  .loyalty-section-head{max-width:640px;margin-left:auto;margin-right:auto;text-align:center;}
  .loyalty-section-head .eyebrow{justify-content:center;}
  .loyalty-section-head .section-lede{margin-left:auto;margin-right:auto;}

  .loyalty-steps{background:var(--cream-alt);}
  .step-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
  .step-card{
    display:flex;flex-direction:column;background:var(--cream);
    border:1px solid rgba(43,26,16,0.08);border-radius:20px;
    padding:36px 30px 34px;box-shadow:var(--shadow);
  }
  .step-num{
    width:46px;height:46px;border-radius:50%;background:var(--brown-dark);color:var(--gold-pale);
    font-family:'Fraunces',serif;font-size:1.25rem;font-weight:600;
    display:inline-flex;align-items:center;justify-content:center;margin-bottom:22px;
  }
  .step-card h3{font-family:'Fraunces',serif;font-size:1.3rem;font-weight:600;color:var(--brown-dark);margin-bottom:12px;}
  .step-card p{color:var(--brown);line-height:1.7;font-size:.97rem;}

  .loyalty-faq{background:var(--cream);}
  .faq-list{max-width:820px;margin:0 auto;}
  .faq-item{border-bottom:1px solid rgba(43,26,16,0.14);}
  .faq-item:first-child{border-top:1px solid rgba(43,26,16,0.14);}
  .faq-item summary{
    list-style:none;cursor:pointer;position:relative;
    padding:24px 44px 24px 0;
    font-family:'Fraunces',serif;font-size:1.12rem;font-weight:500;color:var(--brown-dark);
    transition:color .25s ease;
  }
  .faq-item summary::-webkit-details-marker{display:none;}
  .faq-item summary::after{
    content:'+';position:absolute;right:6px;top:50%;transform:translateY(-50%);
    font-family:'Jost',sans-serif;font-size:1.5rem;line-height:1;color:var(--gold);
  }
  .faq-item[open] summary::after{content:'\2212';}
  .faq-item summary:hover{color:var(--berry);}
  .faq-item summary:focus-visible{outline:2px solid var(--gold);outline-offset:4px;border-radius:4px;}
  .faq-item p{padding:0 0 26px;color:var(--brown);line-height:1.75;max-width:66ch;}
  .faq-item a{color:var(--berry);text-decoration:underline;text-underline-offset:3px;}

  .loyalty-cta{background:var(--brown-dark);text-align:center;color:var(--cream-alt);}
  .loyalty-cta .eyebrow{color:var(--gold-light);justify-content:center;}
  .loyalty-cta .eyebrow::before{background:var(--gold-light);}
  .loyalty-cta h2{font-size:clamp(1.9rem,3.2vw,2.6rem);color:var(--cream);max-width:640px;margin:0 auto 20px;}
  .loyalty-cta p{max-width:520px;margin:0 auto 34px;color:var(--cream-alt);opacity:.85;}
  .loyalty-cta .btn-outline{border-color:var(--cream);color:var(--cream);}
  .loyalty-cta .btn-outline:hover{background:var(--cream);color:var(--brown-dark);}

  @media (max-width:880px){
    .rewards-grid,.loyalty-hero-grid{grid-template-columns:1fr;gap:44px;}
    .rewards-visual,.reward-card-wrap{max-width:360px;}
    .step-cards{grid-template-columns:1fr;gap:20px;}
    .loyalty-hero{padding-top:196px;padding-bottom:60px;}
  }

  @media (max-width:480px){
    .reward-card{padding:24px 22px 22px;transform:rotate(2deg);}
    .step-card{padding:30px 24px 28px;}
    .faq-item summary{font-size:1.02rem;}
  }

  /* Motion here is decorative — the drips stay, they just stop moving. */
  @media (prefers-reduced-motion: reduce){
    .drip-fall{display:none;}
    header:hover{--drip-scale:1;}
    header::after{transition:none;}
  }

  /* ===== NAV: condensed once the page moves ===== */
  /* At rest the curtain is the point — it hangs its full 220px and the hero is
     padded to clear it. The moment someone starts reading, though, it is just a
     lot of chocolate sitting on top of the content, so the bar tightens and the
     drips pull back to a short lip. scaleY keeps the retraction on the
     compositor, and it composes with the hover sag through --drip-scale. */
  header.is-scrolled{
    --drip-scale:.32;
    box-shadow:0 8px 26px -16px rgba(43,26,16,.62);
  }
  header.is-scrolled:hover{--drip-scale:.38;}
  header.is-scrolled nav{padding-top:10px;padding-bottom:10px;}
  header.is-scrolled .logo-mark{height:34px;}
  /* The droplets are aimed at bulbs that have retracted, so they let go of the
     effect entirely rather than falling out of thin air. */
  header.is-scrolled .drip-fall{opacity:0;}
  nav{transition:padding .35s ease;}
  .logo-mark{transition:height .35s ease, filter .25s ease;}
  .drip-fall{transition:opacity .3s ease;}

  /* ===== TEXTURE ===== */
  /* A fine desaturated grain over the whole page so the creams read as paper
     stock rather than flat #FBF4E7. Fixed and inert: it never repaints with the
     scroll, and never intercepts a click. */
  body::after{
    content:'';position:fixed;inset:0;z-index:300;pointer-events:none;
    opacity:.045;mix-blend-mode:multiply;
    background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='180'%20height='180'%3E%3Cfilter%20id='g'%3E%3CfeTurbulence%20type='fractalNoise'%20baseFrequency='0.82'%20numOctaves='3'%20stitchTiles='stitch'/%3E%3CfeColorMatrix%20type='saturate'%20values='0'/%3E%3C/filter%3E%3Crect%20width='180'%20height='180'%20filter='url(%23g)'/%3E%3C/svg%3E");
  }

  /* ===== HERO ===== */
  /* A warm bloom behind the plate, sitting off-centre so the composition leans
     the way the layout already does rather than centring itself. */
  .hero::before{
    content:'';position:absolute;z-index:0;pointer-events:none;
    top:-14%;left:58%;width:min(760px,84vw);aspect-ratio:1/1;border-radius:50%;
    background:radial-gradient(circle at 50% 50%,rgba(228,192,105,.26),rgba(228,192,105,.07) 45%,transparent 68%);
  }
  .hero > .wrap{position:relative;z-index:1;}

  /* Page-load choreography: the column arrives a line at a time, the plate a beat
     behind it. `backwards` holds the first frame so nothing flashes before its
     delay elapses. */
  @keyframes riseIn{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:none;}}
  .hero .eyebrow,
  .hero h1,
  .hero p.lead,
  .hero-ctas{animation:riseIn .9s cubic-bezier(.2,.75,.3,1) backwards;}
  .hero .eyebrow{animation-delay:.06s;}
  .hero h1{animation-delay:.16s;}
  .hero p.lead{animation-delay:.3s;}
  .hero-ctas{animation-delay:.42s;}
  .crepe-stage{animation:riseIn 1.1s cubic-bezier(.2,.75,.3,1) .34s backwards;}

  /* A gold brush stroke under "Sweet", drawn on after the headline lands. Two
     passes — a heavy one and a hairline above it — so it reads as ink rather
     than a border-bottom. */
  .hero h1 em::after{
    content:'';position:absolute;left:-1%;right:-5%;bottom:-.02em;height:.32em;
    background:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20300%2026'%20preserveAspectRatio='none'%3E%3Cpath%20d='M5,18C58,7,132,4,196,9C236,12,270,16,295,11'%20fill='none'%20stroke='%23C89B3C'%20stroke-width='7'%20stroke-linecap='round'/%3E%3Cpath%20d='M18,25C74,17,140,15,205,19C240,21,268,23,288,21'%20fill='none'%20stroke='%23E4C069'%20stroke-width='2.5'%20stroke-linecap='round'%20opacity='.75'/%3E%3C/svg%3E") no-repeat center/100% 100%;
    transform-origin:left center;
    animation:swash .85s cubic-bezier(.3,.8,.35,1) .85s backwards;
  }
  @keyframes swash{from{transform:scaleX(0);opacity:0;}to{transform:scaleX(1);opacity:1;}}

  /* The plate: a dashed gold orbit turning slowly around it, a deeper bed of
     shadow under it, and the crêpe itself breathing. */
  .crepe-stage::before{
    content:'';position:absolute;inset:-6%;border-radius:50%;pointer-events:none;
    border:1px dashed rgba(200,155,60,.4);
    animation:orbit 54s linear infinite;
  }
  @keyframes orbit{to{transform:rotate(360deg);}}
  .crepe-plate{
    box-shadow:0 36px 72px -30px rgba(43,26,16,.55),
               inset 0 0 0 1px rgba(200,155,60,.32);
  }
  .hero-photo{animation:breathe 8s ease-in-out infinite;}
  @keyframes breathe{0%,100%{transform:translateY(0);}50%{transform:translateY(-9px);}}

  /* Rotating seal, stuck to the plate like a bakery sticker. */
  .crepe-seal{
    position:absolute;left:-4%;bottom:-2%;width:112px;height:112px;z-index:2;
    pointer-events:none;filter:drop-shadow(0 10px 20px rgba(43,26,16,.38));
  }
  .crepe-seal svg{width:100%;height:100%;animation:orbit 26s linear infinite;}
  .crepe-seal .seal-disc{fill:var(--choc-deep);}
  .crepe-seal .seal-ring{fill:none;stroke:rgba(200,155,60,.55);stroke-width:1;}
  /* textLength on the path spaces the letters around the full circumference, so
     the wording sits evenly rather than bunching at the top. */
  .crepe-seal .seal-text{
    fill:var(--gold-pale);font-family:'Jost',sans-serif;
    font-size:10px;font-weight:500;text-transform:uppercase;
  }
  .crepe-seal .seal-star{fill:var(--gold);font-size:15px;}

  /* ===== SCROLL REVEALS ===== */
  /* Tagged from script, so with JS off or reduced motion on, everything is
     simply visible — the attribute is never added in the first place. */
  /* `translate`, not `transform`: several of these elements are tilted (the gift
     card, the staggered Instagram tiles), and a transform here would flatten the
     tilt the moment the element revealed itself. */
  [data-reveal]{
    opacity:0;translate:0 24px;
    transition:opacity .75s cubic-bezier(.2,.75,.3,1),translate .75s cubic-bezier(.2,.75,.3,1);
  }
  [data-reveal].is-visible{opacity:1;translate:none;}

  /* ===== SECTION DETAIL ===== */
  .section-head h2{letter-spacing:-.4px;}
  /* Every card in the stack is position:absolute, so the stack itself has no
     in-flow content to size against and was collapsing to 0x0 in its grid track —
     six photographs that never drew. .crepe-stage states its width for exactly
     this reason; this needs to as well. */
  .photo-stack{width:100%;}
  /* The stats read as one measured row when they share hairlines instead of a
     40px gap doing the separating. */
  .stat-row{gap:0;}
  .stat{padding-right:28px;}
  .stat + .stat{padding-left:28px;border-left:1px solid rgba(43,26,16,.16);}
  .stat b{line-height:1.15;}

  /* A slow push-in on the teaser photo — the crop is the content, so it earns it. */
  .menu-teaser-photo img{transition:transform .9s cubic-bezier(.2,.75,.3,1);}
  .menu-teaser-photo:hover img{transform:scale(1.05);}

  /* Light travelling across a filled button on hover, the way it would across
     the nav slab. Clipped by the pill itself. */
  .btn{position:relative;overflow:hidden;}
  .btn > *{position:relative;z-index:1;}
  .btn-primary::after{
    content:'';position:absolute;top:0;bottom:0;left:-45%;width:38%;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.20),transparent);
    transform:skewX(-18deg);transition:transform .7s cubic-bezier(.25,.7,.3,1);
  }
  .btn-primary:hover::after{transform:translateX(420%) skewX(-18deg);}

  /* The gift card lifts and straightens slightly under the pointer. */
  .gift-card-visual{transition:transform .6s cubic-bezier(.2,.75,.3,1),box-shadow .6s ease;}
  .gift-card-visual:hover{
    transform:rotate(-1.5deg) translateY(-8px);
    box-shadow:0 38px 70px -22px rgba(0,0,0,.55);
  }
  .stack-card.active:hover{box-shadow:0 32px 64px -20px rgba(43,26,16,.5);}
  .reward-card{transition:transform .6s cubic-bezier(.2,.75,.3,1);}
  .reward-card:hover{transform:rotate(1.5deg) translateY(-6px);}

  /* ===== INSTAGRAM GRID ===== */
  /* Six identical squares in a dead-straight line is the most forgettable way to
     show six photographs. Every other tile drops half a step, which turns the
     row into a rhythm without breaking the grid. */
  .insta-grid a{
    box-shadow:0 16px 32px -20px rgba(43,26,16,.55);
    transition:transform .5s cubic-bezier(.2,.75,.3,1),box-shadow .5s ease;
  }
  @media (min-width:881px){
    .insta-grid a:nth-child(even){transform:translateY(18px);}
    .insta-grid a:nth-child(even):hover{transform:translateY(10px);}
    .insta-grid a:nth-child(odd):hover{transform:translateY(-8px);}
  }
  .insta-grid a::after{
    content:'View on Instagram';
    align-items:flex-end;justify-content:flex-start;
    padding:0 0 14px 14px;text-align:left;
    font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;
    background:linear-gradient(180deg,rgba(43,26,16,0) 30%,rgba(43,26,16,.78) 100%);
  }

  /* The longest drips reach roughly 300px down the viewport at rest, which put
     them straight through the "Sarasota, Florida" line. The hero starts below
     the curtain instead of behind it. */
  @media (min-width:881px){
    .hero,.menu-page-hero,.policy-page,.contact-page,.loyalty-hero{padding-top:304px;}
  }

  @media (max-width:880px){
    .crepe-seal{width:88px;height:88px;left:-2%;}
    .stat{padding-right:20px;}
    .stat + .stat{padding-left:20px;}
  }
  @media (max-width:480px){
    .crepe-seal{width:74px;height:74px;}
    /* Three stats don't fit on one flex line this narrow, so "Fresh" wrapped
       away on its own — still carrying the left padding and divider hairline of
       a mid-row item, which left it sitting indented from the "100%" above it.
       A three-column grid holds all three on one line, on one left edge. */
    .stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:28px;}
    .stat{padding-right:12px;min-width:0;}
    .stat + .stat{padding-left:12px;}
    .stat b{font-size:1.5rem;}
    .stat span{display:block;font-size:.72rem;letter-spacing:.2px;line-height:1.35;}
  }

  /* Everything above is decoration; none of it is load-bearing. */
  @media (prefers-reduced-motion: reduce){
    .hero .eyebrow,.hero h1,.hero p.lead,.hero-ctas,.crepe-stage,
    .hero h1 em::after,.hero-photo,.crepe-stage::before,.crepe-seal svg{
      animation:none!important;
    }
    [data-reveal]{opacity:1!important;translate:none!important;transition:none!important;}
    .btn-primary::after{display:none;}
    .gift-card-visual:hover,.reward-card:hover{transform:none;}
    .insta-grid a:hover,.menu-teaser-photo:hover img{transform:none;}
    nav,.logo-mark{transition:none;}
    .map-pin{animation:none;}
  }
