:root {
  --ink: #26363a;
  --cream: #f1e6da;
  --paper: #fffaf2;
  --lime: #efaa63;
  --orange: #b95f51;
  --sage: #a4949c;
  --line: rgba(38, 54, 58, 0.18);
  --serif: "Noto Serif TC", serif;
  --sans: "IBM Plex Sans TC", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: radial-gradient(circle at 86% 8%, rgba(184,151,160,.18), transparent 28%), var(--cream); font-family: var(--sans); }
body:has(dialog[open]), body.menu-open { overflow: hidden; }
button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
[hidden] { display: none !important; }

.paper-noise { position: fixed; inset: 0; z-index: 20; pointer-events: none; opacity: .16; mix-blend-mode: multiply; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.15'/%3E%3C/svg%3E"); }
.site-header { height: 78px; display: flex; align-items: center; justify-content: space-between; padding: 0 clamp(22px, 5vw, 76px); border-bottom: 1px solid var(--line); background: rgba(241,230,218,.94); backdrop-filter: blur(12px); position: relative; z-index: 12; }
.brand { display: inline-flex; gap: 11px; align-items: center; text-decoration: none; }
.brand > span:last-child { display: flex; flex-direction: column; }
.brand strong { font-family: var(--serif); font-size: 19px; line-height: 1.15; letter-spacing: .08em; }
.brand small { font-size: 8px; letter-spacing: .19em; margin-top: 3px; }
.brand-logo-box { width: 54px; height: 46px; flex: 0 0 auto; display: grid; place-items: center; padding: 0; overflow: hidden; background: transparent; }
.brand-logo-box img { width: 100%; height: 100%; object-fit: contain; }
.desktop-nav { display: flex; align-items: center; gap: 34px; font-size: 14px; font-weight: 600; }
.desktop-nav a { text-decoration: none; }
.text-button { border: 1px solid var(--ink); padding: 10px 18px; border-radius: 99px; color: var(--ink); background: transparent; cursor: pointer; }
.round-button { display: none; border: 1px solid var(--ink); border-radius: 50%; background: none; width: 44px; height: 44px; place-content: center; gap: 6px; }
.round-button span { width: 17px; height: 1.5px; display: block; background: var(--ink); }

.hero { min-height: 650px; height: calc(100svh - 78px); max-height: 860px; position: relative; overflow: hidden; display: flex; align-items: flex-end; padding: clamp(46px, 7vw, 100px); }
.hero-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 58% 64%; filter: saturate(.9) contrast(.96); transform: scale(1.025); animation: heroIn 1.4s cubic-bezier(.2,.8,.2,1) forwards; }
.hero-wash { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(28,37,43,.9) 0%, rgba(38,48,55,.55) 43%, rgba(67,54,65,.1) 78%), linear-gradient(0deg, rgba(25,35,40,.56), transparent 64%); }
.hero-copy { color: white; width: min(650px, 85vw); position: relative; z-index: 2; animation: copyIn .9s .25s both; }
.eyebrow { font-size: 12px; letter-spacing: .14em; font-weight: 600; display: flex; align-items: center; gap: 10px; margin: 0 0 17px; }
.eyebrow span { height: 1px; width: 31px; background: currentColor; }
.eyebrow.dark { color: var(--ink); }
.hero h1 { font-family: var(--serif); font-size: clamp(52px, 7.5vw, 112px); line-height: .96; letter-spacing: -.055em; margin: 0; text-wrap: balance; }
.hero h1 em { color: var(--lime); font-style: normal; }
.hero-intro { font-size: clamp(15px, 1.8vw, 20px); max-width: 470px; line-height: 1.7; margin: 27px 0 31px; }
.primary-button { display: inline-flex; align-items: center; gap: 42px; border-radius: 99px; padding: 16px 18px 16px 24px; background: var(--lime); color: var(--ink); text-decoration: none; font-weight: 700; box-shadow: 0 8px 30px rgba(0,0,0,.16); }
.primary-button span { display: grid; place-content: center; width: 30px; height: 30px; border-radius: 50%; background: var(--ink); color: var(--lime); }
.hero-social { position: absolute; right: 6vw; bottom: 8vw; z-index: 3; display: flex; flex-direction: column; gap: 10px; }
.hero-social a { width: 124px; min-height: 54px; display: flex; align-items: center; gap: 10px; padding: 8px 15px; border: 1px solid rgba(255,255,255,.55); border-radius: 99px; color: var(--ink); background: var(--lime); text-decoration: none; box-shadow: 0 10px 32px rgba(0,0,0,.16); transition: transform .2s ease, background .2s ease; }
.hero-social a:hover { transform: translateX(-5px); background: var(--paper); }
.hero-social b { width: 24px; height: 24px; display: grid; place-content: center; border-radius: 50%; color: var(--paper); background: var(--ink); font-size: 16px; }
.hero-social span { font-size: 11px; font-weight: 700; }

.quick-facts { margin: 0 auto; max-width: 1160px; display: grid; grid-template-columns: repeat(3,1fr); border-left: 1px solid var(--line); border-right: 1px solid var(--line); }
.quick-facts div { display: flex; align-items: baseline; justify-content: center; gap: 12px; padding: 31px 20px; border-right: 1px solid var(--line); }
.quick-facts div:last-child { border: 0; }
.quick-facts strong { font-family: var(--serif); font-size: 34px; }
.quick-facts span { font-size: 13px; }

