const { useState } = React;

const STAR_IMG = "data:image/jpeg;base64,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";
const CREST_IMG = "data:image/jpeg;base64,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";
const STAR_LG = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/+EAjEV4aWYAAE1NACoAAAAIAAUBEgADAAAAAQABAAABGgAFAAAAAQAAAEoBGwAFAAAAAQAAAFIBKAADAAAAAQACAACHaQAEAAAAAQAAAFoAAAAAAAAASAAAAAEAAABIAAAAAQADoAEAAwAAAAH//wAAoAIABAAAAAEAAAQSoAMABAAAAAEAAAQmAAAAAP/iAihJQ0NfUFJPRklMRQABAQAAAhhhcHBsBAAAAG1udHJSR0IgWFlaIAfmAAEAAQAAAAAAAGFjc3BBUFBMAAAAAEFQUEwAAAAAAAAAAAAAAAAAAAAAAAD21gABAAAAANMtYXBwbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACmRlc2MAAAD8AAAAMGNwcnQAAAEsAAAAUHd0cHQAAAF8AAAAFHJYWVoAAAGQAAAAFGdYWVoAAAGkAAAAFGJYWVoAAAG4AAAAFHJUUkMAAAHMAAAAIGNoYWQAAAHsAAAALGJUUkMAAAHMAAAAIGdUUkMAAAHMAAAAIG1sdWMAAAAAAAAAAQAAAAxlblVTAAAAFAAAABwARABpAHMAcABsAGEAeQAgAFAAM21sdWMAAAAAAAAAAQAAAAxlblVTAAAANAAAABwAQwBvAHAAeQByAGkAZwBoAHQAIABBAHAAcABsAGUAIABJAG4AYwAuACwAIAAyADAAMgAyWFlaIAAAAAAAAPbVAAEAAAAA0yxYWVogAAAAAAAAg98AAD2/////u1hZWiAAAAAAAABKvwAAsTcAAAq5WFlaIAAAAAAAACg4AAARCwAAyLlwYXJhAAAAAAADAAAAAmZmAADypwAADVkAABPQAAAKW3NmMzIAAAAAAAEMQgAABd7///MmAAAHkwAA/ZD///ui///9owAAA9wAAMBu/9sAQwAGBAUGBQQGBgUGBwcGCAoQCgoJCQoUDg8MEBcUGBgXFBYWGh0lHxobIxwWFiAsICMmJykqKRkfLTAtKDAlKCko/9sAQwEHBwcKCAoTCgoTKBoWGigoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo/8AAEQgAyADEAwEiAAIRAQMRAf/EABwAAAICAwEBAAAAAAAAAAAAAAAGBQcBBAgDAv/EAEcQAAEDAwEEBgUKAwYFBQAAAAEAAgMEBREGBxIhMRNBUWFxgRQikaGxIyQyM0JSYnLB0RU0gkNTY6Lh8AgWkrLCF4OTs9L/xAAXAQEBAQEAAAAAAAAAAAAAAAAAAgED/8QAHxEBAQACAgMBAQEAAAAAAAAAAAECESExEkFRQiIT/9oADAMBAAIRAxEAPwDqlCEIBCEIBCEIBCF8Pka0cSg+0ZUdU3OGEHecFB12q6aEkdI3PZnigbN4dqxvt+8EinUVbUfytFUyA9YjIHtK+fTr28Eij3PzyNH6oHzpGfeCN9v3gkE1V8H9hF/8wWBc7xEfWpC78r2n9UFgBwPIrOUhM1RNB/NU08Xe5hx7VKUGqKaflI0+aBpQtGmuMMwy1wPmtxrw4cCg+kIyhAIQhAIQhAIQhAIQhAIQhAL5c8NGSvOedsTCXFKV6v7jMKWiY6aoecNjZxJ/070E5cbxDSsJc8DCWH3evuznNtcJdHyMzjusHn1+WURWiNoNXqCdkhaN/od7ETB2k9fieCUtUbVaOj3qWwQtq5G+qJTlsTfDHF3lgeK2TfTLdG1tiDsyXWtklxxLIzuMHiefwUZV6s0rYyY4Z6d0rebaZnSu8yP3VYPj1Pq2Ter55jCTwY71Ix4MH6pks2zPeANU57z2cgt8ZO6ndvTcrdq9OXEUVsnl48DNKGDHgMlRz9pd0kyIrfSNHUSXkj3gJ1t2z6igaPm7M+CjdW6cpqSjfuMA4Y4JvGem6v1BV+sdQUDKOSsp6OMVbS6Jpa7OO/1uGViLaBcAW9NQUj2jnuvewnzJPwXltajEM9nBxiINB8AWgpv09pelq6JpdG05HYt4ZJfqFpdoEDh86t1VF2uic2Uez1Tj2qQprtYLxIGxVFMag8mSfIy+w4z5ErfrtAUzwSyPdPa3gla7aGmY13qtmYPsyNys/mmrDKaWppH5oql4I49HN+/NSFBqWWmkbFXsdETwBPFp8DyVaQPvVh9SkqXthB/lavMkR/KebfIqdtmq6GveKK6Rfw6rfwEVQ7MUn5X8vJ3tTTZkty33OKpZlrwVItcHDgqnHpNtlL6NztxvOB54jwJ+BTZp7UcVY0Nc7DxwIPAgrG7NqF5xStkblpXosaEIQgEIQgyhCEAvCpnbDGS4gYX3NII2EnqSVf7lPW1baC34dPJ1nk0dbj3BB8XW51NzrTQ20b0h4vefoxt7T+3WtS63S06Ktkk08u/UP4OeRmSZ/wB1o/TkOvv19S3236Ksj2RuMk7jgkHEk0uOWervP2RjrIVS2u3XPW94NdcXO6LO6A3g1rfuMHUP98Stk3zUW+o9bpeL7ryuMbQ6Gh3uEDSdxve4/ad7h1AJ70fs6hp9yWdnSy9b3j4DqTjpTStPb6eNrYmtAHAAJyhgZE3DQAtuXqNmP1EW6xQUzBhgz4KXjgYwcGheqFKmCAGlIOtndLUU0H95Mxv+ZPshwwlV7eT6Rqq3RcwJS8jwBSBH21tO/BjmI348i1WJs5qhUWmnfnO9G0+0JB2xN354AfuyD/tTBsaqulsFGCclrN32cFV6TO1q4BHJeMtNHICHNC9m8llSovXTT1PVMcCwHPcq61Jozdika2ESwnnG79D1FXMteopmTMIc0cVsuma253pbnX6bxDVCWvszDgtP19IO49be48PBMvSx1EMVxtlQx7H/AFczeT8c2uHMEdh4jwTZqfS7ZQ6WAbsgHAge49o7lU9RFWaTrpqqihMlC4g1lCT6pH32dmOo829fBVLtNmlt6U1IJ/kZjuTMOHNPMJ4hlbIwEFUT0zJ4Ke52mYyRvyYnkYzjnG8dTh2eY4FWHozULK6nbk4cOBB5g9hU2Kl2d0L5Y4PbkL6WNCEIQZWHHAWVq18whhc4nkggtVXZtJTOAPrcgBzJUBPURaXslRW18gZWzM6SZ+MmNo5NHaQSAB1uPYvSlLbhd56+pOKKh9bJ5F+M+4cfEhVXtKvM9+v7bVTE4ZIOkaP7zjhp7mAkfmLitk2m3SKpYq3XGozUVIcymYd1rAciNmchoPWTzJ6ySVfmktPQ0FLG1sYaGgAABQmzrTMVvoohujIGSSOZ7VY0bAxoAW27MZpljAwYC+kIUqCEIQeNUd2Fx7lX9J841uw8xFE53tIH6FPdydu0zz3JE0o3ptT3ObH0GtYD5En4hGFLa2M1VN/7g9zUbEan5m+En6uZzffn9VnawM1VN+aT4NUNscqOiu1fCT9tr/aMfor/ACn9OiYjlgX0vGlO9C09y9lCwhCEHnLGHtIISVq3TzZ4zJE3EjeIOP8AeR3J5XlURCWMghIOYumdo+8vbLG82OtduzxDiYH9Tm945jtGQmOOqfZLs2dkgfC/dL3MOWuaeLZB3EYTLtH01HU0s+WZY5uHYHHxHeDxH+qrPSNZJPS1enq/BrbeHPpz/eQ83sHhnfHcXLp3HO8V0Xp24trKZjgc5CmwqY2bXp0Mz6GZ+TERukn6TTyKuKmkEkQIKi8Ll29ULOELGg8kp6yuHo9I8MyXngAOs9QTRM7dYSkWtP8AENT00PNkRMzh4cveQgiNWXAaY0mIgQ6djOkf+OVx9Uf9fHwjSHsrsbq2udXVAL3FxAc7iTx4nzK9Nq9ydX3ano4TvBzjLjzLGe4OP9asvZxaW0dvhaG/RaFfUROadbbTCCBrQOpbiw0YGFlQsIQhAIQhBF36Tco3+CU9nrN8XSox9OZ/Hww0fAqf1ZN0dDJx6lE7OYt3TfSnnKC8/wBTnFAi7VR85pvzyfBiT9nE/QavlZn6yMH2FOO1QfLUp/xJB/lYq903N6PrKjdnAeSxdJ053t1NbH71M3wW4oqwSb9Gw9ylVzdAhCEAhCEEZeqNtRTPaRnIXNG0ukqNNaior1QjdlglHVwPHgD3Hi09xXVEjQ5pBVRbY7EK2yVYa3LtwkeI4qsbqpym4SZauKiutDdKE/MahrJYz/hScge9pyPJXvpitFTRsOc8Fy/o2qF00RUUcp+Wts+6M8+ilyR7HtP/AFK6dkd2NXaaffdl7RuO8RwK3KMwq1ULDDloKFC2tcn7lO49yQqGUtF7rx9NreiZ44z8S1OeoH7lG89yr/0uOlsEXSPAfVVpIB5kNO8T5CNIyq3jjFy19MG+tFFL0bev1YxuD/tyuhNOwCGjYMdSoTZnB095fK4etgE+JOSuibczdp2+CrLtmHTaQhClQQhCAR1IXnLI1jSSUCbtDqehtVQ4dTHH3FSOkaf0fTUMePoxsb7GhKG0mvjlg6DfaOke1hJOAAXAJ/trQ2zjdxgkkY7EZ7VLtUHrUp/xpB/lYqqE3o+o6OT7srVa+1MepRntnlH+VipK81Qbcw4H6Mg+K649OeXbrjSMu/Qs8ExJA2fXOOShiG8M7oT7G8ObkFcnV9IQhAIQhAJa1fSiehkyM8EyqNvcYfRyDuQci6PabdtFvVldwbWQTwtH4mjpY/ezHmrH2QVvRXW4UpOA2USNHc4ZVeauf/BduNoqRhjX1VO8nqwXbjj7CmnRDnUO0SrpuIHRFvH8DyF1vMcseLp0xTv3oWlC16B+aVhz1IXJ1amqTihf+Vc1S6nluO1GOytcfRrfRVbiM8C/0d5/8l0rqkZoX/lXItlj6DbzdWuz8rFWNH9VM4hXh7Rn6WnsrjAr5Mcxuq+6QfIt8FQOy6UC81EeeTYz7cq/qQ5gb4LMu249PZCEKVBCDwUfcLhHTRuLnAYQbFTUshYS5wGEj6k1OWyClomunqZODI2cSf2HeVo3K81t7rHUdobvEHdfKRlkf7nuHuTNpnSlPbIzJPmWpfxkkfxc49/d3DgtYg9OaRlqqgXC8ubNPzaCMsj7mg8z+I+ScobW2jh6KgeY4f7l3Fg/L93y4dy96+vprfA+SplZGxjd4kkAAdpJ4Ad5VM6520wxCSl04xtS/iDUPyIm+A4F/uHiklpuQwa50rdL02jjohA3E0pMsj/VaCGgHhxPI8B2Ly0nsos9nkbVVh9Prxx6adoIafws5DxOSqZ/9RtRGz01xpbrNJVx184kEmHRyM3I8NLOW6OOAMY6lZug9tFsu3R0l9DbbWnDQ5zswvPc8/R8He1VZZESy0wXbTlVZqg1llGY85fTg4B72dh7uXYpnTGqIqxm65xbI07rmuGC09hHUUxRTRVEfqkPYRxHclrUWlWVUhrLa809a0cHgZ3h2OH2h7wpWdIJmytBacr1Vb2HUc9JVehXRhgqW9RPBw7WnrH+yn2irI6hgLXA5WNbaEIQC07mM0z/AAW4tO5nFM/wQc07W9MyXKpku1MD01tlieSPu72T8F80r9zbRUNaeBdUf/YVYlTF6RS6jbjIfHuY7TuH9wqzth6fbZVlnEMM5PnIV0l3HOzl0tbD8zj8ELNtGKOPwQubo+7+zfo3juXJV3jFs2/22d4xHPURAl3LD2mM+XFdfXBm/TuHcuVNvlvkob7b7rAMPjdu5x9pp3m+8FXh3pGfSf0JKaLWklO84LoG+Za4g/FdFWx+/TNPcuarnVNp9aWq7QnFNWnfac/ZmaHj3kjyXQumakTUbOOeCzLtuHSbWHODRklfEsrY2kuKU9R6kjpW7kZLpHHda1vEuPYApUkr3e4aKJ7nPaMDrPJJ1PT3LVlQSwvp7d1ycnSDu7B38+ztUhZdMVN1mbXagy2LO9HS5yB3u7T7vFberte2LSFN0UkrX1IHqU8XrOPl+pWsMFrtlDZKJrIWMjYwY3sY9n+8pD1ztctdk6Smtx9NrhkbsbvVafxO5DwGT4KmtcbT7xqJ0kfTGhoTw6GJ3rOH4nfoMDxVeColqZhBQwyTyngGRt3j7lcw+oufw0au1ndNRSufdao9DnLaePhG3y6z3nJSNc7mS0sjOAeHDrT5p/Zbfr09r68iigd9n6Tz5cgrd0hsftNrLJHUwmn/AL2b1j+wVeUifHLJz3pqkrWWF5qaaeOJ07pGF7CAQWtGfcterpt1xc0Lsd+jaV0BYYmkYxjCQtT7KKKpD307DBIeuPl7Fkz+t/z+Kc0VtEvmk3sjppzU0LT/ACs7iWgfgPNvlw7l0NoTahZNUhkLZfRa8jjTTEB3l1OHh7AqD1Hs4u9tL3RRekxjrZz9iSZYZaWbEjXxyMOeIIIP6LdTJktxduXuy0d6pt2Zo3vpMkacFp7QRyKU4qu4aYqhDciZKQnDKkDh3B3Ye/kVTOhNsN4sBZT3YuudCOGXH5Vo8ftefHvV/wCm9U2DWlud6FURTgjEkL+D2Z6i08QudxsdJlKYrVdYquMFrgcqVBBHBVtW2it09Kai179RQDi6EcXRj8PaO72diY9PahhroWkPBypVKZ1GXyTcpJD3KQjkD25BSxrStFPQSuJ5NJQJ1EA63VkjiQJ6wDI7GuaM+HqlVTsrBue0m8VvHda0Dj2udnCsnUs/8F0Q98hDZIqZ7z+d4LfjIfYUnf8ADnbjLT1lxc3jVVBIP4W8P3Vzq1H6dFULMUrB3IWxTs3YmhCh0esrd5hCpjbVp83KzVLI25kA32fmHEft5q6ks6uoPSaOTA44Wzips3NOZra5132cQFmfS7RIYD27uS+M+wvb/Sro2caljqLNBK54yWjIz19aqihgbpvXVRSVOI7XeGmIk/RjeXZaf6X4/pcpzQ9hqmXe7UdVWMt1toSJZp5Tjca4kboz18D7FeXKMLqrSud8qbjUiitMZmqHdQ5NHa49QX2YrLoylN01JXRPrXDg5/MfhY1VxqLa5bLFEbRoOlNRUO4Oq3ML3Pd2hvNx7zwSRBpTWGsa41l2kfT9IeMlSd+THc0cG+HBZMfrbl8MmvttVbcBLT2TNvo+Rld9a4d3U34qsrfb73qOoc63Uc85kOXVEuQ0ntLjzV36U2OWyicyarjdW1A49JUesAe5vIK0rZpympWNDY2gDlwTyk6Z429qA0zsZmqXNlvlU+U8zFDlrfM8z7lb+mdAW60QNZS0kULR91uCfE9ae4aWOIYa0L3DQFNtq5jJ0jqS1wwABrAMdy32RtaOAX2hY1jC+HxNeCCF6I6kEVWWiCoaQWD2JJ1Ns7t11jcKiljkPUccR4HmrKWC0HmnQ5W1RsdqaYvktMxIH9lN+jlXdRQ3vS9eyd0dVQ1EZ9SZhI9jhw8l3LPRxyghzQUv3fS1JWRvbJCxzXcwW5BVzO+0XCelKaD24yw9HSati6WPAaKyFvEfnb+o9is99BQ3uAXnSdbA57/WIjdmOXxxyd3pF1XsaoKjfkt4fRynj8nxaf6f2Vex2LWega51ZZ5JSwHLjB6zXj8cZ5pxemf1O3Q1m1G6Nz6aua6Gpj4OjfwI/cd6jb/Vi73Smo2HeY52/Jj7jeJ9vAeaSrDtPserI2UOrIv4PdW+rHWM4R73ieLfB3DvTdZrS+xxVdTWVcM8kn0J2n1REBkO+JPgps0qXcVt/wAQ98MVtp7VTuJnq5MloPHdblo9ri/2BWVsdsItGnaGmLfWjjAd3u5n35VFWpztoe1ySta0uttC4FgPEYbwYPdnyK6v07RinpGDHUqy4mmY821MMGGoX0OSFCwtesiEsTgRzWwsEIKP2m6YFZHIwANcTvRvPU/q8jyPkepJN0p36o0sZJRJ/FKAtirYiSDIBwa8gdfUfxD8S6G1La21lK9paDkKnLtRVNpu5uNJGH1MTS2ohPAVMPI578c/AFXjfSMp7a+ymhtW583p4opM4dw9bzPMq9bZQU7ImljW+S58rYDZ6yG+2JzpLbU8SPunra7sIP8AvBCtzROqIbhSxkPzkcQeYKzKe2430emxtaOAX2F5wytkbkFegUqZQhCAQhCAR1IR1IMIQhAIQhB5via8cQFDXe3UxicXtapeedsTCXFIupL1LU1Aobfh9RJy48GjrcewBAh3XR9t1FqJsUtMx0ER355GjBx1NyOs/DKXNteoqPSum4NLaejbDNVN3RFESejiJ7+OXH3eKfNWX626A0rLWVbxJKSQxhOH1MxHLw5Z7BwVO7KNOV+udVzasv8AvStdKXQhw4Od2gfdbyH+ivH7XPL5Fn7B9FGxWOI1DPnk5Esx/Efs+Q4e1XlAwMjACjrJQtpadrQMcFLBTbtcmpoIQhY0IQhB8SMDmkEJL1ZYunZ0sGWytO81w6indec0TZGEEIKB3X2yoqcU/SUsv85RDr/xI+/48itN1LNY5Y7lZZentkpy1w5DucOoj3fG0dVabE+ZoPUmbxa4Kv8A5xa6uQNjaHSfXU7/AKqcdvc7vHHxCuVFmjtpHV8VXG1j37rxza7mE+0tXHO0Frgcqif4bFVF1TZHvZLH60lK44li7x95veOHgpeyapq6AhlY1zmj7QHLxCy4/GzL6ugHKzlKtn1PTVcbS2Rpz3qfhrIpRwcFKm3lGV8Ne08iFnIQfWULGUZHagyhfDpGgcSFqz18UTTlw9qDcJAWnWV0dOwlzgMJbvGq4KZu6HguPBrRxJPcOtQEjLld3b1U59FSn7P9q7/8+fHuQbV4vtRcal1HbAJJftOP0Yx2uP6cyoi+Xe06EsM9xutQS53Nxx0lQ/qYwfpyHM98XrXXdi0HRupImtnuOMsoonesCftSu+z5+sfeqhtOndQ7VL827aile2gBwxrWlrQz7kbepvf196qY75vSLl6jUt9Jetsmr/4hc2vgssDtxkTCd1rc/Vt7SftOXVejtPQWqhhigibHHG0Na1owAB1LX0XpSls1DDBTQMiijaA1rRgAJ0jYGNwEuW2446ZaABgLKEKVMoQhAIQhAIQhB5yxte0gjKV9Q6bhro3ZYCU2LDmgjigom72Gttk3SRh7gw5a9pIezwIXjFeopzuXaEvcOHpMQDZB+ZvJ3uPirtrLdFUNIc0FJl+0VBU7zmM3XdreBVTL6nx+FKmt0VSTLbKlsx63QO3ZG/mZz9ykKWoutKcRTMmx9l+WO/ZQNz0jcKOTfpyXbpyCPVcPNagvl/t/q1O9OxvDdqI+k/zc/et4rOYfYNS18P19FPjtYN8e5bjNaMaPlWyRn8THD4hINPr0R/zVsbnthmI9zgfipODaLawAH01c3t4Nd8HLPEmRu/53psfWfFeTtZtkHyDJpD+CNx/RKVw2nWCFzRILhvYz6tOD/wCSjJ9rlnY09DQXKV3VncYPeSs8a3yPMl7u1UCKehlaD9qUhg9/H3LxFBcaw/Pq4Rg/2dOMk/1H9Aq0q9rtbMXMtVkia48jNK6U+xoaoqeu17qfMbpqmmp382QgU7MeXErfFnl8WhdL3prSAc6tqoo6rH0AemqHeXMeeAqx1FtNv2pJ3UGkqSaiifwMrfWncPzco/Lj3qS07shfNIJLpM+Qk5LGcAfE8yrc01oiitcLWQU8cbR1NHNbNQ1ap3QmyN81S2tvx9JmJ3ujPFue1x+0Vf1isMFDEwMY0ADAACl6SijgaA1oHktsDCm23tUknT5YwNGAvpCFjQhCEGULCEGUIQgEIQgEIQgMLBaDzQhBrT0UUoOWhRVXp6nmBywexCEEHWaHo5id6Bhz+FRM2zeicTinHkhC3bNNOTZXbpXAyUocR25WxS7L7XEcihhyO1uUITdNRPUOiaOmA6OBjMfdaApyksNPDjDG+xCFjUlDSxxDDWhe7WgIQg+sIwhCAwjCEIDCMIQgwhCEH//Z";
const CREST_LG = "data:image/jpeg;base64,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";


