/* KITEVENT: styles for kitevent.js, on house tokens with fallbacks so any event kit can carry them */
.kev-venue,.kev-signup{display:grid;gap:8px;align-content:start;padding:24px;border-radius:8px;background:var(--surface,var(--bg-2,#161a21));color:inherit}
.kev-venue h3{margin:0}
.kev-venue p,.kev-venue dd,.kev-signup p{margin:0;color:var(--ink-2,inherit);opacity:.9}
.kev-venue dl{display:grid;gap:8px;margin:8px 0 0;padding-top:12px;border-top:1px solid var(--line,#8884)}
.kev-venue dd{margin:0}
.kev-dir{justify-self:start;display:inline-flex;align-items:center;min-height:44px;margin-top:8px;padding:0 18px;border:1px solid var(--accent,currentColor);border-radius:99px;color:var(--accent,inherit);font-weight:600;text-decoration:none}
.kev-ph{position:relative;overflow:hidden;aspect-ratio:16/9;border-radius:6px;background:var(--line,#8883)}
.kev-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.kev-ph:not(:has(img)){display:none}
.kev-hl{display:grid;gap:16px;padding-block:clamp(40px,6vw,80px)}
.kev-hl:not(:has(img)){display:none}
.kev-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:12px}
.kev-fig{display:grid;gap:10px;margin:0}
.kev-fig figcaption{font-weight:650}
.kev-signup{gap:16px;padding:32px}
@media (min-width:760px){.kev-signup{grid-template-columns:1fr 1fr;align-items:center}}
.kev-row{display:flex;flex-wrap:wrap;gap:8px}
.kev-row label{flex:0 0 100%;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.kev-row input{flex:1 1 200px;min-width:0;border-radius:99px}
.kev-msg{min-height:1.4em}
/* v6b business-event sections (moved out of the events family: vendor files do not count against the 40,000 B cap) */
.passes{display:grid;gap:var(--s-4);grid-template-columns:repeat(var(--n,3),minmax(0,1fr))}@media(max-width:760px){.passes{grid-template-columns:1fr}}.pass{display:grid;align-content:start;gap:var(--s-3);padding:var(--s-5)}.pass.rec{border-color:var(--accent)}.pass .price{margin:0;font:600 var(--t-xl)/1.2 var(--serif)}.pass ul{margin:0;padding-left:1.1em;color:var(--ink-2)}
.why-list{display:grid;gap:var(--s-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));margin:0;padding:0;list-style:none}.stats{display:flex;flex-wrap:wrap;gap:var(--s-5);margin-top:var(--s-5)}.stats b{display:block;font:600 var(--t-2xl)/1 var(--serif)}.stats span{color:var(--ink-2)}
.tier-name{margin:var(--s-4) 0 var(--s-2);font:650 var(--t-xs)/1.2 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}.names{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-5);color:var(--ink-2);font:500 var(--t-lg)/1.3 var(--serif)}
.faq details{border-bottom:1px solid var(--line);padding:var(--s-1) 0}.faq summary{display:flex;align-items:center;min-height:44px;cursor:pointer;font:600 var(--t-lg)/1.3 var(--sans)}.faq p{margin:0 0 var(--s-3);color:var(--ink-2)}
.timeline .is-break{background:transparent;border-style:dashed}.ag-tz{margin:0 0 var(--s-3)}.close{text-align:center}
.sticky-cta{position:fixed;inset:auto 0 0 0;z-index:20;padding:var(--s-3) var(--s-4);background:var(--bg);border-top:1px solid var(--line)}.sticky-cta .btn{width:100%}@media(min-width:601px){.sticky-cta{display:none}}@media(max-width:600px){body{padding-bottom:76px}}
.close .btn{background:var(--ink);border-color:var(--ink);color:var(--bg)}

/* KITEVENTSKIN v1 (design2 10-19, founder's event VISUAL rules, design_rules/EVENT_VISUAL_RULES_2026-10-19.md). A FIXED vendor sheet for newbases/events only:
   every selector starts with html[data-kv-kit="events"] (no bare ids/elements). Colour comes only from house tokens (--accent, --bg, --ink); text on the brand
   bands is white on an accent mixed toward black, so contrast holds for every accent. Vendor files are outside the 40,000 B family cap. */
html[data-kv-kit="events"]{--kes-r:28px;--kes-band:linear-gradient(135deg,color-mix(in oklab,var(--accent,#5b4bd6) 78%,#000),color-mix(in oklab,var(--accent,#5b4bd6) 48%,#000));--kes-tint:color-mix(in oklab,var(--accent,#5b4bd6) 7%,var(--bg,#fff))}
/* R1 + R12: one brand colour owns the hero and the closing band */
html[data-kv-kit="events"] [data-sec="hero"]{background:var(--kes-band);color:#fff;border-radius:0 0 var(--kes-r) var(--kes-r);padding-block:clamp(48px,7vw,104px)}
html[data-kv-kit="events"] [data-sec="hero"] :is(h1,h2,p,dt,dd,.lead,.kicker,.when,a:not(.btn)){color:#fff}
html[data-kv-kit="events"] [data-sec="hero"] :is(.lead,dd,p){opacity:.92}
html[data-kv-kit="events"] [data-sec="hero"] .btn-primary{background:#fff;color:color-mix(in oklab,var(--accent,#5b4bd6) 70%,#000);border-color:#fff}
html[data-kv-kit="events"] [data-sec="hero"] :is(.btn-secondary,.btn-ghost){background:transparent;color:#fff;border-color:#ffffffb3}
html[data-kv-kit="events"] section.close{background:var(--kes-band);color:#fff;border-radius:var(--kes-r);padding:clamp(40px,6vw,80px) clamp(20px,4vw,56px);margin-block:clamp(32px,5vw,64px)}
html[data-kv-kit="events"] section.close :is(h2,h3,p){color:#fff}
html[data-kv-kit="events"] section.close{display:grid!important;grid-template-columns:minmax(0,1fr)!important;justify-items:center;text-align:center;gap:20px}
html[data-kv-kit="events"] section.close > *{grid-column:1/-1!important;justify-self:center}
html[data-kv-kit="events"] section.close .btn{justify-self:center;align-self:center;width:auto;height:auto;max-width:max-content;background:#fff;color:color-mix(in oklab,var(--accent,#5b4bd6) 70%,#000);border-color:#fff}
html[data-kv-kit="events"] [data-sec="hero"] :is(h1,h2) :is(em,i,span){color:color-mix(in oklab,var(--accent,#5b4bd6) 30%,#fff)}
/* R2 + R10: display face over text face; the closing title is the one oversized type moment */
html[data-kv-kit="events"] [data-sec="hero"] h1{font-size:clamp(2.25rem,1.1rem + 4.6vw,4.75rem);font-weight:400;line-height:1.02;letter-spacing:-.015em;max-width:16ch}
html[data-kv-kit="events"] section.close h2{font-size:clamp(2.5rem,1.2rem + 5.5vw,6rem);line-height:1;letter-spacing:-.02em;margin:0 0 16px}
/* R3: date + city as a designed element (the hero facts become a metadata strip; the kicker a pill) */
html[data-kv-kit="events"] [data-sec="hero"] .kicker{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border:1px solid #ffffff80;border-radius:999px;font-size:12px;letter-spacing:.14em;text-transform:uppercase}
html[data-kv-kit="events"] [data-sec="hero"] dl{border-top:1px solid #ffffff59}
html[data-kv-kit="events"] [data-sec="hero"] dt{text-transform:uppercase;letter-spacing:.12em;font-size:11px;opacity:.75}
/* R4: section rhythm alternates (a pale brand tint on every other content section) */
html[data-kv-kit="events"] main > section.sec:not(.close):nth-of-type(odd){background:var(--kes-tint);border-radius:var(--kes-r);padding-inline:clamp(16px,4vw,48px)}
html[data-kv-kit="events"] main > section.sec:not(.close){padding-block:clamp(56px,7.5vw,96px)}
/* R5 + R6: photos big and shaped; one motif = the large soft radius, repeated on photo, cards, bands */
html[data-kv-kit="events"] :is(.hero-photo,.kev-ph,.kev-fig) img{border-radius:var(--kes-r)}
html[data-kv-kit="events"] .hero-photo{border-radius:var(--kes-r);overflow:hidden}
html[data-kv-kit="events"] :is(.pass,.why-list > *){border-radius:var(--kes-r)}
/* R7: a uniform speaker grid (one aspect, one radius; name strong, role muted) */
html[data-kv-kit="events"] .speakers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(12px,2vw,24px)}
@media (max-width:760px){html[data-kv-kit="events"] .speakers{grid-template-columns:repeat(2,minmax(0,1fr))}}
html[data-kv-kit="events"] .speaker .avatar{aspect-ratio:4/5;border-radius:var(--kes-r);margin:0 0 10px}
html[data-kv-kit="events"] .speaker .role{color:var(--ink-2,inherit)}
/* R8: calm sponsor walls (muted wordmarks, even rows, generous gaps) */
html[data-kv-kit="events"] .names{display:flex;flex-wrap:wrap;gap:16px 32px;align-items:center}
html[data-kv-kit="events"] .names > *{color:var(--ink-2,inherit);font-weight:600;letter-spacing:.02em;min-height:32px;display:inline-flex;align-items:center}
html[data-kv-kit="events"] .tier-name{text-transform:uppercase;letter-spacing:.14em;font-size:12px;color:var(--ink-2,inherit)}
/* R9: confident pills, one shape everywhere */
html[data-kv-kit="events"] .btn{border-radius:999px;min-height:48px;padding-inline:22px}
/* R4 (passes in one row on desktop: 1-3 cards) */
@media (min-width:761px){html[data-kv-kit="events"] .passes{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:16px}html[data-kv-kit="events"] .passes > *{min-width:0}}
/* R11: purposeful, polite motion (hover lift; nothing moves for reduced-motion users) */
html[data-kv-kit="events"] :is(.pass,.speaker){transition:transform .2s ease,box-shadow .2s ease}
html[data-kv-kit="events"] :is(.pass,.speaker):hover{transform:translateY(-3px);box-shadow:0 14px 30px -18px #0006}
@media (prefers-reduced-motion:reduce){html[data-kv-kit="events"] :is(.pass,.speaker){transition:none}html[data-kv-kit="events"] :is(.pass,.speaker):hover{transform:none}}
