/* The useful details, filed on the same paper as the artwork. */
[hidden] { display: none !important; }
:target { scroll-margin-block: 1rem 6rem; }
button, input { font: inherit; }
.file-label { margin: 0 0 .5rem; font: .75rem/1.4 var(--font-mono); letter-spacing: .075em; }
.event-ticket { position: relative; z-index: 2; display: grid; grid-template-columns: 1fr auto; gap: 1rem; margin: 1.2rem 4% 1.5rem; padding: 1.4rem 1.3rem 1rem; background: var(--paper-white); background-image: var(--paper-grain); border: 1px solid var(--ink-soft); box-shadow: 3px 4px 0 #1a19161c; }
.event-ticket::before { content: ''; position: absolute; width: 5rem; height: 1.15rem; background: #b7a887b3; top: -.6rem; left: 44%; transform: rotate(-3deg); }
.event-ticket h2 { margin: 0 0 .7rem; font: clamp(1.4rem, 4.4vw, 2rem)/1.1 var(--font-marker); }
.event-ticket__when, .event-ticket__where { margin: .3rem 0 0; font-size: .9rem; line-height: 1.5; }
.event-ticket__stub { display: flex; align-items: center; padding-left: 1rem; border-left: 1px dashed var(--ink-soft); }
.paper-button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; gap: .5rem; padding: .85rem 1rem; color: var(--paper-white); background: var(--ink); border: 1px solid var(--ink); border-radius: 0; font: .95rem/1.25 var(--font-mono); text-decoration: none; text-align: center; cursor: pointer; }
.paper-button:hover { color: white; background: #852b25; border-color: #852b25; }
.paper-button:disabled { opacity: .6; cursor: wait; }
.event-ticket__stub .paper-button { max-width: 11rem; }
.event-ticket [data-event-status] { color: #7b261f; font-weight: bold; }
.event-ticket__note { grid-column: 1/-1; margin: -.2rem 0 0; font-size: .8rem; line-height: 1.5; color: var(--ink-soft); }
.event-details { grid-column: 1/-1; padding-top: .25rem; border-top: 1px dashed #1a19164d; font-size: .9rem; }
.event-details summary, .privacy-note summary { cursor: pointer; min-height: 44px; padding-block: .65rem; text-decoration: underline; text-underline-offset: .2rem; }
.event-details p { margin: .5rem 0; }
.event-details__links { display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; }
.event-details__links a { display: inline-flex; align-items: center; min-height: 44px; }
.bio { margin-top: 0; }
.bio-file { position: relative; z-index: 3; padding: 3rem 9% 2rem; background: var(--paper-warm); background-image: var(--paper-grain); border-top: 2px solid var(--ink); }
.bio-file h2 { margin: .75rem 0 1.3rem; font: clamp(2rem, 8vw, 3.5rem)/1.08 var(--font-marker); letter-spacing: -.035em; }
.bio-file > p:not(.file-label) { max-width: 36rem; font: 1.05rem/1.65 var(--font-type); }
.bio-file a { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; font-size: .95rem; text-underline-offset: .3rem; }
.archive-files { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.4rem 1.3rem; margin: 2rem 0; }
.archive-file { min-width: 0; padding: .75rem .75rem 1rem; background: #f6f0e3; box-shadow: 2px 3px 0 #1a191629; border: 1px solid #1a19162b; transform: rotate(-1deg); }
.archive-file:nth-child(even) { transform: rotate(1deg); }
.archive-file__image { position: relative; display: block; background: #171613; }
.archive-file__image img { width: 100%; height: auto; aspect-ratio: 4/5; object-fit: contain; }
.archive-file__image > span { display: block; min-height: 44px; padding: .8rem .5rem .6rem; color: var(--paper-white); font: .8rem/1.3 var(--font-mono); text-align: center; }
.archive-file__image:hover > span { color: #ffb5da; }
.archive-file__details { padding: 1rem .2rem 0; }
.archive-file h3 { margin: .45rem 0; font: 1.45rem/1.1 var(--font-marker); overflow-wrap: anywhere; }
.archive-file__details > p:not(.file-label) { font-size: .85rem; line-height: 1.55; }
.archive-file__venue { font-weight: bold; }
.archive-file__source { display: inline-flex; align-items: center; min-height: 44px; font-size: .85rem; text-underline-offset: .2rem; }
.join__label { font-size: clamp(1.1rem, 4.5vw, 1.65rem); }
.join__heading > p:last-child { text-align: center; }
.signup-art { width: min(65%, 23rem); margin-block: -.5rem 1rem; }
.invitation-form { position: relative; z-index: 3; width: min(100%, 38rem); padding: 1.5rem; border: 1px dashed #ebe5d77a; background: #141310; }
.invitation-form > label { display: block; font-size: .85rem; margin-bottom: .6rem; }
.invitation-form__row { display: flex; gap: .5rem; }
.invitation-form input[type=email] { min-width: 0; flex: 1; width: 100%; min-height: 48px; border: 1px solid var(--paper-white); border-radius: 0; padding: .85rem .7rem; background: var(--paper-white); color: var(--ink); font-size: 16px; }
.invitation-form input::placeholder { color: #635e53; opacity: 1; }
.invitation-form input[aria-invalid=true] { outline: 2px solid #ffaaa0; outline-offset: 2px; }
.invitation-form .paper-button { background: #e4ddcd; color: var(--ink); border: 1px solid #e4ddcd; }
.invitation-form .paper-button:hover { background: #edb4d5; border-color: #edb4d5; }
.invitation-form .invitation-form__consent { display: flex; align-items: flex-start; gap: .75rem; min-height: 44px; margin: 1rem 0 0; padding-block: .4rem; cursor: pointer; font-size: .85rem; line-height: 1.5; }
.invitation-form__consent input { flex-shrink: 0; width: 22px; height: 22px; margin: 0; accent-color: #edb4d5; }
.invitation-form__privacy { margin: .65rem 0 0; color: #c5beaf; font-size: .8rem; line-height: 1.6; }
.invitation-form__privacy a { text-underline-offset: .2rem; }
.invitation-form__error { color: #ffc0b6; margin: .75rem 0; font-size: .9rem; }
.invitation-form__status { margin: 1rem 0 0; line-height: 1.5; color: #e8eccd; }
.invitation-form__status:empty { margin: 0; }
.invitation-form[data-complete=true] { border-style: solid; }
.form-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.privacy-note { position: relative; z-index: 3; width: min(100%, 38rem); margin: 1.25rem 0; color: #c5beaf; font-size: .85rem; line-height: 1.6; }
.privacy-note summary { width: fit-content; }
.mobile-ticket { display: none; }
@media (max-width: 620px) {
  body { padding-bottom: calc(5.75rem + env(safe-area-inset-bottom)); }
  .event-ticket { grid-template-columns: 1fr; padding: 1.2rem 1rem .9rem; gap: .8rem; }
  .event-ticket__stub { padding: .75rem 0 0; border-left: 0; border-top: 1px dashed var(--ink-soft); }
  .event-ticket__stub .paper-button { max-width: none; width: 100%; }
  .event-ticket__when { max-width: 23rem; }
  .event-ticket__when > span[aria-hidden] { display: none; }
  .event-ticket__when [data-event-doors] { display: block; }
  .bio-file { padding: 2.5rem 7% 1.6rem; }
  .bio-file > p:not(.file-label) { font-size: 1rem; }
  .archive-files { gap: 1.7rem 1rem; }
  .archive-file { padding: .5rem .5rem .7rem; }
  .archive-file h3 { font-size: 1.2rem; }
  .archive-file .file-label { font-size: .7rem; }
  .archive-file__details > p:not(.file-label) { font-size: .8rem; }
  .invitation-form { padding: 1.15rem; }
  .invitation-form__row { flex-direction: column; }
  .invitation-form__row .paper-button { width: 100%; }
  .mobile-ticket { position: fixed; inset: auto 0 0; z-index: 50; display: flex; align-items: center; justify-content: space-between; gap: .8rem; min-height: 5rem; padding: .8rem 1rem calc(.8rem + env(safe-area-inset-bottom)); background: #1a1916; color: var(--paper-white); border-top: 2px solid #e3ddcd; }
  .mobile-ticket > div { min-width: 0; flex: 1; }
  .mobile-ticket span { display: block; margin-bottom: .2rem; font-size: .65rem; letter-spacing: .035em; color: #cec5b3; }
  .mobile-ticket strong { display: block; font: .85rem/1.15 var(--font-marker); }
  .mobile-ticket > a { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; max-width: 48%; min-height: 48px; padding: .55rem .7rem; background: #e3ddcd; color: var(--ink); text-align: center; font: .85rem/1.25 var(--font-mono); text-decoration: none; }
  .mobile-ticket.is-at-join { display: none; }
  .is-instagram-open .mobile-ticket { display: none; }
}
@media (max-width: 380px) {
  .archive-files { grid-template-columns: 1fr; padding-inline: 5%; }
  .archive-file h3 { font-size: 1.55rem; }
  .archive-file__details > p:not(.file-label) { font-size: .9rem; }
}