/* ═══════════════════════════════════════════
   AMG & ALLIES — Classic Mercedes Aesthetic
   Silver · Anthracite · Warm White · Refined
   ═══════════════════════════════════════════ */

const EVENTS = [
  {
    id: "brh-spring-races",
    title: "Blue Ridge Hunt Spring Races — Exotic Car Show",
    type: "Car Show",
    date: "2026-04-11",
    time: "TBA",
    location: "Woodley Farm, Berryville, VA",
    description: "A successful debut for AMG & ALLIES at Woodley Farm. Steeplechase racing, beautiful machines, and a great Virginia afternoon shared with friends old and new. Thank you to everyone who rallied out, lined up, and made the day what it was. Your camaraderie is what makes this club.",
    rsvp: "amgallies@gmail.com",
    capacity: 25,
    attendees: 12,
    tags: ["Car Show", "Steeplechase", "Virginia"],
    featured: true,
    completed: true,
    icon: "🏇",
  },
  {
    id: "polo-1", title: "Opening Night — Dress to Impress", type: "Rally + Polo",
    date: "2026-05-09", time: "5:00 PM",
    rallyPoint: "8689 Anderson Ave, Marshall, VA 20115",
    location: "Great Meadow, The Plains, VA",
    description: "Great Meadow Polo Season Opener! AMG & Allies has a reserved VIP box and club parking for our first six-week run. Rally from the host house, convoy to Great Meadow. Theme: Spring Outfits, dress to impress. Gates open 5:30 PM, polo at 7:00 PM.",
    tags: ["Polo", "Season Opener", "VIP Box"], attendees: 0, icon: "🐎", series: true, seriesWeek: 1,
  },
  {
    id: "polo-2", title: "Military Appreciation Night", type: "Rally + Polo",
    date: "2026-05-16", time: "5:00 PM",
    rallyPoint: "8689 Anderson Ave, Marshall, VA 20115",
    location: "Great Meadow, The Plains, VA",
    description: "Military Polo Under the Lights. AMG & Allies convoy to Great Meadow for Military Appreciation Night. VIP box and reserved club parking. Gates 5:30 PM, polo at 7:00 PM.",
    tags: ["Polo", "Military", "VIP Box"], attendees: 0, icon: "🎖️", series: true, seriesWeek: 2,
  },
  {
    id: "polo-3", title: "Red, White & You", type: "Rally + Polo",
    date: "2026-05-23", time: "5:00 PM",
    rallyPoint: "8689 Anderson Ave, Marshall, VA 20115",
    location: "Great Meadow, The Plains, VA",
    description: "Memorial Day Weekend — Red, White & Blue fashion night at Great Meadow Polo. Rally from Marshall, convoy in style. VIP box and reserved club parking. Gates 5:30 PM, polo at 7:00 PM.",
    tags: ["Polo", "Memorial Day", "VIP Box"], attendees: 0, icon: "🇺🇸", series: true, seriesWeek: 3,
  },
  {
    id: "polo-4", title: "Blue Moon Polo", type: "Rally + Polo",
    date: "2026-05-30", time: "5:00 PM",
    rallyPoint: "8689 Anderson Ave, Marshall, VA 20115",
    location: "Great Meadow, The Plains, VA",
    description: "Full Moon Dance Party — college students half price. AMG & Allies convoy through Virginia horse country to Great Meadow. VIP box and reserved club parking. Gates 5:30 PM, polo at 7:00 PM.",
    tags: ["Polo", "Full Moon", "VIP Box"], attendees: 0, icon: "🌕", series: true, seriesWeek: 4,
  },
  {
    id: "polo-5", title: "School's Out for the Summer", type: "Rally + Polo",
    date: "2026-06-06", time: "5:00 PM",
    rallyPoint: "8689 Anderson Ave, Marshall, VA 20115",
    location: "Great Meadow, The Plains, VA",
    description: "Celebrating teachers and school workers! Long June evenings and AMGs on country roads. VIP box and reserved club parking. Gates 5:30 PM, polo at 7:00 PM.",
    tags: ["Polo", "Teachers", "VIP Box"], attendees: 0, icon: "🎓", series: true, seriesWeek: 5,
  },
  {
    id: "polo-6", title: "Community Appreciation Night", type: "Rally + Polo",
    date: "2026-06-13", time: "5:00 PM",
    rallyPoint: "8689 Anderson Ave, Marshall, VA 20115",
    location: "Great Meadow, The Plains, VA",
    description: "Celebrating those who keep our community running. Last night of AMG & Allies' six-week VIP box series at Great Meadow. Gates 5:30 PM, polo at 7:00 PM.",
    tags: ["Polo", "Community", "Season Finale"], attendees: 0, icon: "🏆", series: true, seriesWeek: 6,
  },
];

