:root {
  --navy: #102a56;
  --navy-2: #1d3d73;
  --red: #c72d3a;
  --blue: #3e83c5;
  --sky: #ddecf8;
  --cream: #fffaf4;
  --ink: #14233a;
  --muted: #68758a;
  --line: #d9e2ec;
  --white: #ffffff;
  --green: #1f8a62;
  --shadow: 0 16px 40px rgba(16, 42, 86, 0.12);
}
* { box-sizing: border-box; }
body {
  margin: 0;
  background: linear-gradient(180deg, #f7fbff 0%, #fff8f6 100%);
  color: var(--ink);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.app-shell { width: min(100%, 680px); margin: 0 auto; min-height: 100vh; }
.brand-header { background: white; padding: 10px 14px 4px; position: sticky; top: 0; z-index: 20; border-bottom: 1px solid #edf2f7; }
.brand-logo { width: min(100%, 560px); display:block; margin:0 auto; object-fit:contain; }
main { padding: 16px; }
.panel, .passport-card {
  background: rgba(255,255,255,.96);
  border: 1px solid rgba(16,42,86,.08);
  border-radius: 22px;
  padding: 20px;
  box-shadow: var(--shadow);
  margin-bottom: 16px;
}
.hero-panel { text-align: center; padding: 28px 22px; }
.hero-panel h1 { font-size: clamp(30px, 8vw, 46px); line-height: 1.02; margin: 8px 0 12px; color: var(--navy); }
h2 { margin: 5px 0 8px; color: var(--navy); font-size: 24px; line-height: 1.15; }
.lead { font-size: 17px; line-height: 1.55; margin: 0 auto 18px; max-width: 480px; }
.eyebrow { color: var(--red); font-size: 12px; font-weight: 800; letter-spacing: .12em; margin: 0 0 6px; }
.muted { color: var(--muted); }
.small { font-size: 13px; }
.event-meta { display: grid; gap: 7px; color: var(--navy-2); font-weight: 650; margin: 18px 0 22px; }
.primary-button, .secondary-button {
  border: 0;
  border-radius: 14px;
  padding: 14px 18px;
  font-weight: 800;
  width: 100%;
}
.primary-button { background: linear-gradient(135deg, var(--navy), var(--blue)); color: white; }
.secondary-button { background: #eef4fb; color: var(--navy); border: 1px solid #cad9ea; }
.primary-button:disabled, .secondary-button:disabled { opacity: .55; cursor: wait; }
.stack-form { display: grid; gap: 14px; margin-top: 18px; }
.stack-form label, .rating-fieldset legend { font-weight: 700; color: var(--navy); font-size: 14px; }
.stack-form input, .stack-form select, .stack-form textarea {
  width: 100%; margin-top: 6px; border: 1px solid #cbd7e5; border-radius: 12px; padding: 13px 14px; background: white; color: var(--ink); outline: none;
}
.stack-form input:focus, .stack-form select:focus, .stack-form textarea:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(62,131,197,.12); }
.compact-form { margin-top: 14px; }
.passport-card { background: linear-gradient(140deg, var(--navy) 0%, #1a4f85 70%, var(--red) 140%); color: white; overflow: hidden; position: relative; }
.passport-card:after { content:""; position:absolute; width:180px; height:180px; border-radius:50%; background:rgba(255,255,255,.08); right:-60px; top:-70px; }
.passport-card .eyebrow, .passport-card h2, .passport-card .muted { color: white; }
.passport-topline { display: flex; justify-content: space-between; gap: 16px; align-items: start; position: relative; z-index: 1; }
.passport-id-wrap { text-align: right; font-size: 11px; opacity: .95; }
.passport-id-wrap strong { display: block; font-size: 15px; margin-top: 5px; letter-spacing: .05em; }
.progress-wrap { margin-top: 20px; position: relative; z-index: 1; }
.progress-label { display:flex; justify-content:space-between; font-size: 13px; font-weight:800; }
.progress-bar { height: 10px; background: rgba(255,255,255,.22); border-radius: 999px; overflow:hidden; margin: 8px 0 10px; }
#progressFill { height:100%; width:0%; border-radius:999px; background:linear-gradient(90deg,#fff,#ffcad2); transition:width .25s ease; }
.zone-grid { display: grid; gap: 12px; margin-top: 14px; }
.zone-card { border: 1px solid var(--line); border-radius: 18px; padding: 15px; display: grid; grid-template-columns: 52px 1fr auto; gap: 12px; align-items: center; background: #fff; }
.zone-icon { width: 52px; height: 52px; border-radius: 16px; display:flex; align-items:center; justify-content:center; font-weight:900; font-size:20px; color:white; box-shadow:inset 0 0 0 1px rgba(255,255,255,.25); }
.zone-copy strong { color: var(--navy); display:block; font-size: 15px; }
.zone-copy span { color: var(--muted); font-size:12px; }
.stamp-status { font-size: 12px; font-weight: 800; color: var(--muted); border-radius: 999px; padding: 7px 9px; background: #f2f5f8; }
.zone-card.stamped { border-color: rgba(31,138,98,.35); background: #f4fcf8; }
.zone-card.stamped .stamp-status { background:#dff5ea; color:var(--green); }
.complete-panel { text-align:center; border: 2px solid rgba(31,138,98,.24); background: linear-gradient(180deg,#f8fffb,#fff); }
.celebration-icon { width:58px; height:58px; border-radius:50%; display:grid; place-items:center; margin:0 auto 10px; color:white; background:var(--green); font-size:28px; font-weight:900; }
.action-row { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:16px; }
.status-banner { border-radius: 14px; padding: 12px 14px; margin-bottom: 14px; font-weight: 700; background: #eef4fb; color: var(--navy); border: 1px solid #d4e3f2; }
.status-banner.success { background:#e8f8ef; color:#146447; border-color:#ccebd9; }
.status-banner.error { background:#fff0f1; color:#9d2330; border-color:#f1cbd0; }
.rating-fieldset { border:0; padding:0; margin:0; }
.rating-row { display:grid; grid-template-columns:repeat(5,1fr); gap:8px; margin-top:8px; }
.rating-row label { position:relative; }
.rating-row input { position:absolute; opacity:0; }
.rating-row span { display:grid; place-items:center; aspect-ratio:1; border-radius:13px; border:1px solid #cad7e5; background:#f8fafc; color:var(--navy); }
.rating-row input:checked + span { background:var(--navy); color:white; border-color:var(--navy); }
.success-copy { border-radius: 12px; background:#e8f8ef; color:#146447; padding:12px; font-weight:700; }
.info-panel { background: linear-gradient(135deg,#fff7f6,#f4f8ff); }
.site-footer { padding: 8px 16px 28px; text-align:center; color: var(--muted); font-size:12px; }
.footer-strip { width:100%; display:block; border-radius:12px; margin-bottom:10px; }
.hidden { display:none !important; }
@media (min-width:560px) {
  .zone-grid { grid-template-columns:1fr 1fr; }
  .zone-card { grid-template-columns:50px 1fr; }
  .stamp-status { grid-column: 1 / -1; justify-self:start; }
}

.hero-actions { display:grid; gap:10px; margin-top:8px; }
.register-button {
  display:block;
  text-decoration:none;
  border-radius:14px;
  padding:14px 18px;
  font-weight:800;
  width:100%;
  background:#fff0f1;
  color:var(--red);
  border:1px solid #efc4ca;
  text-align:center;
}
.register-button:hover { background:#ffe5e8; }
@media (min-width:560px) {
  .hero-actions { grid-template-columns:1fr 1fr; }
}

.registration-note {
  margin: 0 auto 14px;
  max-width: 520px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
}
.official-links { text-align:center; }
.official-link-grid { display:grid; gap:10px; margin-top:14px; }
.official-link-grid a {
  display:block;
  text-decoration:none;
  padding:13px 14px;
  border-radius:12px;
  border:1px solid #d6e0ec;
  background:#f8fbff;
  color:var(--navy);
  font-weight:800;
}
@media (min-width:560px) {
  .official-link-grid { grid-template-columns:1fr 1fr; }
}

.countdown-card { margin:18px auto; padding:16px; border-radius:18px; background:linear-gradient(135deg,#102a56,#264f83); color:white; max-width:520px; box-shadow:0 12px 30px rgba(16,42,86,.16); }
.countdown-card .eyebrow { color:#ffd7dc; }
.countdown-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.countdown-grid div { background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.14); border-radius:14px; padding:10px 4px; }
.countdown-grid strong { display:block; font-size:24px; line-height:1; }
.countdown-grid span { display:block; margin-top:5px; font-size:10px; text-transform:uppercase; letter-spacing:.08em; opacity:.85; }
.countdown-status { margin:10px 0 0; font-size:12px; opacity:.9; }
.achievement-panel { background:linear-gradient(135deg,#fffdf8,#f6f9ff); }
.badge-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin-top:14px; }
.badge-chip { border-radius:16px; padding:13px; border:1px solid #dbe4ee; background:#f7f9fc; min-height:86px; display:flex; flex-direction:column; justify-content:center; }
.badge-chip strong { color:var(--navy); font-size:13px; }
.badge-chip span { font-size:22px; margin-bottom:5px; filter:grayscale(1); opacity:.38; }
.badge-chip small { color:var(--muted); margin-top:3px; }
.badge-chip.unlocked { background:linear-gradient(135deg,#fff7e8,#eef8ff); border-color:#efcf96; box-shadow:0 8px 20px rgba(16,42,86,.08); }
.badge-chip.unlocked span { filter:none; opacity:1; }
.game-hub { background:linear-gradient(135deg,#f9f4ff,#fff7f5); }
.game-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:14px; }
.game-card { border:1px solid #d9e2ec; border-radius:18px; padding:16px 12px; background:white; color:var(--navy); text-align:left; box-shadow:0 8px 20px rgba(16,42,86,.06); }
.game-card strong,.game-card small { display:block; }
.game-card small { color:var(--muted); margin-top:4px; }
.game-icon { width:36px; height:36px; display:grid; place-items:center; border-radius:12px; background:#edf4fb; color:var(--navy); font-weight:900; font-size:18px; margin-bottom:12px; }
.quiz-form { display:grid; gap:14px; margin-top:14px; }
.quiz-form fieldset { border:1px solid var(--line); border-radius:16px; padding:14px; display:grid; gap:8px; }
.quiz-form legend { color:var(--navy); font-weight:800; padding:0 5px; }
.quiz-form label { display:flex; align-items:flex-start; gap:8px; color:var(--ink); font-size:14px; }
.game-result { margin-top:14px; padding:14px; border-radius:14px; background:#e8f8ef; color:#146447; font-weight:750; }
.scavenger-list { display:grid; gap:10px; margin:14px 0; }
.scavenger-list label { display:grid; grid-template-columns:24px 1fr; gap:10px; padding:14px; border:1px solid var(--line); border-radius:16px; background:#fff; }
.scavenger-list strong,.scavenger-list small { display:block; }
.scavenger-list strong { color:var(--navy); }
.scavenger-list small { color:var(--muted); margin-top:3px; line-height:1.4; }
.mission-progress { text-align:center; color:var(--navy); margin:10px 0 14px; }
.final-badge-card { margin:16px auto 12px; padding:16px; max-width:390px; border-radius:18px; background:linear-gradient(135deg,#102a56,#c72d3a); color:white; box-shadow:0 12px 26px rgba(16,42,86,.16); }
.final-badge-card span,.final-badge-card small,.final-badge-card strong { display:block; }
.final-badge-card span { font-size:10px; letter-spacing:.12em; font-weight:800; opacity:.8; }
.final-badge-card strong { font-size:24px; margin:5px 0; }
.share-button { width:100%; border:1px solid #e9c4c8; background:#fff3f4; color:var(--red); border-radius:14px; padding:13px 16px; font-weight:800; margin-top:4px; }
.confetti-piece { position:fixed; top:-20px; width:10px; height:16px; border-radius:3px; z-index:9999; pointer-events:none; animation:confettiFall 1.8s ease-in forwards; }
@keyframes confettiFall { to { transform:translate(var(--x),110vh) rotate(720deg); opacity:.8; } }
.admin-grid { display:grid; gap:12px; }
.admin-link { display:block; text-decoration:none; background:white; border:1px solid var(--line); border-radius:16px; padding:16px; color:var(--navy); font-weight:800; }
.admin-link small { display:block; color:var(--muted); font-weight:500; margin-top:4px; line-height:1.4; }
.admin-note { padding:14px; background:#fff7e8; border:1px solid #efd49f; border-radius:14px; color:#77571f; font-size:13px; line-height:1.5; }
@media (max-width:430px) { .game-grid { grid-template-columns:1fr; } }
.journey-group { margin:18px 0 24px; padding-top:4px; }
.journey-group + .journey-group { border-top:1px solid #edf1f5; padding-top:22px; }
.journey-heading { display:flex; justify-content:space-between; gap:14px; align-items:flex-start; margin-bottom:12px; }
.journey-heading h3 { margin:3px 0 5px; color:var(--navy); font-size:20px; line-height:1.15; }
.journey-heading p { margin:0; color:var(--muted); font-size:12px; line-height:1.45; max-width:430px; }
.journey-heading > strong { flex:0 0 auto; min-width:56px; text-align:center; padding:8px 9px; border-radius:999px; background:#eef4fb; color:var(--navy); font-size:12px; }
.journey-kicker { display:block; color:var(--red); font-size:10px; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.journey-cards { display:grid; gap:10px; }
.pending-group { padding:16px; border:1px dashed #cbd7e5 !important; border-radius:18px; background:#fafcff; }
.pending-group .journey-heading { margin:0; }
.pending-group .journey-heading > strong { background:#fff3e0; color:#8a5c12; }
@media (min-width:560px) { .journey-cards { grid-template-columns:1fr 1fr; } .journey-cards .zone-card { grid-template-columns:46px 1fr; } .journey-cards .stamp-status { grid-column:1 / -1; justify-self:start; } }
@media (max-width:430px) { .journey-heading { align-items:center; } .journey-heading h3 { font-size:18px; } .zone-icon { width:46px; height:46px; border-radius:14px; font-size:17px; } }
.setup-grid { display:grid; gap:9px; margin-top:14px; }
.setup-card { display:flex; justify-content:space-between; gap:10px; align-items:center; padding:12px 13px; border:1px solid var(--line); border-radius:14px; background:#fff; }
.setup-card strong,.setup-card code,.setup-type { display:block; }
.setup-card strong { color:var(--navy); margin:2px 0 4px; }
.setup-card code { color:var(--muted); font-size:11px; }
.setup-type { color:var(--red); font-size:9px; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.setup-status { flex:0 0 auto; padding:6px 8px; border-radius:999px; font-size:10px; font-weight:800; background:#eef4fb; color:var(--navy); }
.setup-status.confirmed { background:#e8f8ef; color:#146447; }
.setup-status.title-needed { background:#fff3e0; color:#8a5c12; }
.need-grid { display:grid; gap:10px; margin-top:14px; }
.need-grid > div { padding:13px; border:1px solid var(--line); border-radius:14px; background:#fafcff; }
.need-grid strong,.need-grid small { display:block; }
.need-grid strong { color:var(--navy); font-size:13px; }
.need-grid small { color:var(--muted); margin-top:3px; line-height:1.4; }
@media (min-width:560px) { .setup-grid,.need-grid { grid-template-columns:1fr 1fr; } }
.journey-preview { margin:18px 0; padding:16px; border:1px solid #dce6f0; border-radius:18px; background:linear-gradient(135deg,#fff9f6,#f5f9ff); text-align:left; }
.journey-preview h2 { font-size:20px; margin:3px 0 12px; }
.journey-preview-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:9px; }
.journey-preview-grid div { padding:12px; border-radius:14px; background:white; border:1px solid #e7edf3; }
.journey-preview-grid strong { display:block; color:var(--navy); font-size:22px; line-height:1; }
.journey-preview-grid span { display:block; margin-top:5px; color:var(--muted); font-size:11px; line-height:1.3; }
.journey-preview small { display:block; margin-top:10px; color:var(--muted); line-height:1.4; }

/* RESPONSIVE SYMMETRY PASS 2026-10-29 */
:root {
  --page-max: 900px;
  --page-gutter: clamp(14px, 3vw, 24px);
  --card-gap: 16px;
}
html { overflow-x: hidden; }
body { min-width: 320px; }
.app-shell {
  width: 100%;
  max-width: var(--page-max);
  margin: 0 auto;
}
.brand-header {
  width: 100%;
  padding: 10px var(--page-gutter) 6px;
}
.brand-logo {
  width: min(100%, 560px);
  height: auto;
}
main {
  width: 100%;
  padding: var(--page-gutter);
}
.panel, .passport-card {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: var(--card-gap);
}
.hero-panel {
  padding: clamp(22px, 4vw, 34px);
}
.hero-panel > .eyebrow,
.hero-panel > h1,
.hero-panel > .lead,
.hero-panel > .event-meta,
.hero-panel > .registration-note {
  text-align: center;
}
.hero-panel > .eyebrow { margin-left: auto; margin-right: auto; }
.hero-panel h1 {
  font-size: clamp(32px, 5.2vw, 48px);
  max-width: 680px;
  margin-left: auto;
  margin-right: auto;
}
.lead {
  max-width: 620px;
}
.event-meta {
  max-width: 620px;
  margin-left: auto;
  margin-right: auto;
}
.countdown-card, .journey-preview, .registration-note, .hero-actions {
  width: 100%;
  max-width: 620px;
  margin-left: auto;
  margin-right: auto;
}
.journey-preview { text-align: center; }
.journey-preview .eyebrow, .journey-preview h2, .journey-preview small { text-align: center; }
.journey-preview-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.journey-preview-grid div {
  min-width: 0;
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 88px;
}
.hero-actions {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
}
.hero-actions > * { min-width: 0; min-height: 50px; }
.primary-button, .secondary-button, .register-button, .share-button {
  min-height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.official-links {
  width: auto;
  margin: 0 var(--page-gutter) var(--card-gap);
  text-align: center;
}
.official-link-grid {
  max-width: 620px;
  margin-left: auto;
  margin-right: auto;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.official-link-grid a {
  min-height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.site-footer {
  padding-left: var(--page-gutter);
  padding-right: var(--page-gutter);
}
.section-heading { text-align: left; }
.game-grid, .badge-grid, .setup-grid, .need-grid { align-items: stretch; }
.game-card, .badge-chip, .setup-card, .need-grid > div { height: 100%; }
@media (min-width: 760px) {
  .zone-grid, .journey-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .zone-card, .journey-cards .zone-card { min-height: 132px; }
  .badge-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 759px) {
  .journey-preview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero-actions, .official-link-grid { grid-template-columns: 1fr; }
  .hero-panel { padding: 24px 18px; }
  .panel, .passport-card { border-radius: 20px; padding: 18px; }
  .brand-header { position: sticky; }
}
@media (max-width: 430px) {
  :root { --page-gutter: 12px; --card-gap: 12px; }
  .brand-header { padding-top: 8px; padding-bottom: 5px; }
  .hero-panel { padding: 22px 16px; }
  .hero-panel h1 { font-size: 34px; }
  .lead { font-size: 16px; }
  .countdown-card, .journey-preview { padding: 14px; border-radius: 16px; }
  .countdown-grid { gap: 6px; }
  .countdown-grid div { padding: 9px 2px; border-radius: 12px; }
  .countdown-grid strong { font-size: 21px; }
  .journey-preview-grid { gap: 7px; }
  .journey-preview-grid div { min-height: 82px; padding: 10px 8px; }
  .passport-topline { flex-direction: column; align-items: flex-start; }
  .passport-id-wrap { text-align: left; }
  .action-row { grid-template-columns: 1fr; }
  .badge-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rating-row { gap: 6px; }
}
@media (max-width: 350px) {
  .journey-preview-grid, .badge-grid { grid-template-columns: 1fr; }
}

/* BRAND LOCKUP PASS 2026-10-29 */
.brand-lockup {
  width: 100%;
  max-width: 760px;
  margin: 0 auto;
  padding: 6px 0 10px;
  text-align: center;
}
.brand-mark-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: center;
  justify-items: center;
  gap: clamp(14px, 4vw, 34px);
  max-width: 500px;
  margin: 0 auto 8px;
}
.brand-mark-item {
  min-width: 0;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.brand-mark-item img {
  display: block;
  max-width: 100%;
  max-height: 60px;
  width: auto;
  height: auto;
  object-fit: contain;
}
.brand-mark-flag img { max-width: 118px; }
.brand-mark-state img { width: 58px; height: 58px; }
.brand-mark-summit {
  flex-direction: column;
  gap: 1px;
}
.brand-mark-summit img { max-height: 48px; max-width: 84px; }
.brand-mark-summit span {
  color: var(--navy);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .11em;
  line-height: 1;
}
.fair-wordmark strong, .fair-wordmark span { display: block; }
.fair-wordmark strong {
  color: var(--navy);
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(25px, 4.8vw, 40px);
  line-height: .95;
  letter-spacing: -.03em;
}
.fair-wordmark span {
  margin-top: 5px;
  color: var(--navy);
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(12px, 2vw, 17px);
  letter-spacing: .32em;
  padding-left: .32em;
}
@media (max-width: 430px) {
  .brand-lockup { padding-top: 2px; padding-bottom: 7px; }
  .brand-mark-row { gap: 10px; max-width: 330px; margin-bottom: 6px; }
  .brand-mark-item { height: 50px; }
  .brand-mark-item img { max-height: 47px; }
  .brand-mark-flag img { max-width: 92px; }
  .brand-mark-state img { width: 46px; height: 46px; }
  .brand-mark-summit img { max-height: 37px; max-width: 68px; }
  .brand-mark-summit span { font-size: 7.5px; }
}

/* OFFICIAL USER-SUPPLIED BRAND ASSETS 2026-10-29 */
.official-brand-lockup {
  max-width: 760px;
}
.official-brand-row {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  align-items: center;
  justify-items: center;
  gap: clamp(16px, 4vw, 34px);
  width: 100%;
  max-width: 620px;
  margin: 0 auto 10px;
}
.official-brand-row img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}
.official-us-state { max-width: 330px; }
.official-yseali-summit { max-width: 280px; }
@media (max-width: 560px) {
  .official-brand-row {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
    gap: 10px;
    max-width: 365px;
    margin-bottom: 7px;
  }
  .official-us-state { max-width: 195px; }
  .official-yseali-summit { max-width: 160px; }
}
@media (max-width: 360px) {
  .official-brand-row { gap: 7px; }
  .official-us-state { max-width: 175px; }
  .official-yseali-summit { max-width: 140px; }
}

/* FINAL OFFICIAL HEADER TREATMENT 2026-10-29 */
.brand-header {
  background: #071a38;
  border-bottom: 0;
  box-shadow: 0 8px 24px rgba(7,26,56,.16);
  padding-top: 12px;
  padding-bottom: 12px;
}
.official-brand-lockup {
  width: 100%;
  max-width: 760px;
  margin: 0 auto;
  padding: 0;
}
.official-brand-row {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  align-items: center;
  justify-items: center;
  gap: clamp(18px, 4vw, 38px);
  width: 100%;
  max-width: 650px;
  margin: 0 auto 10px;
}
.official-brand-row img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}
.official-us-state { max-width: 335px; }
.official-yseali-summit { max-width: 285px; }
.fair-wordmark { text-align: center; }
.fair-wordmark strong { color: #ffffff; }
.fair-wordmark span { color: #e03a4d; }
@media (max-width: 560px) {
  .brand-header { padding-top: 10px; padding-bottom: 10px; }
  .official-brand-row {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
    gap: 10px;
    max-width: 365px;
    margin-bottom: 7px;
  }
  .official-us-state { max-width: 195px; }
  .official-yseali-summit { max-width: 160px; }
  .fair-wordmark strong { font-size: 27px; }
  .fair-wordmark span { font-size: 11px; margin-top: 3px; }
}
@media (max-width: 360px) {
  .official-brand-row { gap: 7px; }
  .official-us-state { max-width: 170px; }
  .official-yseali-summit { max-width: 138px; }
}

/* FINAL FAIR BANNER 2026-10-29 */
.banner-header {
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
  padding: 12px var(--page-gutter) 4px;
  background: transparent;
}
.brand-banner-image {
  display: block;
  width: 100%;
  height: auto;
  max-height: 360px;
  object-fit: contain;
  object-position: center;
  border-radius: 18px;
}
@media (max-width: 759px) {
  .banner-header { padding-top: 8px; }
  .brand-banner-image { border-radius: 14px; }
}
@media (max-width: 430px) {
  .banner-header { padding: 7px 10px 2px; }
  .brand-banner-image { border-radius: 12px; }
}
/* COUNTDOWN DATE FORMAT 2026-10-29 */
.countdown-date {
  margin: -2px 0 12px;
  text-align: center;
  font-weight: 800;
  font-size: 15px;
  letter-spacing: .01em;
  color: #ffffff;
}
@media (max-width: 430px) {
  .countdown-date { font-size: 14px; margin-bottom: 10px; }
}

/* COUNTDOWN REFINEMENT 2026-10-29 */
.countdown-grid {
  gap: 10px;
}
.countdown-grid div {
  min-width: 0;
  padding: 12px 6px;
  min-height: 76px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.countdown-grid strong {
  font-size: clamp(24px, 4vw, 32px);
  font-variant-numeric: tabular-nums;
  letter-spacing: .02em;
}
.countdown-grid span {
  margin-top: 7px;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .1em;
  white-space: nowrap;
}
@media (max-width: 430px) {
  .countdown-grid { gap: 6px; }
  .countdown-grid div { min-height: 68px; padding: 10px 2px; }
  .countdown-grid strong { font-size: 22px; }
  .countdown-grid span { font-size: 7.5px; letter-spacing: .06em; }
}

/* COUNTDOWN DATE FORMAT */
.countdown-date {
  margin: 4px 0 14px;
  text-align: center;
  color: #ffffff;
  font-size: clamp(17px, 3vw, 22px);
  font-weight: 800;
  letter-spacing: .01em;
}
@media (max-width: 430px) {
  .countdown-date { font-size: 18px; margin-bottom: 12px; }
}

/* DAYS ONLY COUNTDOWN FINAL */
.countdown-grid-days-only {
  display: flex;
  justify-content: center;
  align-items: center;
  max-width: 260px;
  margin: 14px auto 0;
}
.countdown-grid-days-only .countdown-days-only {
  width: 100%;
  min-height: 150px;
  padding: 22px 18px;
  border-radius: 22px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.18);
}
.countdown-grid-days-only strong {
  font-size: clamp(52px, 10vw, 76px);
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.countdown-grid-days-only span {
  margin-top: 12px;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .18em;
}
.countdown-date { display: none !important; }
@media (max-width: 430px) {
  .countdown-grid-days-only { max-width: 220px; }
  .countdown-grid-days-only .countdown-days-only { min-height: 136px; padding: 20px 14px; }
  .countdown-grid-days-only strong { font-size: 58px; }
  .countdown-grid-days-only span { font-size: 12px; }
}

/* THREE UNIT COUNTDOWN FINAL 2026-10-29 */
.countdown-grid-three {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  max-width: 560px;
  margin: 14px auto 0;
}
.countdown-grid-three > div {
  min-width: 0;
  min-height: 96px;
  padding: 14px 8px;
  border-radius: 18px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.18);
}
.countdown-grid-three strong {
  font-size: clamp(30px, 6vw, 44px);
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.countdown-grid-three span {
  margin-top: 9px;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .1em;
  white-space: nowrap;
}
@media (max-width: 430px) {
  .countdown-grid-three { gap: 7px; }
  .countdown-grid-three > div { min-height: 86px; padding: 12px 4px; }
  .countdown-grid-three strong { font-size: 32px; }
  .countdown-grid-three span { font-size: 7.5px; letter-spacing: .06em; }
}

/* WIDE SLIM FAIR BANNER 2026-10-29 */
.banner-header {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
  padding: 2px var(--page-gutter) 0;
  background: transparent;
}
.brand-banner-image {
  display: block;
  width: 100% !important;
  max-width: 900px !important;
  height: auto !important;
  margin: 0 auto;
  object-fit: contain;
  object-position: center;
  border-radius: 14px;
}
@media (max-width: 759px) {
  .banner-header { padding: 2px var(--page-gutter) 0; }
  .brand-banner-image { width: 100% !important; max-width: 100% !important; border-radius: 12px; }
}
@media (max-width: 430px) {
  .banner-header { padding: 1px 10px 0; }
  .brand-banner-image { width: 100% !important; max-width: 100% !important; border-radius: 10px; }
}

/* EXTRA SLIM FAIR BANNER 2026-10-29 */
.banner-header {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  overflow: hidden;
}
.brand-banner-image {
  width: 100% !important;
  max-width: 900px !important;
  height: 260px !important;
  object-fit: cover !important;
  object-position: center center !important;
  margin: 0 auto !important;
  border-radius: 12px;
}
@media (max-width: 759px) {
  .brand-banner-image {
    height: 180px !important;
    max-width: 100% !important;
    border-radius: 10px;
  }
}
@media (max-width: 430px) {
  .brand-banner-image {
    height: 138px !important;
    max-width: 100% !important;
    border-radius: 9px;
  }
}

/* EXPANDED BONUS GAMES 2026-10-29 */
.game-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
.quiz-form fieldset{background:#fff;}
.quiz-form legend{line-height:1.35;}
.scavenger-list label{cursor:pointer;}
.scavenger-list input[type=checkbox]{margin-top:4px;}
@media(max-width:760px){.game-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:430px){.game-grid{grid-template-columns:1fr;}.quiz-form fieldset{padding:12px;}}

/* VISIBLE PEOPLE CHOICE 2026-10-29 */
.vote-gate{border:1px solid #d9e2ec;background:linear-gradient(180deg,#ffffff,#f7faff);}
.vote-progress-wrap{margin:16px 0;}
.vote-progress-copy{display:flex;justify-content:space-between;gap:12px;align-items:center;color:var(--navy);font-size:13px;margin-bottom:8px;}
.vote-progress-copy span{font-size:10px;font-weight:850;letter-spacing:.08em;text-transform:uppercase;padding:5px 8px;border-radius:999px;background:#eef4fb;color:var(--navy);}
.vote-progress-track{height:9px;border-radius:999px;background:#e8eef5;overflow:hidden;}
.vote-progress-fill{height:100%;width:0;background:linear-gradient(90deg,#102a56,#c72d3a);border-radius:999px;transition:width .25s ease;}
.vote-note{text-align:center;margin-top:10px;}
.vote-options{display:grid;gap:9px;border:0;padding:0;margin:0;}
.vote-options legend{font-weight:850;color:var(--navy);margin-bottom:4px;}
.vote-options label{display:grid;grid-template-columns:22px 1fr;gap:10px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fff;align-items:start;}
.vote-options strong,.vote-options small{display:block;}
.vote-options strong{color:var(--navy);}
.vote-options small{color:var(--muted);margin-top:3px;line-height:1.35;}

/* VISIBLE FAIR FEEDBACK 2026-10-29 */
.feedback-gate{border:1px solid #d9e2ec;background:linear-gradient(180deg,#ffffff,#fbf8fc);}
.feedback-progress-wrap{margin:16px 0;}
.feedback-progress-copy{display:flex;justify-content:space-between;gap:12px;align-items:center;color:var(--navy);font-size:13px;margin-bottom:8px;}
.feedback-progress-copy span{font-size:10px;font-weight:850;letter-spacing:.08em;text-transform:uppercase;padding:5px 8px;border-radius:999px;background:#f4ecf5;color:#6a367a;}
.feedback-progress-track{height:9px;border-radius:999px;background:#e8eef5;overflow:hidden;}
.feedback-progress-fill{height:100%;width:0;background:linear-gradient(90deg,#6a367a,#ed1f7f);border-radius:999px;transition:width .25s ease;}
.feedback-note{text-align:center;margin-top:10px;}

/* LANDING PASSPORT FEATURES 2026-10-29 */
.passport-feature-preview{margin:16px 0;padding:15px;border:1px solid #dce5ef;border-radius:16px;background:#fff;}
.passport-feature-preview .eyebrow{margin-bottom:10px;}
.feature-preview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;}
.feature-preview-grid>div{padding:11px;border-radius:13px;background:#f7faff;border:1px solid #e5ebf2;}
.feature-preview-grid strong,.feature-preview-grid span{display:block;}
.feature-preview-grid strong{color:var(--navy);font-size:13px;}
.feature-preview-grid span{color:var(--muted);font-size:11px;line-height:1.35;margin-top:3px;}
@media(max-width:560px){.feature-preview-grid{grid-template-columns:1fr;}}

/* VOTE PREVIEW AND CONFIRM 2026-10-29 */
.mini-preview-button{margin-top:8px;border:0;background:transparent;color:var(--navy);font-weight:800;font-size:11px;padding:0;text-decoration:underline;cursor:pointer;}
.vote-flow-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0;}
.vote-flow-steps div{padding:10px;border-radius:12px;background:#f7faff;border:1px solid #e3eaf3;}
.vote-flow-steps strong{display:block;font-size:18px;color:var(--red);}
.vote-flow-steps span{display:block;font-size:11px;color:var(--navy);line-height:1.35;margin-top:3px;}
.vote-preview-options{display:grid;gap:8px;margin:12px 0;}
.vote-preview-options label{display:flex;gap:10px;align-items:center;padding:11px;border:1px solid var(--line);border-radius:12px;background:#fff;}
.vote-review-box{margin:12px 0;padding:12px;border-radius:12px;background:#eef4fb;color:var(--navy);font-size:12px;line-height:1.4;}
.vote-confirm-check{display:flex!important;gap:10px!important;align-items:flex-start!important;margin:12px 0!important;padding:12px!important;border:1px solid #dce5ef!important;border-radius:12px!important;background:#fff!important;}
.vote-confirm-check input{margin-top:3px;}
@media(max-width:560px){.vote-flow-steps{grid-template-columns:1fr 1fr;}}

/* EMBASSY MNE FEEDBACK 2026-10-29 */
.mne-form{gap:14px;}
.mne-intro{padding:13px;border-radius:14px;background:#f7faff;border:1px solid #dce5ef;}
.mne-intro strong,.mne-intro span{display:block;}
.mne-intro strong{color:var(--navy);font-size:14px;}
.mne-intro span{color:var(--muted);font-size:11px;line-height:1.4;margin-top:4px;}
.mne-scale,.mne-choice{border:1px solid var(--line);border-radius:14px;padding:13px;background:#fff;}
.mne-scale legend,.mne-choice legend{font-weight:800;color:var(--navy);line-height:1.35;padding:0 4px;}
.mne-scale small,.rating-fieldset small{display:block;color:var(--muted);font-size:10px;margin-top:7px;}
.scale-options{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin-top:10px;}
.scale-options label{display:flex;align-items:center;justify-content:center;gap:4px;padding:9px 4px;border:1px solid #dce5ef;border-radius:10px;background:#f9fbfd;font-size:12px;}
.choice-row{display:flex;gap:8px;margin-top:10px;}
.choice-row label{display:flex;align-items:center;gap:6px;padding:9px 10px;border:1px solid #dce5ef;border-radius:10px;background:#f9fbfd;font-size:12px;}
.wrap-choice{flex-wrap:wrap;}
.mne-choice select{width:100%;margin-top:10px;}
@media(max-width:430px){.scale-options{gap:4px}.scale-options label{padding:8px 2px;font-size:11px}.choice-row{flex-wrap:wrap}.choice-row label{flex:1 1 42%;}}
/* E-passport header: full-width top-of-page, no sticky/floating behavior. */
.brand-header.banner-header { position: relative !important; top: auto !important; inset: auto !important; transform: none !important; box-shadow: none !important; border-radius: 0 !important; padding-top: 0 !important; margin-top: 0 !important; z-index: auto !important; }
.brand-header.banner-header .brand-banner-image { border-radius: 0 !important; }

/* Consistent responsive layouts: prevent clipped cards and overlapping labels. */
html,body{max-width:100%;overflow-x:clip;}
.app-shell,.panel,.passport-card,.journey-group,.journey-heading,.zone-copy,.setup-card,.official-link-grid{min-width:0;}
.panel,.passport-card{overflow-wrap:break-word;}
.zone-card{grid-template-columns:52px minmax(0,1fr) auto;}
.zone-copy,.setup-card>div{min-width:0;overflow-wrap:anywhere;}
.setup-card{flex-wrap:wrap;}
.setup-status{white-space:normal;text-align:center;}
.journey-heading{flex-wrap:wrap;}
button,.primary-button,.secondary-button{max-width:100%;white-space:normal;overflow-wrap:anywhere;}
@media(max-width:480px){.zone-card{grid-template-columns:44px minmax(0,1fr);gap:10px;padding:12px}.zone-icon{width:44px;height:44px}.zone-card .stamp-status{grid-column:2;justify-self:start}.journey-heading>strong{white-space:nowrap}.passport-topline{flex-wrap:wrap;gap:8px}.passport-id-wrap{overflow-wrap:anywhere;text-align:left}.action-row{grid-template-columns:1fr}.hero-panel h1{overflow-wrap:break-word}}

/* Two-card Fair journey preview */
.journey-preview .journey-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(10px,2.5vw,20px);width:100%;max-width:640px;margin:18px auto 0;}
.journey-preview .journey-preview-grid>div{min-width:0;min-height:110px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:18px 12px;}
.journey-preview .journey-preview-grid strong{font-size:clamp(28px,5vw,42px);line-height:1.05;}
.journey-preview .journey-preview-grid span{font-size:clamp(12px,2.2vw,16px);line-height:1.35;}
.journey-preview>small{text-align:center;margin:18px auto 0;}
@media(max-width:360px){.journey-preview .journey-preview-grid{gap:8px}.journey-preview .journey-preview-grid>div{padding:12px 8px;min-height:98px}}

/* Fair prizes and freebies announcement */
.prize-announcement{display:flex;align-items:center;justify-content:center;gap:12px;max-width:620px;margin:12px auto 17px;padding:15px 14px;border-radius:18px;background:linear-gradient(110deg,#fff1d3,#ffe8f3 55%,#edf3ff);border:1px solid #efd7ab;box-shadow:0 6px 18px rgba(16,42,86,.07);text-align:center;}
.prize-announcement>div{display:grid;gap:5px;min-width:0;}
.prize-announcement strong{display:block;font-size:clamp(17px,3.2vw,22px);color:#102a56;line-height:1.25;}
.prize-announcement span:not(.prize-sparkle){font-size:clamp(12px,2vw,14px);color:#465974;line-height:1.4;}
.prize-sparkle{flex:0 0 auto;font-size:22px;color:#cf8b17;}
@media(max-width:430px){.prize-announcement{padding:13px 10px;gap:7px}.prize-sparkle{font-size:16px}}

/* bigger-flags-20261104 */
.zone-icon{font-size:40px;line-height:1;overflow:hidden}
@media (max-width:480px){.zone-icon{font-size:34px}}
