:root {
  color-scheme: light;
  --ink: #152d26;
  --muted: #496057;
  --paper: #f5f4ed;
  --line: #d6dfd5;
  --green: #153d30;
  --logo-background: #203c31;
  --lime: #e6f3a8;
  --display: "Barlow Condensed", "Arial Narrow", system-ui, sans-serif;
  font: 16px system-ui, sans-serif;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--paper); color: var(--ink); }
a { color: inherit; }
.shell { width: min(1120px, calc(100% - 40px)); margin-inline: auto; }
.bar { min-height: 72px; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.bar a { font-size: .88rem; text-underline-offset: 4px; }
.header-links { display: flex; align-items: center; flex-wrap: wrap; justify-content: end; gap: 8px 14px; }
#edit-roster { background: var(--green); color: white; border-radius: 99px; padding: 9px 13px; text-decoration: none; font-weight: 700; }
.brand { position: relative; display: block; flex: none; width: min(44vw, 184px); aspect-ratio: 498 / 155; overflow: hidden; mix-blend-mode: multiply; }
.brand img { position: absolute; inset: 0 auto auto 0; width: 140.56225%; max-width: none; height: auto; filter: brightness(1.23) contrast(1.33); }

.hero {
  background: radial-gradient(ellipse at 25% 50%, #f7f2e4 18%, transparent 74%),
    radial-gradient(#4b664421 .75px, transparent .75px) 0 0 / 12px 12px, #f7f2e4;
  border-block: 1px solid #ded9c8;
}
.hero-inner {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(20px, 4vw, 54px);
  padding-block: clamp(34px, 5.5vw, 78px);
}
.eyebrow { display: flex; align-items: center; gap: 10px; margin: 0; font: 700 .88rem var(--display); letter-spacing: .16em; color: #47634d; }
.eyebrow::before { content: "✳"; font-size: .8rem; }
h1 { font: 700 clamp(3.35rem, 6.4vw, 6.1rem)/.88 var(--display); letter-spacing: -.025em; margin: 14px 0 20px; }
h1 span { display: block; color: #47634d; }
.intro { max-width: 66ch; margin: 0; font-size: 1rem; line-height: 1.6; color: #3a4d41; text-wrap: pretty; }
.hero-cta { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; margin-top: 23px; padding: 9px 22px; border: 1px solid #254534; border-radius: 4px; background: #254534; color: #fffdf1; font: 700 1rem var(--display); letter-spacing: .11em; text-decoration: none; }
.hero-cta:hover { background: #3c6047; }
.hero-art { display: block; width: 100%; height: auto; }
@media (max-width: 1110px) {
  .intro-break { display: none; }
}
@media (max-width: 720px) {
  .hero-inner { grid-template-columns: 1fr; gap: 26px; }
  h1 span { display: inline; }
  .hero-art { width: min(100%, 460px); justify-self: center; }
}

.directory { background: radial-gradient(ellipse at top, #1c4535, #10251e 62%); color: white; }
.search-panel { background: var(--paper); color: var(--ink); border-top: 3px solid #a2b76a; }
.search-inner { padding-block: 22px; }
.search-controls { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 290px); align-items: end; gap: 10px 16px; }
.search-controls label { margin-bottom: 7px; }
.search-controls label[for="search"] { font: 600 1.65rem var(--display); }
.trade-control label { font: 650 .83rem system-ui, sans-serif; color: var(--muted); }
.trade-control select { width: 100%; min-height: 54px; padding: 10px 34px 10px 14px; border: 1px solid var(--line); border-radius: 12px; background: #fff; color: var(--ink); font: 650 .9rem system-ui, sans-serif; }
.quick-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin-top: 12px; }
#quick-label { color: var(--muted); font-size: .76rem; font-weight: 650; }
.lineup { padding-block: 32px 55px; }
.lineup-heading { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 5px 15px; margin-bottom: 16px; }
.lineup-heading h2 { margin: 0; font-size: clamp(1.35rem, 4vw, 2rem); letter-spacing: -.04em; }
label { display: block; font: 1.42rem Georgia, serif; margin-bottom: 12px; }
.search-field { position: relative; }
.search-field svg { position: absolute; width: 20px; top: 17px; left: 16px; color: var(--muted); pointer-events: none; }
input { width: 100%; min-height: 54px; border: 1px solid var(--line); border-radius: 12px; background: #f8f9f4; color: inherit; padding: 12px 15px 12px 45px; font: inherit; }
#filters { display: flex; flex-wrap: wrap; gap: 6px; }
button { font: inherit; font-size: .83rem; font-weight: 650; border: 1px solid var(--line); color: var(--ink); background: white; border-radius: 99px; padding: 10px 14px; cursor: pointer; min-height: 44px; }
button[aria-pressed=true] { background: var(--green); color: white; border-color: var(--green); }
#filters button { display: inline-flex; align-items: center; gap: 6px; padding: 5px 9px 5px 11px; font-size: .76rem; }
.quick-count { min-width: 21px; padding: 2px 4px; border-radius: 99px; background: #e8efe4; color: var(--ink); font-size: .68rem; text-align: center; }
:focus-visible { outline: 3px solid #64813f; outline-offset: 3px; }

#count { color: #c0d0bf; margin: 0; font-size: .85rem; font-weight: 650; }
#category-description { max-width: 62ch; margin: -5px 0 18px; color: #c0d0bf; font-size: .92rem; line-height: 1.5; }
#results { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 235px), 1fr)); gap: 14px; }
#results.category-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
#back-to-categories { margin-bottom: 12px; padding-inline: 0; border: 0; background: transparent; color: #e6f3a8; }
/* Category browsing only; vendor results retain their existing appearance. */
.directory:has(.category-grid) { background: #f7f6f2; color: #292b29; }
.lineup:has(.category-grid) { padding-block: 40px 64px; }
.lineup:has(.category-grid) .lineup-heading { margin-bottom: 26px; }
.lineup:has(.category-grid) h2 { font: 700 clamp(2rem, 4vw, 2.6rem)/1 var(--display); letter-spacing: -.015em; }
.lineup:has(.category-grid) #count { color: #686a65; font-weight: 400; }
.category-card {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  align-items: center;
  gap: 16px;
  min-height: 88px;
  padding: 16px 22px;
  border: 1px solid #dedfd5;
  border-radius: 8px;
  background: #fffdf7;
  color: #24382d;
  text-align: left;
  transition: border-color 160ms ease, background-color 160ms ease;
}
.category-card.quick-pick-category { box-shadow: inset 3px 0 #8c9d75; }
.category-card:focus-visible { outline: 2px solid #4b6955; outline-offset: 3px; }
@media (hover: hover) {
  .category-card:hover { border-color: #839680; background: #f1f3e9; }
}
.category-icon { display: grid; place-items: center; width: 28px; height: 28px; color: #58715e; }
.category-icon svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.category-label { display: grid; gap: 4px; }
.category-label strong { font: 600 1.25rem/1.16 var(--display); letter-spacing: .005em; overflow-wrap: anywhere; }
.category-label small { font-size: .8rem; font-weight: 400; color: #5c685e; }
@media (prefers-reduced-motion: reduce) { .category-card { transition: none; } }
.card { background: #152b23; border: 1px solid #395346; border-radius: 12px; overflow: hidden; }
.card:hover, .card:focus-within { border-color: #a2b76a; }
.card-cover { position: relative; aspect-ratio: 4 / 3; display: grid; place-items: center; background: radial-gradient(ellipse, #3a5740, transparent 75%), repeating-linear-gradient(135deg, #ffffff08 0 1px, transparent 1px 10px), #203c31; border-bottom: 1px solid #4a624d; }
.card-cover img { position: absolute; inset: 0; width: 100%; height: 100%; }
.vendor-photo { object-fit: cover; }
.vendor-logo { object-fit: contain; padding: 12%; background: var(--logo-background); }
.has-portrait .vendor-photo { object-position: center 12%; }
/* Keep the full face in frame when the standard portrait crop cuts it off. */
.vendor-photo[src="photos/caleb-klassen.png"] { object-position: center top; }
.vendor-photo[src="photos/steven-le.jpg"] { object-fit: contain; object-position: center; }
.has-portrait .vendor-logo { inset: auto 10px 10px auto; width: min(36%, 106px); height: auto; aspect-ratio: 2.25; padding: 7px; border: 1px solid #d8ebe24f; border-radius: 7px; background: #183328f2; box-shadow: 0 2px 6px #0b1e1877; }
.cover-ribbons { position: absolute; z-index: 1; top: 10px; left: 10px; max-width: calc(100% - 20px); display: grid; justify-items: start; gap: 5px; pointer-events: none; }
.cover-ribbon { padding: 4px 9px; border: 1px solid #e8cb8252; border-radius: 6px; background: #385544e0; color: #f5e9cb; font-size: .72rem; font-weight: 650; line-height: 1.35; overflow-wrap: anywhere; }
.mobile-ribbon { border-color: #a7dfc95c; background: #31574be0; color: #e0f5eb; }
.monogram { display: grid; place-items: center; width: clamp(58px, 9vw, 92px); aspect-ratio: 1; border-radius: 50%; border: 1px solid #9eb280; outline: 4px double #9eb28055; outline-offset: 4px; color: var(--lime); font-size: clamp(1rem, 3vw, 1.7rem); font-weight: 800; letter-spacing: .08em; text-indent: .08em; }
.card-profile { padding: 14px; }
.tag, .detail dt { font-size: .69rem; font-weight: 750; letter-spacing: .09em; text-transform: uppercase; }
.tag { color: var(--lime); }
.card h3 { margin: 4px 0 12px; font-size: 1.2rem; font-weight: 850; line-height: 1.15; letter-spacing: -.025em; text-transform: uppercase; overflow-wrap: anywhere; }
.details { margin: 0; }
.detail { border-top: 1px solid #395346; padding-block: 7px; }
.detail:last-child { padding-bottom: 0; }
.detail dt { color: #afc1b4; }
.detail dd { margin: 3px 0 0; font-size: .86rem; overflow-wrap: anywhere; }
.detail a { display: inline-flex; align-items: center; min-height: 32px; color: #edf6d8; text-underline-offset: 3px; }
.detail a:hover { color: var(--lime); }
.card a:focus-visible { outline-color: var(--lime); }
.additional-information { margin-top: 10px; }
.additional-information-button { padding-inline: 0; border: 0; border-radius: 4px; color: var(--lime); background: transparent; text-decoration: underline; text-underline-offset: 3px; }
.additional-information-button:focus-visible { outline-color: var(--lime); }
.additional-information-note { margin: 0; padding: 10px 12px; border-left: 2px solid #9eb280; background: #203c31; font-size: .86rem; white-space: pre-wrap; overflow-wrap: anywhere; }
.contact-copy { margin-top: 14px; }
.copy-contact-button { min-height: 44px; border-color: #56705e; border-radius: 8px; background: #244437; color: #edf6d8; }
.copy-contact-button:hover, .copy-contact-button:focus-visible { border-color: var(--lime); }
.copy-status { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.copy-contact-text { display: block; width: 100%; margin-top: 8px; padding: 8px; border: 1px solid #56705e; border-radius: 8px; background: #10251e; color: #edf6d8; font: inherit; }
.copy-contact-text[hidden] { display: none; }
footer { border-top: 1px solid var(--line); padding-block: 22px; color: var(--muted); font-size: .87rem; }

@media (max-width: 690px) {
  #results.category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 570px) {
  .search-controls { grid-template-columns: 1fr; }
  .quick-filters { align-items: start; flex-direction: column; }
}
@media (max-width: 450px) {
  #results.category-grid { grid-template-columns: minmax(0, 1fr); }
  .category-card { min-height: 76px; padding: 13px 18px; }
}