const COMING_SOON = [
  { title: "Member Event Submissions", desc: "Submit your own events directly through the site with photo uploads and location tagging.", icon: "📝" },
  { title: "AI Social Media Posts", desc: "Every event auto-generates shareable social posts with custom graphics — ready to cross-post to your socials and club group pages.", icon: "✦" },
  { title: "Virtual Garage", desc: "Showcase your AMG with specs, mods, and a photo gallery. Car of the Month spotlight.", icon: "🏎️" },
  { title: "Member Directory", desc: "Connect with fellow members. Search by car model, location, and interests.", icon: "👥" },
  { title: "Photo Gallery", desc: "Event galleries with member uploads. Tag by event, car, or member.", icon: "📸" },
  { title: "Marketplace", desc: "Parts for sale, trusted shops, group buys, and club merchandise.", icon: "🔧" },
  { title: "Community Feed", desc: "Social-style posts, polls, announcements, and for-sale listings.", icon: "💬" },
  { title: "Achievement Badges", desc: "Earn recognition for attendance, hosting events, and contributing photos.", icon: "★" },
];

function formatDate(dateStr) {
  const d = new Date(dateStr + "T12:00:00");
  return d.toLocaleDateString("en-US", { weekday: "long", month: "long", day: "numeric", year: "numeric" });
}
function shortDate(dateStr) {
  const d = new Date(dateStr + "T12:00:00");
  return d.toLocaleDateString("en-US", { month: "short", day: "numeric" });
}
function daysUntil(dateStr) {
  const now = new Date(); const event = new Date(dateStr + "T12:00:00");
  return Math.ceil((event - now) / (1000 * 60 * 60 * 24));
}

