:root {
  color-scheme: dark;
  --ink: #0c0900;
  --panel: #14120c;
  --card: #1a1812;
  --gold: #f5b700;
  --text: #ffffff;
  --muted: #a3a3a3;
  --line: rgb(255 255 255 / 12%);
  --gold-line: rgb(245 183 0 / 28%);
  --radius: 12px;
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  font-family: Arial, Helvetica, sans-serif;
  background: var(--ink);
  color: var(--text);
  font-synthesis: none;
  text-rendering: optimizeLegibility;
}
* { box-sizing: border-box; }
html, body, #app { min-height: 100%; margin: 0; }
body { background: var(--ink); touch-action: manipulation; }
button, input { font: inherit; }
button { color: inherit; cursor: pointer; touch-action: manipulation; }
button:focus-visible, input:focus-visible, summary:focus-visible { outline: 3px solid var(--gold); outline-offset: 4px; }
h1:focus { outline: none; }
button:hover { border-color: var(--gold-line); }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { overflow-wrap: anywhere; }
.ui-icon { width: 21px; height: 21px; flex: 0 0 auto; vertical-align: middle; }
.app-root { min-height: 100dvh; }
.kiosk-banner { position: sticky; top: 0; z-index: 5; min-height: 88px; display: flex; align-items: center; gap: 16px; padding: calc(12px + var(--safe-top)) clamp(16px, 3vw, 42px) 12px; background: rgb(12 9 0 / 96%); border-bottom: 1px solid var(--line); backdrop-filter: blur(14px); }
.kiosk-banner__brand { width: clamp(112px, 19vw, 190px); min-height: 58px; display: grid; place-items: center; border: 0; padding: 0; background: transparent; }
.kiosk-banner__brand img { max-width: 100%; max-height: 62px; object-fit: contain; }
.kiosk-banner__rule { width: 1px; height: 36px; background: var(--line); }
.kiosk-banner__tagline { color: var(--muted); font-size: 12px; font-weight: 500; line-height: 1.5; max-width: 100px; }
.kiosk-banner__spacer { flex: 1; }
.kiosk-banner__nav { min-width: 48px; min-height: 48px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); color: #e5e5e5; }
.kiosk-banner__nav:hover { color: var(--gold); background: #201c10; }
.welcome { position: relative; min-height: 100dvh; overflow: hidden; display: grid; place-items: center; isolation: isolate; background: var(--ink); }
.welcome__fallback, .welcome__video, .welcome__shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.welcome__fallback, .welcome__video { z-index: -2; object-fit: cover; object-position: center; }
.welcome__shade { z-index: -1; background: linear-gradient(180deg, rgb(12 9 0 / 42%), rgb(12 9 0 / 20%) 40%, rgb(12 9 0 / 75%)); }
.welcome__frame { width: min(86vw, 780px); min-height: 75svh; display: flex; align-items: center; justify-content: center; text-align: center; }
.welcome__start { border: 0; padding: 22px; background: transparent; display: flex; flex-direction: column; align-items: center; gap: 28px; border-radius: var(--radius); }
.welcome__title { font-weight: 700; font-size: clamp(52px, 8vw, 92px); line-height: 1.1; letter-spacing: -.045em; color: white; text-shadow: 0 4px 28px #0008; }
.welcome__title em { font-style: normal; color: var(--gold); }
.crosshair { width: clamp(76px, 15vw, 160px); aspect-ratio: 1; display: block; position: relative; margin: 12px auto; border: 3px solid var(--gold); border-radius: 50%; box-shadow: 0 0 0 9px rgb(245 183 0 / 12%); }
.crosshair::before, .crosshair::after { content: ''; position: absolute; background: var(--gold); left: 50%; top: 50%; transform: translate(-50%, -50%); }
.crosshair::before { width: 165%; height: 2px; }
.crosshair::after { width: 2px; height: 165%; }
.kiosk-home { min-height: calc(100dvh - 88px); padding: clamp(20px, 3vw, 40px) clamp(18px, 4vw, 54px) 48px; background: var(--ink); }
.species-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; max-width: 1120px; margin: 0 auto; }
.species-card { min-height: clamp(210px, 24vh, 300px); position: relative; display: flex; align-items: end; overflow: hidden; padding: 0; border: 1px solid var(--line); border-radius: var(--radius); background: var(--card); text-align: left; }
.species-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.species-card__shade { position: absolute; inset: 0; background: linear-gradient(0deg, rgb(0 0 0 / 92%), rgb(0 0 0 / 6%) 85%); }
.species-card__copy { position: relative; display: grid; gap: 7px; width: 100%; padding: 18px; }
.species-card__copy strong { color: #fff; font-size: clamp(16px, 1.8vw, 20px); font-weight: 700; line-height: 1.35; }
.species-card__copy span { margin-top: 5px; color: #c4c4c4; font-size: 12px; }
.species-card__copy em { color: var(--gold); font-size: 13px; line-height: 1.4; font-style: normal; font-weight: 500; }
.home-search { max-width: 1120px; margin: 30px auto 38px; padding: 22px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); }
.home-search__row { display: flex; align-items: stretch; gap: 10px; }
.search-field { display: flex; align-items: center; gap: 12px; flex: 1; min-width: 0; padding: 0 16px; border: 1px solid var(--line); border-radius: 8px; background: #0c0b08; color: var(--muted); }
.search-field:focus-within { border-color: var(--gold); }
.home-search__row input { width: 100%; min-width: 0; min-height: 54px; padding: 12px 0; border: 0; background: transparent; color: white; font-size: 16px; font-weight: 400; outline-offset: -3px; }
.home-search__row input::placeholder { color: var(--muted); opacity: 1; }
.home-search__button { min-width: 106px; padding: 12px 22px; border: 1px solid var(--gold); border-radius: 8px; background: var(--gold); color: #050505; font-size: 15px; font-weight: 600; }
.popular-searches { display: flex; flex-wrap: wrap; align-items: center; gap: 3px 14px; margin-top: 14px; }
.popular-searches > span { flex-basis: 100%; color: var(--muted); font-size: 12px; font-weight: 600; margin-bottom: 4px; }
.popular-searches button { min-height: 44px; padding: 9px 0; border: 0; background: transparent; color: var(--gold); font-size: 13px; font-weight: 500; text-align: left; }
.popular-searches button:hover { text-decoration: underline; }
.home-areas, .home-all-links { max-width: 1120px; margin: 0 auto; }
.home-areas__title { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 16px; }
.home-areas__title h1 { margin: 0; font-size: 22px; font-weight: 700; line-height: 1.3; }
.text-btn { min-height: 48px; display: inline-flex; justify-content: center; align-items: center; gap: 9px; padding: 10px 0; border: 0; background: transparent; color: var(--gold); font-size: 14px; font-weight: 600; }
.flag-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.area-card { min-width: 0; display: grid; justify-items: start; gap: 10px; padding: 14px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); text-align: left; }
.area-card__flag { width: 100%; height: clamp(65px, 10vw, 115px); overflow: hidden; border-radius: 8px; background: var(--card); }
.area-card__flag img { width: 100%; height: 100%; object-fit: cover; }
.area-card strong { color: white; font-size: 16px; font-weight: 600; line-height: 1.4; }
.area-card small { color: var(--muted); font-size: 12px; line-height: 1.5; }
.home-all-links { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px 38px; margin-top: 24px; }
.content { width: min(100% - 36px, 1120px); margin: 0 auto; padding: 30px 0 50px; }
.section-heading { margin-bottom: 24px; }
.eyebrow { display: inline-flex; align-items: center; color: var(--gold); font-size: 13px; font-weight: 600; line-height: 1.5; }
.section-heading h1 { margin: 8px 0 0; font-size: 30px; line-height: 1.2; font-weight: 700; }
.tile-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.tile { position: relative; min-height: 218px; display: flex; flex-direction: column; justify-content: end; overflow: hidden; padding: 18px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--card); text-align: left; }
.tile__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .7; }
.tile::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent, rgb(8 7 3 / 94%)); }
.tile__flag { position: absolute; top: 14px; left: 14px; z-index: 2; width: 48px; height: 34px; overflow: hidden; border: 1px solid #ffffff40; border-radius: 6px; }
.tile__flag img { width: 100%; height: 100%; object-fit: contain; background: white; }
.tile__copy { position: relative; z-index: 2; }
.tile__type { display: block; margin-bottom: 7px; color: var(--gold); font-size: 12px; font-weight: 500; }
.tile__title { display: block; color: white; font-size: 18px; font-weight: 600; line-height: 1.4; }
.search-screen { min-height: calc(100dvh - 88px); padding: 32px clamp(18px, 4vw, 54px) 50px; background: var(--ink); color: white; }
.search-page-head, .search-results-list { max-width: 1120px; margin: 0 auto; }
.search-page-head h1 { margin: 0 0 24px; font-size: 28px; font-weight: 700; }
.search-summary { margin: 18px 0 24px; color: var(--muted); font-size: 13px; line-height: 1.5; }
.search-results-list { display: grid; gap: 12px; }
.search-result-card { width: 100%; min-height: 136px; display: grid; grid-template-columns: clamp(95px, 18vw, 185px) minmax(0, 1fr); gap: 20px; align-items: stretch; padding: 12px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); text-align: left; }
.search-result-card > img, .search-result-card__placeholder { width: 100%; height: 100%; max-height: 160px; min-height: 100px; object-fit: cover; border-radius: 8px; }
.search-result-card__placeholder { display: grid; place-content: center; background: #262218; color: var(--muted); text-align: center; font-size: 11px; font-weight: 500; }
.search-result-card__copy { display: flex; flex-direction: column; justify-content: center; gap: 9px; min-width: 0; padding: 5px 10px 5px 0; }
.search-result-card__copy strong { color: #fff; font-size: 18px; font-weight: 600; line-height: 1.4; overflow-wrap: anywhere; }
.search-result-card__copy i { width: 100%; border-top: 1px solid var(--line); }
.search-result-card__copy span { color: var(--muted); font-size: 14px; line-height: 1.6; }
.search-empty { padding: 24px; border: 1px dashed var(--line); color: var(--muted); border-radius: var(--radius); }
.detail-screen { min-height: calc(100dvh - 88px); background: var(--ink); }
.detail-hero { position: relative; min-height: 310px; display: flex; align-items: end; padding: clamp(26px, 5vw, 52px); overflow: hidden; border-bottom: 1px solid var(--line); background: #211e16; }
.detail-hero__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .6; }
.detail-hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, #0c0900ed, #0c090033); }
.detail-hero__copy { position: relative; z-index: 1; width: min(100%, 960px); margin: 0 auto; }
.detail-hero h1 { max-width: 850px; margin: 12px 0 18px; font-size: clamp(30px, 4.6vw, 52px); font-weight: 700; line-height: 1.16; letter-spacing: -.025em; }
.detail-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; color: #c5c5c5; font-size: 13px; }
.detail-meta .ui-icon { width: 16px; height: 16px; }
.meta-dot { width: 3px; height: 3px; margin: 0 4px; border-radius: 50%; background: #858585; }
.detail-body { width: min(100% - 36px, 850px); margin: 0 auto; padding: 32px 0 calc(56px + var(--safe-bottom)); }
.article-heading { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 16px; }
.article-heading h2 { margin: 0; font-size: 20px; font-weight: 700; line-height: 1.4; }
.detail-intro p, .reading-section__body p { font-size: 17px; line-height: 1.85; color: #d4d4d4; overflow-wrap: anywhere; margin: 0 0 20px; }
.detail-intro { padding-bottom: 10px; }
.expand-button { padding: 8px 10px; border-radius: 8px; min-width: 130px; font-size: 13px; }
.expand-button .ui-icon { width: 17px; height: 17px; }
.expand-button[aria-pressed=true] .ui-icon { transform: rotate(180deg); }
.reading-sections { display: grid; gap: 12px; margin-top: 15px; }
.reading-section { border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); overflow: hidden; }
.reading-section summary { display: flex; align-items: center; gap: 15px; min-height: 78px; padding: 20px 24px; cursor: pointer; list-style: none; }
.reading-section summary::-webkit-details-marker { display: none; }
.reading-section summary h2 { flex: 1; min-width: 0; margin: 0; font-size: 16px; line-height: 1.5; font-weight: 600; }
.reading-section summary .ui-icon { width: 18px; height: 18px; color: var(--muted); }
.reading-section[open] summary { border-bottom: 1px solid var(--line); }
.reading-section[open] summary .ui-icon { transform: rotate(180deg); color: var(--gold); }
.section-number { font-size: 12px; font-weight: 500; color: var(--gold); flex-shrink: 0; }
.reading-section__body { padding: 24px; }
.reading-section__body p:last-child { margin-bottom: 0; }
.source-heading h3 { margin: 10px 0 0; font-size: 16px; font-weight: 600; color: var(--muted); }
.detail-note { padding: 20px; border: 1px solid var(--line); border-radius: var(--radius); color: var(--muted); background: var(--panel); line-height: 1.6; font-size: 15px; }
.related-content { margin-top: 36px; padding-top: 30px; border-top: 1px solid var(--line); }
.count-badge { padding: 4px 10px; border: 1px solid var(--gold-line); border-radius: 6px; color: var(--gold); background: rgb(245 183 0 / 8%); font-size: 12px; font-weight: 600; }
.related-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.related-item { min-height: 60px; display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 14px 18px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); text-align: left; }
.related-item span { color: #e5e5e5; font-size: 14px; line-height: 1.5; }
.related-item .ui-icon { color: var(--gold); width: 18px; height: 18px; }
.loading { min-height: 100dvh; display: grid; place-content: center; padding: 30px; text-align: center; color: var(--muted); }
@media (min-width: 760px) {
  .tile-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .tile { min-height: 240px; }
  .detail-hero { min-height: 370px; }
  .detail-intro p, .reading-section__body p { font-size: 18px; }
}
@media (min-width: 1200px) { .tile-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 560px) {
  .kiosk-banner { min-height: 76px; gap: 10px; padding: calc(10px + var(--safe-top)) 16px 10px; }
  .kiosk-banner__brand { width: 112px; min-height: 52px; }
  .kiosk-banner__brand img { max-height: 52px; }
  .kiosk-banner__tagline, .kiosk-banner__rule { display: none; }
  .kiosk-banner__nav { min-width: 46px; min-height: 46px; }
  .species-strip { grid-template-columns: 1fr; gap: 12px; }
  .species-card { min-height: 195px; }
  .species-card__copy { padding: 18px; }
  .home-search { padding: 16px; margin: 24px auto 30px; }
  .home-search__row { gap: 8px; }
  .search-field { padding: 0 10px; gap: 8px; }
  .search-field .ui-icon { width: 17px; height: 17px; }
  .home-search__row input { font-size: 14px; min-height: 50px; }
  .home-search__button { min-width: 78px; padding: 10px 14px; font-size: 14px; }
  .flag-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .home-areas__title h1 { font-size: 20px; }
  .home-areas__title .text-btn { font-size: 12px; gap: 4px; }
  .home-areas__title .ui-icon { width: 16px; height: 16px; }
  .home-all-links { flex-direction: column; align-items: center; gap: 0; }
  .search-result-card { gap: 12px; padding: 10px; }
  .search-result-card__copy strong { font-size: 15px; }
  .search-result-card__copy span { font-size: 12px; }
  .related-list { grid-template-columns: 1fr; }
  .reading-section summary { padding: 18px 16px; gap: 10px; }
  .reading-section summary h2 { font-size: 15px; }
  .reading-section__body { padding: 18px; }
  .article-heading h2 { font-size: 18px; }
  .expand-button { min-width: 116px; padding: 8px 0; font-size: 12px; }
}
@media (max-width: 360px) {
  .tile-grid { grid-template-columns: 1fr; }
  .home-search__row { flex-wrap: wrap; }
  .search-field { flex-basis: 100%; }
  .home-search__button { min-height: 48px; width: 100%; }
  .home-areas__title { flex-wrap: wrap; gap: 4px; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } .welcome__video { display: none; } }
/* Portal-branded navigation and tradeshow contact actions. */
a:focus-visible { outline: 3px solid var(--gold); outline-offset: 4px; }
.kiosk-banner__brand { gap: 7px; padding: 2px 0; }
.kiosk-banner__tagline { display: block; max-width: none; color: var(--gold); font-size: 11px; font-weight: 600; line-height: 1.4; text-align: center; white-space: nowrap; }
.kiosk-banner__actions { display: flex; align-items: center; gap: 10px; }
.home-search { margin-top: 0; }
.home-species { max-width: 1120px; margin: 0 auto 32px; }
.home-areas__title h1, .home-areas__title h2 { display: inline-flex; align-items: center; gap: 11px; margin: 0; color: white; font-size: 22px; font-weight: 700; line-height: 1.3; }
.home-areas__title h1 .ui-icon, .home-areas__title h2 .ui-icon { color: var(--gold); width: 23px; height: 23px; }
.contact-action { display: inline-flex; justify-content: center; align-items: center; gap: 10px; min-height: 52px; padding: 14px 20px; border: 1px solid var(--gold-line); border-radius: 8px; background: rgb(245 183 0 / 12%); color: var(--gold); text-decoration: none; font-size: 14px; font-weight: 600; line-height: 1.4; }
.contact-action:hover { background: rgb(245 183 0 / 20%); }
.contact-action--header { min-height: 48px; padding: 12px 15px; font-size: 13px; }
.kiosk-footer { padding: 32px clamp(18px, 4vw, 54px) calc(32px + var(--safe-bottom)); border-top: 1px solid var(--gold-line); background: linear-gradient(120deg, #17130a, #0c0900); }
.kiosk-footer__content { max-width: 1120px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.kiosk-footer__copy { max-width: 620px; }
.kiosk-footer h2 { margin: 9px 0 10px; color: white; font-size: clamp(23px, 3vw, 32px); line-height: 1.25; font-weight: 700; }
.kiosk-footer p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.7; }
@media (max-width: 700px) {
  .contact-action--header span { display: none; }
  .contact-action--header { min-width: 46px; padding: 12px; }
  .kiosk-footer__content { flex-direction: column; align-items: stretch; gap: 22px; }
  .kiosk-footer .contact-action { width: 100%; }
}
@media (max-width: 560px) {
  .kiosk-banner { gap: 8px; }
  .kiosk-banner__actions { gap: 8px; }
  .kiosk-banner__tagline { display: block; font-size: 9px; }
  .home-areas__title h1, .home-areas__title h2 { font-size: 19px; gap: 8px; }
  .home-areas__title h1 .ui-icon, .home-areas__title h2 .ui-icon { width: 20px; height: 20px; }
}
.intake-screen { max-width: 800px; margin: 0 auto; padding: 38px 22px 60px; }
.intake-intro { margin-bottom: 28px; }
.intake-intro h1, .intake-success h1 { margin: 12px 0 16px; font-size: clamp(30px,5vw,42px); font-weight: 700; letter-spacing: -.025em; line-height: 1.2; }
.intake-intro p, .intake-success p { color: var(--muted); font-size: 16px; line-height: 1.75; margin-bottom: 0; }
.intake-form { display: grid; gap: 20px; }
.intake-panel { border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); padding: 24px; }
.intake-panel h2 { display: flex; align-items: center; gap: 10px; font-size: 18px; margin: 0 0 24px; }
.intake-panel h2 .ui-icon { color: var(--gold); }
.intake-field { min-width: 0; margin: 0 0 20px; }
.intake-field:last-child { margin-bottom: 0; }
.intake-field>label { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px; margin: 0 0 9px; font-size: 14px; color: #e5e5e5; font-weight: 600; }
.intake-field>label>span { color: var(--muted); font-size: 11px; font-weight: 400; }
.intake-field input, .intake-field textarea { width: 100%; border: 1px solid var(--line); border-radius: 8px; background: var(--ink); color: white; min-height: 52px; padding: 13px 14px; font: inherit; font-size: 16px; }
.intake-field input::placeholder, .intake-field textarea::placeholder { color: #858585; }
.intake-field textarea { line-height: 1.6; resize: vertical; }
.intake-field input:focus, .intake-field textarea:focus { outline-color: var(--gold); }
.intake-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.intake-help { font-size: 13px; color: var(--muted); line-height: 1.6; margin: -5px 0 20px; }
.intake-grid+.intake-help { margin-top: -5px; }
.intake-extra summary { min-height: 48px; padding: 13px 0; color: #c5c5c5; cursor: pointer; font-size: 13px; }
.intake-extra .intake-field { margin-top: 12px; }
.interest-picker { display: flex; gap: 8px; }
.interest-picker input { min-width: 0; flex: 1; }
.interest-picker>button { padding: 10px 17px; border: 1px solid var(--gold-line); border-radius: 8px; color: var(--gold); background: rgb(245 183 0 / 10%); font-size: 14px; font-weight: 600; }
.interest-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.interest-tag { min-height: 42px; padding: 9px 12px; border: 1px solid var(--gold-line); border-radius: 7px; background: rgb(245 183 0 / 7%); color: #e5e5e5; font-size: 13px; line-height: 1.4; text-align: left; }
.interest-tag span { margin-left: 10px; color: var(--gold); font-size: 18px; }
.picker-hint { color: var(--muted); font-size: 12px; line-height: 1.5; margin: 8px 0 0; }
.picker-hint:empty { display: none; }
.intake-consent { display: flex; gap: 13px; align-items: flex-start; color: #d4d4d4; padding: 10px 0; font-size: 14px; line-height: 1.6; cursor: pointer; }
.intake-consent input { accent-color: var(--gold); width: 22px; height: 22px; margin: 0; flex-shrink: 0; }
.intake-submit { min-height: 58px; display: inline-flex; justify-content: center; align-items: center; gap: 12px; padding: 16px 24px; border: 1px solid var(--gold); border-radius: 8px; background: var(--gold); color: #050505; font-size: 16px; font-weight: 600; cursor: pointer; }
.intake-submit:disabled { cursor: wait; opacity: .6; }
.intake-privacy { margin: 0; color: var(--muted); font-size: 12px; text-align: center; line-height: 1.65; }
.intake-error { padding: 15px; border: 1px solid #ef444440; border-radius: 8px; color: #fca5a5; background: #ef444410; font-size: 14px; line-height: 1.6; margin: 0; }
.intake-trap { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.intake-success { padding-top: 75px; text-align: center; max-width: 650px; }
.success-icon { display: grid; place-items: center; width: 72px; height: 72px; border: 1px solid var(--gold-line); border-radius: 50%; color: var(--gold); background: #f5b70012; margin: 0 auto 30px; }
.success-icon .ui-icon { width: 30px; height: 30px; }
.intake-success .intake-submit { width: 100%; margin: 30px 0 8px; }
@media(max-width:560px) { .intake-panel { padding: 20px 16px; } .intake-grid { grid-template-columns: 1fr; gap: 0; } .intake-screen { padding: 30px 18px 50px; } }
/* Searchable multi-selects replace OS-rendered datalists so colours stay consistent. */
.interest-widget { position: relative; }
.interest-picker { align-items: center; gap: 10px; padding-left: 13px; border: 1px solid var(--line); border-radius: 8px; background: var(--ink); }
.interest-picker:focus-within { border-color: var(--gold); }
.interest-picker>.ui-icon { width: 18px; height: 18px; color: var(--muted); }
.interest-picker input { border: 0; background: transparent; padding-left: 0; padding-right: 0; outline: none; }
.interest-picker input::-webkit-search-cancel-button { -webkit-appearance: none; }
.interest-picker .interest-toggle { min-width: 48px; min-height: 50px; padding: 12px; border: 0; border-left: 1px solid var(--line); border-radius: 0 7px 7px 0; background: transparent; color: var(--muted); }
.interest-toggle[aria-expanded=true] .ui-icon { transform: rotate(180deg); color: var(--gold); }
.interest-dropdown { position: absolute; left: 0; right: 0; top: 100%; z-index: 20; border: 1px solid #ffffff2e; border-radius: 10px; background: #14120c; box-shadow: 0 18px 40px #000a; margin-top: 5px; overflow: hidden; }
.interest-dropdown[hidden] { display: none; }
.interest-options { max-height: 285px; overflow-y: auto; overscroll-behavior: contain; scrollbar-color: #655a34 #14120c; }
.interest-option { display: flex; align-items: center; gap: 11px; min-height: 56px; width: 100%; padding: 13px 14px; border: 0; border-bottom: 1px solid #ffffff0d; background: #14120c; color: #e5e5e5; text-align: left; }
.interest-option:last-child { border-bottom: 0; }
.interest-option:hover, .interest-option.is-active { background: #242014; }
.interest-option[aria-selected=true] { background: #f5b70016; }
.interest-option__copy { display: flex; flex: 1; min-width: 0; flex-direction: column; gap: 4px; font-size: 14px; line-height: 1.5; }
.interest-option__copy small { color: var(--muted); font-size: 11px; font-weight: 400; line-height: 1.5; }
.interest-option__check { display: grid; place-items: center; flex-shrink: 0; width: 20px; height: 20px; border: 1px solid #ffffff3d; border-radius: 5px; }
.interest-option[aria-selected=true] .interest-option__check { border-color: var(--gold); background: var(--gold); color: #050505; }
.interest-option__check .ui-icon { width: 15px; height: 15px; }
.choice-flags { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 3px; flex: 0 0 auto; max-width: 76px; }
.choice-flags img { width: 22px; height: 16px; border-radius: 3px; border: 1px solid #ffffff25; object-fit: cover; background: #fff; }
.flag-more { color: var(--muted); font-size: 10px; line-height: 1.2; }
.choice-fallback { display: grid; place-items: center; width: 24px; flex: 0 0 auto; color: var(--gold); }
.choice-fallback .ui-icon { width: 18px; height: 18px; }
.interest-tags { margin-top: 12px; }
.interest-tags:empty { margin: 0; }
.interest-tag { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; max-width: 100%; padding: 6px 6px 6px 11px; border-radius: 999px; }
.interest-tag span { margin: 0; font-size: inherit; color: inherit; }
.interest-tag .interest-tag__label { min-width: 0; overflow-wrap: anywhere; font-size: 13px; line-height: 1.45; }
.interest-tag .choice-flags { flex-wrap: nowrap; max-width: 65px; overflow: hidden; }
.interest-tag .choice-flags img { width: 18px; height: 13px; }
.interest-tag .flag-more { font-size: 9px; }
.interest-tag>button { display: grid; place-items: center; width: 32px; min-width: 32px; height: 32px; padding: 5px; border: 0; border-radius: 50%; background: transparent; color: var(--gold); }
.interest-tag>button:hover { background: #f5b7001c; }
.interest-tag>button .ui-icon { width: 16px; height: 16px; }
.interest-results-note, .interest-no-results { margin: 0; padding: 11px 14px; color: var(--muted); background: #14120c; font-size: 12px; line-height: 1.5; }
.interest-results-note { border-top: 1px solid var(--line); font-size: 11px; }
@media(max-width:560px) { .interest-options { max-height: 240px; } .interest-option { padding: 12px; gap: 8px; } .interest-option__copy { font-size: 13px; } .choice-flags { max-width: 52px; } }
.interest-tag { min-height: 50px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; }
.interest-tag>button { width: 44px; min-width: 44px; height: 44px; }

/* Local, tile-free interactive world map. */
.world-map-section { max-width:1120px; margin:36px auto 48px; }
.world-map-heading h1 { display:flex; align-items:center; gap:12px; color:var(--gold); font-size:clamp(24px,3vw,34px); margin:10px 0 12px; letter-spacing:-.025em; }
.world-map-heading h1 .ui-icon { width:28px; height:28px; }
.world-map-heading p { color:var(--muted); font-size:14px; line-height:1.6; margin-bottom:20px; }
.world-map-frame { position:relative; border:1px solid var(--gold-line); border-radius:12px; overflow:hidden; isolation:isolate; background:#11150f; }
.world-map-canvas { height:clamp(360px,43vw,530px); width:100%; background:#11150f; font-family:Arial,Helvetica,sans-serif; }
.world-map-toolbar { position:absolute; right:14px; bottom:14px; z-index:1000; display:flex; flex-direction:row; gap:6px; }
.world-map-toolbar button { display:grid; place-items:center; width:46px; height:46px; padding:10px; border:1px solid #ffffff2b; border-radius:8px; color:var(--gold); background:#14120cf5; box-shadow:0 3px 10px #0005; }
.world-map-toolbar button:disabled { opacity:.35; cursor:default; }
.world-map-toolbar button:focus-visible { outline-offset:-4px; }
.world-map-status { position:absolute; inset:0; display:grid; place-items:center; padding:32px; text-align:center; background:#11150f; color:var(--muted); z-index:900; }
.world-map-status[hidden] { display:none; }
.world-map-caption { display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; padding:13px 0; color:var(--muted); font-size:12px; line-height:1.5; }
.map-legend { display:inline-flex; align-items:center; gap:8px; }
.map-legend i { width:9px; height:9px; background:var(--gold); border-radius:50%; box-shadow:0 0 0 3px #f5b70026; }
.huntcon-map-pin { display:grid; place-items:center; background:transparent; border:0; }
.huntcon-map-pin span { width:7px; height:7px; border:1px solid #ffe394; border-radius:50%; background:var(--gold); box-shadow:0 0 0 3px #f5b70025,0 1px 5px #000; }
.huntcon-map-pin:focus-visible { outline:2px solid var(--gold); border-radius:50%; }
.huntcon-map-pin:hover span { transform:scale(1.4); background:#fff1bb; }
.huntcon-map-tooltip.leaflet-tooltip { background:#14120c; color:#fff; border:1px solid var(--gold-line); box-shadow:0 3px 12px #0008; font-family:Arial,Helvetica,sans-serif; font-size:12px; padding:7px 10px; }
.huntcon-map-tooltip.leaflet-tooltip-top:before { border-top-color:#64551e; }
.huntcon-map-popup .leaflet-popup-content-wrapper { background:#14120c; color:#fff; border:1px solid #f5b70066; border-radius:12px; box-shadow:0 12px 40px #0009; }
.huntcon-map-popup .leaflet-popup-content { margin:20px; font-family:Arial,Helvetica,sans-serif; line-height:1.4; }
.huntcon-map-popup .leaflet-popup-tip { background:#14120c; }
.huntcon-map-popup a.leaflet-popup-close-button { top:3px; right:3px; width:32px; height:32px; font-size:23px; line-height:30px; color:var(--muted); }
.huntcon-map-popup a.leaflet-popup-close-button:hover { color:var(--gold); }
.map-country-card__heading { display:flex; align-items:center; gap:12px; padding-right:7px; }
.map-country-card__heading img { width:43px; height:30px; object-fit:cover; border-radius:4px; border:1px solid #ffffff25; }
.map-country-card__heading span { font-size:9px; letter-spacing:.04em; color:var(--muted); }
.map-country-card__heading h2 { font-size:21px; margin:4px 0 0; color:var(--gold); line-height:1.25; }
.map-country-card__stats { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:20px 0; padding:16px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.map-country-card__stats>div { display:flex; flex-direction:column; gap:4px; }
.map-country-card__stats strong { font-size:27px; line-height:1.1; }
.map-country-card__stats span { font-size:12px; }
.map-country-card__stats small { font-size:10px; color:var(--muted); }
.map-country-card p.map-data-note { margin:-8px 0 14px; font-size:10px; color:var(--muted); }
.map-explore-button { width:100%; min-height:46px; display:flex; justify-content:space-between; align-items:center; padding:11px 14px; background:var(--gold); color:#0c0900; font-weight:700; font-size:13px; border:1px solid var(--gold); border-radius:8px; }
.map-country-picker { border:1px solid var(--line); border-radius:8px; background:var(--panel); }
.map-country-picker summary { min-height:48px; padding:14px 16px; display:flex; justify-content:space-between; align-items:center; color:#e5e5e5; font-size:13px; cursor:pointer; list-style:none; }
.map-country-picker summary::-webkit-details-marker { display:none; }
.map-country-picker[open] summary .ui-icon { transform:rotate(180deg); }
.map-country-list { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; max-height:260px; overflow-y:auto; padding:8px 12px 12px; scrollbar-color:#655a34 var(--panel); }
.map-country-list button { display:flex; gap:9px; align-items:center; text-align:left; min-height:48px; padding:9px; font-size:12px; border:1px solid var(--line); border-radius:6px; background:#1a1812; }
.map-country-list img { width:24px; height:17px; object-fit:cover; border-radius:2px; }
.world-map-credit { text-align:right; font-size:10px; margin:9px 0 0; color:#86867d; }
.world-map-credit a { color:inherit; text-underline-offset:2px; }
.country-screen { max-width:1200px; margin:0 auto; }
.country-overview { position:relative; margin-top:24px; padding:clamp(22px,4vw,42px); border:1px solid var(--gold-line); border-radius:12px; background:var(--panel); }
.country-overview__flag { width:70px; height:48px; object-fit:cover; border-radius:6px; margin-bottom:20px; display:block; }
.country-overview h1 { color:var(--gold); margin:10px 0 18px; font-size:clamp(30px,5vw,48px); }
.country-overview p { max-width:800px; color:#c2c2bb; font-size:15px; line-height:1.8; }
.country-overview__stats { display:flex; gap:46px; margin:24px 0 18px; }
.country-overview__stats>div { display:flex; flex-direction:column; gap:7px; }
.country-overview__stats strong { font-size:32px; }
.country-overview__stats span { color:var(--muted); font-size:12px; }
.country-overview p.country-count-note { font-size:11px; color:var(--muted); }
.country-overview__actions { display:flex; gap:18px; align-items:center; flex-wrap:wrap; margin-top:24px; }
.country-regions,.country-species { margin-top:36px; }
.country-species h2 { display:flex; gap:10px; align-items:center; }
@media(max-width:560px) {
 .world-map-section { margin:28px auto 36px; }
 .world-map-canvas { height:420px; }
 .world-map-toolbar { right:9px; bottom:9px; }
 .world-map-toolbar button { width:44px; height:44px; }
 .world-map-caption { font-size:11px; gap:6px; }
 .map-country-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .map-country-list button { font-size:11px; gap:7px; }
 .huntcon-map-popup .leaflet-popup-content { margin:16px; }
 .country-overview__stats { gap:30px; }
}

/* Country geometry uses the yellow highlight rather than a browser focus box. */
.world-map-canvas path.leaflet-interactive:focus { outline:none; }
.world-map-canvas path.leaflet-interactive:focus-visible { stroke:#ffd044; stroke-width:2; }
.huntcon-map-pin:focus { outline:none; }
.huntcon-map-pin:focus-visible { outline:2px solid var(--gold); }
.idle-warning { position:fixed; z-index:2000; inset:auto 0 0; padding:22px clamp(18px,4vw,54px) calc(22px + var(--safe-bottom)); background:#14120c; border-top:1px solid var(--gold-line); box-shadow:0 -12px 36px #0009; }
.idle-warning__content { display:flex; align-items:center; justify-content:space-between; gap:20px; max-width:1120px; margin:auto; }
.idle-warning h2 { margin:0 0 7px; font-size:20px; color:var(--gold); }
.idle-warning p { margin:0; color:var(--muted); font-size:13px; line-height:1.6; }
.idle-warning__continue { display:flex; align-items:center; justify-content:center; gap:20px; min-height:48px; padding:12px 22px; border:1px solid var(--gold); border-radius:8px; background:var(--gold); color:var(--ink); font-weight:700; }
.idle-warning__progress { position:absolute; top:0; left:0; width:100%; height:4px; background:#f5b70024; }
.idle-warning__progress span { display:block; height:100%; width:100%; background:var(--gold); transition:width .1s linear; }
@media(max-width:560px){ .idle-warning__content { align-items:stretch; flex-direction:column; gap:14px; } .idle-warning h2 { font-size:18px; } }
@media(prefers-reduced-motion:reduce){ .idle-warning__progress span { transition:none; } }

body { padding-bottom:34px; }
.kiosk-status { position:fixed; inset:auto 0 0; z-index:1100; display:flex; gap:8px; justify-content:center; align-items:center; width:100%; min-height:34px; padding:7px 12px calc(7px + env(safe-area-inset-bottom,0px)); border:0; border-top:1px solid #ffffff1a; background:#14120cf5; color:#a3a3a3; font-size:11px; line-height:1.5; }
.kiosk-status__dot { width:6px; height:6px; border-radius:50%; background:#7f9c65; flex-shrink:0; }
.kiosk-status.has-pending .kiosk-status__dot { background:var(--gold); }
.kiosk-status.has-pending { color:var(--gold); }
.offline-setup { width:min(600px,calc(100vw - 28px)); max-height:85dvh; padding:24px; border:1px solid var(--gold-line); border-radius:12px; background:var(--panel); color:var(--text); overflow-y:auto; font-family:Arial,Helvetica,sans-serif; }
.offline-setup::backdrop { background:#000b; }
.offline-setup__heading { display:flex; justify-content:space-between; align-items:center; gap:16px; }
.offline-setup h2 { color:var(--gold); margin:0; font-size:23px; }
.offline-setup__heading button { width:44px; height:44px; border:1px solid var(--line); border-radius:8px; background:var(--card); font-size:25px; }
.offline-setup__state { color:var(--gold); font-size:13px; line-height:1.7; }
.offline-setup dl { margin:22px 0; }
.offline-setup dl>div { padding:13px 0; border-bottom:1px solid var(--line); }
.offline-setup dt { font-weight:700; font-size:13px; }
.offline-setup dd { margin:6px 0 0; color:var(--muted); font-size:13px; line-height:1.6; }
.offline-setup__actions { display:flex; flex-wrap:wrap; gap:10px; }
.offline-setup__actions button { min-height:44px; border:1px solid var(--gold-line); border-radius:8px; padding:10px 14px; background:#f5b70018; color:var(--gold); font-size:13px; }
.offline-setup__help { color:var(--muted); font-size:12px; line-height:1.7; margin:18px 0 0; }
