/* Library × AI Quest: a per-event skin for the existing event-page template.
   Explicit overrides beat the template's scoped rules without adding markup. */
.event-page {
  --ev-page-bg: #0c2528;
  --ev-ink: #f7efd9;
  --ev-body: #d6dfd6;
  --ev-muted: #b3c4bd;
  --ev-accent: #ead096;
  --ev-accent-dark: #f8dfa6;
  --ev-accent-2: #a9e3cb;
  --ev-eyebrow-color: #d9bc7b;
  --ev-eyebrow-font: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --ev-eyebrow-mark: '+ ';
  --ev-hero-bg: #0a2024;
  --ev-title-gradient: linear-gradient(#fff7df, #ead096);
  --ev-chip-bg: #143334;
  --ev-chip-border: #47635b;
  --ev-chip-shadow: none;
  --ev-htag-border: #6d8b77;
  --ev-htag-ink: #c4edda;
  --ev-htag-bg: #173c35;
  --ev-hero-card-border: #bda16a;
  --ev-hero-card-shadow: 0 20px 50px #020f1440;
  --ev-btn-bg: #ebcc87;
  --ev-btn-bg-hover: #ffe3a3;
  --ev-btn-fg: #18352c;
  --ev-note-bg: #f0e5ca;
  --ev-note-border: #bba779;
  --ev-note-ink: #35413a;
  --ev-note-shadow: 5px 5px 0 #06191b;
  --ev-note-curl: none;
  --ev-syl-font: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang TC', 'Microsoft JhengHei', sans-serif;
  --ev-syl-size: 18px;
  --ev-syl-bg: #153335;
  --ev-syl-border: #43605a;
  --ev-syl-ink: #f5eedb;
  --ev-syl-num: #e1c386;
  --ev-syl-note-ink: #c0d1c6;
  --ev-quote-font: 'Songti TC', 'PMingLiU', 'Times New Roman', serif;
  --ev-quote-gradient: linear-gradient(100deg, #e9ce8d, #f7edd5, #bddfcc);
  --ev-quote-glow: none;
  --ev-quote-rule: #bc9e62;
  --ev-band-bg: linear-gradient(165deg, #102126, #123a34);
  --ev-band-fg: #faf0d8;
  --ev-band-fg-soft: #c5d5ca;
  --ev-band-eyebrow: #e2c386;
  --ev-card-bg: #f7efdc;
  --ev-card-radius: 0;
  --ev-card-shadow: 0 8px 0 -4px #bfa16c, 0 -8px 0 -4px #bfa16c, 8px 0 0 -4px #bfa16c, -8px 0 0 -4px #bfa16c, 0 24px 64px #03171760;
  --ev-card-ink: #213e36;
  --ev-card-body: #455349;
  --ev-card-muted: #5e6658;
  --ev-label: #24463a;
  --ev-req: #a03728;
  --ev-hint: #616454;
  --ev-input-ink: #203b32;
  --ev-input-border: #7f8870;
  --ev-input-focus: #206453;
  --ev-input-placeholder: #6b7163;
  --ev-pill-border: #74846a;
  --ev-pill-border-hover: #527862;
  --ev-pill-ink: #354a3d;
  --ev-pill-radius: 2px;
  --ev-pill-checked-border: #246551;
  --ev-pill-checked-bg: #dcebdd;
  --ev-pill-checked-ink: #193e2e;
  --ev-control-accent: #246551;
  --ev-tip-ink: #214a39;
  --ev-tip-bg: #e0ebd7;
  --ev-panel-bg: #143235;
  --ev-panel-border: #47635c;
  --ev-panel-shadow: none;
  --ev-ic-gradient: linear-gradient(135deg, #557d62, #24453b);
  --ev-tag-bg: #254e42;
  --ev-tag-fg: #e4e8c8;
  --ev-bullet: #dabe84;
  --ev-table-head-bg: #234638;
  --ev-table-head-fg: #f3e6c7;
  --ev-table-border: #496158;
  --ev-table-row-alt: #183b38;
  --quest-focus: #b6f4d7;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang TC', 'Microsoft JhengHei', sans-serif;
  font-size: 16px;
  line-height: 1.8;
  overflow-wrap: anywhere;
  color-scheme: dark;
}

.event-page ::selection { color: #102e25; background: #e6ce8f; }
.event-page :is(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 3px solid var(--quest-focus) !important;
  outline-offset: 4px;
}

/* Image stays in normal flow on small screens; its intrinsic scene is never cropped. */
.event-page .ev-hero { padding: 7rem 0 3.5rem !important; isolation: isolate; }
.event-page .ev-hero > div { grid-template-columns: minmax(0, 1fr) !important; gap: 2.5rem !important; }
.event-page .ev-hero > div > div { min-width: 0; }
.event-page .ev-hero-art { order: -1; width: 100%; max-width: none !important; margin: 0 !important; }
.event-page .ev-hero-card {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: contain;
  border: 1px solid var(--ev-hero-card-border) !important;
  border-radius: 0 !important;
  transform: none !important;
  transition: none !important;
}
.event-page .ev-sparkle { display: none; }
.event-page .ev-title {
  font-family: 'Songti TC', 'PMingLiU', serif !important;
  font-size: clamp(2.15rem, 4.15vw, 3.75rem) !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  letter-spacing: 0.02em !important;
  color: #fff1d0 !important;
  background: none !important;
  text-wrap: balance;
  margin-bottom: 1.25rem !important;
}
.event-page .ev-sub { max-width: 32em !important; line-height: 1.85 !important; color: #e0e7d8 !important; }
.event-page :is(.ev-eyebrow, .ev-eyebrow-center) { font-size: 13px !important; letter-spacing: 0.16em !important; line-height: 1.7; }
.event-page .ev-hero .ev-eyebrow { display: inline-block; border-bottom: 1px solid #9c8656; padding-bottom: 0.5rem; }
.event-page :is(.ev-chip, .ev-htag) { border-radius: 0 !important; }
.event-page .ev-htag { box-shadow: 3px 3px 0 #061b1c; }
.event-page .ev-chip { font-size: 16px !important; }
.event-page .ev-brands { margin-bottom: 1.75rem !important; }

/* One small cluster of square motes, anchored to the hero rather than the viewport. */
.event-page .ev-hero::after {
  content: '';
  position: absolute;
  top: 17%;
  right: 18%;
  z-index: 3;
  width: 3px;
  height: 3px;
  background: #ffdc98;
  box-shadow: 58px 37px #c0e9d1, -37px 96px #f9d185, 86px 128px #deebbe;
  pointer-events: none;
  animation: library-quest-glimmer 5s ease-in-out infinite alternate;
}
@keyframes library-quest-glimmer { from { opacity: 0.25; } to { opacity: 0.8; } }

.event-page :is(.ev-btn, .ev-submit) {
  border-radius: 0 !important;
  min-height: 48px;
  font-size: 16px !important;
  line-height: 1.6 !important;
  letter-spacing: 0.04em !important;
  transition: background-color 0.2s, box-shadow 0.2s !important;
}
.event-page :is(.ev-btn-primary, .ev-submit) { box-shadow: 4px 4px 0 #8e7243; }
.event-page .ev-btn-outline { border-color: #c5ab72 !important; }
.event-page .ev-submit:disabled { box-shadow: none; }
.event-page #signup { scroll-margin-top: 6rem; }

.event-page .ev-hero + section { padding-top: clamp(3.5rem, 7vw, 6rem) !important; padding-bottom: clamp(3.5rem, 7vw, 6rem) !important; }
.event-page :is(.ev-h2, .ev-h2-onband) { font-family: 'Songti TC', 'PMingLiU', serif; line-height: 1.5; text-wrap: balance; }
.event-page :is(.ev-para, .ev-note, .ev-syl-note, .ev-band-note, .ev-card-body, .ev-fineprint, .ev-hint, .ev-tip, .ev-bottomnote, .ev-tr-body, .ev-tr-note) {
  font-size: 16px !important;
  line-height: 1.85 !important;
}
.event-page .ev-para { max-width: 44em !important; }
.event-page .ev-syl { gap: 1rem !important; margin-top: 1.75rem !important; }
.event-page .ev-syl-item { align-items: flex-start !important; border-radius: 0 !important; padding: 1.35rem !important; }
.event-page .ev-syl-item:hover { transform: none !important; }
.event-page .ev-syl-no { align-self: flex-start !important; padding-top: 0.25rem; }
.event-page .ev-note { border-radius: 0 !important; padding: 1.5rem !important; }
.event-page .ev-note-wrap :is(.ev-strong, .ev-link) { color: #295d47 !important; }
.event-page .ev-note-wrap::before, .event-page .ev-note-wrap::after { display: none; }
.event-page .ev-quote { font-size: clamp(1.15rem, 2.5vw, 1.55rem) !important; }

/* Parchment form: light native controls, generous labels, and visible keyboard focus. */
.event-page .ev-card {
  --quest-focus: #206453;
  color-scheme: light;
  color: var(--ev-card-ink);
  position: relative;
  border: 1px solid #ad9564;
  padding: clamp(1.25rem, 4vw, 3.25rem) !important;
}
.event-page .ev-card :is(fieldset, .grid > div, .ev-pill, .ev-pill > span) { min-width: 0; }
.event-page .ev-card form > .grid { counter-reset: library-question; }
.event-page .ev-card form > .grid > :is(div, fieldset) {
  counter-increment: library-question;
  padding-bottom: 1.5rem !important;
  border-bottom: 1px solid #d2c9b0 !important;
}
.event-page .ev-card form > .grid > div > .ev-lab::before,
.event-page .ev-card form > .grid > fieldset > legend::before {
  content: counter(library-question, decimal-leading-zero);
  display: inline-block;
  margin-right: 0.7rem;
  padding: 0.15rem 0.45rem;
  background: #244b3e;
  color: #fff0c8;
  box-shadow: 2px 2px 0 #b89c61;
  font: 700 14px/1.5 var(--ev-eyebrow-font);
  font-variant-numeric: tabular-nums;
  vertical-align: baseline;
}
.event-page .ev-card legend { max-width: 100%; }
.event-page .ev-lab { font-size: 17px !important; line-height: 1.65; margin-bottom: 0.65rem !important; }
.event-page .ev-hint { display: inline-block; }
.event-page .ev-input {
  background: #fffaf0 !important;
  border: 1px solid var(--ev-input-border) !important;
  border-radius: 2px !important;
  min-height: 48px;
  padding: 0.75rem !important;
  font-size: 16px !important;
  line-height: 1.6;
  max-width: 100%;
}
.event-page .ev-input:focus { border-color: var(--ev-input-focus) !important; }
.event-page textarea.ev-input { resize: vertical; }
.event-page .ev-input option { background: #fffaf0; color: #203b32; }
.event-page .ev-pill { align-items: flex-start !important; min-height: 48px; font-size: 16px !important; line-height: 1.65 !important; }
.event-page .ev-pill input:is([type='radio'], [type='checkbox']) { width: 20px !important; height: 20px !important; margin-top: 3px !important; }
.event-page .ev-pill:focus-within { outline: 2px solid var(--quest-focus); outline-offset: 2px; }
.event-page .ev-other-input { font-size: 16px !important; min-width: 0 !important; width: 0; padding: 2px 4px !important; }
.event-page .ev-fs-err .ev-pill { border-color: #ab392a !important; }
.event-page .ev-card [role='alert'] { font-size: 16px !important; line-height: 1.7; }
.event-page .ev-fineprint-link { text-underline-offset: 3px; }

@media (min-width: 1200px) {
  /* The image is the scene; an opaque-enough scrim protects live, selectable text. */
  .event-page .ev-hero { padding: 0 !important; }
  .event-page .ev-hero > div {
    position: relative;
    max-width: none !important;
    min-height: 46rem;
    aspect-ratio: 16 / 9;
    padding: 8rem max(3rem, calc((100vw - 1280px) / 2)) 5rem !important;
  }
  .event-page .ev-hero > div > div:first-child { position: relative; z-index: 2; width: 42%; max-width: 34rem; }
  .event-page .ev-hero-art { position: absolute !important; inset: 0; height: 100%; z-index: 0; }
  .event-page .ev-hero-card { height: 100%; object-fit: cover; border: 0 !important; box-shadow: none !important; }
  .event-page .ev-hero-art::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    background: linear-gradient(90deg, #081e21f5 0%, #081e21e8 27%, #081e219e 43%, #081e2110 67%), linear-gradient(0deg, #0c2528 0%, transparent 22%);
  }
}

@media (max-width: 599px) {
  .event-page .ev-hero > div, .event-page > section > div { padding-left: 1.25rem !important; padding-right: 1.25rem !important; }
  .event-page .ev-hero { padding-top: 6.5rem !important; }
  .event-page .ev-title { font-size: clamp(2rem, 8vw, 2.75rem) !important; }
  .event-page .ev-card .grid { column-gap: 0.75rem !important; }
  .event-page .ev-card fieldset > .grid { grid-template-columns: minmax(0, 1fr) !important; }
  .event-page .ev-pill:has(.ev-other-input) { flex-wrap: wrap; }
  .event-page .ev-other-input { flex: 1 0 calc(100% - 30px) !important; margin-left: 30px; }
  .event-page .ev-syl-item { gap: 0.85rem !important; padding: 1rem !important; }
  .event-page .ev-syl-no { padding-right: 0.85rem !important; }
}

@media (prefers-reduced-motion: reduce) {
  .event-page .ev-hero::after { animation: none; opacity: 0.4; }
  .event-page :is(.ev-btn, .ev-submit, .ev-pill, .ev-input, .ev-syl-item) { transition: none !important; }
}