/* ─── THEME ─── */
const T = {
  bg: "#FAFAF8",
  surface: "#FFFFFF",
  surfaceAlt: "#F4F3F0",
  border: "#E5E3DE",
  borderLight: "#EDEBE7",
  text: "#1A1A1A",
  textSecondary: "#6B6860",
  textTertiary: "#9B9890",
  accent: "#1A1A1A",
  accentSoft: "#2D2D2D",
  amgRed: "#C8102E",
  silver: "#C0C0C0",
  silverLight: "#D8D8D5",
  anthracite: "#3C3C3C",
  warm: "#F7F6F3",
};

function EventCard({ event, onSelect, index }) {
  const [hovered, setHovered] = useState(false);
  const days = daysUntil(event.date);

  return (
    <div
      onClick={() => onSelect(event)}
      onMouseEnter={() => setHovered(true)}
      onMouseLeave={() => setHovered(false)}
      style={{
        background: T.surface,
        borderRadius: 3,
        cursor: "pointer",
        border: `1px solid ${hovered ? T.silverLight : T.border}`,
        boxShadow: hovered ? "0 8px 32px rgba(0,0,0,0.06)" : "0 1px 3px rgba(0,0,0,0.03)",
        transition: "all 0.3s cubic-bezier(0.23, 1, 0.32, 1)",
        transform: hovered ? "translateY(-2px)" : "none",
        animation: `cardIn 0.45s ease ${index * 0.05}s both`,
        overflow: "hidden",
      }}
    >
      {/* Top accent line */}
      <div style={{
        height: 2,
        background: event.featured ? T.amgRed : event.series ? `linear-gradient(90deg, ${T.anthracite}, ${T.silver})` : T.border,
      }} />

      <div style={{ padding: "24px 26px 22px" }}>
        <div style={{ display: "flex", justifyContent: "space-between", alignItems: "flex-start", marginBottom: 14 }}>
          <span style={{
            fontSize: 10, letterSpacing: 2.5, textTransform: "uppercase", fontWeight: 600,
            color: T.textTertiary, fontFamily: "'DM Sans', sans-serif",
          }}>
            {event.type}
          </span>
          {days >= 0 && (
            <span style={{
              fontSize: 10, fontWeight: 600, letterSpacing: 1,
              color: days <= 7 ? T.amgRed : T.textTertiary,
            }}>
              {days === 0 ? "TODAY" : days === 1 ? "TOMORROW" : `In ${days} days`}
            </span>
          )}
        </div>

        <h3 style={{
          fontFamily: "'Cormorant Garamond', serif", fontSize: 21, fontWeight: 600,
          color: T.text, margin: "0 0 16px", lineHeight: 1.3, letterSpacing: -0.2,
        }}>
          {event.title}
        </h3>

        <div style={{ display: "flex", flexDirection: "column", gap: 7, marginBottom: 16 }}>
          <div style={{ display: "flex", alignItems: "center", gap: 10, fontSize: 13, color: T.textSecondary }}>
            <span style={{ fontSize: 13, width: 18, textAlign: "center" }}>📅</span>
            {formatDate(event.date)}{event.time && event.time !== "TBA" ? ` · ${event.time}` : event.time === "TBA" ? " · Time TBA" : ""}
          </div>
          <div style={{ display: "flex", alignItems: "center", gap: 10, fontSize: 13, color: T.textSecondary }}>
            <span style={{ fontSize: 13, width: 18, textAlign: "center" }}>📍</span>
            {event.location}
          </div>
          {event.rallyPoint && (
            <div style={{ display: "flex", alignItems: "center", gap: 10, fontSize: 12, color: T.textTertiary }}>
              <span style={{ fontSize: 12, width: 18, textAlign: "center" }}>🚗</span>
              Rally: {event.rallyPoint}
            </div>
          )}
        </div>

        <div style={{ display: "flex", alignItems: "center", justifyContent: "space-between" }}>
          <div style={{ display: "flex", gap: 6, flexWrap: "wrap" }}>
            {event.tags.slice(0, 3).map(tag => (
              <span key={tag} style={{
                fontSize: 10, padding: "3px 9px", borderRadius: 2, letterSpacing: 0.8,
                background: T.surfaceAlt, color: T.textTertiary, fontWeight: 500,
              }}>
                {tag}
              </span>
            ))}
          </div>
          {event.series && (
            <span style={{
              fontSize: 10, letterSpacing: 1.5, color: T.textTertiary, fontWeight: 600,
            }}>
              {event.seriesWeek}/6
            </span>
          )}
        </div>
      </div>
    </div>
  );
}