.audience-gate { max-width: 1320px; margin: 0 auto; padding: 96px max(5vw, 22px); display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); gap: clamp(35px, 7vw, 100px); align-items: end; border-bottom: 1px solid var(--line); }
.audience-gate-copy h2 { max-width: none; margin: 0; font-family: var(--serif); font-size: clamp(34px, 3.8vw, 56px); letter-spacing: -.045em; line-height: 1.12; white-space: nowrap; word-break: keep-all; }
.audience-gate-copy > p:last-child { max-width: 400px; margin: 24px 0 0; line-height: 1.8; font-size: 14px; }
.audience-choices { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.audience-choices button { min-height: 260px; position: relative; overflow: hidden; display: flex; flex-direction: column; align-items: flex-start; text-align: left; gap: 17px; padding: 25px; border: 1px solid var(--ink); color: var(--ink); background: var(--paper); cursor: pointer; transition: transform .25s ease, color .25s ease, background .25s ease; }
.audience-choices button::before { content: ""; position: absolute; width: 130px; height: 130px; right: -51px; bottom: -50px; border-radius: 50%; background: var(--lime); transition: transform .35s ease; }
.audience-choices button:first-child::before { animation: vendorOrbFloat 5.2s ease-in-out infinite; }
.audience-choices button:nth-child(2)::before { background: #a4949c; animation: secondhandOrbPulse 4.6s ease-in-out infinite; }
.audience-choices button:hover, .audience-choices button.is-selected { color: var(--paper); background: var(--ink); transform: translateY(-5px); }
.audience-choices button:hover::before, .audience-choices button.is-selected::before { transform: scale(1.9); }
.audience-choices button small, .audience-choices button strong, .audience-choices button span, .audience-choices button i { position: relative; z-index: 1; }
.audience-choices button small { font-size: 10px; letter-spacing: .1em; }
.audience-choices button strong { font-family: var(--serif); font-size: 29px; line-height: 1.25; }
.audience-choices button span { max-width: 180px; line-height: 1.65; font-size: 12px; }
.audience-choices button i { position: absolute; left: 25px; bottom: 24px; z-index: 2; min-width: 112px; height: 36px; display: inline-flex; align-items: center; justify-content: space-between; gap: 11px; padding: 0 13px; border: 1px solid currentColor; border-radius: 99px; background: transparent; font-size: 10px; font-style: normal; letter-spacing: .08em; transition: transform .3s cubic-bezier(.2,.8,.2,1), background .3s ease, color .3s ease; }
.audience-choices button i b { font: inherit; font-weight: 700; white-space: nowrap; }
.audience-choices button i span { font-size: 15px; line-height: 1; }
.audience-choices button:hover i, .audience-choices button.is-selected i { transform: translateX(5px); background: var(--paper); color: var(--ink); }

.events-section { padding: 110px max(5vw, 22px) 130px; max-width: 1320px; margin: auto; }
.events-section, .how-section, .about-section { content-visibility: auto; contain-intrinsic-size: 900px; }
.section-heading { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 45px; }
.section-heading h2, .how-section h2, .about-section h2 { font-family: var(--serif); font-size: clamp(42px, 5vw, 72px); letter-spacing: -.045em; margin: 0; line-height: 1.1; }
.section-heading > p { font-size: 14px; line-height: 1.8; margin: 0 0 8px; }
.filters { display: flex; gap: 9px; overflow-x: auto; scrollbar-width: none; padding-bottom: 20px; }
.filter { white-space: nowrap; min-height: 44px; border: 1px solid var(--ink); color: var(--ink); background: transparent; border-radius: 99px; padding: 9px 16px; cursor: pointer; }
.filter b { font-size: 10px; background: rgba(23,60,45,.12); padding: 2px 6px; border-radius: 99px; margin-left: 5px; }
.filter.is-active { color: var(--cream); background: var(--ink); }
.filter.is-active b { background: rgba(255,255,255,.16); }
.event-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px; }
.event-card { background: var(--paper); border: 1px solid var(--line); display: grid; grid-template-columns: 43% 1fr; min-height: 310px; overflow: hidden; position: relative; transition: transform .3s ease, box-shadow .3s ease; animation: cardIn .5s both; }
.event-card:hover { transform: translateY(-5px); box-shadow: 0 18px 42px rgba(23,60,45,.11); }
.event-image { min-height: 100%; position: relative; overflow: hidden; }
.event-image,.dialog-hero { background:#e5dfd4; }
.card-date-label { align-self:flex-start; background:var(--lime); padding:5px 10px; margin-bottom:12px; font-size:12px; letter-spacing:.04em; }
.card-date-label strong { font-family:var(--serif); font-size:20px; margin-right:4px; }
.image-advice { margin-top:18px; padding:18px; background:#eee7df; border:1px solid var(--line); }
.image-advice p { font-size:13px; line-height:1.7; margin:10px 0; }
#cardPreviewStage { position:relative; width:100%; overflow:hidden; min-height:100px; }
#cardPreview { position:absolute; top:0; left:0; border:0; transform-origin:top left; pointer-events:none; }
.preview-document .events-section { padding:24px; content-visibility:visible; contain-intrinsic-size:none; }
.preview-document { padding:0; overflow:hidden; }
.preview-document .event-card { animation:none; transition:none; }
.preview-document .event-actions { pointer-events:none; }
.preview-document .detail-preview { margin:0 auto; box-shadow:none; }
.events-section .section-heading h2 { font-size:clamp(28px,3.2vw,42px); line-height:1.3; letter-spacing:-.025em; }
.events-section .section-heading { align-items:center; gap:32px; }
.events-section .section-heading > p { max-width:360px; font-size:14px; line-height:1.8; }
.link-builder .deleted-links-option { display:flex; align-items:center; gap:10px; margin:18px 0; font-size:14px; cursor:pointer; }
.deleted-links-option input[type="checkbox"] { width:18px; height:18px; min-height:0; padding:0; margin:0; flex:0 0 18px; }
.upload-preview { object-fit:contain!important; background:#e5dfd4; }
.event-image img { width: 100%; height: 100%; object-fit: contain; position: absolute; transition: transform .6s ease; }
.event-card:hover .event-image img { transform: none; }
.date-ticket { position: absolute; top: 14px; left: 14px; width: 62px; background: var(--lime); color: var(--ink); text-align: center; padding: 9px 4px; box-shadow: 4px 4px 0 var(--ink); }
.date-ticket strong { display: block; font-family: var(--serif); font-size: 27px; line-height: 1; }
.date-ticket span { font-size: 10px; letter-spacing: .08em; }
.event-content { padding: 25px 24px 22px; display: flex; flex-direction: column; }
.event-status { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 11px; margin-bottom: 18px; }
.event-tags { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; min-height: 25px; margin-bottom: 17px; }
.event-tags span, .dialog-tags span { padding: 4px 8px; border-radius: 99px; background: rgba(239,170,99,.22); color: #765038; font-size: 10px; font-weight: 700; }
.event-tags b { margin-left: auto; color: var(--orange); font-size: 10px; white-space: nowrap; }
.status-open { color: #47796b; font-weight: 700; }
.status-open::before { content: ""; width: 7px; height: 7px; display: inline-block; border-radius: 50%; background: #5d9886; margin-right: 6px; box-shadow: 0 0 0 4px rgba(93,152,134,.14); }
.deadline { color: var(--orange); font-weight: 600; }
.event-content h3 { font-family: var(--serif); font-size: clamp(22px, 2.3vw, 29px); line-height: 1.35; margin: 0 0 13px; letter-spacing: -.025em; }
.event-title-place, .event-title-name { display: block; }
.event-title-place { margin-bottom: 5px; color: var(--orange); font-family: var(--sans); font-size: .5em; font-weight: 700; letter-spacing: .08em; }
.event-title-name { color: var(--ink); }
.event-meta { display: flex; flex-direction: column; gap: 7px; font-size: 13px; margin-bottom: 18px; }
.event-meta span { display: flex; gap: 7px; }
.event-actions { margin-top: auto; display: flex; gap: 8px; }
.event-actions button, .event-actions a { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--ink); border-radius: 2px; padding: 9px 14px; cursor: pointer; font-weight: 600; text-decoration: none; }
.detail-button { background: transparent; color: var(--ink); }
.signup-button { background: var(--ink); color: white; flex: 1; }
.empty-state { border: 1px dashed var(--line); padding: 80px 20px; text-align: center; }

.how-section { padding: 100px max(5vw, 22px); background: var(--lime); }
.how-section > * { max-width: 1160px; margin-left: auto; margin-right: auto; }
.how-section h2 { max-width: 1160px; }
.steps { display: grid; grid-template-columns: repeat(3,1fr); margin-top: 60px; border-top: 1px solid rgba(23,60,45,.35); }
.steps article { padding: 28px 38px 15px 0; border-right: 1px solid rgba(23,60,45,.35); min-height: 200px; }
.steps article + article { padding-left: 38px; }
.steps article:last-child { border: 0; }
.steps b { font-size: 12px; font-weight: 500; }
.steps h3 { font-family: var(--serif); font-size: 25px; margin: 28px 0 10px; }
.steps p { font-size: 14px; margin: 0; }
.about-section { color: var(--cream); background: linear-gradient(135deg, #26363a, #32363f 58%, #493e46); display: grid; grid-template-columns: 1.2fr .8fr; gap: 80px; padding: 110px max(5vw, calc((100vw - 1160px)/2)); }
.about-section > p { line-height: 2; font-size: 16px; align-self: end; }
.about-section h2 { word-break: keep-all; overflow-wrap: normal; }

.mobile-sticky { display: none; }
.mobile-menu { position: fixed; inset: 0; z-index: 40; background: var(--lime); padding: 26px; flex-direction: column; justify-content: center; gap: 26px; }
.mobile-menu[hidden] { display: none; }
.mobile-menu:not([hidden]) { display: flex; }
.mobile-menu > button:first-child { position: absolute; right: 22px; top: 20px; border: 0; background: none; font-size: 40px; }
.mobile-menu a, .mobile-menu > button:not(:first-child) { font-family: var(--serif); font-size: 36px; text-decoration: none; border: 0; text-align: left; background: none; color: var(--ink); }

dialog { color: var(--ink); }
.event-dialog { width: min(760px, calc(100vw - 24px)); border: 0; padding: 0; background: var(--paper); box-shadow: 0 24px 90px rgba(0,0,0,.34); }
.event-dialog::backdrop, .edit-dialog::backdrop { background: rgba(25,34,39,.74); backdrop-filter: blur(4px); }
.dialog-close { position:static; display:block; margin:8px 13px 8px auto; border:0; border-radius:50%; background:var(--cream); width:40px; height:40px; font-size:25px; cursor:pointer; }
.dialog-hero { height:auto!important; position:relative; }
.dialog-hero img { display:block; width:100%; height:auto; max-height:none; object-fit:contain; }
.dialog-body { padding: 30px; }
.dialog-body h2 { font-family: var(--serif); font-size: 34px; margin: 0 0 18px; }
.dialog-body h2 .event-title-place { font-size: 13px; }
.dialog-tags { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 14px; }
.dialog-info { display: grid; grid-template-columns: repeat(3,1fr); border: 1px solid var(--line); margin: 24px 0; }
.dialog-info div { padding: 15px; border-right: 1px solid var(--line); }
.dialog-info div:last-child { border: 0; }
.dialog-info small, .mobile-sticky small { display: block; font-size: 10px; opacity: .65; margin-bottom: 5px; }
.dialog-description { line-height: 1.8; }
.dialog-audience { margin: 0 0 8px; color: var(--orange); font-size: 11px; font-weight: 700; letter-spacing: .08em; }
.dialog-signup { display: flex; width: 100%; justify-content: center; border: 0; background: var(--lime); color: var(--ink); padding: 16px; font-weight: 700; cursor: pointer; text-decoration: none; }

.admin-shell { min-height: 100vh; background: #eee7df; display: grid; grid-template-columns: 240px 1fr; }
.admin-sidebar { background: var(--ink); color: white; padding: 28px 22px; display: flex; flex-direction: column; }
.admin-brand { color: white; padding: 0 8px; }
.admin-brand .brand-logo-box { width: 54px; height: 48px; padding: 0; background: rgba(255,255,255,.94); border-radius: 4px; }
.admin-sidebar nav { margin-top: 60px; display: flex; flex-direction: column; gap: 6px; }
.admin-sidebar nav button, .admin-sidebar nav a, .back-to-site { border: 0; text-align: left; color: rgba(255,255,255,.68); background: transparent; padding: 12px 14px; cursor: pointer; border-radius: 5px; text-decoration: none; }
.admin-sidebar nav button.is-active, .admin-sidebar nav a.is-active { color: var(--ink); background: var(--lime); font-weight: 700; box-shadow: inset 3px 0 0 rgba(255,255,255,.55); }
.admin-sidebar nav span { float: right; }
.back-to-site { margin-top: auto; }
.admin-main { padding: 46px clamp(24px,5vw,72px); overflow: auto; }
.mobile-admin-back { display: none; border: 0; background: transparent; color: var(--ink); padding: 0; margin-bottom: 22px; cursor: pointer; font-weight: 600; }
.admin-topbar { display: flex; justify-content: space-between; align-items: flex-end; }
.admin-top-actions { display: flex; align-items: center; gap: 8px; }
.mobile-settings { display: none; min-height: 45px; }
.admin-topbar p { margin: 0 0 5px; font-size: 12px; }
.admin-topbar h1 { font-family: var(--serif); font-size: 42px; margin: 0; }
.admin-add { min-height: 45px; border: 0; background: var(--ink); color: white; padding: 11px 19px; cursor: pointer; font-weight: 600; }
.admin-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 15px; margin: 35px 0; }
.admin-stats article { background: white; border: 1px solid #dfe3dc; padding: 20px; }
.admin-stats span { display: block; font-size: 12px; color: #66736b; }
.admin-stats strong { display: block; font-family: var(--serif); font-size: 32px; margin-top: 8px; }
.admin-table-wrap { background: white; border: 1px solid #dfe3dc; }
.admin-table-head, .admin-row { display: grid; grid-template-columns: minmax(240px,1fr) 110px 120px 150px; align-items: center; gap: 16px; padding: 15px 20px; border-bottom: 1px solid #e5e8e2; }
.admin-table-head { font-size: 11px; color: #66736b; background: #fafbf8; }
.admin-row:last-child { border: 0; }
.admin-row-title { display: flex; align-items: center; gap: 13px; min-width: 0; }
.admin-row-title img { width: 62px; height: 46px; object-fit: cover; }
.admin-row-title strong { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.admin-row-title small { color: #68776e; }
.admin-tags { display: flex; flex-wrap: wrap; gap: 4px; }
.admin-tags i { width: fit-content; padding: 4px 7px; border-radius: 99px; background: #f8e4cf; color: #79553a; font-size: 9px; font-style: normal; white-space: nowrap; }
.admin-row-actions { display: flex; align-items: center; gap: 5px; }
.pill { width: fit-content; background: #e7f1ed; color: #47796b; font-size: 11px; border-radius: 99px; padding: 5px 9px; }
.more-button { border: 0; background: none; cursor: pointer; font-size: 20px; }

.edit-dialog { border: 0; width: min(590px, calc(100vw - 24px)); padding: 0; background: var(--paper); }
.edit-dialog form { padding: 28px; }
.form-title { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 25px; }
.form-title small { font-size: 10px; letter-spacing: .14em; }
.form-title h2 { font-family: var(--serif); margin: 4px 0 0; }
.form-title button { border: 0; background: none; font-size: 28px; cursor: pointer; }
.edit-dialog label { display: flex; flex-direction: column; gap: 7px; font-size: 12px; font-weight: 600; margin-bottom: 17px; }
.edit-dialog input, .edit-dialog textarea, .edit-dialog select { width: 100%; border: 1px solid var(--line); background: white; padding: 12px; color: var(--ink); }
.tag-fieldset { border: 0; padding: 0; margin: 0 0 17px; }
.audience-form-fieldset { border: 1px solid var(--line); margin: 0 0 17px; padding: 15px 15px 0; background: rgba(239,170,99,.08); }
.audience-form-fieldset legend { padding: 0 5px; font-size: 12px; font-weight: 700; }
.audience-form-fieldset legend small { margin-left: 5px; font-weight: 400; opacity: .62; }
.date-range-fieldset { margin: 0 0 17px; padding: 14px 15px 0; border: 1px solid var(--line); background: rgba(255,255,255,.55); }
.date-range-fieldset legend { padding: 0 5px; color: var(--ink); font-size: 12px; font-weight: 700; }
.date-range-fieldset legend small { margin-left: 5px; color: #68776e; font-weight: 400; }
.focus-fieldset { border: 0; padding: 0; margin: 0 0 19px; }
.focus-fieldset legend { font-size: 12px; font-weight: 700; margin-bottom: 9px; }
.focus-fieldset legend small { font-weight: 400; opacity: .62; margin-left: 5px; }
.focus-picker { width: 126px; aspect-ratio: 1; display: grid; grid-template-columns: repeat(3,1fr); gap: 4px; padding: 6px; border: 1px solid var(--line); background: linear-gradient(135deg, #d3c1aa, #8a9e91); }
.focus-picker button { position: relative; border: 1px solid rgba(255,255,255,.5); background: rgba(255,255,255,.24); cursor: pointer; min-width: 0; }
.focus-picker button::after { content: ""; width: 8px; height: 8px; position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); border-radius: 50%; background: rgba(255,255,255,.55); }
.focus-picker button.is-selected { background: var(--ink); border-color: var(--ink); box-shadow: 0 0 0 2px var(--lime); z-index: 1; }
.focus-picker button.is-selected::after { background: var(--lime); }
.focus-picker button:focus-visible { outline: 2px solid var(--orange); outline-offset: 2px; }
.tag-fieldset legend { font-size: 12px; font-weight: 700; margin-bottom: 9px; }
.tag-fieldset legend small { font-weight: 400; opacity: .58; margin-left: 5px; }
.tag-options { display: flex; flex-wrap: wrap; gap: 8px; }
.edit-dialog .tag-options label { display: block; margin: 0; cursor: pointer; }
.edit-dialog .tag-options input { position: absolute; opacity: 0; width: 1px; height: 1px; padding: 0; }
.tag-options span { display: block; min-height: 38px; padding: 9px 12px; border: 1px solid var(--line); border-radius: 99px; background: white; font-size: 11px; transition: .2s ease; }
.tag-options input:checked + span { border-color: var(--ink); color: var(--paper); background: var(--ink); box-shadow: 0 0 0 3px rgba(239,170,99,.32); }
.tag-options input:focus-visible + span { outline: 2px solid var(--orange); outline-offset: 2px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.publish-panel { margin-top: 20px; padding: 16px; border: 1px solid var(--line); background: rgba(239,170,99,.1); }
.publish-panel > label { margin-bottom: 13px; }
.seo-fields { margin-top: 16px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 12px 0; }
.seo-fields summary { cursor: pointer; font-weight: 700; font-size: 12px; }
.seo-fields[open] summary { margin-bottom: 15px; }
.settings-note { color: #68776e; font-size: 11px; line-height: 1.7; }
.status-select { width: 100%; min-height: 36px; border: 1px solid var(--line); border-radius: 99px; padding: 5px 8px; color: var(--ink); background: white; font-size: 10px; }
.form-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 25px; }
.ghost-button { border: 1px solid var(--ink); background: transparent; padding: 10px 17px; }
.toast { position: fixed; left: 50%; bottom: 28px; z-index: 80; transform: translate(-50%, 20px); background: var(--ink); color: white; padding: 13px 19px; opacity: 0; pointer-events: none; transition: .25s ease; box-shadow: 0 10px 30px rgba(0,0,0,.2); }
.toast.is-visible { opacity: 1; transform: translate(-50%,0); }

@keyframes heroIn { from { transform: scale(1.09); filter: saturate(.7) contrast(.85); } }
@keyframes copyIn { from { opacity: 0; transform: translateY(28px); } }
@keyframes cardIn { from { opacity: 0; transform: translateY(18px); } }
@keyframes vendorOrbFloat { 0%,100% { transform: translate(0,0) scale(1); } 50% { transform: translate(-16px,-18px) scale(1.08); } }
@keyframes secondhandOrbPulse { 0%,100% { transform: scale(1); opacity: .78; } 50% { transform: scale(1.17); opacity: 1; } }

@media (max-width: 900px) {
  .desktop-nav { display: none; }
  .round-button { display: grid; }
  .hero { height: 700px; min-height: 0; padding: 35px 24px 55px; }
  .hero-wash { background: linear-gradient(0deg, rgba(27,37,42,.94), rgba(54,46,56,.06) 76%); }
  .hero-social { right: 22px; bottom: 225px; }
  .quick-facts { margin: 0 20px; }
  .quick-facts div { flex-direction: column; align-items: center; gap: 1px; text-align: center; }
  .quick-facts strong { font-size: 25px; }
  .event-grid { grid-template-columns: 1fr; }
  .audience-gate { grid-template-columns: 1fr; padding-top: 75px; padding-bottom: 75px; gap: 35px; }
  .about-section { grid-template-columns: 1fr; gap: 35px; }
  .admin-shell { grid-template-columns: 78px 1fr; }
  .admin-sidebar { padding: 25px 12px; }
  .admin-brand > span:last-child, .admin-sidebar nav button { font-size: 0; }
  .admin-sidebar nav button span { font-size: 10px; }
  .back-to-site { font-size: 0; }
  .back-to-site::before { content: "←"; font-size: 22px; }
}

@media (max-width: 620px) {
  body { padding-bottom: 76px; }
  body:has(#adminView:not([hidden])) { padding-bottom: 0; }
  .site-header { height: 68px; padding: 0 18px; }
  .hero { height: calc(100svh - 68px); min-height: 610px; max-height: 760px; }
  .hero-photo { object-position: 69% center; }
  .hero h1 { font-size: clamp(43px, 12vw, 48px); line-height: 1.02; }
  .hero-intro { max-width: 310px; font-size: 14px; margin: 20px 0 25px; }
  .hero-social { top: 18px; bottom: auto; right: 16px; flex-direction: column; gap: 7px; }
  .hero-social a { width: 104px; min-height: 42px; padding: 6px 10px; justify-content: flex-start; }
  .hero-social b { width: 25px; height: 25px; font-size: 13px; }
  .quick-facts { margin: 0; }
  .quick-facts div { padding: 22px 5px; }
  .quick-facts span { font-size: 10px; }
  .events-section { padding-top: 76px; padding-bottom: 85px; }
  .audience-gate { padding: 65px 22px; }
  .audience-gate-copy h2 { font-size: clamp(30px, 9vw, 38px); }
  .audience-choices { gap: 9px; }
  .audience-choices button { min-height: 220px; padding: 17px 15px; gap: 12px; }
  .audience-choices button i { left: 15px; bottom: 15px; min-width: 100px; height: 32px; padding: 0 11px; }
  .audience-choices button strong { font-size: 23px; }
  .audience-choices button span { font-size: 11px; }
  .section-heading { display: block; margin-bottom: 28px; }
  .section-heading > p { margin-top: 18px; }
  .event-card { grid-template-columns: 43% 57%; min-height: 290px; }
  .event-image { height: auto; min-height: 100%; }
  .photo-focus-top-left img { object-position: left top; }
  .photo-focus-top img { object-position: center top; }
  .photo-focus-top-right img { object-position: right top; }
  .photo-focus-left img { object-position: left center; }
  .photo-focus-center img { object-position: center; }
  .photo-focus-right img { object-position: right center; }
  .photo-focus-bottom-left img { object-position: left bottom; }
  .photo-focus-bottom img { object-position: center bottom; }
  .photo-focus-bottom-right img { object-position: right bottom; }
  .event-content { padding: 20px 17px 17px; }
  .event-content h3 { font-size: 22px; line-height: 1.35; }
  .event-tags { gap: 5px; margin-bottom: 14px; }
  .event-tags span { padding: 4px 7px; font-size: 9px; }
  .event-tags b { width: auto; margin-left: auto; margin-top: 0; }
  .event-meta { font-size: 12px; gap: 6px; margin-bottom: 15px; }
  .event-actions { gap: 5px; }
  .event-actions button, .event-actions a { padding: 8px 9px; font-size: 12px; }
  .date-ticket { width: 50px; top: 10px; left: 10px; padding: 7px 3px; }
  .date-ticket strong { font-size: 22px; }
  .steps { grid-template-columns: repeat(3, minmax(225px, 76vw)); gap: 0; overflow-x: auto; scroll-snap-type: x mandatory; margin: 40px -22px 0 0; padding-right: 22px; scrollbar-width: none; }
  .steps article, .steps article + article { min-height: 190px; padding: 24px 25px 18px 0; border-right: 1px solid rgba(23,60,45,.35); border-bottom: 0; scroll-snap-align: start; }
  .steps article + article { padding-left: 25px; }
  .steps h3 { margin: 20px 0 8px; }
  .how-section, .about-section { padding-top: 75px; padding-bottom: 75px; }
  .about-section h2 { word-break: normal; }
  .mobile-sticky { position: fixed; display: flex; align-items: center; justify-content: space-between; bottom: 0; left: 0; right: 0; height: 76px; background: var(--paper); border-top: 1px solid var(--line); padding: 10px 13px 10px 18px; z-index: 15; }
  .mobile-sticky strong { font-family: var(--serif); }
  .mobile-sticky a { min-height: 50px; display: flex; align-items: center; gap: 22px; padding: 0 17px; background: var(--lime); text-decoration: none; font-weight: 700; }
  .dialog-hero { height: 200px; }
  .dialog-body { padding: 24px 20px; }
  .dialog-info { grid-template-columns: 1fr; }
  .dialog-info div { border-right: 0; border-bottom: 1px solid var(--line); }
  .admin-shell { display: block; }
  .admin-sidebar { display: none; }
  .admin-main { padding: 25px 16px; }
  .mobile-admin-back { display: block; }
  .admin-topbar h1 { font-size: 34px; }
  .mobile-settings { display: inline-flex; align-items: center; }
  .admin-add { padding: 10px 13px; }
  .admin-stats { grid-template-columns: repeat(3,1fr); gap: 7px; }
  .admin-stats article { padding: 13px 10px; }
  .admin-stats strong { font-size: 25px; }
  .admin-table-head { display: none; }
  .admin-row { grid-template-columns: 1fr auto; padding: 13px; }
  .admin-row > .admin-tags, .admin-row > .pill, .admin-row > .row-deadline { display: none; }
  .form-grid { grid-template-columns: 1fr; gap: 0; }
}

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; scroll-behavior: auto !important; } }

.setup-page, .login-page { min-height: 100vh; display: grid; place-items: center; padding: 24px; background: radial-gradient(circle at 20% 10%, #fff8ed 0, transparent 36%), #e8dfd2; }
.setup-card, .login-card { width: min(720px, 100%); padding: clamp(26px, 5vw, 52px); border: 1px solid rgba(36,54,55,.18); border-radius: 24px; background: rgba(255,250,243,.96); box-shadow: 0 30px 90px rgba(31,45,44,.16); }
.login-card { width: min(460px, 100%); }
.setup-card > img, .login-card > img { width: 112px; height: 82px; object-fit: contain; object-position: left center; }
.setup-card h1, .login-card h1 { margin: 14px 0 8px; font-family: var(--serif); font-size: clamp(34px, 6vw, 54px); }
.setup-card form, .login-card form { display: grid; gap: 14px; margin-top: 28px; }
.setup-card label, .login-card label { display: grid; gap: 7px; font-size: 14px; font-weight: 700; }
.setup-card input, .login-card input { width: 100%; padding: 13px 14px; border: 1px solid #aaa49b; border-radius: 8px; background: #fff; font: inherit; }
.setup-card input:focus-visible, .login-card input:focus-visible { outline: 3px solid rgba(242,158,76,.3); border-color: var(--orange); }
.setup-card hr { width: 100%; margin: 10px 0; border: 0; border-top: 1px solid var(--line); }
.login-error, .login-success { margin-top: 18px; padding: 12px 14px; border-radius: 8px; background: #fde4df; color: #8b2f22; }
.login-success { background: #dfeee0; color: #245a35; }
.login-back { display: inline-block; margin-top: 22px; color: var(--ink); }
.cpanel-admin { display: grid; }
.logout-form { margin-top: auto; display: grid; gap: 8px; color: #fff; }
.logout-form button { width: 100%; padding: 10px; border: 1px solid rgba(255,255,255,.45); border-radius: 6px; background: transparent; color: #fff; cursor: pointer; }
.admin-row-button { width: 100%; border: 0; text-align: left; font: inherit; cursor: pointer; }
.admin-row-button:hover { background: #fff8ef; }
.admin-message { margin: 0 0 18px; padding: 12px 16px; border: 1px solid #c8d7c9; background: #edf7ed; }
.admin-message.is-error { border-color: #e4b9b1; background: #fff0ed; color: #8b2f22; }
.upload-preview { width: 100%; max-height: 230px; margin-top: 12px; border-radius: 10px; object-fit: cover; }
.signup-button:disabled, .dialog-signup.is-disabled { cursor: not-allowed; opacity: .62; }
.analytics-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 15px; margin: 35px 0 22px; }
.analytics-stats article { padding: 24px; border: 1px solid #dfe3dc; background: var(--paper); }
.analytics-stats span { display: block; font-size: 12px; color: #66736b; }
.analytics-stats strong { display: block; margin-top: 8px; font-family: var(--serif); font-size: 42px; }
.analytics-note { max-width: 820px; margin: 0 0 30px; padding: 14px 17px; border-left: 3px solid var(--orange); background: rgba(255,255,255,.58); line-height: 1.8; font-size: 13px; }
.analytics-note code { font-size: 12px; word-break: break-all; }
.shortlink-panel { display: flex; align-items: center; justify-content: space-between; gap: 22px; margin: 0 0 24px; padding: 21px 23px; border: 1px solid #d9d1c5; background: linear-gradient(115deg, #fffaf2, #f4e4ce); }
.shortlink-panel p { margin: 0 0 5px; color: #9b5d2a; font-size: 10px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.shortlink-panel h2 { margin: 0 0 7px; font-family: var(--serif); font-size: 27px; }
.shortlink-panel span { display: block; max-width: 590px; color: #53615b; font-size: 12px; line-height: 1.7; }
.shortlink-list { display: grid; gap: 8px; min-width: 204px; }
.shortlink-list code { display: block; padding: 8px 10px; border: 1px solid rgba(37,55,56,.3); background: rgba(255,255,255,.66); color: var(--ink); font-size: 11px; white-space: nowrap; }
.analytics-grids { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.analytics-grids section { border: 1px solid #dfe3dc; background: var(--paper); padding: 22px; }
.analytics-grids h2 { margin: 0 0 18px; font-family: var(--serif); font-size: 28px; }
.analytics-table > div { display: grid; grid-template-columns: minmax(0,1fr) 68px 84px; gap: 10px; align-items: center; padding: 12px 0; border-top: 1px solid var(--line); font-size: 12px; }
.analytics-table > div:first-child { color: #66736b; font-size: 10px; border-top: 0; }
.analytics-table strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.analytics-table > p { margin: 28px 0 8px; color: #66736b; font-size: 13px; }
.source-chart { display: grid; gap: 15px; }
.source-bar > div { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 6px; font-size: 12px; }
.source-bar strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.source-bar span { flex: 0 0 auto; color: #67736e; font-size: 11px; }
.source-bar i { display: block; width: var(--bar-size); min-width: 8%; height: 10px; background: linear-gradient(90deg, var(--orange), #edbd78); transition: width .45s ease; }
.analytics-empty { margin: 0; color: #66736b; font-size: 13px; line-height: 1.8; }
.analytics-toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin-top:24px; }
.analytics-toolbar select,.link-builder input,.link-builder select { min-height:44px; padding:10px 12px; border:1px solid var(--line); background:#fff; color:var(--ink); border-radius:3px; font:inherit; }
.trend-panel,.link-builder { padding:24px; background:var(--paper); border:1px solid var(--line); margin:24px 0; }
.trend-panel h2,.link-builder h2 { font-family:var(--serif); font-size:28px; margin:0 0 16px; }
.chart-heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; font-size:12px; }
.click-legend { color:#b86513; }
.trend-chart { width:100%; height:auto; display:block; }
.trend-chart text { font-size:12px; fill:#66736b; }
.chart-grid { stroke:#dfe3dc; fill:none; }
.visit-line,.click-line { fill:none; stroke:var(--ink); stroke-width:3; stroke-linejoin:round; }
.click-line { stroke:#cc7e25; stroke-dasharray:5 4; }
.source-bar { margin:18px 0; }
.source-bar meter { display:block; width:100%; height:18px; }
.source-bar meter::-webkit-meter-bar { background:#ece8e1; border:0; }
.source-bar meter::-webkit-meter-optimum-value { background:#dc963f; }
.source-bar meter::-moz-meter-bar { background:#dc963f; }
.link-builder > p { font-size:13px; line-height:1.8; }
.link-builder form { display:grid; grid-template-columns:1fr 1fr auto; align-items:end; gap:16px; margin:20px 0; }
.link-builder label { display:flex; flex-direction:column; gap:8px; font-size:13px; min-width:0; }
.link-builder input { width:100%; box-sizing:border-box; }
#trackingResult { padding:18px; background:#f0e8dc; margin:18px 0; }
#trackingResult button { margin-top:12px; }
.dialog-feedback { padding:14px; background:#fff2eb; border:1px solid #e3bb9c; line-height:1.7; }
@media(max-width:700px) { .link-builder form { grid-template-columns:1fr; } .cpanel-admin .admin-sidebar nav { display:flex; flex-direction:row; margin-top:12px; flex-wrap:wrap; } .source-bar > div { flex-wrap:wrap; } .trend-panel,.link-builder { padding:17px; } }
.analytics-consent { position: fixed; z-index: 60; right: 20px; bottom: 20px; width: min(390px, calc(100vw - 32px)); padding: 20px; border: 1px solid rgba(255,255,255,.25); color: var(--paper); background: rgba(38,54,58,.96); box-shadow: 0 18px 60px rgba(0,0,0,.22); }
.analytics-consent p { margin: 6px 0 15px; font-size: 12px; line-height: 1.7; }
.analytics-consent strong { font-family: var(--serif); font-size: 20px; }
.analytics-consent-actions { display: flex; gap: 8px; justify-content: flex-end; }
.analytics-consent button { min-height: 36px; padding: 7px 12px; border: 1px solid rgba(255,255,255,.65); background: transparent; color: white; cursor: pointer; font-size: 12px; }
.analytics-consent button[data-consent="granted"] { border-color: var(--lime); color: var(--ink); background: var(--lime); font-weight: 700; }

@media (max-width: 760px) {
  .setup-page, .login-page { padding: 10px; }
  .setup-card, .login-card { padding: 24px 18px; border-radius: 16px; }
  .cpanel-admin { display: block; }
  .cpanel-admin .admin-sidebar { display: flex; padding: 18px; }
  .cpanel-admin .admin-sidebar nav { display: none; }
  .logout-form { margin-top: 12px; }
  .cpanel-admin .admin-main { padding: 22px 16px 90px; }
  .admin-row-button { grid-template-columns: 1fr auto; }
  .admin-row-button > :nth-child(2), .admin-row-button > :nth-child(3) { display: none; }
  .analytics-stats { gap: 7px; }
  .analytics-stats article { padding: 14px 10px; }
  .analytics-stats strong { font-size: 28px; }
  .analytics-grids { grid-template-columns: 1fr; }
  .analytics-grids section { padding: 17px; }
  .shortlink-panel { display: block; padding: 18px; }
  .shortlink-list { grid-template-columns: 1fr; margin-top: 16px; min-width: 0; }
}
@media(max-width:700px) {
  .cpanel-admin .admin-sidebar nav { display:flex; flex-direction:row; flex-wrap:wrap; gap:6px; margin-top:12px; }
  .cpanel-admin .admin-sidebar nav a,.cpanel-admin .admin-sidebar nav button { font-size:14px; padding:10px; }
}
/* Unified admin navigation and operations: same labels and order on every page. */
.cpanel-admin { grid-template-columns:250px minmax(0,1fr); }
.cpanel-admin .admin-sidebar { position:sticky; top:0; height:100dvh; box-sizing:border-box; min-width:0; overflow:auto; padding:24px 18px; }
.cpanel-admin .admin-brand > span:last-child { font-size:inherit; }
.cpanel-admin .admin-sidebar nav { display:flex; flex-direction:column; gap:6px; margin-top:36px; }
.cpanel-admin .admin-sidebar nav a { font-size:15px; white-space:normal; min-height:44px; display:flex; align-items:center; box-sizing:border-box; }
.cpanel-admin .admin-main { min-width:0; }
.cpanel-admin .admin-top-actions { flex-wrap:wrap; }
.managed-event { cursor:default; background:#fffaf2; border-bottom:1px solid var(--line); }
.event-row-tools { display:flex; flex-direction:column; gap:8px; }
.event-row-tools > span { display:flex; flex-wrap:wrap; gap:6px; }
.event-row-tools .ghost-button { padding:8px 10px; min-height:36px; font-size:12px; }
.danger-button { color:#a33c30; border-color:#d8aca6; }
.admin-table-head,.managed-event { grid-template-columns:minmax(0,2fr) minmax(100px,.8fr) minmax(130px,1fr) minmax(210px,1.2fr); }
.admin-empty { padding:28px; }
.saved-link { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:20px 0; border-top:1px solid var(--line); }
.saved-link > div { min-width:0; }
.saved-link p { font-size:13px; margin:8px 0; }
.saved-link small { display:block; color:#65766d; margin-bottom:10px; }
.saved-link code { display:block; overflow-wrap:anywhere; font-size:13px; }
.saved-link-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; flex-shrink:0; }
.link-builder form#eventLinkForm { grid-template-columns:repeat(2,minmax(0,1fr)); }
.link-builder [hidden],.admin-stats[hidden] { display:none!important; }
.link-builder small { font-size:12px; line-height:1.6; }
.upload-preview[data-focus="top-left"] { object-position:left top; }
.upload-preview[data-focus="top"] { object-position:center top; }
.upload-preview[data-focus="top-right"] { object-position:right top; }
.upload-preview[data-focus="left"] { object-position:left center; }
.upload-preview[data-focus="center"] { object-position:center; }
.upload-preview[data-focus="right"] { object-position:right center; }
.upload-preview[data-focus="bottom-left"] { object-position:left bottom; }
.upload-preview[data-focus="bottom"] { object-position:center bottom; }
.upload-preview[data-focus="bottom-right"] { object-position:right bottom; }
@media(max-width:1100px) { .cpanel-admin { grid-template-columns:210px minmax(0,1fr); } .managed-event { grid-template-columns:minmax(0,1fr) minmax(160px,.6fr); } .managed-event .admin-tags,.managed-event .row-deadline { display:block; } .cpanel-admin .admin-table-head { display:none; } }
@media(max-width:700px) { .cpanel-admin { display:block; } .cpanel-admin .admin-sidebar { position:static; height:auto; overflow:visible; padding:16px; } .cpanel-admin .admin-sidebar nav { flex-direction:row; flex-wrap:wrap; margin-top:16px; gap:5px; } .cpanel-admin .admin-sidebar nav a { font-size:13px; padding:9px; } .cpanel-admin .admin-main { padding:22px 16px; } .link-builder form#eventLinkForm { grid-template-columns:1fr; } .saved-link { align-items:flex-start; flex-direction:column; } .managed-event { grid-template-columns:1fr; gap:12px; } .event-row-tools > span { gap:8px; } .cpanel-admin .admin-brand > span:last-child { font-size:inherit; } }
/* Paired square panels: image and information have identical footprints. */
.event-grid .event-card { height:auto; min-height:0; grid-template-columns:minmax(0,1fr) minmax(0,1fr); border-radius:6px; box-shadow:0 3px 16px rgba(38,54,58,.035); }
.event-grid .event-image,.event-grid .event-content { aspect-ratio:1; min-height:0; min-width:0; box-sizing:border-box; }
.event-grid .event-image { background:#eee8df; border-right:1px solid var(--line); }
.event-grid .event-content { padding:16px; }
.event-grid .card-date-label { display:inline-flex; align-items:baseline; gap:4px; border-radius:3px; padding:4px 8px; margin-bottom:8px; font-size:11px; }
.event-grid .card-date-label strong { font-family:var(--sans); font-size:17px; margin:0; }
.event-grid .event-tags { margin-bottom:10px; min-height:20px; gap:5px; align-items:center; flex-wrap:nowrap; }
.event-grid .event-tags span { padding:3px 6px; font-size:9px; }
.event-grid .event-tags b { font-size:9px; }
.event-grid .event-content h3 { font-size:21px; line-height:1.35; margin:0 0 12px; }
.event-grid .event-title-place { font-size:11px; letter-spacing:.02em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; margin-bottom:4px; }
.event-grid .event-title-name { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
.event-grid .event-meta { font-size:11px; gap:7px; margin-bottom:8px; border-top:1px solid var(--line); padding-top:10px; }
.event-grid .event-meta > span { display:flex; align-items:center; gap:7px; min-width:0; }
.event-grid .event-meta > span > span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.event-grid .card-icon { width:15px; height:15px; flex-shrink:0; }
.event-grid .card-venue { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:10px; font-weight:600; }
.event-grid .card-deadline { margin:0 0 10px; color:var(--red, #bc604a); font-size:10px; font-weight:600; }
.event-grid .event-actions { gap:6px; }
.event-grid .event-actions button,.event-grid .event-actions a { font-size:11px; padding:6px 8px; min-height:36px; white-space:nowrap; border-radius:4px; }
.event-grid .signup-button { gap:6px; }
.event-grid .signup-button > span { font-size:16px; }
@media(min-width:1600px) { .event-grid .event-content { padding:24px; } .event-grid .event-content h3 { font-size:22px; } .event-grid .event-meta { font-size:13px; } .event-grid .event-actions button,.event-grid .event-actions a { font-size:13px; min-height:40px; } }
@media(max-width:700px) { .event-grid .event-card { grid-template-columns:minmax(0,1fr); } .event-grid .event-image { border-right:0; border-bottom:1px solid var(--line); } .event-grid .event-content { padding:22px; } .event-grid .event-content h3 { font-size:22px; } .event-grid .event-meta { font-size:13px; } .event-grid .event-actions { flex-direction:row; gap:8px; } .event-grid .event-actions button,.event-grid .event-actions a { font-size:12px; min-height:40px; } }
.tracking-preferences{position:fixed;bottom:85px;left:12px;z-index:25;padding:8px 12px;border:1px solid #87938e;border-radius:20px;background:#fffaf1;color:#24363a;font-size:12px}.analytics-consent label{display:flex;align-items:center;gap:8px;margin:10px 0}.analytics-consent input{width:18px;height:18px}.analytics-consent{max-height:80vh;overflow:auto}
