@font-face { font-family: 'Fondamento'; font-weight: 400; font-display: swap; src: url(/static/font-fondamento.woff2) format('woff2'); }
@font-face { font-family: 'Lora'; font-weight: 400 700; font-display: swap; src: url(/static/font-lora.woff2) format('woff2'); }
:root {
  --head-font: 'Fondamento', Georgia, serif; --body-font: 'Lora', Georgia, serif;
  --green: #1f5c45; --green-light: #e7f0ea; --ink: #1d2421; --muted: #637069; --line: #dfe5e1;
  --bg: #f7f5f0; --card: #fff; --danger: #a33a2c; --radius: 12px;
  font-family: var(--body-font, system-ui, sans-serif); color: var(--ink); background: var(--bg);
}
* { box-sizing: border-box; }
body { margin: 0; display: flow-root; }
a { color: var(--green); }
header#top { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2rem; padding: 0.9rem 1.5rem;
  background: var(--green); color: #fff; }
header#top a { color: #fff; text-decoration: none; }
.brand { font-weight: 700; font-size: 1.15rem; display: flex; flex-direction: column; }
.brand span { font-weight: 400; font-size: 0.8rem; opacity: 0.8; }
header nav { display: flex; gap: 1.2rem; flex: 1; }
header nav a.active { border-bottom: 2px solid #fff; }
.me { display: flex; gap: 0.8rem; align-items: center; font-size: 0.9rem; }
.me .link { background: none; border: 0; color: #fff; text-decoration: underline; padding: 0; }
main { max-width: 1100px; margin: 0 auto; padding: 1.5rem; }
h1 { margin: 0.5rem 0 1rem; }
.muted { color: var(--muted); }
.error { color: var(--danger); background: #fbeeec; padding: 0.6rem 0.8rem; border-radius: 8px; }
.cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 1.2rem; margin: 1rem 0 2rem; }
.card { display: flex; flex-direction: column; background: var(--card); border-radius: var(--radius); overflow: hidden;
  box-shadow: 0 1px 3px rgb(0 0 0 / 8%); color: inherit; text-decoration: none; transition: transform 0.15s; }
a.card:hover { transform: translateY(-3px); box-shadow: 0 6px 18px rgb(0 0 0 / 10%); }
.card img, .card .noimg { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; background: var(--green-light); }
.card .body { padding: 0.9rem 1rem 1.1rem; display: flex; flex-direction: column; gap: 0.3rem; flex: 1; }
.card h2, .card h3 { margin: 0.2rem 0; font-size: 1.1rem; }
.card p { margin: 0; }
.card .going { margin-top: auto; font-weight: 600; color: var(--green); }
.card button { margin-top: auto; align-self: flex-start; }
.tag { display: inline-block; font-size: 0.75rem; padding: 0.15rem 0.55rem; border-radius: 99px; background: var(--green-light);
  color: var(--green); margin-right: 0.3rem; align-self: flex-start; }
.tag.pending { background: #fff4d6; color: #7a5a00; }
.tag.removed { background: #f3e1de; color: var(--danger); }
button, .button { font: inherit; padding: 0.5rem 1rem; border-radius: 8px; border: 1px solid var(--line); background: #fff;
  color: var(--ink); cursor: pointer; text-decoration: none; display: inline-block; }
button.primary, .button.primary { background: var(--green); border-color: var(--green); color: #fff; }
button.danger { color: var(--danger); border-color: #e8c5bf; }
button.small, .button.small { padding: 0.25rem 0.6rem; font-size: 0.85rem; }
input, select, textarea { font: inherit; padding: 0.5rem 0.6rem; border: 1px solid var(--line); border-radius: 8px; width: 100%; background: #fff; }
label { display: flex; flex-direction: column; gap: 0.3rem; font-size: 0.9rem; margin-bottom: 0.7rem; }
label.check { flex-direction: row; align-items: center; }
label.check input { width: auto; }
.row { display: flex; gap: 0.6rem; align-items: center; flex-wrap: wrap; }
.row.spread { justify-content: space-between; }
.row label { flex: 1; }
.login { max-width: 380px; margin: 4rem auto; background: #fff; padding: 2rem; border-radius: var(--radius);
  box-shadow: 0 1px 3px rgb(0 0 0 / 8%); display: flex; flex-direction: column; gap: 1rem; text-align: center; }
.login form { text-align: left; margin-top: 0.8rem; }
.event { max-width: 760px; }
.event .back { display: inline-block; margin-bottom: 1rem; }
.gallery { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(240px, 1fr); gap: 0.6rem; overflow-x: auto; margin-bottom: 1rem; }
.gallery img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--radius); }
.lead { font-size: 1.1rem; }
.note { background: #fff4d6; padding: 0.7rem 0.9rem; border-radius: 8px; }
dl { display: grid; grid-template-columns: max-content 1fr; gap: 0.4rem 1rem; }
dt { color: var(--muted); }
dd { margin: 0; white-space: pre-line; }
.links { display: flex; gap: 1rem; }
.signup { background: #fff; border-radius: var(--radius); padding: 1.2rem; margin: 1.5rem 0; box-shadow: 0 1px 3px rgb(0 0 0 / 8%); }
.signup h2 { margin-top: 0; }
.count { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.7rem; }
.count > span { flex: 1; display: flex; flex-direction: column; font-size: 1rem; }
.count small { color: var(--muted); }
.count input { width: 4rem; text-align: center; }
.count button { width: 2.4rem; padding: 0.4rem 0; }
.attendees ul, .list { list-style: none; padding: 0; }
.attendees li, .list li { padding: 0.6rem 0; border-bottom: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: center; }
.list li .row { margin-left: auto; }
table { width: 100%; border-collapse: collapse; background: #fff; border-radius: var(--radius); overflow: hidden; }
th, td { text-align: left; padding: 0.6rem 0.8rem; border-bottom: 1px solid var(--line); vertical-align: middle; }
.avatar { width: 28px; height: 28px; border-radius: 50%; vertical-align: middle; margin-right: 0.5rem; }
.tabs { display: flex; gap: 0.4rem; flex-wrap: wrap; margin-bottom: 0.8rem; }
.tabs button.active { background: var(--green); color: #fff; border-color: var(--green); }
#tools form input { flex: 1; min-width: 220px; }
#tools form select { width: auto; }
dialog { border: 0; border-radius: var(--radius); padding: 1.5rem; width: min(560px, 94vw); }
dialog::backdrop { background: rgb(0 0 0 / 35%); }

/* Kerry Gold: oxblood and gold on a burgundy damask wallpaper. */
:root { --hdr1: #0d2f3a; --hdr2: #1c5660; --hdr3: #3a8273; --accent: #f2c46d; --sub: #3a8273; --heading: #0d2f3a;
  --bg1: #f4f0e7; --bg2: #ece4d3; --primary: #14424f; --overlay: 6 28 34; --radius: 18px;
  --green: var(--primary); --ink: #1c2422; --muted: #5f6b68; }
body { background: linear-gradient(var(--bg1), var(--bg2)) fixed; min-height: 100vh; }
h1, h2, h3, .brand { font-family: var(--head-font, Georgia, serif); font-weight: 400; letter-spacing: 0; }
header#top { background: linear-gradient(115deg, var(--hdr1), var(--hdr2) 55%, var(--hdr3)); padding: 1.1rem 2rem;
  box-shadow: 0 4px 18px rgb(0 0 0 / 18%); }
.brand { font-size: 1.4rem; }
header nav a { opacity: 0.85; }
header nav a.active { opacity: 1; border-bottom: 2px solid var(--accent); padding-bottom: 2px; }
main > h1 { font-size: 2.8rem; margin: 1.4rem 0 0.2rem; color: var(--heading); }
main > h1::after { content: 'Kenmare, County Kerry \00b7  summer 2028'; display: block; font: 600 0.8rem var(--body-font, system-ui, sans-serif);
  letter-spacing: 0.16em; text-transform: uppercase; color: var(--sub); margin-top: 0.5rem; }
.cards { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1.5rem; margin-top: 1.6rem; }
a.card { display: grid; min-height: 320px; border-radius: 20px; box-shadow: 0 10px 28px rgb(0 0 0 / 18%); }
a.card > * { grid-area: 1 / 1; }
a.card img, a.card .noimg { height: 100%; aspect-ratio: auto; }
a.card .body { align-self: end; background: linear-gradient(transparent, rgb(var(--overlay) / 88%) 40%); color: #fff;
  padding: 4rem 1.3rem 1.3rem; gap: 0.35rem; }
a.card h2 { font-size: 1.55rem; margin: 0.1rem 0; }
a.card .muted { color: rgb(255 255 255 / 82%); }
a.card .going { color: var(--accent); }
.card .going::before { content: '\2618  '; }
a.card .tag { background: rgb(255 255 255 / 18%); color: #fff; backdrop-filter: blur(6px); letter-spacing: 0.04em; }
button, .button { border-radius: 999px; }
button.primary, .button.primary, .tabs button.active { background: var(--primary); border-color: var(--primary); color: #fff; }
.tag { background: color-mix(in srgb, var(--primary) 12%, white); color: var(--primary); }
a { color: var(--primary); }
.gallery img { aspect-ratio: 21 / 9; border-radius: 20px; box-shadow: 0 10px 28px rgb(0 0 0 / 18%); }
.event h1 { font-size: 2.6rem; color: var(--heading); }
.signup, .login { border-top: 5px solid var(--sub); border-radius: 18px; box-shadow: 0 10px 28px rgb(0 0 0 / 10%); }
.attendees h2::before, .signup h2::before { content: '\2618  '; color: var(--sub); }
:root { --hdr1: #0f3d2a; --hdr2: #1f6b45; --hdr3: #3f8f5a; --accent: #e9c46a; --sub: #2f7a4c; --heading: #123d2a;
  --bg1: #f7f2e6; --bg2: #efe6d0; --primary: #1f6b45; --overlay: 8 32 20; }
header#top { box-shadow: none; }
main > h1 { position: relative; overflow: hidden; color: #fff; font-size: 3rem; padding: 2.6rem 2.2rem 2.2rem; margin: 0.4rem 0 0;
  border-radius: 24px; background: linear-gradient(120deg, #123d2a, #1f6b45 60%, #4c9a63); box-shadow: 0 14px 34px rgb(18 61 42 / 25%); }
main > h1::after { color: #e9c46a; }
main > h1::before { content: '\2618'; position: absolute; right: 1.5rem; top: -1.8rem; font-size: 11rem; line-height: 1; color: rgb(255 255 255 / 10%);
  transform: rotate(18deg); }
.cards { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
a.card .tag { background: #e9c46a; color: #123d2a; font-weight: 700; }
:root { --gold: #c9a24a; --gold-pale: #e6cf8f; --gold-soft: rgb(201 162 74 / 55%); --gold-faint: rgb(230 207 143 / 35%);
  --bg1: #6a1a28; --bg2: #4f111c;
  --damask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 210'%3E%3Cdefs%3E%3Cg id='h'%3E%3Cpath d='M0 -36C4 -48 12 -56 22 -58C16 -50 10 -44 2 -36Z'/%3E%3Cpath d='M0 -36C2 -50 6 -60 12 -66C10 -56 6 -46 1 -36Z'/%3E%3Cpath d='M4 -30C24 -40 46 -28 44 -6C42 10 26 14 22 4C20 -4 30 -8 32 -2C34 -8 28 -16 20 -12C12 -8 10 4 16 12C8 8 2 -4 4 -30Z'/%3E%3Cpath d='M44 -6C52 -10 56 -4 50 2Z'/%3E%3Cpath d='M40 -26C46 -36 54 -34 50 -26Z'/%3E%3Cpath d='M2 14C16 16 30 26 30 42C26 36 18 32 10 34C16 38 18 46 14 52C10 44 6 38 2 36Z'/%3E%3Cpath d='M14 52C20 62 34 64 38 54C40 46 32 42 28 48C32 46 36 50 34 54C30 60 20 58 14 52Z'/%3E%3Cpath d='M8 -26C24 -32 38 -22 38 -8M6 18C16 22 24 30 26 38' fill='none'/%3E%3C/g%3E%3Cg id='m'%3E%3Cuse href='%23h'/%3E%3Cuse href='%23h' transform='scale(-1 1)'/%3E%3Cpath d='M0 -72C-4 -58 -4 -46 0 -36C4 -46 4 -58 0 -72Z'/%3E%3Cellipse rx='4' ry='11'/%3E%3Cellipse rx='4' ry='11' transform='rotate(45)'/%3E%3Cellipse rx='4' ry='11' transform='rotate(90)'/%3E%3Cellipse rx='4' ry='11' transform='rotate(135)'/%3E%3Ccircle r='4.5'/%3E%3Ccircle r='7.5' fill='none'/%3E%3Cpath d='M0 34C-6 44 -6 54 0 62C6 54 6 44 0 34Z'/%3E%3Ccircle cy='68' r='3'/%3E%3C/g%3E%3Cg id='r'%3E%3Cellipse rx='3' ry='9'/%3E%3Cellipse rx='3' ry='9' transform='rotate(60)'/%3E%3Cellipse rx='3' ry='9' transform='rotate(120)'/%3E%3Ccircle r='3'/%3E%3C/g%3E%3C/defs%3E%3Cg fill='%232c0710' stroke='%232c0710' stroke-width='3.2' stroke-linejoin='round'%3E%3Cg id='all'%3E%3Cuse href='%23m' x='80' y='105'/%3E%3Cuse href='%23m'/%3E%3Cuse href='%23m' x='160'/%3E%3Cuse href='%23m' y='210'/%3E%3Cuse href='%23m' x='160' y='210'/%3E%3Cuse href='%23r' y='105'/%3E%3Cuse href='%23r' x='160' y='105'/%3E%3Cuse href='%23r' x='80'/%3E%3Cuse href='%23r' x='80' y='210'/%3E%3C/g%3E%3C/g%3E%3Cg fill='%232c0710' stroke='%23d9b45e' stroke-width='0.9' stroke-opacity='0.75'%3E%3Cuse href='%23all'/%3E%3C/g%3E%3C/svg%3E"); }

body { background: var(--damask) 0 0 / 200px 262px, radial-gradient(ellipse at top, var(--bg1), var(--bg2)); background-attachment: fixed; }

main:not(:has(> .cards > a.card)):not(:has(> .login)) { box-sizing: border-box; width: min(1100px, calc(100% - 1.5rem)); margin: 1.6rem auto 3rem;
  padding: 2rem 2.2rem; }
main > p.muted { color: var(--gold-pale); }

header#top { position: relative; border-bottom: 1px solid var(--gold); }
header#top::after { content: ''; position: absolute; left: 50%; bottom: -5px; width: 8px; height: 8px; background: var(--gold);
  transform: translateX(-50%) rotate(45deg); box-shadow: 0 0 0 3px var(--bg1); }
header nav a.active { border-bottom-color: var(--gold); }

main > h1 { font-size: clamp(2.6rem, 6vw, 4.2rem); outline: 1px solid var(--gold-faint); outline-offset: -12px;
  box-shadow: inset 0 0 0 1px var(--gold-soft), 0 14px 34px rgb(18 61 42 / 22%); }
main > h1::after { content: 'Kenmare, County Kerry'; color: var(--gold-pale); font-size: 1rem; padding-top: 1rem; margin-top: 1rem;
  background: linear-gradient(var(--gold), var(--gold)) left top / 56px 1px no-repeat; }
main > h1::before { color: rgb(230 207 143 / 10%); -webkit-text-stroke: 1.5px var(--gold-soft); font-size: 11rem;
  top: 50%; right: 4.5rem; transform: translateY(-50%) rotate(18deg); }

a.card { box-shadow: 0 0 0 1px rgb(201 162 74 / 35%), 0 10px 28px rgb(0 0 0 / 16%);
  outline: 1px solid rgb(230 207 143 / 0%); outline-offset: -10px; transition: outline-color 0.2s, box-shadow 0.2s, transform 0.15s; }
a.card:hover { outline-color: var(--gold-faint); box-shadow: 0 0 0 1px var(--gold), 0 14px 32px rgb(18 61 42 / 24%); }
a.card h2::after { content: ''; display: block; width: 32px; height: 1px; margin-top: 0.45rem; background: var(--gold); }
a.card .tag { background: rgb(255 255 255 / 14%); color: var(--gold-pale); border: 1px solid var(--gold-soft); font-weight: 600; }
a.card .going { color: var(--gold-pale); }

main:has(> .cards)::after { content: '\2014\2002\2618\2002\2014'; display: block; text-align: center;
  margin: 2.2rem 0 4rem; color: var(--gold-pale); letter-spacing: 0.2em; text-shadow: 0 0 6px #3b0b15, 0 0 12px #3b0b15; }

.gallery img { outline: 1px solid var(--gold-faint); outline-offset: -10px; }
.event h1 { padding-bottom: 0.6rem; background: linear-gradient(var(--gold), var(--gold)) left bottom / 72px 1px no-repeat; }
.signup, .login { border-top: 0; box-shadow: inset 0 3px 0 var(--gold), 0 10px 28px rgb(0 0 0 / 8%); }
.attendees h2::before, .signup h2::before { color: var(--gold); }
:root { --hdr1: #24050c; --hdr2: #4a0f1b; --hdr3: #6e1d2c; --overlay: 30 6 12; --primary: #6a1a28; --heading: #4a0f1b; --sub: #7a2333; }
main > h1 { background: linear-gradient(120deg, #2a0710, #4f111c 60%, #7a2333); }
.card .noimg { background: linear-gradient(120deg, #2a0710, #4f111c 60%, #7a2333); }
a.card .tag, .card .tag, .event .tag { background: none; border: 0; padding: 0; border-radius: 0; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.16em; font-size: 0.72rem; backdrop-filter: none; }
a.card .tag, .card .tag { color: #e6cf8f; }
.event .tag { color: #8a6a26; }
main > h1 { text-align: center; padding: 2.4rem 2rem 2.2rem; font-size: clamp(2.6rem, 6vw, 4rem); }
main > h1::before { content: '\2014\2003\2618\2003\2014'; position: static; display: block; transform: none; font-size: 1.6rem;
  line-height: 1; margin: 0 0 1rem; color: var(--gold); -webkit-text-stroke: 0; letter-spacing: 0.1em; }
main > h1::after { background: none; padding-top: 0; margin-top: 1rem; font-size: 0.95rem; letter-spacing: 0.22em; }
.gallery img { aspect-ratio: auto; height: clamp(200px, 38vw, 360px); box-shadow: none; }

:root { --stone: #080707; --cream: #f1e8d8; --cream-muted: #b9ad9c; --card-dark: rgb(12 10 10 / 86%); --line-gold: rgb(201 162 74 / 22%); }
:is(main:not(:has(> .cards > a.card)):not(:has(> .login)), .login) { position: relative; color: var(--cream);
  background: linear-gradient(rgb(8 7 7 / 38%), rgb(8 7 7 / 38%)), var(--marble, none) center top / cover no-repeat, var(--stone);
  border-radius: 8px; outline: 0; box-shadow: 0 0 0 1px #000, 0 24px 60px rgb(0 0 0 / 55%); }
:is(main:not(:has(> .cards > a.card)):not(:has(> .login)), .login)::before { content: ''; position: absolute; inset: 10px; pointer-events: none; background:
  url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2770%27%20height%3D%2770%27%3E%3Cg%20transform%3D%27%27%20fill%3D%27none%27%20stroke%3D%27%23d9b45e%27%20stroke-linecap%3D%27round%27%3E%3Cpath%20d%3D%27M3%2067%20V24%20Q3%203%2024%203%20H67%27%20stroke-width%3D%271.6%27%2F%3E%3Cpath%20d%3D%27M10%2067%20V28%20Q10%2010%2028%2010%20H67%27%20stroke-width%3D%270.8%27%20stroke-opacity%3D%270.7%27%2F%3E%3Cpath%20d%3D%27M18%2030%20Q18%2018%2030%2018%20Q24%2022%2024%2028%20Q24%2034%2030%2034%20Q36%2034%2036%2028%27%20stroke-width%3D%271.2%27%2F%3E%3Ccircle%20cx%3D%2717%27%20cy%3D%2717%27%20r%3D%272.6%27%20fill%3D%27%23d9b45e%27%20stroke%3D%27none%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") left top / 70px 70px no-repeat,
  url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2770%27%20height%3D%2770%27%3E%3Cg%20transform%3D%27translate(70%200)%20scale(-1%201)%27%20fill%3D%27none%27%20stroke%3D%27%23d9b45e%27%20stroke-linecap%3D%27round%27%3E%3Cpath%20d%3D%27M3%2067%20V24%20Q3%203%2024%203%20H67%27%20stroke-width%3D%271.6%27%2F%3E%3Cpath%20d%3D%27M10%2067%20V28%20Q10%2010%2028%2010%20H67%27%20stroke-width%3D%270.8%27%20stroke-opacity%3D%270.7%27%2F%3E%3Cpath%20d%3D%27M18%2030%20Q18%2018%2030%2018%20Q24%2022%2024%2028%20Q24%2034%2030%2034%20Q36%2034%2036%2028%27%20stroke-width%3D%271.2%27%2F%3E%3Ccircle%20cx%3D%2717%27%20cy%3D%2717%27%20r%3D%272.6%27%20fill%3D%27%23d9b45e%27%20stroke%3D%27none%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") right top / 70px 70px no-repeat,
  url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2770%27%20height%3D%2770%27%3E%3Cg%20transform%3D%27translate(0%2070)%20scale(1%20-1)%27%20fill%3D%27none%27%20stroke%3D%27%23d9b45e%27%20stroke-linecap%3D%27round%27%3E%3Cpath%20d%3D%27M3%2067%20V24%20Q3%203%2024%203%20H67%27%20stroke-width%3D%271.6%27%2F%3E%3Cpath%20d%3D%27M10%2067%20V28%20Q10%2010%2028%2010%20H67%27%20stroke-width%3D%270.8%27%20stroke-opacity%3D%270.7%27%2F%3E%3Cpath%20d%3D%27M18%2030%20Q18%2018%2030%2018%20Q24%2022%2024%2028%20Q24%2034%2030%2034%20Q36%2034%2036%2028%27%20stroke-width%3D%271.2%27%2F%3E%3Ccircle%20cx%3D%2717%27%20cy%3D%2717%27%20r%3D%272.6%27%20fill%3D%27%23d9b45e%27%20stroke%3D%27none%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") left bottom / 70px 70px no-repeat,
  url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2770%27%20height%3D%2770%27%3E%3Cg%20transform%3D%27translate(70%2070)%20scale(-1%20-1)%27%20fill%3D%27none%27%20stroke%3D%27%23d9b45e%27%20stroke-linecap%3D%27round%27%3E%3Cpath%20d%3D%27M3%2067%20V24%20Q3%203%2024%203%20H67%27%20stroke-width%3D%271.6%27%2F%3E%3Cpath%20d%3D%27M10%2067%20V28%20Q10%2010%2028%2010%20H67%27%20stroke-width%3D%270.8%27%20stroke-opacity%3D%270.7%27%2F%3E%3Cpath%20d%3D%27M18%2030%20Q18%2018%2030%2018%20Q24%2022%2024%2028%20Q24%2034%2030%2034%20Q36%2034%2036%2028%27%20stroke-width%3D%271.2%27%2F%3E%3Ccircle%20cx%3D%2717%27%20cy%3D%2717%27%20r%3D%272.6%27%20fill%3D%27%23d9b45e%27%20stroke%3D%27none%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") right bottom / 70px 70px no-repeat; }
:is(main:not(:has(> .cards > a.card)):not(:has(> .login)), .login) :is(h1, h2, h3) { color: #f8efdc; text-shadow: 0 2px 8px rgb(0 0 0 / 85%); }
:is(main:not(:has(> .cards > a.card)):not(:has(> .login)), .login) :is(p, dl, .lead, .links) { text-shadow: 0 1px 4px rgb(0 0 0 / 95%), 0 0 12px rgb(0 0 0 / 70%); }
:is(main:not(:has(> .cards > a.card)):not(:has(> .login)), .login) a { color: var(--gold-pale); }
:is(main:not(:has(> .cards > a.card)):not(:has(> .login)), .login) :is(.muted, dt, small) { color: var(--cream-muted); }
:is(main:not(:has(> .cards > a.card)):not(:has(> .login)), .login) > p.muted { color: var(--cream-muted); }
.event .tag { color: var(--gold-pale); }
.event dl { display: grid; grid-template-columns: max-content 1fr; gap: 0.35rem 1.4rem; }
.event dt { text-transform: uppercase; letter-spacing: 0.14em; font-size: 0.72rem; align-self: center; }
.event dd { margin: 0; }
.event { margin-inline: auto; }

:is(main:not(:has(> .cards > a.card)):not(:has(> .login)), .login) :is(.signup, .attendees, .list li, table, div.card) { background: var(--card-dark);
  color: var(--cream); backdrop-filter: blur(6px); border: 1px solid var(--gold-soft); box-shadow: 0 16px 40px rgb(0 0 0 / 55%); }
:is(main:not(:has(> .cards > a.card)):not(:has(> .login)), .login) :is(input:not([type=checkbox]):not([type=radio]), select, textarea) {
  background: rgb(255 255 255 / 5%); border: 1px solid var(--gold-soft); color: var(--cream); border-radius: 3px; }
:is(main:not(:has(> .cards > a.card)):not(:has(> .login)), .login) ::placeholder { color: var(--cream-muted); opacity: 0.8; }
:is(main:not(:has(> .cards > a.card)):not(:has(> .login)), .login) :is(input, select, textarea, button):focus-visible { outline: 2px solid var(--gold); outline-offset: 1px; }
.signup, .attendees { border-radius: 6px; padding: 1.6rem 1.8rem; margin: 1.8rem 0; }
.signup h2, .attendees h2 { margin: 0 0 1rem; padding-bottom: 0.7rem; font-size: 1.5rem;
  background: linear-gradient(90deg, var(--gold), transparent) left bottom / 100% 1px no-repeat; }
.signup .count { gap: 0; margin: 0; padding: 0.75rem 0; border-bottom: 1px solid var(--line-gold); }
.signup .count > span { font-size: 1.05rem; }
.signup .count small { font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; }
:is(main:not(:has(> .cards > a.card)):not(:has(> .login)), .login) .signup .count :is(button, input) { height: 2.5rem; border: 1px solid var(--gold-soft); background: rgb(255 255 255 / 4%);
  color: var(--gold-pale); border-radius: 0; margin: 0; }
:is(main:not(:has(> .cards > a.card)):not(:has(> .login)), .login) .signup .count button { width: 2.6rem; padding: 0; font-size: 1.2rem; line-height: 1; transition: background 0.15s; }
:is(main:not(:has(> .cards > a.card)):not(:has(> .login)), .login) .signup .count button:first-of-type { border-radius: 3px 0 0 3px; border-right: 0; }
:is(main:not(:has(> .cards > a.card)):not(:has(> .login)), .login) .signup .count button:last-of-type { border-radius: 0 3px 3px 0; border-left: 0; }
:is(main:not(:has(> .cards > a.card)):not(:has(> .login)), .login) .signup .count button:hover { background: rgb(201 162 74 / 18%); }
:is(main:not(:has(> .cards > a.card)):not(:has(> .login)), .login) .signup .count input { width: 3.2rem; color: var(--cream); font-size: 1.1rem; font-weight: 600; -moz-appearance: textfield; }
.signup .count input::-webkit-inner-spin-button, .signup .count input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.signup > input { margin: 1.1rem 0 1.2rem; padding: 0.7rem 0.9rem; }
:is(main:not(:has(> .cards > a.card)):not(:has(> .login)), .login) button { background: transparent; color: var(--gold-pale); border: 1px solid var(--gold-soft); border-radius: 3px; }
:is(main:not(:has(> .cards > a.card)):not(:has(> .login)), .login) button:hover { background: rgb(201 162 74 / 14%); }
:is(main:not(:has(> .cards > a.card)):not(:has(> .login)), .login) :is(button.primary, .button.primary, .tabs button.active) { background: #5a1420; color: #ecd593; border: 1px solid var(--gold);
  box-shadow: inset 0 0 0 3px #5a1420, inset 0 0 0 4px rgb(201 162 74 / 45%);
  text-transform: uppercase; letter-spacing: 0.18em; font-size: 0.8rem; font-weight: 600; }
:is(main:not(:has(> .cards > a.card)):not(:has(> .login)), .login) :is(button.primary, .button.primary, .tabs button.active):hover { background: #6e1a28; box-shadow: inset 0 0 0 3px #6e1a28, inset 0 0 0 4px rgb(201 162 74 / 45%); }
:is(main:not(:has(> .cards > a.card)):not(:has(> .login)), .login) button.danger { color: #f0a597; border-color: rgb(240 165 151 / 45%); }
.signup .row { gap: 0.7rem; align-items: center; }
.signup .row button { padding: 0.8rem 2rem; }
:is(main:not(:has(> .cards > a.card)):not(:has(> .login)), .login) .signup .row button:not(.primary) { border-color: transparent; color: var(--cream-muted); padding-inline: 0.8rem;
  text-transform: uppercase; letter-spacing: 0.18em; font-size: 0.8rem; font-weight: 500; }
:is(main:not(:has(> .cards > a.card)):not(:has(> .login)), .login) .signup .row button:not(.primary):hover { background: none; color: var(--cream); text-decoration: underline; text-underline-offset: 3px; }
.attendees ul { margin: 0; }
.attendees li { border-bottom: 1px solid var(--line-gold); padding: 0.75rem 0; }
.attendees li:last-child { border-bottom: 0; }
.attendees li strong { color: var(--gold-pale); font-weight: 600; }
:is(main:not(:has(> .cards > a.card)):not(:has(> .login)), .login) .list li { border-radius: 6px; padding: 0.8rem 1rem; margin-bottom: 0.6rem; box-shadow: none; }
:is(main:not(:has(> .cards > a.card)):not(:has(> .login)), .login) table { border-radius: 6px; border-collapse: separate; overflow: hidden; }
:is(main:not(:has(> .cards > a.card)):not(:has(> .login)), .login) :is(th, td) { border-color: var(--line-gold); }
:is(main:not(:has(> .cards > a.card)):not(:has(> .login)), .login) .note { background: rgb(201 162 74 / 12%); color: var(--cream); border-color: var(--gold-soft); }

.login { box-sizing: border-box; width: min(440px, calc(100% - 1.5rem)); max-width: none; margin: 5rem auto; padding: 3.2rem 2.8rem 2.6rem; gap: 1.2rem; }
.login h1 { margin: 0; font-size: 2.6rem; line-height: 1.1; }
.login h1::before { content: '\2014\2003\2618\2003\2014'; display: block; margin-bottom: 0.9rem; font-size: 1.1rem; color: var(--gold); letter-spacing: 0.1em; }
.login > p.muted { margin: -0.4rem 0 0.8rem; color: var(--gold-pale); text-transform: uppercase; letter-spacing: 0.22em; font-size: 0.78rem; }
.login .button.primary { display: flex; align-items: center; justify-content: center; gap: 0.9rem; padding: 0.9rem 1.4rem; border-radius: 3px; }
.login .button.primary img { width: 18px; height: 18px; padding: 4px; background: #fff; border-radius: 50%; }
.login details summary { cursor: pointer; list-style: none; color: var(--cream-muted); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.18em; }
.login details summary::-webkit-details-marker { display: none; }
.login details summary:hover { color: var(--cream); text-decoration: underline; text-underline-offset: 3px; }
.login details[open] summary { margin-bottom: 0.4rem; }
.login label { color: var(--cream-muted); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.14em; }
.login label input { text-transform: none; letter-spacing: 0; font-size: 1rem; padding: 0.65rem 0.8rem; }
.login form button { width: 100%; margin-top: 0.4rem; padding: 0.8rem 1rem; }
.login .error { background: rgb(240 165 151 / 12%); color: #f0a597; border: 1px solid rgb(240 165 151 / 40%); border-radius: 3px; }