function EventDetail({ event, onBack }) {
  const [showSocial, setShowSocial] = useState(false);
  const days = daysUntil(event.date);

  return (
    <div style={{ animation: "cardIn 0.35s ease" }}>
      <button onClick={onBack} style={{
        background: "none", border: "none", color: T.textTertiary, cursor: "pointer",
        fontSize: 13, fontFamily: "'DM Sans', sans-serif", padding: 0, marginBottom: 28,
        display: "flex", alignItems: "center", gap: 8, fontWeight: 500, letterSpacing: 0.3,
      }}>
        <span style={{ fontSize: 18, lineHeight: 1 }}>‹</span> All Events
      </button>

      <div style={{
        background: T.surface, borderRadius: 3, border: `1px solid ${T.border}`,
        overflow: "hidden", marginBottom: 28,
      }}>
        {/* Header band */}
        <div style={{
          height: 3,
          background: event.featured ? T.amgRed : `linear-gradient(90deg, ${T.anthracite}, ${T.silver}, ${T.anthracite})`,
        }} />

        <div style={{ padding: "40px 44px 36px" }}>
          <div style={{ display: "flex", alignItems: "center", gap: 14, marginBottom: 20 }}>
            <span style={{
              fontSize: 10, letterSpacing: 2.5, textTransform: "uppercase", fontWeight: 600,
              color: T.textTertiary, borderBottom: `1px solid ${T.border}`, paddingBottom: 2,
            }}>
              {event.type}
            </span>
            {days >= 0 && (
              <span style={{
                fontSize: 10, fontWeight: 600, letterSpacing: 1.5,
                color: days <= 7 ? T.amgRed : T.textTertiary,
                marginLeft: "auto",
              }}>
                {days === 0 ? "TODAY" : `${days} days away`}
              </span>
            )}
          </div>

          <h2 style={{
            fontFamily: "'Cormorant Garamond', serif", fontSize: 36, fontWeight: 600,
            color: T.text, margin: "0 0 28px", lineHeight: 1.2, letterSpacing: -0.5,
            maxWidth: 600,
          }}>
            {event.title}
          </h2>

          <div style={{
            display: "grid", gridTemplateColumns: "1fr 1fr", gap: 1,
            background: T.border, borderRadius: 3, overflow: "hidden", marginBottom: 28,
          }}>
            <div style={{ background: T.surfaceAlt, padding: "20px 24px" }}>
              <div style={{ fontSize: 10, letterSpacing: 2, color: T.textTertiary, textTransform: "uppercase", marginBottom: 8, fontWeight: 600 }}>Date & Time</div>
              <div style={{ fontSize: 15, color: T.text, fontWeight: 500 }}>{formatDate(event.date)}</div>
              <div style={{ fontSize: 14, color: T.textSecondary, marginTop: 3 }}>{event.time || "Time TBA"}</div>
            </div>
            <div style={{ background: T.surfaceAlt, padding: "20px 24px" }}>
              <div style={{ fontSize: 10, letterSpacing: 2, color: T.textTertiary, textTransform: "uppercase", marginBottom: 8, fontWeight: 600 }}>Location</div>
              <div style={{ fontSize: 15, color: T.text, fontWeight: 500 }}>{event.location}</div>
              {event.rallyPoint && (
                <div style={{ fontSize: 13, color: T.textSecondary, marginTop: 4 }}>Rally point: {event.rallyPoint}</div>
              )}
            </div>
          </div>

          <p style={{
            fontFamily: "'DM Sans', sans-serif",
            fontSize: 15, color: T.textSecondary, lineHeight: 1.85, margin: "0 0 28px", maxWidth: 600,
          }}>
            {event.description}
          </p>

          {event.rsvp && (
            <div style={{
              display: "flex", alignItems: "center", gap: 16, padding: "18px 24px",
              background: T.surfaceAlt, borderRadius: 3, border: `1px solid ${T.border}`,
            }}>
              <span style={{ fontSize: 10, letterSpacing: 2.5, color: T.textTertiary, fontWeight: 700, textTransform: "uppercase" }}>RSVP</span>
              <span style={{ width: 1, height: 18, background: T.border }} />
              <span style={{ fontSize: 14, color: T.text, fontWeight: 500 }}>{event.rsvp}</span>
              {event.capacity && (
                <span style={{ marginLeft: "auto", fontSize: 13, color: T.textTertiary }}>
                  {event.attendees} of {event.capacity} confirmed
                </span>
              )}
            </div>
          )}
        </div>
      </div>

      {/* AI Social Preview */}
      <div style={{
        background: T.surface, borderRadius: 3, border: `1px solid ${T.border}`,
        padding: "28px 32px",
      }}>
        <div style={{ display: "flex", alignItems: "center", justifyContent: "space-between", marginBottom: 18 }}>
          <div style={{ display: "flex", alignItems: "center", gap: 10 }}>
            <span style={{ fontSize: 10, letterSpacing: 2.5, textTransform: "uppercase", color: T.textTertiary, fontWeight: 600 }}>
              AI-Generated Social Post
            </span>
            <span style={{
              fontSize: 9, letterSpacing: 2, color: T.amgRed, fontWeight: 700,
              background: T.amgRed + "08", padding: "2px 8px", borderRadius: 2,
            }}>Coming Soon</span>
          </div>
        </div>

        <button onClick={() => setShowSocial(!showSocial)} style={{
          background: showSocial ? T.anthracite : T.surfaceAlt,
          border: `1px solid ${showSocial ? T.anthracite : T.border}`,
          color: showSocial ? "#fff" : T.text,
          padding: "10px 22px", borderRadius: 3, cursor: "pointer",
          fontSize: 12, fontFamily: "'DM Sans', sans-serif", fontWeight: 600, letterSpacing: 0.5,
          transition: "all 0.2s ease",
        }}>
          {showSocial ? "Hide Preview" : "Preview Social Post"}
        </button>

        {showSocial && (
          <div style={{
            marginTop: 22, background: T.surfaceAlt, borderRadius: 3, padding: "28px",
            border: `1px solid ${T.border}`, animation: "cardIn 0.3s ease",
          }}>
            <div style={{ display: "flex", alignItems: "center", gap: 12, marginBottom: 16 }}>
              <div style={{
                width: 38, height: 38, borderRadius: "50%",
                background: T.anthracite,
                display: "flex", alignItems: "center", justifyContent: "center",
                fontSize: 9, fontWeight: 700, color: "#fff", letterSpacing: 1.5,
                fontFamily: "'DM Sans', sans-serif",
              }}>A&A</div>
              <div>
                <div style={{ fontSize: 13, fontWeight: 600, color: T.text }}>AMG & Allies</div>
                <div style={{ fontSize: 11, color: T.textTertiary }}>Just now</div>
              </div>
            </div>
            <p style={{ fontSize: 14, color: T.textSecondary, lineHeight: 1.75, margin: "0 0 16px" }}>
              {event.series ? (
                <>Saturday evenings just got louder. AMG & ALLIES is rolling to Sunset Polo at Great Meadow — {event.seriesWeek === 6 ? "SEASON FINALE." : `Week ${event.seriesWeek} of 6.`}<br /><br />Rally at 5:00 PM from Marshall, VA. Convoy through Virginia horse country, arrive together.<br /><br />#AMGandAllies #SunsetPolo #GreatMeadow #AMG #MercedesAMG #VirginiaLife</>
              ) : (
                <>That's a wrap on AMG & ALLIES at the Blue Ridge Hunt Spring Races. A successful debut at Woodley Farm and a fun afternoon had by all.<br /><br />Thank you to every member who rolled out and represented the club. Your camaraderie is what made the day.<br /><br />Saturday, April 11 · Woodley Farm, Berryville<br /><br />#AMGandAllies #BlueRidgeHunt #ExoticCarShow #AMG #MercedesAMG #Virginia</>
              )}
            </p>
            <div style={{
              padding: "12px 16px", background: T.warm, borderRadius: 2,
              border: `1px solid ${T.borderLight}`,
              fontSize: 11, color: T.textTertiary, lineHeight: 1.6,
            }}>
              ✦ This post was AI-generated from event details. Members will be able to copy and share to Instagram, Facebook, and club group pages with one click.
            </div>
          </div>
        )}
      </div>
    </div>
  );
}

