/* Usability polish (2026-10-12). Loaded last on public pages; keeps the existing look. */

/* Mobile top bar: the header stays put, the event strip scrolls away beneath it.
   Before, the header scrolled off while the strip stayed pinned 70px down, leaving a gap
   that page content slid through and covering headings and form hints. */
@media (max-width:620px){
  .site-header{position:fixed;background:rgba(5,14,22,.94)}
}
@media (max-width:900px){
  .event-live-bar{position:absolute}
}

/* Curb marker kits (orange flag + glow stick = treats, purple flag = contest). */
.flag-kit-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:22px;align-items:start}
.flag-kit-figure{margin:0;border-radius:14px;overflow:hidden;border:1px solid rgba(207,157,108,.28);background:#07131c}
.flag-kit-figure img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.flag-kit-items{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:10px}
.flag-kit-items li{display:grid;grid-template-columns:14px minmax(0,1fr);gap:10px;align-items:start;line-height:1.5}
.flag-dot{width:12px;height:12px;margin-top:6px;border-radius:3px;box-shadow:0 0 10px currentColor}
.flag-dot-orange{background:#ff7a1a;color:rgba(255,122,26,.7)}
.flag-dot-purple{background:#9b5de5;color:rgba(155,93,229,.7)}
.flag-kit-methods{border:0;margin:0;padding:0;display:grid;gap:10px}
.flag-kit-methods legend{font-weight:700;margin-bottom:8px}
.flag-kit-method small{display:block}
.flag-kit-status{margin:0 0 14px}
.host-flag-kit{margin-top:22px}
.host-flag-kit h2{margin-top:2px}
@media (max-width:760px){.flag-kit-layout{grid-template-columns:1fr}}

/* Before Halloween the live status buttons are shown but read as "not yet". */
.status-controls-waiting .status-control{opacity:.62}
.status-controls-waiting .status-control.active{opacity:1}

/* Admin overview: launch items stay visible. */
.launch-list{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:10px}
.launch-list li{display:grid;gap:2px;padding:12px 14px;border:1px solid rgba(235,116,39,.35);border-radius:10px;background:rgba(235,116,39,.06)}
.launch-list a{color:inherit;text-decoration:none}
.launch-list a strong{color:#f3b27a}
.launch-list span{color:#b9bcbb;font-size:14px}

/* Card-style checkboxes inside form fields read as sentences, not label caps. */
.field label.select-card,.field label.select-card strong,.field label.select-card small{text-transform:none;letter-spacing:normal}
.field label.select-card strong{font-size:16px}
.field label.select-card small{font-size:14px;line-height:1.5}

/* Registration preview: keep the photo area short on phones (it sits below the form). */
@media (max-width:760px){
  .public-preview .preview-image{height:auto!important;min-height:0!important;aspect-ratio:16/9;max-height:230px}
}

/* Landing: "Look for the flags" reuses the safety panel. */
.flags-panel .flags-art{margin:0;position:relative;min-height:100%}
.flags-panel .flags-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:45% 70%}
.flags-list{list-style:none;padding:0;display:grid;gap:12px}
.flags-list li{display:grid;grid-template-columns:14px minmax(0,1fr);gap:12px;align-items:start}
.flag-dot-none{background:transparent;border:2px dashed rgba(255,255,255,.45);box-shadow:none}
@media (max-width:900px){
  .flags-panel .flags-art{min-height:0}
  .flags-panel .flags-art img{position:static;aspect-ratio:3/2;height:auto}
}
#admin-test-homes{padding:22px 24px}
#admin-test-homes h2{margin:0}
.host-flag-kit{padding:24px}
@media (max-width:620px){.host-flag-kit{padding:18px}}

/* Once-per-milestone feedback note: quiet, small, easy to miss. */
.feedback-nudge{position:fixed;left:12px;right:12px;bottom:calc(var(--mobile-nav-height,0px) + env(safe-area-inset-bottom,0px) + 10px);z-index:60;margin:0 auto;max-width:420px;display:flex;align-items:center;gap:8px;padding:8px 10px 8px 14px;border:1px solid rgba(207,157,108,.22);border-radius:999px;background:rgba(7,19,28,.88);color:#aeb3b2;font-size:13px;line-height:1.3;backdrop-filter:blur(8px);transition:opacity .5s}
.feedback-nudge span{flex:1}
.feedback-nudge.is-fading{opacity:0}
.feedback-nudge-link{background:none;border:0;padding:4px 2px;color:#f3b27a;font:inherit;font-weight:600;text-decoration:underline;cursor:pointer}
.feedback-nudge-close{background:none;border:0;color:#8a9092;font-size:18px;line-height:1;padding:2px 6px;cursor:pointer}
@media (min-width:901px){.feedback-nudge{left:auto;right:24px;bottom:24px}}
.feedback-dialog{max-width:min(520px,calc(100vw - 32px));width:100%;border:1px solid rgba(207,157,108,.3);border-radius:16px;background:#0c1b26;color:inherit;padding:22px}
.feedback-dialog::backdrop{background:rgba(2,8,12,.7)}
.feedback-dialog h2{margin:0 0 6px}
.feedback-dialog textarea,.feedback-dialog input{width:100%}
.feedback-link{background:none;border:0;padding:0;color:#b8b3ad;font:inherit;font-size:13px;text-decoration:underline;cursor:pointer}

/* Points, leaderboard and "use another phone" panels. */
.points-panel,.comeback-panel{margin-top:18px;padding:22px}
.points-head{display:flex;align-items:baseline;gap:10px;margin:4px 0 6px}
.points-total{font:500 48px/1 var(--serif,Georgia,serif);color:#f3b27a}
.points-breakdown{list-style:none;margin:10px 0 14px;padding:0;display:grid;gap:6px}
.points-breakdown li{display:flex;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.07);padding:4px 0}
.points-hide{display:flex;align-items:center;gap:8px;font-size:14px;color:#b9bcbb}
.comeback-signin{margin-top:14px}
.comeback-signin summary{cursor:pointer;color:#f3b27a}
.comeback-form{display:grid;gap:10px;margin-top:10px;max-width:420px}
.recovery-reveal{margin-top:12px;padding:12px 14px;border:1px dashed rgba(243,178,122,.5);border-radius:10px}
.recovery-reveal code{font-size:18px;letter-spacing:.06em;color:#fff3e6}
.leaderboard-shell{display:grid;gap:18px}
.leaderboard-panel,.leaderboard-me,.leaderboard-rules{padding:22px}
.leaderboard-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px}
.leaderboard-head h2{margin:0}
.leaderboard-list{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:6px}
.leaderboard-list li{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;border:1px solid rgba(255,255,255,.07);border-radius:10px;background:rgba(255,255,255,.02)}
.leaderboard-list li:nth-child(-n+3) .leaderboard-rank{color:#f3b27a}
.leaderboard-list li.is-me{border-color:rgba(243,178,122,.55)}
.leaderboard-rank{font-weight:800;font-size:18px;text-align:center}
.leaderboard-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.leaderboard-points{font-weight:800}
.leaderboard-list .leaderboard-empty{display:block;color:#b9bcbb}
.points-table{width:100%;border-collapse:collapse;margin:8px 0 12px}
.points-table th,.points-table td{text-align:left;padding:8px 6px;border-bottom:1px solid rgba(255,255,255,.07);font-weight:500}
.points-table td{color:#f3b27a}
@media (min-width:621px){.points-table td{white-space:nowrap}}
.play-points-line{margin:0 0 14px;font-size:14px;color:#b9bcbb}
.host-player-name{margin:6px 0 0;color:#b9bcbb}
.more-feedback{margin:14px 0 0;text-align:center}
.points-chip{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;background:rgba(243,178,122,.18);color:#f3b27a;font-size:12px;font-weight:800;letter-spacing:.02em}

/* Compact toasts on phones so several in a row do not cover the card that was tapped. */
@media (max-width:620px){
  .toast-stack{gap:6px}
  .toast{min-height:0!important;padding:10px 14px!important;font-size:14px;line-height:1.35}
  .toast .button-quiet,.toast button{min-height:34px!important;padding:6px 12px!important;font-size:12px}
}

/* Print Center: real page previews at the true paper shape. */
.print-preview{display:block;background:#e9e6e1;padding:12px;border-radius:10px}
.print-preview img{display:block;width:100%;height:auto;aspect-ratio:612/792;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.25);object-fit:contain}
.print-preview.is-landscape img{aspect-ratio:792/612}

/* Home map (RC38): the details card and actions sit under the map so the map itself stays clear. */
body[data-page="home"] .live-board{grid-template-rows:minmax(520px,1fr) auto}
body[data-page="home"] .live-board>.filter-rail{grid-row:1/3}
body[data-page="home"] .home-map-actions{grid-column:2;display:grid;grid-template-columns:minmax(400px,1fr) auto;gap:12px 16px;align-items:center;padding:14px 18px;background:#091721;border-top:1px solid rgba(183,122,75,.45)}
body[data-page="home"] .home-map-actions .map-status-card{position:static;width:auto;margin:0;box-shadow:none;backdrop-filter:none}
.home-map-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px 10px}
.home-map-count{flex-basis:100%;text-align:right;color:#aeb7bb;font-size:11px}
.home-map-open svg{width:18px;height:18px;margin-right:6px;vertical-align:-3px}
.near-cta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:0 0 18px}
.near-cta p{margin:0}
.peek-rate{display:block;width:calc(100% - 24px);margin:8px 12px 0;min-height:44px}
@media (max-width:900px){
  body[data-page="home"] .live-board{display:block}
  body[data-page="home"] .home-map-actions{grid-template-columns:1fr;padding:12px}
  .home-map-cta{justify-content:stretch}
  .home-map-cta>*{flex:1 1 auto;text-align:center;justify-content:center}
  .home-map-count{text-align:left}
  /* Phones get the search and the "Right now" chips back; the longer filter groups stay on /stops. */
  body[data-page="home"] .live-board>aside.filter-rail{display:block!important;padding:14px 12px;border-right:0;border-bottom:1px solid rgba(183,122,75,.45)}
  body[data-page="home"] .live-board>aside.filter-rail .filter-group:nth-of-type(n+3),
  body[data-page="home"] .live-board>aside.filter-rail .rail-link,
  body[data-page="home"] .live-board>aside.filter-rail .rail-title small{display:none}
  body[data-page="home"] .live-board>aside.filter-rail .filter-group{margin:8px 0 0;padding:0;border:0}
  body[data-page="home"] .live-board>aside.filter-rail .rail-title,
  body[data-page="home"] .live-board>aside.filter-rail .filter-group>b{display:none}
  body[data-page="home"] .live-board>aside.filter-rail .search-field{min-height:44px;margin:0;padding:0 12px;font-size:15px}
  body[data-page="home"] .live-board>aside.filter-rail .search-field input{font-size:16px}
  body[data-page="home"] .live-board>aside.filter-rail .chip-row{flex-wrap:nowrap;overflow-x:auto;gap:8px}
  body[data-page="home"] .live-board>aside.filter-rail .chip{min-height:40px;padding:6px 14px;font-size:14px;white-space:nowrap}
}

/* Dropdown choices are cards: the top-nav hover underline drew a line through them (read as "unavailable"). */
.nav-participate-menu a::after{content:none!important;display:none!important}

/* Register or manage (RC40): visitors who have not registered get a clear first step. */
.access-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0 0 24px}
.access-choice[hidden]{display:none}
.access-choice-card{display:flex;flex-direction:column;gap:8px;padding:22px;border:1px solid rgba(183,122,75,.45);border-radius:8px;background:rgba(10,27,38,.86);color:var(--cream,#f2e8dc);text-decoration:none;transition:border-color .2s,background .2s}
.access-choice-card:hover,.access-choice-card:focus-visible{border-color:rgba(226,138,66,.85);background:rgba(16,36,48,.92)}
.access-choice-card .eyebrow{margin:0}
.access-choice-card strong{font:500 26px/1.1 var(--serif,Georgia,serif)}
.access-choice-card>span:nth-of-type(2){color:#aeb7bb;line-height:1.5}
.access-choice-card .button,.access-choice-card .button-secondary{margin-top:auto;align-self:flex-start}
@media (max-width:700px){.access-choice{grid-template-columns:1fr}.access-choice-card{padding:18px}.access-choice-card strong{font-size:23px}}

/* Side-by-side fields stay top-aligned when only one has help text (registration password row, RC41). */
.form-grid>.field{align-content:start;align-self:start}

/* Decorating contest panel (RC41): awards are clearly separate from display features. */
.contest-group-title{display:flex;align-items:center;gap:8px;margin:18px 0 10px;color:#d9c3ea;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.contest-group-title svg{width:20px;height:20px;fill:none;stroke:#b38ac8;stroke-width:1.7}
.display-group-title{flex-wrap:wrap;margin-top:22px;color:#cfd6d9}
.display-group-title small{flex-basis:100%;margin-top:2px;color:#93a2a8;font-size:12px;font-weight:400;letter-spacing:0;text-transform:none}
.contest-award-grid .contest-category-choice{position:relative;border-color:rgba(179,138,200,.55);background:linear-gradient(180deg,rgba(64,42,82,.42),rgba(16,30,42,.88))}
.contest-award-grid .contest-category-choice:has(input:checked){border-color:#c79be0;box-shadow:0 0 0 1px #c79be0 inset}
.contest-enter-chip{position:absolute;top:12px;right:12px;padding:3px 10px;border:1px solid rgba(199,155,224,.7);border-radius:999px;color:#e7d2f3;font-size:11px;font-style:normal;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.contest-category-choice:has(input:checked) .contest-enter-chip{background:#8f5fb0;border-color:#8f5fb0;color:#fff}
.contest-category-choice:has(input:checked) .contest-enter-chip::before{content:"Entered";}
.contest-category-choice:has(input:checked) .contest-enter-chip{font-size:0}
.contest-category-choice:has(input:checked) .contest-enter-chip::before{font-size:11px}
.contest-award-grid .contest-category-choice>span{padding-right:84px}
.contest-entry-status{margin:10px 0 0;padding:10px 14px;border-left:3px solid rgba(147,162,168,.6);background:rgba(255,255,255,.03);color:#aeb7bb;font-size:14px}
.contest-entry-status.is-entered{border-left-color:#c79be0;color:#eadcf3;background:rgba(143,95,176,.14)}

/* Registration alignment pass (RC41). */
.form-grid{align-items:start}
.form-grid>.field>label{min-height:21px}
.form-grid>.field :is(input:not([type=checkbox]):not([type=radio]):not(.tp-native),select){height:48px;box-sizing:border-box}
/* Stepper: equal columns, one-line labels, connectors fill the gap evenly. */
.form-stepper{display:grid!important;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);align-items:center;gap:0}
.form-stepper .step{display:flex!important;align-items:center;gap:10px;min-width:0;white-space:nowrap}
.form-stepper .step::after{content:"";flex:1 1 auto;height:1px;min-width:16px;margin:0 12px}
.form-stepper .step:last-child::after{display:none}
.form-stepper .step>span{flex:0 0 auto}
@media (max-width:1180px){.form-stepper .step{font-size:11px!important;gap:8px}.form-stepper .step::after{margin:0 8px}}

/* Friendly time entry: typed or picked on a clock, PM preselected. */
.tp{position:relative;display:flex;align-items:stretch;gap:8px}
.tp-text{flex:1 1 auto;min-width:0}
.tp-native{position:absolute!important;width:1px!important;height:1px!important;opacity:0;pointer-events:none;left:0;bottom:0}
.tp-clock{flex:0 0 48px;height:48px;display:grid;place-items:center;border:1px solid rgba(183,122,75,.55);border-radius:6px;background:rgba(10,27,38,.9);color:#e8b07c;cursor:pointer}
.tp-clock:hover,.tp-clock:focus-visible{border-color:#e28a42;color:#ffc58f}
.tp-clock svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.tp-hint{display:block;margin-top:6px;color:#93a2a8;font-size:12px}
.tp-text[aria-invalid="true"]+.tp-clock,.tp-text[aria-invalid="true"]{border-color:#d9734e}
.tp-panel{position:absolute;z-index:60;top:calc(100% + 8px);left:0;width:300px;max-width:calc(100vw - 32px);padding:16px;border:1px solid rgba(183,122,75,.6);border-radius:10px;background:#0b1a24;box-shadow:0 18px 40px rgba(0,0,0,.45)}
.tp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.tp-head strong{font:500 28px/1 var(--serif,Georgia,serif);color:#f4eadc}
.tp-ampm{display:flex;border:1px solid rgba(255,255,255,.18);border-radius:999px;overflow:hidden}
.tp-ampm button{padding:6px 12px;border:0;background:transparent;color:#aeb7bb;font-weight:800;font-size:12px;cursor:pointer}
.tp-ampm button[aria-pressed="true"]{background:#e28a42;color:#1a0f06}
.tp-face{position:relative;width:220px;height:220px;margin:4px auto 14px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.05),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.1)}
.tp-face button{position:absolute;left:50%;top:50%;width:38px;height:38px;margin:-19px 0 0 -19px;border:0;border-radius:50%;background:transparent;color:#d8d1c8;font-weight:700;cursor:pointer;transform:rotate(var(--a)) translateY(-86px) rotate(calc(-1 * var(--a)))}
.tp-face button:hover{background:rgba(226,138,66,.18)}
.tp-face button[aria-pressed="true"]{background:#e28a42;color:#1a0f06}
.tp-hand{position:absolute;left:50%;top:50%;width:2px;height:68px;margin-left:-1px;background:rgba(226,138,66,.7);transform-origin:50% 0;transform:rotate(calc(var(--a) + 180deg))}
.tp-face::after{content:"";position:absolute;left:50%;top:50%;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;background:#e28a42}
.tp-minutes,.tp-quick{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.tp-minutes button,.tp-quick button{flex:1 1 auto;min-height:36px;padding:4px 8px;border:1px solid rgba(255,255,255,.16);border-radius:6px;background:rgba(255,255,255,.03);color:#d8d1c8;font-weight:700;cursor:pointer}
.tp-minutes button[aria-pressed="true"]{border-color:#e28a42;background:rgba(226,138,66,.2);color:#ffd9b5}
.tp-quick button{flex:0 1 auto;font-size:12px}
.tp-actions{display:flex;justify-content:space-between;gap:8px;margin-top:6px}
/* Gentle-display confirmation: a normal checkbox row instead of a stretched box. */
.route-safety-confirmation .checkbox-row{display:flex!important;align-items:flex-start;gap:12px;width:auto;padding:14px 16px;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:rgba(255,255,255,.02);font-size:14px;font-weight:700;letter-spacing:0;text-transform:none;color:#e9e1d6}
.route-safety-confirmation .checkbox-row input{flex:0 0 20px;width:20px!important;height:20px!important;min-height:0!important;margin:1px 0 0}
.route-safety-confirmation .tiny{margin:8px 0 0}
/* Option cards: the title leads, the description supports it. */
.select-card>span>strong{font-size:14px;line-height:1.3}
.select-card>span>small{font-size:13px;line-height:1.45;color:#a9b4b9}
.check-grid{align-items:stretch}
/* Registration review card: every line readable on the paper background. */
.registration-receipt p{color:#26343b}
.registration-receipt strong{color:#101a20}
.registration-receipt .muted{color:#3c4a51}

/* Map stop card (RC41): expand and maximize actually widen it on desktop, and the address is never cut off. */
@media (min-width:901px){
  body[data-page="stops"] .map-floating-card[data-state="expanded"]{width:min(560px,calc(100% - 36px))}
  body[data-page="stops"] .map-floating-card[data-state="maximized"]{inset:76px 18px 18px auto;width:min(820px,calc(100% - 36px));max-height:none}
  body[data-page="stops"] .map-floating-card[data-state="maximized"] .stop-sheet-body{max-height:calc(100dvh - 260px)}
}
.map-floating-card .stop-sheet-head{display:grid!important;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title controls" "status status";align-items:start;gap:8px 12px}
.map-floating-card .stop-sheet-head>div:first-child{grid-area:title;min-width:0}
.map-floating-card .stop-sheet-head h3{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere;line-height:1.15}
.map-floating-card .stop-sheet-head>.status-pill{grid-area:status;justify-self:start}
.map-floating-card .stop-sheet-head>.stop-sheet-controls{grid-area:controls}
.map-floating-card[data-state="minimized"] .stop-sheet-head{grid-template-areas:"title controls"}
.map-floating-card[data-state="minimized"] .stop-sheet-head>.status-pill{display:none}

/* Prize status (owner 2026-10-12): nothing confirmed yet. */
.prize-tba{margin:10px 0 0;padding:8px 12px;border-left:3px solid #e28a42;background:rgba(226,138,66,.08);color:#e9dccd;font-size:14px}
.flag-kit-note-label .optional{text-transform:none;letter-spacing:0;font-weight:400;font-size:12px;color:#93a2a8}

/* Running low or out? (RC45) */
.candy-report{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin:12px 0 0;padding:10px 12px;border:1px dashed rgba(226,138,66,.5);border-radius:6px;font-size:14px;color:#e9dccd}
.candy-report button{min-height:38px}
.candy-report-status{flex-basis:100%;color:#aeb7bb}
/* Treat style: hand out vs candy bowl (RC45). */
.treat-style{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0 6px;padding:0;border:0}
.treat-style legend{margin-bottom:10px;font-weight:800;color:#f2e8dc;font-size:16px}
.treat-style-choice:has(input:checked){border-color:#e28a42;box-shadow:0 0 0 1px #e28a42 inset}
.treat-style-note{margin:10px 0 8px}
@media (max-width:700px){.treat-style{grid-template-columns:1fr}}
/* FAQ topics and search (RC46). */
.faq-search{display:grid;gap:6px;margin:6px 0 14px;font-weight:700;color:#e9dccd}
.faq-search input{min-height:48px;font-size:16px}
.faq-topics{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.faq-topics a{padding:8px 12px;border:1px solid rgba(226,138,66,.45);border-radius:999px;color:#f2e8dc;text-decoration:none;font-size:14px}
.faq-topics a:hover{border-color:#e28a42}
.faq-group{margin-top:26px;scroll-margin-top:110px}
.faq-group h3{margin:0 0 8px;font-size:20px;color:#f2e8dc}
.faq-empty{padding:12px;border:1px dashed rgba(255,255,255,.2);border-radius:6px}
@media (max-width:700px){.faq-topics a{padding:6px 10px;font-size:13px}}
.host-photo-role{font-size:12px;color:#e9dccd;margin-right:auto}

.guide-link{margin:10px 0 0}.guide-link a{color:#ffc58f;font-weight:700}

/* Ghost Hunt on the live map (RC49) */
.ghost-map-pin.is-golden{background:#5a4210!important;border-color:#ffd166!important;color:#ffe9a8!important;box-shadow:0 0 0 4px rgba(255,209,102,.22),0 0 18px rgba(255,209,102,.55)}
.google-map-canvas .ghost-map-pin{position:relative;transform:none;width:40px!important;height:40px!important;min-width:40px!important;padding:8px!important;border-radius:50%;border:2px solid #f6e1bb;background:#613411;color:#ffd9a8;opacity:.94;cursor:pointer}
.google-map-canvas .ghost-map-pin svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2}
.google-map-canvas .ghost-map-pin.is-found{background:#193e37;border-color:#8fbaaa;color:#cee8df;opacity:.8}
.ghost-marker-layer{position:absolute;inset:0;pointer-events:none;z-index:3}
.ghost-marker-layer .ghost-map-pin{position:absolute;transform:translate(-50%,-50%);width:40px!important;height:40px!important;min-width:40px!important;padding:8px!important;border-radius:50%;border:2px solid #f6e1bb;background:#613411;color:#ffd9a8;pointer-events:auto;cursor:pointer}
.ghost-marker-layer .ghost-map-pin svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2}
.ghost-marker-layer .ghost-map-pin.is-found{background:#193e37;border-color:#8fbaaa;color:#cee8df}
.google-map-active>.ghost-marker-layer{display:none}
@keyframes ghost-hint-pulse{0%,100%{opacity:.55}50%{opacity:1}}
.ghost-hint-ring{position:absolute;transform:translate(-50%,-50%);border-radius:50%;border:2px solid #ffb95e;background:rgba(226,138,66,.2);box-shadow:0 0 24px rgba(226,138,66,.35);pointer-events:none;animation:ghost-hint-pulse 1.6s ease-in-out infinite;z-index:2}
@media (prefers-reduced-motion:reduce){.ghost-hint-ring{animation:none}}
.ghost-map-stop{position:absolute;transform:translate(-50%,-50%);width:24px;height:24px;min-width:0;padding:0;border:2px solid #f2e8dc;border-radius:50%;background:#e28a42;color:#1a0f05;font:800 11px/20px var(--sans,sans-serif);text-align:center;cursor:pointer;z-index:1}
.ghost-map-stop.decorations,.ghost-map-stop.mixed{background:#b984cb}
.ghost-map-stop.haunted{background:#8b2f5c;color:#fff}
.ghost-map-stop.kids,.ghost-map-stop.activity,.ghost-map-stop.accessible{background:#9bdad3}
.ghost-google-canvas .play-map-stop{opacity:.9}
.hunt-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.hunt-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:10px 0 6px}
.hunt-tools .button-quiet{min-height:40px}
.hunt-only-games{display:inline-flex;align-items:center;gap:8px;min-height:40px;font-size:14px;color:#e9dccd;cursor:pointer}
.hunt-only-games input{width:18px;height:18px;accent-color:#e28a42}
.hunt-hint-status{margin:0 0 8px;font-size:14px;color:#ffd9a8}
.hunt-area-head{margin:12px 0 6px;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#aeb7bb}
#hunt-list ul.hunt-area-list{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px}
#hunt-list .is-golden-row{color:#ffe9a8}
.hunt-golden-note{margin:8px 0 0;padding:8px 12px;border-left:3px solid #ffd166;background:rgba(255,209,102,.08);color:#f2e8dc;font-size:14px}
.ghost-tip{position:absolute;left:12px;right:12px;bottom:88px;z-index:12;display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:10px 12px;border:1px solid rgba(226,138,66,.6);border-radius:8px;background:rgba(7,19,28,.95);color:#f2e8dc;font-size:14px;box-shadow:0 10px 30px rgba(0,0,0,.45)}
.ghost-tip strong{margin-right:auto;font-weight:600}
.ghost-tip button{min-height:36px;padding:6px 12px}
@media (max-width:900px){.ghost-tip{bottom:auto;top:62px}}
.ghost-dialog{text-align:center}
.ghost-dialog-emblem{display:inline-grid;place-items:center;width:72px;height:72px;margin:4px auto 10px;border-radius:50%;border:2px solid #f6e1bb;background:#613411;color:#ffd9a8}
.ghost-dialog-emblem svg{width:36px;height:36px;stroke:currentColor;fill:none;stroke-width:2}
.ghost-dialog-emblem.is-golden{background:#5a4210;border-color:#ffd166;color:#ffe9a8;box-shadow:0 0 22px rgba(255,209,102,.45)}
.ghost-dialog p{margin:0 0 14px}
.ghost-dialog .action-row{justify-content:center}
#ghost-layer-toggle[aria-pressed="true"]{border-color:#e28a42}
.ghost-layer-float{position:absolute;top:12px;right:12px;z-index:12;min-height:40px;padding:8px 12px;border:1px solid rgba(226,138,66,.6);border-radius:999px;background:rgba(7,19,28,.92);color:#f2e8dc;font-size:14px;font-weight:700}
.ghost-layer-float[aria-pressed="true"]{border-color:#e28a42}
@media (max-width:900px){.ghost-tip{top:62px}.ghost-layer-float{top:12px}}
@media (max-width:900px){.ghost-tip{top:auto;bottom:150px;left:12px;right:72px}.ghost-layer-float{top:12px;left:12px;right:auto}}

/* Rating deck: photos changed since the voter rated (RC49) */
.photos-updated-note{margin:0 0 10px;padding:8px 12px;border-left:3px solid #b38ac8;background:rgba(143,95,176,.12);color:#eadcf3;font-size:14px}

/* Rating card: distance and in-person notice (RC52) */
.near-live:empty{display:none}
.near-live{margin:0 0 12px}
.near-distance{display:inline-block;margin:0 0 6px;padding:3px 10px;border:1px solid rgba(243,178,122,.45);border-radius:999px;color:#f3b27a;font-size:13px;font-weight:700;letter-spacing:.02em}
.near-notice{margin:0;padding:9px 12px;border-left:3px solid rgba(185,195,198,.5);background:rgba(255,255,255,.04);color:#cfd6d8;font-size:14px;line-height:1.45}
.near-notice.is-near{border-left-color:#8fce7a;background:rgba(143,206,122,.1);color:#e3f2dc;font-weight:600}
.near-note-banner{margin:10px 0 0;padding:8px 12px;border:1px solid rgba(243,178,122,.3);border-radius:8px;color:#f0d9c2;font-size:14px}

/* Host page: how you're taking part (RC53) */
.host-takepart{margin-top:22px;padding:22px}
.host-takepart h2{margin:2px 0 4px}
.takepart-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:14px}
.takepart-card{display:flex;flex-direction:column;gap:6px;padding:16px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:rgba(255,255,255,.03)}
.takepart-card.is-on{border-color:rgba(143,206,122,.5);background:rgba(143,206,122,.07)}
.takepart-card h3{margin:0;font-size:19px}
.takepart-card p{margin:0}
.takepart-card .action-row{margin-top:auto;padding-top:8px;display:flex;flex-wrap:wrap;gap:8px}
.takepart-attention{padding:8px 10px;border-left:3px solid #f3b27a;background:rgba(243,178,122,.1)}
.takepart-choices{display:grid;gap:8px}
.takepart-haunt{display:grid;gap:8px}
.takepart-haunt .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
@media (max-width:900px){.takepart-grid{grid-template-columns:1fr}}
.takepart-qr{display:grid;grid-template-columns:120px 1fr;gap:12px;align-items:start;width:100%;margin-top:10px;padding-top:12px;border-top:1px solid rgba(255,255,255,.1)}
.takepart-qr img{width:120px;height:auto;border-radius:6px;background:#fff}
.takepart-qr p{margin:0 0 6px}

/* Home strip note: games open the day before Halloween (RC53) */
.ribbon-note{margin:10px auto 0;max-width:1100px;padding:0 16px;text-align:center;color:#c9d2d4;font-size:14px}
@media (max-width:600px){.takepart-haunt .form-grid{grid-template-columns:1fr}}

/* Scare meter and decoration questions (RC54) */
.scare-meter{display:inline-flex;align-items:center;gap:8px;vertical-align:middle}
.scare-meter-bar{display:inline-flex;gap:3px}
.scare-meter-bar i{display:block;width:14px;height:8px;border-radius:2px;background:rgba(255,255,255,.16)}
.scare-meter[data-step="1"] .scare-meter-bar i:nth-child(-n+1){background:#8fce7a}
.scare-meter[data-step="2"] .scare-meter-bar i:nth-child(-n+2){background:#f0b44c}
.scare-meter[data-step="3"] .scare-meter-bar i:nth-child(-n+3){background:#e0603a}
.scare-meter-label{font-weight:600}
.haunt-scare-words{display:block;margin-top:2px;color:#b9c3c6;font-weight:400}
.decor-question{margin:0 0 16px;padding:0;border:0}
.decor-question legend{font-weight:700;margin-bottom:4px}
.decor-choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;margin-top:6px}
.scare-level-question{border:0;padding:0;margin:4px 0 0;min-width:0}
.scare-level-question legend{padding:0;margin-bottom:4px;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#d8dfe1}
.scare-level-question > small{display:block;margin-bottom:8px}

/* FAQ answers (2026-10-13): the open answer was capped at 110px, which cut off longer answers such as household
   votes and photo rules. Leave room for the longest answer while keeping the open/close transition. */
.faq-answer.open{max-height:1600px}

/* Zoomed-out map (2026-10-13): every home stays visible. Below zoom 17 each home is a small glowing dot in its
   marker color (the selected home is a larger ringed dot); homes whose marks would touch merge into a numbered bubble
   with one dot per kind of stop inside it. */
.map-compact-homes .google-stop-marker{width:18px;height:18px;transform:translateY(9px);filter:none}
.map-compact-homes .google-stop-marker .google-stop-face{left:2px;bottom:2px;display:block;width:14px;height:14px;padding:0;border:2px solid rgba(255,238,215,.95);border-radius:50%;box-shadow:0 0 0 1px rgba(7,19,28,.9),0 0 10px 3px color-mix(in srgb,var(--marker) 70%,transparent),0 0 18px 6px color-mix(in srgb,var(--marker) 30%,transparent)}
.map-compact-homes .google-stop-marker .google-stop-face::after,.map-compact-homes .google-stop-marker .google-stop-face>*,.map-compact-homes .google-stop-marker .google-stop-stem,.map-compact-homes .google-stop-marker .google-stop-true-anchor,.map-compact-homes .google-stop-marker .google-house-number{display:none}
.map-compact-homes .google-stop-marker.is-contest-entry .google-stop-face{outline:2px solid #ffcd85;outline-offset:1px}
.map-compact-homes .google-stop-marker.visited .google-stop-face::before{display:none}
.map-compact-homes .google-stop-marker.selected{width:24px;height:24px;transform:translateY(12px)}
.map-compact-homes .google-stop-marker.selected .google-stop-face{width:20px;height:20px;border:3px solid #fff3df;transform:none;box-shadow:0 0 0 2px rgba(7,19,28,.9),0 0 14px 5px color-mix(in srgb,var(--marker) 80%,transparent),0 0 26px 10px color-mix(in srgb,var(--marker) 35%,transparent)}
.google-stop-cluster{position:relative;display:grid;align-content:center;justify-items:center;width:48px;height:48px;border:2px solid #f3b27a;border-radius:50%;background:radial-gradient(circle at 35% 30%,#2b4250,#0d1a22 72%);color:#fff3df;box-shadow:0 0 0 5px rgba(243,178,122,.18),0 8px 20px rgba(0,0,0,.55);cursor:pointer}
.google-stop-cluster strong{font:850 16px/1 var(--sans)}
.google-stop-cluster small{display:block;margin-top:1px;font:800 7px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:#f3d3b4}
.google-cluster-kinds{position:absolute;left:50%;bottom:-8px;display:flex;gap:3px;padding:2px 5px;translate:-50% 0;border:1px solid rgba(243,178,122,.7);border-radius:9px;background:#0d1a22}
.google-cluster-kinds:empty{display:none}
.google-cluster-kinds i{display:block;width:7px;height:7px;border-radius:50%;background:#dc792f}
.google-cluster-kinds .kind-decorations{background:#9561aa}.google-cluster-kinds .kind-haunt{background:#754aa4;box-shadow:0 0 0 1px #c9a8e6 inset}.google-cluster-kinds .kind-kids,.google-cluster-kinds .kind-show{background:#278c85}
.map-compact-homes .google-stop-cluster{width:40px;height:40px}
.map-compact-homes .google-stop-cluster strong{font-size:14px}
.map-compact-homes .google-stop-cluster small{font-size:6px}

/* Home page help panel (2026-10-13): contact form button and sign-in link, and the contact form dialog. */
.contact-actions{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 6px}
.contact-trap{display:none!important}
.contact-form{display:grid;gap:14px}
.contact-form .field{display:grid;gap:6px;min-width:0}
.contact-form .field label span{font-weight:400;opacity:.75}
.contact-form input,.contact-form textarea{width:100%;box-sizing:border-box}
.contact-form-status:empty{display:none}
.contact-form-sent{margin:0}

/* Visit level line on the rating page (2026-10-13). */
.visit-level{margin:6px 0 0;font-size:13px;line-height:1.45;color:#f3d3b4}

/* Desktop map "List" (2026-10-13): the map steps aside and the homes fill the page as cards. */
.desktop-map-return{display:none}
@media (min-width:901px){
body.desktop-list-mode .map-layout{grid-template-columns:minmax(0,1fr)!important}
body.desktop-list-mode #map-stage{display:none!important}
body.desktop-list-mode .map-sidebar{position:static!important;width:auto!important;max-width:none!important;height:auto!important;max-height:none!important;overflow:visible!important}
body.desktop-list-mode .directory-list{max-height:none!important;overflow:visible!important;display:grid!important;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px;align-items:start}
body.desktop-list-mode .desktop-map-return{display:inline-flex;margin-top:12px}
}

/* Candy availability on map markers and badges (2026-10-13). Status is shown by the short text tag and outline,
   never by color alone; the category color of the pin itself is unchanged. */
.google-stop-marker[data-availability] .google-stop-state-dot{width:auto;height:auto;min-width:9px;padding:1px 4px;right:-8px;top:-9px;border-radius:7px;font:800 7px/1.25 var(--sans);letter-spacing:.04em;color:#08141c;background:#9aa9b2;overflow:visible}
.google-stop-marker[data-availability="open"] .google-stop-state-dot,.google-stop-marker[data-availability="closing_soon"] .google-stop-state-dot{background:#7bd389}
.google-stop-marker[data-availability="opening_soon"] .google-stop-state-dot{background:#f3c26b}
.google-stop-marker[data-availability="scheduled_later"] .google-stop-state-dot{background:#c9d3d9}
.google-stop-marker[data-availability="paused"] .google-stop-state-dot{background:#d5a136}
.google-stop-marker[data-availability="out"] .google-stop-state-dot,.google-stop-marker[data-availability="cancelled"] .google-stop-state-dot{background:#e08a84}
.google-stop-marker[data-availability="open"] .google-stop-face,.google-stop-marker[data-availability="closing_soon"] .google-stop-face{box-shadow:0 0 0 2px #7bd389,0 4px 12px rgba(0,0,0,.45)}
.google-stop-marker[data-availability="open"][data-confirmed="true"] .google-stop-face{box-shadow:0 0 0 3px #7bd389,0 0 14px rgba(123,211,137,.55)}
.google-stop-marker[data-availability="opening_soon"] .google-stop-face{outline:2px dashed #f3c26b;outline-offset:2px}
.google-stop-marker[data-availability="paused"],.google-stop-marker[data-availability="out"],.google-stop-marker[data-availability="closed"],.google-stop-marker[data-availability="cancelled"]{filter:drop-shadow(0 6px 9px rgba(0,0,0,.55)) saturate(.55)}
.map-compact-homes .google-stop-marker[data-availability] .google-stop-state-dot{display:none}
.map-compact-homes .google-stop-marker[data-availability="open"] .google-stop-face{box-shadow:0 0 0 2px #7bd389,0 0 10px 3px rgba(123,211,137,.6)}
.map-compact-homes .google-stop-marker[data-availability="opening_soon"] .google-stop-face{outline:2px dashed #f3c26b;outline-offset:1px}
/* Emphasis (All homes / Open now / Opening soon): other homes stay on the map, just quieter. */
body[data-candy-emphasis="open"] .google-stop-marker[data-availability]:not([data-emphasis="open"]),body[data-candy-emphasis="soon"] .google-stop-marker[data-availability]:not([data-emphasis="soon"]){opacity:.42}
body[data-candy-emphasis="open"] .directory-card:not([data-emphasis="open"]),body[data-candy-emphasis="soon"] .directory-card:not([data-emphasis="soon"]){opacity:.55}
.candy-pill.candy-open,.candy-pill.candy-closing_soon{border-color:#7bd389;color:#bff0c6}
.candy-pill.candy-opening_soon{border-color:#f3c26b;color:#f9dca8;border-style:dashed}
.candy-pill.candy-paused,.candy-pill.candy-out,.candy-pill.candy-closed,.candy-pill.candy-cancelled{opacity:.85}
.candy-pill.is-confirmed::before{content:"\2713\00a0"}
.candy-detail{margin:8px 0;font-size:14px;line-height:1.45}
.candy-detail p{margin:0}
.candy-hours{margin-top:6px;font-size:13px}
.candy-hours>span{display:block;font-weight:800;letter-spacing:.06em;text-transform:uppercase;font-size:10px;color:#f3d3b4}
.candy-hours ul{margin:2px 0 0;padding-left:16px}
.availability-bar{display:grid;gap:8px;margin:10px 20px 8px}
.availability-summary{margin:0;font-size:13px;line-height:1.4}
.availability-summary strong{color:#fff3df}
.availability-emphasis{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.availability-emphasis>.button-quiet{min-height:36px;padding:6px 12px;font-size:13px;letter-spacing:0}
@media (max-width:900px){.availability-bar{margin:10px 16px 8px}}
.availability-emphasis button[aria-pressed="true"]{border-color:#f3b27a;color:#fff3df;background:rgba(185,79,20,.32)}
.availability-stale{margin:0;font-size:12px;color:#f9dca8}
.route-candy-note{display:block;margin-top:4px;color:#f3b27a;font-weight:700}

/* Fall Flavor contest homes (owner 2026-10-13, T-049): their own label and a harvest-gold outline, so the category reads
   from the text, not only the color. */
.google-stop-marker.is-contest-entry[data-contest="fall-flavor"] .google-stop-face,.map-pin.is-contest-entry[data-contest="fall-flavor"]{outline-color:#e9a23b}
.google-stop-marker.is-contest-entry[data-contest="fall-flavor"]::after,.map-pin.is-contest-entry[data-contest="fall-flavor"]::after{content:'FALL FLAVOR';background:#e9a23b;color:#1a1208}

/* Registration steps the current path skips (for example Hours on the contest path) are marked hidden by the form
   script; a display rule on .step was overriding that, showing a "0" step and crowding the last two labels. */
.form-stepper .step[hidden]{display:none!important}
.form-stepper{display:flex!important}
.form-stepper .step{flex:1 1 auto;min-width:0;white-space:normal;line-height:1.25}
.form-stepper .step:last-child{flex:0 0 auto}
/* A contest tag sits above the candy-status tag instead of under it (both appear on contest homes since RC66). */
.google-stop-marker.is-contest-entry[data-availability]::after{top:-27px}
.google-stop-marker.is-contest-entry::after,.map-pin.is-contest-entry::after{white-space:nowrap}
/* T-051: points, walking, prizes and the in-person voting prompt. */
.leaderboard-rules .points-table td{white-space:normal}
.leaderboard-rules h3{margin:18px 0 6px;font:500 22px/1.2 var(--serif,Georgia,serif)}
.points-pending{margin:6px 0 10px;padding:8px 12px;border-left:3px solid #e28a42;background:rgba(226,138,66,.08);color:#e9dccd;font-size:14px}
.walk-panel{margin-top:18px;padding:22px}
.walk-panel .walk-miles{margin:4px 0 6px;font-size:16px}
.walk-panel .walk-miles strong{font:500 36px/1 var(--serif,Georgia,serif);color:#f3b27a;margin-right:6px}
.prize-line{margin:10px 0 0;padding:8px 12px;border-left:3px solid #e28a42;background:rgba(226,138,66,.08);color:#e9dccd;font-size:14px}
.prize-line strong{color:#f3b27a}
.glance-list{margin:10px 0 0;padding-left:18px;display:grid;gap:8px}
.prize-table th{font-weight:600}
.vote-location-prompt{margin:0 0 14px;padding:14px 16px;border:1px solid rgba(243,178,122,.35);border-radius:12px;background:rgba(226,138,66,.07)}
.vote-location-prompt .vote-location-title{margin:0 0 4px}
.vote-location-prompt .action-row{margin-top:8px;flex-wrap:wrap;gap:8px}
.result-peoples-choice{border-color:rgba(243,178,122,.45)}
/* T-056: cash prizes are easy to find. */
.hero-prize{display:flex;flex-direction:column;gap:2px;margin:14px 0 4px;padding:10px 14px;max-width:440px;border:1px solid rgba(243,178,122,.45);border-radius:12px;background:rgba(226,138,66,.12);color:#f6e7d6;text-decoration:none}
.hero-prize strong{color:#f3b27a;font-size:18px}
.hero-prize span{font-size:14px}
.hero-prize:hover,.hero-prize:focus-visible{background:rgba(226,138,66,.2)}
.prize-shell{display:grid;gap:18px}
.prize-card{padding:22px}
.prize-card h2{margin-top:4px}
.prize-criteria,.prize-timeline{margin:8px 0 12px;padding-left:20px;display:grid;gap:6px}
.prize-caption{caption-side:top;text-align:left;font-weight:600;padding:4px 0}
.prize-summary{padding:16px 22px}
.prize-summary .points-table td{white-space:normal}
.prize-card .points-table td{white-space:normal}
/* T-058: photo-gated listings. */
.photo-gate-note{margin:8px 0 12px;padding:8px 12px;border-left:3px solid #8fc3ea;background:rgba(143,195,234,.08);color:#e5edf3;font-size:14px}
.host-listing-status{display:grid;gap:4px;margin:0 0 14px;padding:12px 14px;border-radius:12px;border:1px solid rgba(243,178,122,.4);background:rgba(226,138,66,.08)}
.host-listing-status[data-state="listed"]{border-color:rgba(130,190,140,.5);background:rgba(110,170,120,.1)}
.host-listing-status .button{justify-self:start;margin-top:6px}
/* T-059: the desktop hero grows with its content, so the candy status line always clears the stats strip that
   overlaps the hero's bottom edge by 58px. */
@media (min-width:901px){.hero{height:auto;min-height:760px}.hero-shell{height:auto;min-height:760px;padding-top:120px;padding-bottom:104px}}
/* T-066: the Contest homes count on the home page opens voting. */
a.ribbon-item.ribbon-link{color:inherit;text-decoration:none;cursor:pointer;transition:background-color .2s ease}
a.ribbon-item.ribbon-link:hover,a.ribbon-item.ribbon-link:focus-visible{background:rgba(226,138,66,.12)}
a.ribbon-item.ribbon-link:hover strong,a.ribbon-item.ribbon-link:focus-visible strong{text-decoration:underline;text-underline-offset:3px}
a.ribbon-item.ribbon-link:focus-visible{outline:2px solid #f3b27a;outline-offset:-2px}
/* T-065 (owner 2026-10-14 "weird alignment"): one centered stack on the pin. The candy tag sits centered on the pin's
   top edge and the CONTEST / FALL FLAVOR tag sits right above it, instead of floating 15px higher with the candy tag
   hanging off the corner. The face's top edge is 11px below the marker box top. */
.google-stop-marker[data-availability] .google-stop-state-dot{left:50%;right:auto;top:-7px;transform:translateX(-50%);white-space:nowrap}
.google-stop-marker.is-contest-entry::after{top:-5px;line-height:1.15}
.google-stop-marker.is-contest-entry[data-availability]::after{top:-11px}
.map-compact-homes .google-stop-marker.is-contest-entry::after,.map-compact-homes .google-stop-marker.is-contest-entry[data-availability]::after{top:-16px}
/* A quiet maker's signature, set apart from the neighborhood's links. */
.site-footer .footer-brand p,.site-footer .footer-col>p:not(.footer-heading){font-size:13px;}
.site-footer .footer-heading,.site-footer .footer-col h4{font-size:12px;}
.site-footer .subscribe{display:inline-flex;align-items:center;min-height:34px;font-size:13px;}
.site-footer .footer-bottom{flex-wrap:wrap;gap:8px 24px;color:#aeb6ba;font-size:12px;line-height:1.7;}
.site-footer .footer-bottom>span:last-child{display:flex;flex-wrap:wrap;align-items:center;gap:0 10px;}
.footer-credit{position:relative;z-index:1;display:flex;justify-content:flex-end;width:min(var(--max),calc(100% - 64px));margin:0 auto;padding:0 0 24px;}
.footer-credit-link{display:inline-flex;align-items:center;gap:12px;min-height:44px;color:#e6d2b6;text-decoration:none;}
.footer-credit-link::before{content:"";width:28px;height:1px;background:#b68a58;}
.footer-credit-label{color:#aeb6ba;font-family:var(--sans);font-size:13px;font-weight:400;letter-spacing:.02em;}
.footer-credit-name{font-family:var(--serif);font-size:19px;line-height:1.3;white-space:nowrap;}
.footer-credit-html{font-family:var(--sans);font-size:13px;font-weight:500;letter-spacing:.1em;}
.footer-credit-arrow{color:#bfa480;font-size:16px;line-height:1;}
.footer-credit-link:hover .footer-credit-name,.footer-credit-link:focus-visible .footer-credit-name{color:#fff3e2;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px;}
.footer-credit-link:focus-visible{outline:2px solid #e6d2b6;outline-offset:5px;border-radius:2px;}
@media(max-width:900px){.footer-credit{width:min(var(--max),calc(100% - 34px));}body:not(.app-page) .footer-credit{padding-bottom:calc(24px + var(--mobile-nav-height,66px) + env(safe-area-inset-bottom,0px));}}
@media(max-width:620px){.footer-credit{justify-content:center;padding-top:8px;}.footer-credit-link{gap:10px;}}