/* ═══ MAIN ═══ */
function App() {
  const [activeTab, setActiveTab] = useState("events");
  const [selectedEvent, setSelectedEvent] = useState(null);
  const [filter, setFilter] = useState("all");

  const filteredEvents = EVENTS.filter(e => {
    if (filter === "all") return true;
    if (filter === "polo") return e.series;
    if (filter === "shows") return e.type === "Car Show";
    return true;
  });

  const tabs = [
    { id: "events", label: "Events" },
    { id: "about", label: "About" },
    { id: "coming-soon", label: "Coming Soon" },
  ];

  return (
    <div style={{
      minHeight: "100vh", background: T.bg,
      color: T.text, fontFamily: "'DM Sans', 'Segoe UI', sans-serif",
    }}>
      <link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400&family=DM+Sans:wght@300;400;500;600;700&display=swap" rel="stylesheet" />

      <style>{`
        @keyframes cardIn {
          from { opacity: 0; transform: translateY(12px); }
          to { opacity: 1; transform: translateY(0); }
        }
        ::selection { background: #C8102E18; color: ${T.text}; }
        * { box-sizing: border-box; margin: 0; }
      `}</style>

      {/* ─── HEADER ─── */}
      <header style={{
        background: T.surface,
        borderBottom: `1px solid ${T.border}`,
      }}>
        {/* Fine silver rule at top */}
        <div style={{
          height: 1,
          background: `linear-gradient(90deg, transparent, ${T.silver}, transparent)`,
        }} />

        <div style={{
          maxWidth: 1060, margin: "0 auto", padding: "36px 40px 32px",
          display: "flex", alignItems: "flex-end", justifyContent: "space-between",
        }}>
          <div style={{ display: "flex", alignItems: "center", gap: 18 }}>
            <img src={STAR_IMG} alt="" style={{ width: 52, height: 52, objectFit: "contain", filter: "drop-shadow(0 1px 2px rgba(0,0,0,0.08))" }} />
            <div>
            <h1 style={{
              fontFamily: "'Cormorant Garamond', serif", fontSize: 42,
              fontWeight: 600, letterSpacing: 1, color: T.text, lineHeight: 1,
            }}>
              AMG <span style={{ color: T.silver, fontWeight: 400 }}>&</span> Allies
            </h1>
            <p style={{
              fontSize: 11, letterSpacing: 3.5, textTransform: "uppercase",
              color: T.textTertiary, fontWeight: 500, marginTop: 6,
            }}>
              Mercedes-AMG Car Club · Virginia
            </p>
          </div>
          </div>
          <div style={{ display: "flex", alignItems: "center", gap: 16 }}>
            <p style={{
              fontFamily: "'Cormorant Garamond', serif", fontStyle: "italic",
              fontSize: 16, color: T.textTertiary, paddingBottom: 2,
            }}>
              Where horsepower meets horse country
            </p>
            <img src={CREST_IMG} alt="AMG" style={{ width: 56, height: 56, objectFit: "contain", filter: "drop-shadow(0 1px 2px rgba(0,0,0,0.08))" }} />
          </div>
        </div>
      </header>

      {/* ─── NAV ─── */}
      <nav style={{
        background: T.surface, borderBottom: `1px solid ${T.border}`,
        position: "sticky", top: 0, zIndex: 100,
      }}>
        <div style={{
          maxWidth: 1060, margin: "0 auto", padding: "0 40px",
          display: "flex", alignItems: "center",
        }}>
          {tabs.map(tab => (
            <button key={tab.id}
              onClick={() => { setActiveTab(tab.id); setSelectedEvent(null); }}
              style={{
                background: "none", border: "none", cursor: "pointer",
                padding: "15px 0", marginRight: 32, fontSize: 12,
                letterSpacing: 2, textTransform: "uppercase", fontWeight: 600,
                fontFamily: "'DM Sans', sans-serif",
                color: activeTab === tab.id ? T.text : T.textTertiary,
                borderBottom: activeTab === tab.id ? `2px solid ${T.text}` : "2px solid transparent",
                transition: "all 0.2s ease",
              }}
            >{tab.label}</button>
          ))}
          <div style={{ marginLeft: "auto" }}>
            <a href="mailto:amgallies@gmail.com" style={{
              fontSize: 12, color: T.textTertiary, textDecoration: "none",
              letterSpacing: 0.5, fontWeight: 500,
            }}>
              amgallies@gmail.com
            </a>
          </div>
        </div>
      </nav>

      {/* ─── CONTENT ─── */}
      <main style={{ maxWidth: 1060, margin: "0 auto", padding: "36px 40px 72px" }}>

        {/* ── EVENTS ── */}
        {activeTab === "events" && !selectedEvent && (
          <div style={{ animation: "cardIn 0.4s ease" }}>
            {/* Header row */}
            <div style={{ display: "flex", alignItems: "flex-end", justifyContent: "space-between", marginBottom: 28 }}>
              <div>
                <h2 style={{
                  fontFamily: "'Cormorant Garamond', serif", fontSize: 28,
                  fontWeight: 600, color: T.text, letterSpacing: -0.3,
                }}>
                  Upcoming Events
                </h2>
                <p style={{ fontSize: 13, color: T.textTertiary, marginTop: 4 }}>
                  {EVENTS.length} events on the calendar
                </p>
              </div>
              <div style={{ display: "flex", gap: 1, background: T.border, borderRadius: 3, overflow: "hidden" }}>
                {[{ id: "all", label: "All" }, { id: "polo", label: "Polo Series" }, { id: "shows", label: "Car Shows" }].map(f => (
                  <button key={f.id} onClick={() => setFilter(f.id)} style={{
                    background: filter === f.id ? T.anthracite : T.surface,
                    border: "none", color: filter === f.id ? "#fff" : T.textTertiary,
                    padding: "8px 18px", cursor: "pointer", fontSize: 11,
                    fontFamily: "'DM Sans', sans-serif", fontWeight: 600, letterSpacing: 1,
                    textTransform: "uppercase", transition: "all 0.2s ease",
                  }}>{f.label}</button>
                ))}
              </div>
            </div>

            {/* Featured Banner */}
            {filter === "all" && (
              <div onClick={() => setSelectedEvent(EVENTS[0])} style={{
                background: T.surface, borderRadius: 3, border: `1px solid ${T.border}`,
                overflow: "hidden", marginBottom: 24, cursor: "pointer",
                animation: "cardIn 0.5s ease",
              }}>
                <div style={{ height: 3, background: T.amgRed }} />
                <div style={{ padding: "32px 36px", display: "flex", justifyContent: "space-between", alignItems: "flex-start" }}>
                  <div style={{ maxWidth: 600 }}>
                    <div style={{ display: "flex", alignItems: "center", gap: 12, marginBottom: 14 }}>
                      <span style={{ fontSize: 10, letterSpacing: 2.5, textTransform: "uppercase", fontWeight: 600, color: T.amgRed }}>Event Recap · Successfully Completed</span>
                    </div>
                    <h3 style={{
                      fontFamily: "'Cormorant Garamond', serif", fontSize: 28, fontWeight: 600,
                      color: T.text, margin: "0 0 12px", lineHeight: 1.25, letterSpacing: -0.3,
                    }}>
                      Blue Ridge Hunt Spring Races — Exotic Car Show
                    </h3>
                    <p style={{ fontSize: 14, color: T.textSecondary, lineHeight: 1.7, margin: "0 0 18px" }}>
                      A great day at Woodley Farm. Thank you to every member who showed up, lined up, and represented the club. Your camaraderie made it.
                    </p>
                    <div style={{ display: "flex", gap: 24, fontSize: 13, color: T.textTertiary }}>
                      <span>Saturday, April 11</span>
                      <span>Woodley Farm, Berryville</span>
                      <span>{EVENTS[0].attendees} cars on the field</span>
                    </div>
                  </div>
                  <div style={{
                    fontSize: 56, lineHeight: 1, opacity: 0.15, marginTop: 8,
                    fontFamily: "'Cormorant Garamond', serif", fontWeight: 700, color: T.text,
                  }}>
                    APR<br />11
                  </div>
                </div>
              </div>
            )}

            {/* Polo Series Header */}
            {(filter === "all" || filter === "polo") && (
              <div style={{
                background: T.surfaceAlt, borderRadius: 3, padding: "14px 24px",
                border: `1px solid ${T.border}`, marginBottom: 18,
                display: "flex", alignItems: "center", gap: 16,
                animation: "cardIn 0.45s ease 0.08s both",
              }}>
                <div style={{
                  width: 4, height: 28, borderRadius: 2,
                  background: `linear-gradient(180deg, ${T.anthracite}, ${T.silver})`,
                }} />
                <div>
                  <span style={{ fontSize: 13, fontWeight: 600, color: T.text }}>Great Meadow Polo — VIP Box Series</span>
                  <span style={{ fontSize: 12, color: T.textTertiary, marginLeft: 12 }}>
                    6 Saturdays · May 9 – June 13 · Reserved VIP box & special parking · Rally from Marshall → Great Meadow
                  </span>
                </div>
              </div>
            )}

            {/* Event Grid */}
            <div style={{ display: "grid", gridTemplateColumns: "1fr 1fr", gap: 16 }}>
              {filteredEvents.map((event, i) => (
                <EventCard key={event.id} event={event} onSelect={setSelectedEvent} index={i} />
              ))}
            </div>

            {/* Add Event Teaser */}
            <div style={{
              marginTop: 36, background: T.surface, borderRadius: 3,
              border: `1px dashed ${T.silverLight}`, padding: "36px", textAlign: "center",
              animation: "cardIn 0.5s ease 0.3s both",
            }}>
              <span style={{
                fontSize: 10, letterSpacing: 3, textTransform: "uppercase",
                color: T.textTertiary, fontWeight: 600,
              }}>
                Coming Soon
              </span>
              <h4 style={{
                fontFamily: "'Cormorant Garamond', serif", fontSize: 22, fontWeight: 600,
                color: T.textSecondary, margin: "10px 0 8px",
              }}>
                Member Event Submissions
              </h4>
              <p style={{ fontSize: 13, color: T.textTertiary, maxWidth: 440, margin: "0 auto", lineHeight: 1.7 }}>
                Soon you'll be able to add your own events — cruises, meets, track days. Each event will auto-generate AI social media posts ready to share.
              </p>
            </div>
          </div>
        )}

        {activeTab === "events" && selectedEvent && (
          <EventDetail event={selectedEvent} onBack={() => setSelectedEvent(null)} />
        )}

        {/* ── ABOUT ── */}
        {activeTab === "about" && (
          <div style={{ animation: "cardIn 0.4s ease", maxWidth: 640 }}>
            <h2 style={{
              fontFamily: "'Cormorant Garamond', serif", fontSize: 28,
              fontWeight: 600, color: T.text, margin: "0 0 28px",
            }}>
              About the Club
            </h2>

            <div style={{
              background: T.surface, borderRadius: 3, border: `1px solid ${T.border}`,
              padding: "36px 40px", marginBottom: 20,
            }}>
              <p style={{ fontSize: 15, color: T.textSecondary, lineHeight: 1.85, margin: "0 0 20px" }}>
                AMG & Allies is a Mercedes-AMG enthusiast club based in Virginia's horse country. We bring together AMG owners and admirers of all allied performance marques for cruises, car shows, polo rallies, track days, and social gatherings across the Commonwealth and beyond.
              </p>
              <p style={{ fontSize: 15, color: T.textSecondary, lineHeight: 1.85, margin: 0 }}>
                Whether you drive a hand-built V8, a turbo four, or an ally brand that shares our love of performance — you belong here. We're about the drive, the community, and showing up together.
              </p>

              <div style={{
                borderTop: `1px solid ${T.border}`, marginTop: 28, paddingTop: 24,
                display: "flex", gap: 40,
              }}>
                {[
                  { val: "25+", label: "Members" },
                  { val: "7", label: "Events Planned" },
                  { val: "VA", label: "Home Base" },
                ].map(s => (
                  <div key={s.label}>
                    <div style={{ fontFamily: "'Cormorant Garamond', serif", fontSize: 28, fontWeight: 600, color: T.text }}>{s.val}</div>
                    <div style={{ fontSize: 10, color: T.textTertiary, letterSpacing: 2, textTransform: "uppercase", fontWeight: 600, marginTop: 2 }}>{s.label}</div>
                  </div>
                ))}
              </div>
            </div>

            <div style={{
              background: T.surface, borderRadius: 3, border: `1px solid ${T.border}`,
              padding: "32px 36px", marginBottom: 20, display: "flex", alignItems: "center", gap: 28,
            }}>
              <img src={CREST_LG} alt="AMG Affalterbach" style={{ width: 90, height: 90, objectFit: "contain", flexShrink: 0, filter: "drop-shadow(0 1px 3px rgba(0,0,0,0.1))" }} />
              <div>
                <h3 style={{ fontSize: 10, letterSpacing: 2.5, textTransform: "uppercase", color: T.textTertiary, fontWeight: 700, margin: "0 0 10px" }}>Affalterbach Heritage</h3>
                <p style={{ fontSize: 14, color: T.textSecondary, lineHeight: 1.7, margin: 0 }}>Founded in the spirit of AMG's Affalterbach birthplace — the apple tree and the crankshaft. One Man, One Engine. We carry that tradition forward on the roads of Virginia.</p>
              </div>
            </div>

            <div style={{
              background: T.surface, borderRadius: 3, border: `1px solid ${T.border}`,
              padding: "28px 32px",
            }}>
              <h3 style={{
                fontSize: 10, letterSpacing: 2.5, textTransform: "uppercase",
                color: T.textTertiary, fontWeight: 700, margin: "0 0 18px",
              }}>
                Get Involved
              </h3>
              <div style={{ display: "flex", flexDirection: "column", gap: 12 }}>
                {[
                  ["Email us at ", "amgallies@gmail.com"],
                  ["RSVP to any upcoming event to join the roster", ""],
                  ["All AMGs and allied performance marques welcome", ""],
                ].map(([text, em], i) => (
                  <div key={i} style={{ display: "flex", alignItems: "center", gap: 12, fontSize: 14, color: T.textSecondary }}>
                    <span style={{ color: T.silver, fontSize: 6 }}>●</span>
                    {text}{em && <span style={{ fontWeight: 600, color: T.text }}>{em}</span>}
                  </div>
                ))}
              </div>
            </div>
          </div>
        )}

        {/* ── COMING SOON ── */}
        {activeTab === "coming-soon" && (
          <div style={{ animation: "cardIn 0.4s ease" }}>
            <h2 style={{
              fontFamily: "'Cormorant Garamond', serif", fontSize: 28,
              fontWeight: 600, color: T.text, margin: "0 0 8px",
            }}>
              Coming Soon
            </h2>
            <p style={{ fontSize: 14, color: T.textTertiary, margin: "0 0 32px", maxWidth: 520, lineHeight: 1.7 }}>
              We're building the full AMG & Allies platform. Here's what's on the roadmap.
            </p>

            <div style={{ display: "grid", gridTemplateColumns: "1fr 1fr", gap: 14 }}>
              {COMING_SOON.map((item, i) => (
                <div key={item.title} style={{
                  background: T.surface, border: `1px solid ${T.border}`, borderRadius: 3,
                  padding: "24px 26px", animation: `cardIn 0.4s ease ${i * 0.05}s both`,
                }}>
                  <div style={{ display: "flex", alignItems: "center", gap: 10, marginBottom: 10 }}>
                    <span style={{ fontSize: 16 }}>{item.icon}</span>
                    <h4 style={{ fontSize: 14, fontWeight: 600, color: T.text, letterSpacing: 0.2 }}>
                      {item.title}
                    </h4>
                  </div>
                  <p style={{ fontSize: 13, color: T.textTertiary, lineHeight: 1.65, margin: 0 }}>
                    {item.desc}
                  </p>
                </div>
              ))}
            </div>

            {/* AI Spotlight */}
            <div style={{
              marginTop: 32, background: T.surface, borderRadius: 3,
              border: `1px solid ${T.border}`, padding: "32px 36px",
              borderLeft: `3px solid ${T.anthracite}`,
            }}>
              <h4 style={{
                fontSize: 10, letterSpacing: 2.5, textTransform: "uppercase",
                color: T.textTertiary, fontWeight: 700, margin: "0 0 12px",
              }}>
                Feature Spotlight · AI Social Posts
              </h4>
              <p style={{ fontSize: 15, color: T.textSecondary, lineHeight: 1.8, margin: 0, maxWidth: 560 }}>
                When a member creates an event, the platform will automatically generate ready-to-share social media posts with hashtags and event details — optimized for Instagram, Facebook, and club group pages. One click to copy, share, and amplify every event across the community.
              </p>
            </div>
          </div>
        )}
      </main>

      {/* ─── FOOTER ─── */}
      <footer style={{ borderTop: `1px solid ${T.border}`, background: T.surface, padding: "24px 40px" }}>
        <div style={{
          maxWidth: 1060, margin: "0 auto",
          display: "flex", alignItems: "center", justifyContent: "space-between",
        }}>
          <div style={{ display: "flex", alignItems: "center", gap: 12 }}>
            <img src={STAR_IMG} alt="" style={{ width: 24, height: 24, objectFit: "contain", opacity: 0.5 }} />
            <span style={{
              fontFamily: "'Cormorant Garamond', serif", fontSize: 16, fontWeight: 600,
              color: T.textTertiary, letterSpacing: 0.5,
            }}>
              AMG <span style={{ color: T.silver, fontWeight: 400 }}>&</span> Allies
            </span>
            <img src={CREST_IMG} alt="" style={{ width: 24, height: 24, objectFit: "contain", opacity: 0.5 }} />
          </div>
          <span style={{ fontSize: 11, color: T.textTertiary, letterSpacing: 0.5 }}>
            © 2026 AMG & Allies Car Club · Virginia
          </span>
        </div>
      </footer>
    </div>
  );
}
