/* W38 levels */
@import url("./levels.css");
/* Gringo Meter: the game-show stage. Ink stage, cream poster, orange action, lime for worth-it. */
@font-face { font-family: "GM Cond"; src: url(/assets/fonts/cond.woff2) format("woff2"); font-weight: 900; font-display: swap; }
@font-face { font-family: "GM Wide"; src: url(/assets/fonts/wide.woff2) format("woff2"); font-weight: 900; font-display: swap; }
@font-face { font-family: "GM Text"; src: url(/assets/fonts/text.woff2) format("woff2"); font-weight: 400 800; font-display: swap; }

:root {
  --ink: #141414; --ink-2: #221f1c; --ink-3: #34302b; --cream: #fff7e8; --cream-2: #d8cdb9; --cream-3: #a99f8e;
  --orange: #ff5a1f; --lime: #d7f64a; --orange-ink: #a33208; --lime-ink: #3f5200; --ink-soft: #5a5045;
  --cond: "GM Cond", "Arial Narrow", sans-serif; --wide: "GM Wide", "Arial Black", sans-serif;
  --text: "GM Text", system-ui, -apple-system, "Segoe UI", sans-serif;
  --r: 16px; --pad: clamp(16px, 4vw, 40px);
  --ease-out: cubic-bezier(.16, 1, .3, 1);
  color-scheme: dark;
}
*, *::before, *::after { box-sizing: border-box; }
html { background: var(--ink); color: var(--cream); -webkit-text-size-adjust: 100%; scrollbar-color: var(--ink-3) var(--ink); }
body { margin: 0; font: 400 17px/1.5 var(--text); font-variant-numeric: lining-nums; caret-color: var(--orange); overflow-x: clip; }
::selection { background: var(--lime); color: var(--ink); }
:focus-visible { outline: 3px solid var(--lime); outline-offset: 3px; border-radius: 8px; }
a { color: inherit; text-underline-offset: .2em; text-decoration-thickness: 2px; }
h1, h2, h3 { margin: 0; text-wrap: balance; }
p { margin: 0; }
button, input, select { font: inherit; color: inherit; }
button { cursor: pointer; }
[hidden] { display: none !important; }
.gm-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.gm-skip { position: absolute; left: 12px; top: -60px; z-index: 10; background: var(--lime); color: var(--ink); padding: 10px 14px; border-radius: 10px; font-weight: 700; }
.gm-skip:focus { top: 12px; }

/* Bar */
.gm-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px var(--pad) 6px; max-width: 1360px; margin: 0 auto; }
.gm-wordmark { font: 900 18px/.84 var(--wide); letter-spacing: -.01em; text-decoration: none; color: var(--cream); display: inline-flex; flex-direction: column; padding: 6px 0; }
.gm-wordmark span { display: block; }
.gm-lang { display: inline-flex; align-items: stretch; min-height: 44px; border: 2px solid var(--cream); border-radius: 999px; text-decoration: none; font: 900 16px/1 var(--cond); letter-spacing: .04em; overflow: hidden; }
.gm-lang-on, .gm-lang-off { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; padding: 0 12px; }
.gm-lang-on { background: var(--cream); color: var(--ink); }
.gm-lang:hover .gm-lang-off { background: var(--ink-3); }

/* Signature */
.gm-sig { padding: 0 var(--pad) 12px; max-width: 1360px; margin: 0 auto; font: 900 13px/1.2 var(--wide); letter-spacing: .08em; text-transform: uppercase; color: var(--orange); display: flex; flex-wrap: wrap; gap: 2px 12px; align-items: baseline; }
.gm-sig-en { font: 500 14px/1.3 var(--text); letter-spacing: 0; text-transform: none; color: var(--cream-2); }

.gm-main { max-width: 1360px; margin: 0 auto; }

/* Poster: the stage the host lives on */
.gm-poster { position: relative; margin: 0 12px; padding: 22px 20px 0; min-height: 368px; background: var(--cream); color: var(--ink); border-radius: 22px;
  background-image: radial-gradient(rgba(20, 20, 20, .05) 1px, transparent 1.2px); background-size: 6px 6px;
  display: grid; grid-template-columns: 1fr; isolation: isolate; }
.gm-poster::before { content: ""; position: absolute; inset: 9px; border: 3px solid var(--ink); border-radius: 15px; pointer-events: none; }
.gm-poster-verdict { grid-area: 1 / 1; position: relative; z-index: 1; }
.gm-sticker { position: absolute; z-index: 3; font: 900 15px/1.05 var(--cond); text-transform: uppercase; letter-spacing: .01em; padding: 9px 11px 8px; border: 3px solid var(--ink); border-radius: 6px; max-width: 9.2em; color: var(--ink); }
.gm-sticker-lime { background: var(--lime); transform: rotate(-6deg); }
.gm-sticker-orange { background: var(--orange); transform: rotate(4deg); }

.gm-host { z-index: 2; --angle: 38deg; --px: 2.5px; --py: -3px; }
.gm-host svg { display: block; width: 100%; height: auto; overflow: visible; }
.h-stand { fill: var(--ink); }
.h-dome { fill: var(--cream); stroke: var(--ink); stroke-width: 7; stroke-linejoin: round; }
.h-band { fill: none; stroke-width: 20; }
.h-band-cool { stroke: var(--lime); }
.h-band-hot { stroke: var(--orange); }
.h-ticks path { stroke: var(--ink); stroke-width: 4.5; stroke-linecap: round; }
.h-face { fill: var(--orange); stroke: var(--ink); stroke-width: 7; }
.h-needle { transform-box: view-box; transform-origin: 360px 302px; transform: rotate(var(--angle)); }
.h-needle path { stroke: var(--ink); stroke-width: 30; stroke-linecap: round; }
.h-needle circle { fill: var(--ink); }

/* Verdict on the poster */
.gm-poster-verdict { padding: 4px 4px 0; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.gm-score { font: 900 clamp(7.4rem, 40vw, 13rem)/.8 var(--cond); letter-spacing: -.02em; display: flex; align-items: flex-start; gap: 4px; font-variant-numeric: tabular-nums; }
.gm-score-of { font-size: .2em; line-height: 1; padding-top: .3em; letter-spacing: 0; }
.gm-pips { display: flex; gap: 8px; padding: 8px 0 4px; }
.gm-pip { width: 30px; height: 30px; border-radius: 50%; border: 3px solid var(--ink); background: transparent; }
.gm-pip.is-on { background: var(--lime); }
.gm-pip.is-you { background: var(--orange); }
.gm-stamp { font: 900 clamp(1.9rem, 9vw, 3.2rem)/.95 var(--cond); text-transform: uppercase; letter-spacing: .01em; padding: 8px 14px 6px; border: 4px solid var(--ink); border-radius: 10px; background: var(--cream); transform: rotate(-6deg); transform-origin: 30% 50%; max-width: 62%; }
.gm-stamp[data-band="0"], .gm-stamp[data-band="1"], .gm-stamp[data-band="pioneer"] { background: var(--lime); }
.gm-stamp[data-band="3"], .gm-stamp[data-band="4"] { background: var(--orange); }
.gm-what { font: 700 15px/1.3 var(--text); max-width: 56%; color: var(--ink-soft); padding-bottom: 20px; }

/* Check: the contestant's card */
.gm-check { padding: 46px var(--pad) 20px; }
.gm-form h2, .gm-boards h2, .gm-you h2, .gm-method h2 { font: 900 clamp(2.3rem, 9vw, 3.6rem)/.92 var(--cond); text-transform: uppercase; letter-spacing: -.005em; }
.gm-form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; }
.gm-invitee { font: 900 18px/1.15 var(--cond); text-transform: uppercase; letter-spacing: .02em; background: var(--lime); color: var(--ink); padding: 10px 12px; border-radius: 10px; justify-self: start; transform: rotate(-1.5deg); }
fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
legend, .gm-field > label { font: 900 17px/1 var(--cond); text-transform: uppercase; letter-spacing: .05em; color: var(--cream-2); padding: 0 0 10px; }
.gm-unit { font: 500 14px/1.2 var(--text); text-transform: none; letter-spacing: 0; color: var(--cream-3); }
.gm-ticket-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.gm-ticket { position: relative; display: grid; justify-items: center; align-content: center; gap: 6px; min-height: 78px; padding: 10px 4px 9px; background: var(--ink-2); border: 2px solid var(--ink-3); border-radius: 14px; cursor: pointer; text-align: center; font: 900 13px/1.02 var(--cond); text-transform: uppercase; letter-spacing: .03em; transition: background-color .15s, border-color .15s, transform .15s var(--ease-out); }
.gm-ticket svg { width: 30px; height: 30px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.gm-ticket svg .i-fill { fill: var(--orange); stroke: none; }
.gm-ticket:hover { border-color: var(--cream-3); }
.gm-ticket:has(input:checked) { background: var(--cream); color: var(--ink); border-color: var(--cream); transform: rotate(-2deg); }
.gm-ticket:has(input:checked) svg .i-fill { fill: var(--lime); }
.gm-ticket:has(input:focus-visible), .gm-chip:has(input:focus-visible) { outline: 3px solid var(--lime); outline-offset: 3px; }
.gm-ticket input, .gm-chip input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }

.gm-price-box { display: flex; align-items: center; gap: 10px; background: var(--cream); color: var(--ink); border-radius: var(--r); padding: 0 16px; min-height: 72px; border: 3px solid var(--cream); transition: border-color .15s; }
.gm-price-box:focus-within { border-color: var(--lime); box-shadow: 0 0 0 3px var(--ink), 0 0 0 6px var(--lime); }
.gm-cur { font: 900 22px/1 var(--cond); color: var(--ink-soft); letter-spacing: .04em; }
#gm-price { flex: 1; min-width: 0; width: 100%; border: 0; background: transparent; font: 900 40px/1 var(--cond); letter-spacing: .01em; font-variant-numeric: tabular-nums; color: var(--ink); padding: 12px 0 10px; }
#gm-price::placeholder { color: #8a8073; }
.gm-hint { font-size: 14px; color: var(--cream-3); padding-top: 7px; }
.gm-field-error, .gm-form-error { color: var(--orange); font-weight: 700; font-size: 15px; padding-top: 7px; }
.gm-form-error:empty { display: none; }
.gm-field.is-bad .gm-price-box { border-color: var(--orange); }
select { width: 100%; min-height: 56px; appearance: none; background: var(--cream) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%23141414' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") right 14px center / 22px no-repeat; color: var(--ink); border: 3px solid var(--cream); border-radius: var(--r); padding: 0 46px 0 16px; font: 700 18px/1.2 var(--text); }
select:focus-visible { border-color: var(--lime); outline-offset: 2px; }
input[type="month"] { width: 100%; min-height: 52px; background: var(--ink-2); color: var(--cream); border: 2px solid var(--ink-3); border-radius: 12px; padding: 0 14px; color-scheme: dark; }
.gm-field.is-bad select { border-color: var(--orange); }

.gm-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.gm-chips legend { width: 100%; }
.gm-chip { position: relative; display: inline-flex; align-items: center; min-height: 48px; padding: 0 18px; border: 2px solid var(--cream-3); border-radius: 999px; font: 900 18px/1 var(--cond); text-transform: uppercase; letter-spacing: .03em; cursor: pointer; transition: background-color .15s, color .15s, border-color .15s; }
.gm-chip:hover { border-color: var(--cream); }
.gm-chip:has(input:checked) { background: var(--lime); color: var(--ink); border-color: var(--lime); }
.gm-chips .gm-field-error { width: 100%; }
.gm-chips.is-bad .gm-chip { border-color: var(--orange); }

.gm-more { border-top: 2px dashed var(--ink-3); padding-top: 10px; }
.gm-more summary { min-height: 44px; display: flex; align-items: center; gap: 10px; cursor: pointer; list-style: none; font: 900 16px/1 var(--cond); text-transform: uppercase; letter-spacing: .05em; color: var(--cream-2); }
.gm-more summary::-webkit-details-marker { display: none; }
.gm-more summary::before { content: ""; width: 22px; height: 22px; flex: none; border-radius: 50%; border: 2px solid currentColor; background: linear-gradient(currentColor, currentColor) center / 10px 2px no-repeat, linear-gradient(currentColor, currentColor) center / 2px 10px no-repeat; }
.gm-more[open] summary::before { background: linear-gradient(currentColor, currentColor) center / 10px 2px no-repeat; }
.gm-more[open] { display: grid; gap: 16px; padding-bottom: 6px; }
.gm-trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.gm-go { display: inline-flex; align-items: center; justify-content: center; gap: 12px; width: 100%; min-height: 66px; padding: 0 22px; border: 3px solid var(--ink); border-radius: 18px; background: var(--orange); color: var(--ink); font: 900 30px/1 var(--cond); text-transform: uppercase; letter-spacing: .02em; box-shadow: 0 0 0 3px var(--orange); transition: transform .12s var(--ease-out), filter .15s; }
.gm-go svg { width: 28px; height: 28px; fill: none; stroke: currentColor; stroke-width: 3.2; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s var(--ease-out); }
.gm-go:hover { filter: brightness(1.06); }
.gm-go:hover svg { transform: translateX(4px); }
.gm-go:active { transform: translateY(2px) scale(.99); }
.gm-go:disabled { filter: saturate(.4) brightness(.85); cursor: progress; }
.gm-go:focus-visible { outline: 3px solid var(--lime); outline-offset: 5px; }
.gm-fine { font-size: 14px; color: var(--cream-3); }
.gm-fine a { color: var(--cream-2); display: inline-block; padding: 10px 0; }
.gm-form .gm-fine a { margin: -10px 0; }

/* Result actions */
.gm-result { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.gm-quip { font: 900 clamp(2rem, 8.6vw, 3.3rem)/.95 var(--cond); text-transform: uppercase; letter-spacing: -.005em; }
.gm-line { font-size: 18px; color: var(--cream-2); max-width: 36em; }
.gm-line b { color: var(--cream); }
.gm-sharebar { display: grid; gap: 10px; padding-top: 4px; }
.gm-alt { display: inline-flex; align-items: center; justify-content: center; min-height: 56px; padding: 0 20px; border: 3px solid var(--lime); border-radius: 16px; background: transparent; color: var(--lime); font: 900 21px/1 var(--cond); text-transform: uppercase; letter-spacing: .03em; transition: background-color .15s, color .15s; }
.gm-alt:hover { background: var(--lime); color: var(--ink); }
.gm-share-status { font-size: 15px; color: var(--lime); min-height: 1.5em; }
.gm-share-status:empty { min-height: 0; }
.gm-copy input { width: 100%; margin-top: 6px; min-height: 48px; padding: 0 12px; border-radius: 10px; border: 2px solid var(--ink-3); background: var(--ink-2); color: var(--cream); }
.gm-again, .gm-forget { justify-self: start; min-height: 44px; padding: 0; border: 0; background: none; color: var(--cream-2); text-decoration: underline; text-underline-offset: .25em; text-decoration-thickness: 2px; font-weight: 700; }
.gm-again:hover, .gm-forget:hover { color: var(--cream); }
.gm-earned { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.gm-earned-label { font: 900 16px/1 var(--cond); text-transform: uppercase; letter-spacing: .05em; color: var(--cream-2); width: 100%; }

/* Boards: the scoreboard band */
.gm-boards { margin: 40px 0 0; padding: 42px var(--pad) 46px; background: var(--lime); color: var(--ink); border-radius: 28px 28px 0 0; display: grid; gap: 30px; }
.gm-boards h3, .gm-you h3 { font: 900 22px/1 var(--cond); text-transform: uppercase; letter-spacing: .03em; margin-bottom: 12px; }
.gm-goal-empty { font-size: 18px; font-weight: 600; }
.gm-bars { display: grid; gap: 12px; }
.gm-bar-row { display: grid; grid-template-columns: 8.2em 1fr auto; align-items: center; gap: 12px; }
.gm-bar-label { font: 900 16px/1.05 var(--cond); text-transform: uppercase; letter-spacing: .03em; }
.gm-meter { height: 22px; border: 3px solid var(--ink); border-radius: 999px; overflow: hidden; background: rgba(255, 255, 255, .35); }
.gm-meter-fill { display: block; height: 100%; width: 100%; background: var(--ink); border-radius: inherit; transform-origin: left; transform: scaleX(var(--fill, 0)); transition: transform var(--m-progress) var(--e-progress); }
.gm-meter-lime { background: var(--orange); }
.gm-bar-n { font: 900 22px/1 var(--cond); font-variant-numeric: tabular-nums; min-width: 3.6em; text-align: right; }
.gm-needed { font-weight: 600; padding-top: 12px; max-width: 40em; }
.gm-league-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; counter-reset: rank; }
.gm-league-list li { counter-increment: rank; display: grid; grid-template-columns: 2.2em 1fr auto; align-items: center; gap: 10px; min-height: 52px; padding: 6px 14px 6px 10px; background: var(--ink); color: var(--cream); border-radius: 12px; }
.gm-league-list li::before { content: counter(rank); font: 900 30px/1 var(--cond); color: var(--lime); text-align: center; }
.gm-league-list .gm-l-name { font: 900 22px/1 var(--cond); text-transform: uppercase; letter-spacing: .02em; }
.gm-league-list .gm-l-n { font: 900 20px/1 var(--cond); font-variant-numeric: tabular-nums; }
.gm-tag { display: inline-block; margin-left: 8px; padding: 3px 7px 2px; border-radius: 6px; background: var(--lime); color: var(--ink); font: 900 12px/1 var(--cond); letter-spacing: .06em; vertical-align: 3px; }
.gm-champ { font-weight: 700; padding-top: 10px; display: flex; gap: 8px; align-items: center; }
.gm-champ svg { width: 22px; height: 22px; flex: none; }
.gm-hoods-note { font-size: 15px; margin: -4px 0 12px; }
.gm-hoods { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.gm-hoods button { min-height: 46px; padding: 0 14px; border: 3px solid var(--ink); border-radius: 999px; background: transparent; color: var(--ink); font: 900 17px/1 var(--cond); text-transform: uppercase; letter-spacing: .03em; display: inline-flex; gap: 8px; align-items: center; }
.gm-hoods button[aria-pressed="true"], .gm-hoods button:hover { background: var(--ink); color: var(--lime); }
.gm-hoods .gm-hood-n { font-variant-numeric: tabular-nums; opacity: .8; }
.gm-hood-detail { margin-top: 14px; padding: 16px; background: var(--cream); border: 3px solid var(--ink); border-radius: 14px; display: grid; gap: 6px; max-width: 34em; }
.gm-hood-detail h4 { margin: 0; font: 900 24px/1 var(--cond); text-transform: uppercase; }
.gm-ticker { font-weight: 600; font-size: 15px; padding-top: 6px; }
.gm-stats-error { font-weight: 600; }

/* You: scorecard */
.gm-you { padding: 46px var(--pad) 10px; display: grid; gap: 22px; }
.gm-readings { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.gm-readings li { display: grid; grid-template-columns: 1fr auto; gap: 2px 12px; align-items: center; padding: 12px 16px; background: var(--cream); color: var(--ink); border-radius: 12px;
  -webkit-mask: radial-gradient(circle 9px at 0 50%, transparent 98%, #000) left / 51% 100% no-repeat, radial-gradient(circle 9px at 100% 50%, transparent 98%, #000) right / 51% 100% no-repeat;
          mask: radial-gradient(circle 9px at 0 50%, transparent 98%, #000) left / 51% 100% no-repeat, radial-gradient(circle 9px at 100% 50%, transparent 98%, #000) right / 51% 100% no-repeat; }
.gm-r-kind { font: 900 18px/1 var(--cond); text-transform: uppercase; letter-spacing: .03em; }
.gm-r-sub { font-size: 14px; color: var(--ink-soft); grid-column: 1; }
.gm-r-score { grid-row: 1 / span 2; grid-column: 2; font: 900 38px/1 var(--cond); font-variant-numeric: tabular-nums; }
.gm-r-score small { font-size: 15px; }
.gm-badges { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 14px; }
.gm-badge { display: grid; justify-items: center; gap: 6px; text-align: center; }
.gm-badge svg { width: 96px; height: 96px; }
.gm-badge b { font: 900 17px/1 var(--cond); text-transform: uppercase; letter-spacing: .03em; }
.gm-badge span { font-size: 13px; color: var(--cream-3); line-height: 1.3; }
.gm-badge.is-locked svg { opacity: .32; filter: grayscale(1); }
.gm-badge.is-locked b { color: var(--cream-3); }
.gm-earned .gm-badge svg { width: 64px; height: 64px; }
.gm-name-now { font: 900 26px/1 var(--cond); text-transform: uppercase; color: var(--lime); }
.gm-name-form { display: grid; gap: 4px; max-width: 30em; }
.gm-name-form label { font: 900 16px/1 var(--cond); text-transform: uppercase; letter-spacing: .05em; color: var(--cream-2); padding-bottom: 8px; }
.gm-name-row { display: flex; flex-wrap: wrap; gap: 8px; }
.gm-name-row input { flex: 1; min-width: 0; min-height: 56px; border-radius: 14px; border: 3px solid var(--cream); background: var(--cream); color: var(--ink); padding: 0 14px; font: 900 22px/1 var(--cond); letter-spacing: .02em; }
.gm-name-row input { flex: 1 1 12em; }
.gm-name-row input:focus-visible { border-color: var(--lime); outline-offset: 2px; }
.gm-invites { font-weight: 700; }

/* Method: calm reading */
.gm-method { padding: 46px var(--pad) 30px; display: grid; gap: 14px; max-width: 760px; }
.gm-method ol { margin: 0; padding-left: 1.3em; display: grid; gap: 8px; color: var(--cream-2); }
.gm-method p { color: var(--cream-3); font-size: 15px; }
.gm-foot { padding: 26px var(--pad) 40px; max-width: 1360px; margin: 0 auto; display: grid; gap: 8px; border-top: 2px solid var(--ink-3); }
.gm-foot-sig { font: 900 13px/1.2 var(--wide); letter-spacing: .08em; text-transform: uppercase; color: var(--orange); }
.gm-foot-links { display: flex; flex-wrap: wrap; gap: 0 22px; }
.gm-foot-links a { display: inline-flex; align-items: center; min-height: 44px; color: var(--cream-2); }

/* Host moods in motion */

@media (min-width: 560px) {
  .gm-ticket-grid { grid-template-columns: repeat(auto-fit, minmax(6rem, 1fr)); } /* as many as fit: 7 fixed columns squeezed Spanish labels out of their tickets */
  .gm-sharebar { grid-template-columns: 1.3fr 1fr; }
  .gm-sticker { font-size: 17px; }
}
@media (min-width: 960px) {
  .gm-bar { padding-top: 22px; }
  .gm-wordmark { font-size: 24px; }
  .gm-check-view { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr); column-gap: 28px; padding: 0 var(--pad); }
  /* Not sticky: a following poster slid over the barrio battle and the result on desktop (owner, 2026-10-29). */
  .gm-check-view > .gm-poster { margin: 0; align-self: start; min-height: 640px; padding: 34px 34px 0; }
  .gm-sticker { font-size: 21px; }
  .gm-score { font-size: clamp(9rem, 15vw, 15.5rem); }
  .gm-stamp { font-size: 3.4rem; }
  .gm-what { font-size: 17px; max-width: 46%; }
  .gm-check { padding: 6px 0 0; }
  .gm-boards, .gm-you, .gm-method { grid-column: 1 / -1; }
  .gm-boards { margin: 70px calc(-1 * var(--pad)) 0; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 48px; border-radius: 34px 34px 0 0; padding-top: 56px; }
  .gm-boards > h2 { grid-column: 1 / -1; font-size: 5rem; }
  .gm-boards > .gm-ticker, .gm-boards > .gm-stats-error { grid-column: 1 / -1; }
  .gm-you { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 48px; }
  .gm-you > h2 { grid-column: 1 / -1; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* ===== App shell ===== */
body { padding-bottom: calc(84px + env(safe-area-inset-bottom)); }
.gm-bar { position: sticky; top: 0; z-index: 20; background: var(--ink); padding-bottom: 10px; }
.gm-nav { position: fixed; z-index: 30; left: 0; right: 0; bottom: 0; display: grid; grid-template-columns: repeat(5, 1fr); align-items: end; gap: 2px;
  padding: 6px 8px calc(8px + env(safe-area-inset-bottom)); background: var(--ink); border-top: 2px solid var(--ink-3); }
.gm-tab, .gm-add { display: grid; justify-items: center; gap: 3px; min-height: 52px; padding: 6px 2px 2px; text-decoration: none; color: var(--cream-3); font: 900 12px/1 var(--cond); text-transform: uppercase; letter-spacing: .06em; border-radius: 12px; }
.gm-tab svg, .gm-add svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 2.3; stroke-linecap: round; stroke-linejoin: round; }
.gm-tab[aria-current="page"] { color: var(--lime); }
.gm-tab[data-nav="compete"] { color: var(--cream); }
.gm-tab[data-nav="compete"][aria-current="page"] { color: var(--lime); }
.gm-add { color: var(--cream); }
.gm-add svg { width: 52px; height: 52px; padding: 12px; margin-top: -26px; background: var(--ink); border: 3px solid var(--ink); border-radius: 50%; stroke-width: 3; box-shadow: 0 0 0 2px var(--cream-3); }
.gm-add span { color: var(--cream-2); }
.gm-add[aria-current="page"] span { color: var(--lime); }
body[data-view="add"] .gm-add svg { background: var(--orange); color: var(--ink); box-shadow: 0 0 0 3px var(--orange); }
.gm-view { padding: 0 var(--pad); display: grid; gap: 26px; align-content: start; }
@media (max-width: 959px) { .gm-check-view { padding: 0; display: block; } } /* phones only: on desktop the two-column grid applies */
/* With the poster away until there is a reading, the search sits in the gutter and the form follows it closely. */
@media (max-width: 959px) { .gm-check-view > .gm-psearch { margin: 0 var(--pad) 22px; padding: 14px; } .gm-check-view .gm-psearch-form input { font-size: 17px; text-overflow: ellipsis; } .gm-check-view > .gm-poster + .gm-check { padding-top: 16px; } } /* the reading card and its explanation read as one unit */
/* Desktop at rest: how the meter works sits beside the form instead of an empty column. */
@media (min-width: 960px) { .gm-check-view:has(> .gm-poster[hidden]) > .gm-psearch { margin-bottom: 0; } .gm-check-view > .gm-poster[hidden] ~ .gm-method { grid-column: 2; grid-row: 2; align-self: start; padding: 6px 0 0; } /* not sticky: it slid over Barrio battle (owner rejected that for the poster) */
  .gm-check-view > .gm-poster[hidden] ~ .gm-method h2 { font-size: clamp(1.7rem, 7.5vw, 2.6rem); } /* the headline step: a side note, not a second title */ }
.gm-view-title { font: 900 clamp(2.6rem, 11vw, 4.6rem)/.9 var(--cond); text-transform: uppercase; letter-spacing: -.005em; padding-top: 6px; overflow-wrap: anywhere; }
.gm-view[data-view="privacy"] { width: 100%; max-width: 860px; margin-inline: auto; }
.gm-privacy-copy { display: grid; gap: 15px; max-width: 72ch; font-size: 16px; line-height: 1.55; overflow-wrap: anywhere; }
.gm-privacy-copy h2 { font: 900 clamp(1.65rem, 6.5vw, 2.2rem)/1 var(--cond); text-transform: uppercase; margin-top: 18px; }
.gm-privacy-copy p { margin: 0; }
.gm-privacy-copy a { color: var(--lime); text-underline-offset: 3px; }
.gm-privacy-date { color: var(--cream-2); font-size: 14px; }
.gm-h2 { font: 900 clamp(1.7rem, 7vw, 2.4rem)/.95 var(--cond); text-transform: uppercase; margin-top: 10px; }
.gm-loading, .gm-empty { color: var(--cream-2); font-size: 17px; }
.gm-empty a, .gm-fine a { color: var(--lime); font-weight: 700; }
.gm-warn { color: var(--orange); font-weight: 700; }
.gm-noscript { padding: 20px var(--pad); color: var(--orange); font-weight: 700; }
a.gm-go, a.gm-alt { text-decoration: none; }
.gm-chip-s { display: inline-flex; align-items: center; padding: 5px 9px 4px; border-radius: 7px; background: var(--ink); color: var(--lime); font: 900 13px/1 var(--cond); text-transform: uppercase; letter-spacing: .06em; }
.gm-mini { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 16px; border-radius: 12px; background: var(--orange); color: var(--ink); border: 3px solid var(--ink); font: 900 17px/1 var(--cond); text-transform: uppercase; letter-spacing: .03em; text-decoration: none; }
.gm-mini:hover { filter: brightness(1.06); }
.gm-toast { position: fixed; z-index: 40; left: 50%; bottom: calc(96px + env(safe-area-inset-bottom)); transform: translateX(-50%); max-width: min(92vw, 520px); padding: 12px 16px; border-radius: 14px; background: var(--lime); color: var(--ink); font-weight: 700; border: 3px solid var(--ink); }

/* ===== Home hero: the challenge on stage ===== */
.gm-hero { margin: 0; padding: 22px 20px 18px; min-height: 0; display: grid; gap: 10px 8px; align-content: start; grid-template-columns: minmax(0, 1fr) 104px;
  grid-template-areas: "title title" "meta meta" "note host" "act act"; }
.gm-hero-title { grid-area: title; } .gm-hero-meta { grid-area: meta; } .gm-hero-note { grid-area: note; } .gm-hero-actions { grid-area: act; }
.gm-hero > * { position: relative; z-index: 2; }
.gm-hero-title { font: 900 clamp(2.3rem, 10.6vw, 5.6rem)/.88 var(--cond); text-transform: uppercase; letter-spacing: -.01em; padding: 4px 4px 0; overflow-wrap: anywhere; }
.gm-hero-meta { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: center; font: 700 15px/1.3 var(--text); color: var(--ink-soft); padding: 0 4px; }
.gm-hero-meta:empty { display: none; }
.gm-hero-note { font-size: 16px; line-height: 1.35; max-width: 30em; padding: 0 4px; align-self: center; }
.gm-hero-actions { display: grid; gap: 4px; padding: 4px 4px 0; justify-items: stretch; }
.gm-hero .gm-host-slot { grid-area: host; align-self: end; width: 104px; margin-bottom: -6px; }
.gm-hero .gm-host-slot .gm-host { position: static; width: 100%; }
.gm-hero .gm-alt { color: var(--ink); border-color: var(--ink); background: transparent; }
.gm-hero .gm-alt:hover { background: var(--ink); color: var(--lime); }

/* Board preview + podium */
.gm-preview, .gm-strip, .gm-awards { display: grid; gap: 14px; }
.gm-preview-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.gm-preview-head h2, .gm-awards h2, .gm-last h2 { font: 900 clamp(1.7rem, 7.5vw, 2.6rem)/.95 var(--cond); text-transform: uppercase; }
.gm-more-link { color: var(--lime); font: 900 16px/1 var(--cond); text-transform: uppercase; letter-spacing: .05em; padding: 12px 0; white-space: nowrap; }
.gm-podium { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; align-items: end; }
.gm-podium[data-n="1"] { grid-template-columns: minmax(0, 1fr); max-width: 260px; }
.gm-podium[data-n="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.gm-step { display: grid; gap: 6px; align-content: start; padding: 12px 10px 14px; border-radius: 16px 16px 6px 6px; background: var(--cream); color: var(--ink); min-height: 150px; }
.gm-step-1 { background: var(--lime); min-height: 190px; }
.gm-step-3 { min-height: 128px; }
.gm-step-rank { font: 900 44px/.8 var(--cond); }
.gm-step-name { font: 900 17px/1.05 var(--cond); text-transform: uppercase; overflow-wrap: anywhere; display: grid; gap: 4px; }
.gm-step-name a { color: inherit; text-decoration: none; }
.gm-step-name small, .gm-step-score small { font: 600 12px/1.25 var(--text); text-transform: none; color: var(--ink-soft); }
.gm-step-name small a { text-decoration: underline; }
.gm-step-score b { font: 900 26px/1 var(--cond); }
.gm-provisional { font-size: 14px; color: var(--cream-3); }
.gm-locked { display: grid; gap: 12px; justify-items: start; padding: 18px; border-radius: 18px; border: 3px dashed var(--ink-3); }
.gm-locked p { color: var(--cream-2); max-width: 34em; }
.gm-locked-ghost { display: flex; gap: 10px; align-items: end; }
.gm-locked-ghost span { display: grid; place-items: center; width: 64px; border-radius: 12px 12px 4px 4px; background: var(--ink-2); border: 2px solid var(--ink-3); color: var(--ink-3); font: 900 30px/1 var(--cond); }
.gm-locked-ghost span:nth-child(1) { height: 64px; } .gm-locked-ghost span:nth-child(2) { height: 88px; color: var(--cream-3); } .gm-locked-ghost span:nth-child(3) { height: 50px; }

/* Cards */
.gm-cards { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.gm-cards-row { grid-auto-flow: column; grid-auto-columns: min(78vw, 300px); grid-template-columns: none; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 6px; margin: 0 calc(-1 * var(--pad)); padding-left: var(--pad); padding-right: var(--pad); scrollbar-width: thin; }
.gm-cards-row > * { scroll-snap-align: start; }
.gm-cards-row > .gm-empty { grid-column: 1 / -1; }
.gm-card { display: grid; grid-template-rows: auto 1fr; background: var(--cream); color: var(--ink); border-radius: 20px; overflow: hidden; }
.gm-card-media { position: relative; display: block; aspect-ratio: 4 / 3; background: var(--ink-2); overflow: hidden; }
.gm-card-media img, .gm-card-media .gm-plate, .gm-find-media img, .gm-find-media .gm-plate { display: block; width: 100%; height: 100%; object-fit: cover; }
.gm-card-cat { position: absolute; left: 12px; top: 12px; padding: 6px 9px 5px; border-radius: 7px; background: var(--ink); color: var(--cream); font: 900 13px/1 var(--cond); text-transform: uppercase; letter-spacing: .07em; transform: rotate(-3deg); }
.gm-card-body { display: grid; gap: 6px; padding: 14px 16px 16px; align-content: start; }
.gm-card-title { font: 900 24px/1 var(--cond); text-transform: uppercase; letter-spacing: .005em; }
.gm-card-title a { color: inherit; text-decoration: none; }
.gm-card-title a:hover { text-decoration: underline; }
.gm-card-place { font-weight: 700; font-size: 15px; color: var(--ink-soft); }
.gm-find .gm-card-place { color: var(--cream-2); }
.gm-card-price { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.gm-card-price b { font: 900 30px/1 var(--cond); font-variant-numeric: tabular-nums; }
.gm-card-price span { font-size: 14px; color: var(--ink-soft); }
.gm-card-meta { font-size: 14px; color: var(--ink-soft); }
.gm-evidence { display: flex; flex-wrap: wrap; gap: 6px; padding-top: 2px; }
.gm-ev { display: inline-flex; align-items: center; gap: 6px; padding: 4px 9px; border-radius: 999px; border: 2px solid var(--ink); font: 800 12px/1.2 var(--text); }
.gm-ev::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--cream-3); }
.gm-ev-ok { background: var(--lime); } .gm-ev-ok::before { background: var(--ink); }
.gm-ev-warn { background: var(--orange); } .gm-ev-warn::before { background: var(--ink); }
.gm-ev-aff { border-style: dashed; }
.gm-find .gm-ev { border-color: var(--cream-2); color: var(--cream); }
.gm-find .gm-ev-ok, .gm-find .gm-ev-warn { color: var(--ink); border-color: transparent; }
.gm-card-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-top: 6px; }
.gm-card-by { font-size: 14px; color: var(--ink-soft); }
.gm-card-by a { color: var(--ink); font-weight: 700; }

.gm-check-tile { display: grid; gap: 6px; padding: 20px; border-radius: 20px; background: var(--lime); color: var(--ink); text-decoration: none; }
.gm-check-tile-q { font: 900 clamp(1.9rem, 8vw, 2.8rem)/.92 var(--cond); text-transform: uppercase; }
.gm-check-tile-a { font-weight: 700; display: inline-flex; align-items: center; gap: 8px; }
.gm-check-tile-a::after { content: ""; width: 1.2em; height: 1em; background: currentColor; -webkit-mask: var(--arrow) center / contain no-repeat; mask: var(--arrow) center / contain no-repeat; }
.gm-award-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.gm-award { display: grid; gap: 4px; padding: 16px 18px; border-radius: 18px; border: 3px solid var(--cream); }
.gm-award b { font: 900 26px/1 var(--cond); text-transform: uppercase; }
.gm-award span { color: var(--cream-2); }
.gm-award[data-award="buen_gusto"] { border-color: var(--lime); } .gm-award[data-award="buen_gusto"] b { color: var(--lime); }
.gm-award[data-award="gran_hallazgo"] { border-color: var(--orange); } .gm-award[data-award="gran_hallazgo"] b { color: var(--orange); }

/* Discover filters */
.gm-filters { display: flex; gap: 8px; overflow-x: auto; margin: 0 calc(-1 * var(--pad)); padding: 2px var(--pad) 6px; scrollbar-width: none; }
.gm-filter { flex: none; display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border-radius: 999px; border: 2px solid var(--cream-3); background: transparent; color: var(--cream); font: 900 16px/1 var(--cond); text-transform: uppercase; letter-spacing: .04em; text-decoration: none; }
.gm-filter[aria-pressed="true"] { background: var(--lime); border-color: var(--lime); color: var(--ink); }
.gm-filter-check { border-color: var(--orange); color: var(--orange); }
.gm-load { justify-self: center; }

/* Find detail */
.gm-find { display: grid; gap: 18px; }
.gm-find-media { position: relative; aspect-ratio: 4 / 3; border-radius: 22px; overflow: hidden; margin: 0 calc(-1 * var(--pad) + 8px); }
.gm-find-body { display: grid; gap: 14px; }
.gm-find-title { font: 900 clamp(2.4rem, 11vw, 4.4rem)/.9 var(--cond); text-transform: uppercase; overflow-wrap: anywhere; }
.gm-status { padding: 10px 12px; border-radius: 12px; background: var(--ink-2); border: 2px solid var(--cream-3); font-weight: 700; }
.gm-status-rejected, .gm-status-hidden { border-color: var(--orange); color: var(--orange); }
.gm-judgebox { display: grid; gap: 12px; padding: 18px; border-radius: 22px; background: var(--cream); color: var(--ink); }
.gm-judgebox .gm-fine { color: var(--ink-soft); }
.gm-judgebox .gm-fine a { color: var(--ink); }
.gm-meter-stage { display: grid; grid-template-columns: minmax(0, 150px) minmax(0, 1fr); align-items: center; gap: 14px; }
.gm-meter-stage .gm-host { position: static; width: 100%; }
.gm-meter-read { font: 900 22px/1.05 var(--cond); text-transform: uppercase; }
.gm-meter-read b { display: block; font-size: 64px; line-height: .85; }
.gm-q { font: 900 clamp(1.8rem, 8vw, 2.6rem)/.95 var(--cond); text-transform: uppercase; }
.gm-q-big { font-size: clamp(2.1rem, 9vw, 3.2rem); }
.gm-vote { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.gm-yes, .gm-no, .gm-pick { min-height: 64px; border-radius: 16px; border: 3px solid var(--ink); font: 900 26px/1 var(--cond); text-transform: uppercase; letter-spacing: .02em; color: var(--ink); transition: transform .12s var(--ease-out), filter .15s; }
.gm-yes { background: var(--lime); } .gm-no { background: var(--orange); }
.gm-yes:active, .gm-no:active, .gm-pick:active { transform: translateY(2px) scale(.99); }
.gm-yes:disabled, .gm-no:disabled, .gm-pick:disabled { opacity: .45; cursor: default; }
.gm-vote.is-done button.is-picked { opacity: 1; outline: 4px solid var(--ink); outline-offset: 2px; }
.gm-signals { display: grid; gap: 10px; }
.gm-signal { padding: 16px; border-radius: 18px; border: 2px solid var(--ink-3); display: grid; gap: 6px; }
.gm-signal h2 { font: 900 18px/1 var(--cond); text-transform: uppercase; letter-spacing: .05em; color: var(--cream-2); }
.gm-signal b { font: 900 26px/1 var(--cond); }
.gm-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.gm-act { min-height: 46px; padding: 0 16px; border-radius: 999px; border: 2px solid var(--cream-3); background: transparent; color: var(--cream); font: 900 16px/1 var(--cond); text-transform: uppercase; letter-spacing: .04em; }
.gm-act[aria-pressed="true"] { background: var(--lime); color: var(--ink); border-color: var(--lime); }
.gm-act:disabled { opacity: .6; cursor: default; }
.gm-act-share { border-color: var(--orange); color: var(--orange); }
.gm-panel { display: grid; gap: 12px; padding: 18px; border-radius: 18px; background: var(--ink-2); border: 2px solid var(--ink-3); }
.gm-panel h2 { font: 900 22px/1 var(--cond); text-transform: uppercase; }
.gm-panel-done { padding: 14px 16px; border-radius: 14px; background: var(--lime); color: var(--ink); font-weight: 700; }
.gm-lbl { display: grid; gap: 8px; font: 900 15px/1 var(--cond); text-transform: uppercase; letter-spacing: .05em; color: var(--cream-2); }
.gm-lbl input, .gm-text { width: 100%; min-height: 52px; border-radius: 14px; border: 3px solid var(--cream); background: var(--cream); color: var(--ink); padding: 0 14px; font: 600 18px/1.2 var(--text); }
.gm-lbl input[type="month"] { background: var(--ink-2); color: var(--cream); border-color: var(--ink-3); }
.gm-text:focus-visible, .gm-lbl input:focus-visible { border-color: var(--lime); outline-offset: 2px; }
.gm-price-sm { min-height: 56px; } .gm-price-sm input { font: 900 28px/1 var(--cond); border: 0; background: transparent; width: 100%; color: var(--ink); }
.gm-check-row { display: flex; gap: 10px; align-items: flex-start; font-weight: 600; min-height: 44px; padding-top: 10px; }
.gm-check-row input { width: 22px; height: 22px; accent-color: var(--lime); flex: none; margin-top: 1px; }
.gm-report { justify-self: start; min-height: 44px; padding: 0; border: 0; background: none; color: var(--cream-3); text-decoration: underline; font-size: 14px; }
.gm-next { padding-top: 6px; }

/* Judge */
.gm-judge-top { display: flex; align-items: end; justify-content: space-between; gap: 12px; }
.gm-judge-card .gm-card { max-width: 520px; }
.gm-duel { display: grid; gap: 12px; align-items: start; }
.gm-duel-side { display: grid; gap: 10px; }
.gm-duel-side .gm-card-media { aspect-ratio: 16 / 9; }
.gm-pick { background: var(--cream); }
.gm-duel-side.is-picked .gm-card { outline: 5px solid var(--lime); outline-offset: 3px; }
.gm-duel-side.is-picked .gm-pick { background: var(--lime); opacity: 1; }
.gm-duel-read { font: 900 20px/1.1 var(--cond); text-transform: uppercase; color: var(--cream-2); }
.gm-duel-read b { font-size: 40px; color: var(--lime); }
.gm-vs { justify-self: center; display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: var(--orange); color: var(--ink); border: 3px solid var(--ink); font: 900 26px/1 var(--wide); transform: rotate(-8deg); margin: -26px 0; z-index: 2; position: relative; }
.gm-skip-row { display: flex; justify-content: center; }
.gm-done { display: grid; gap: 14px; justify-items: start; }
.gm-done .gm-host-slot { width: 190px; }
.gm-done .gm-host { position: static; width: 100%; }

/* Compete */
.gm-chal { margin: 0; padding: 24px 22px; min-height: 0; display: grid; gap: 12px; }
.gm-chal-title { font: 900 clamp(2rem, 9vw, 3.4rem)/.92 var(--cond); text-transform: uppercase; }
.gm-chal-meta { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; color: var(--cream-2); font-weight: 700; font-size: 15px; }
.gm-chal-meta .gm-chip-s { background: var(--lime); color: var(--ink); }
.gm-chal-rules { color: var(--cream-2); max-width: 40em; }
.gm-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.gm-tab-b { display: grid; gap: 4px; justify-items: start; text-align: left; min-height: 64px; padding: 10px 10px; border-radius: 14px; border: 2px solid var(--ink-3); background: var(--ink-2); color: var(--cream); font: 900 18px/1 var(--cond); text-transform: uppercase; letter-spacing: .02em; }
.gm-tab-b small { font: 600 12px/1.2 var(--text); text-transform: none; color: var(--cream-3); letter-spacing: 0; }
.gm-tab-b[aria-selected="true"] { background: var(--lime); color: var(--ink); border-color: var(--lime); }
.gm-tab-b[aria-selected="true"] small { color: var(--ink-soft); }
.gm-board { display: grid; gap: 14px; }
.gm-ranks { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.gm-ranks li { display: grid; grid-template-columns: 2.4em minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 10px 14px 10px 10px; border-radius: 12px; background: var(--ink-2); }
.gm-rank-n { font: 900 26px/1 var(--cond); color: var(--lime); text-align: center; }
.gm-rank-name { font-weight: 700; overflow-wrap: anywhere; } .gm-rank-name a { color: var(--cream); }
.gm-rank-name small { color: var(--cream-3); font-weight: 500; } .gm-rank-name small a { color: var(--cream-2); }
.gm-rank-score { text-align: right; } .gm-rank-score b { font: 900 22px/1 var(--cond); } .gm-rank-score small { color: var(--cream-3); font-size: 12px; display: block; }
.gm-you-pos { padding: 14px; border-radius: 18px; border: 3px solid var(--lime); display: grid; gap: 10px; }
.gm-you-pos h3, .gm-yours h2, .gm-last h3 { font: 900 20px/1 var(--cond); text-transform: uppercase; letter-spacing: .03em; }
.gm-yours ul, .gm-placements { margin: 0; padding-left: 1.2em; color: var(--cream-2); display: grid; gap: 6px; }
.gm-yours a, .gm-placements a { color: var(--lime); }
.gm-beat .gm-card-media { aspect-ratio: 2 / 1; }
@media (max-width: 560px) { #gm-cats .gm-cat { width: 82px; min-height: 80px; padding: 6px 4px 7px; } #gm-cats .gm-cat img { width: 44px; height: 44px; } .gm-beat .gm-card-media { aspect-ratio: 3 / 1; } .gm-beat .gm-card-body { gap: 3px; padding: 8px 12px 10px; } .gm-beat { padding: 12px; gap: 10px; } }
.gm-beat .gm-card-foot { display: none; }
.gm-feed-h { margin-top: 8px; }
.gm-paid-vs { font-weight: 700; } .gm-paid-vs b { font: 900 22px/1 var(--cond); }
[data-nav][data-cue] { position: relative; }
[data-nav][data-cue]::after { content: ""; position: absolute; top: 4px; right: calc(50% - 20px); width: 10px; height: 10px; border-radius: 50%; background: var(--orange); box-shadow: 0 0 0 2px var(--ink); }
@media (min-width: 960px) { [data-nav][data-cue]::after { top: 2px; right: -4px; } }
.gm-scope { margin-top: 12px; color: var(--cream-2); font-size: 14px; line-height: 1.45; } .gm-scope b { color: var(--cream); } .gm-scope span { color: var(--cream-3); }
.gm-beat-strip { display: grid; gap: 4px; padding: 14px 16px; border: 3px dashed var(--orange); border-radius: 18px; color: var(--cream); max-width: 560px; }
.gm-beat-strip .gm-card-label { color: var(--orange); }
.gm-beat { display: grid; gap: 12px; padding: 16px; border: 3px solid var(--orange); border-radius: 22px; }
.gm-beat-h { font: 900 clamp(2rem, 8vw, 3rem)/.92 var(--cond); text-transform: uppercase; color: var(--orange); }
.gm-beat-card { max-width: 420px; }
.gm-beat-why { color: var(--cream-2); font-weight: 700; }
.gm-beat > .gm-hero-actions { grid-area: auto; margin-top: 0; padding-top: 0; }
.gm-last { display: grid; gap: 12px; padding-top: 10px; border-top: 2px solid var(--ink-3); }
.gm-last a { color: var(--lime); font-weight: 700; }
.gm-rules { border-top: 2px solid var(--ink-3); padding-top: 10px; color: var(--cream-2); }
.gm-rules summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; font: 900 20px/1 var(--cond); text-transform: uppercase; letter-spacing: .04em; color: var(--cream); }
.gm-rules h3 { font: 900 18px/1 var(--cond); text-transform: uppercase; margin: 14px 0 6px; color: var(--cream); }
.gm-rules ul { padding-left: 1.2em; display: grid; gap: 6px; }

/* Profile / notices / add */
.gm-notices ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; }
.gm-notices li { padding: 12px 14px; border-radius: 12px; background: var(--lime); color: var(--ink); font-weight: 700; }
.gm-notices a { color: var(--ink); }
.gm-mine { display: grid; gap: 8px; }
.gm-add-choices { display: grid; gap: 12px; }
.gm-choice { display: grid; gap: 8px; padding: 22px; border-radius: 22px; background: var(--cream); color: var(--ink); text-decoration: none; }
.gm-choice b { font: 900 clamp(2rem, 9vw, 3rem)/.92 var(--cond); text-transform: uppercase; }
.gm-choice span { font-size: 16px; color: var(--ink-soft); }
.gm-choice-find { background: var(--cream); border-color: var(--ink); }
.gm-choice-find span { color: var(--ink); }
.gm-ticket-plate .gm-plate { width: 100%; height: 40px; border-radius: 8px; }
.gm-ticket-plate { padding: 6px 6px 8px; }
#gm-post-form input[type="file"] { color: var(--cream-2); min-height: 44px; }
#gm-post-form input[type="month"] { max-width: 100%; }

@media (min-width: 700px) {
  .gm-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gm-cards-row { grid-template-columns: none; grid-auto-columns: 300px; }
  .gm-duel { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; }
  .gm-vs { margin: 0 -18px; }
  .gm-signals { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .gm-hero-actions { grid-template-columns: repeat(2, max-content); }
  .gm-add-choices { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gm-award-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 960px) {
  body { padding-bottom: 0; }
  .gm-bar { display: grid; grid-template-columns: auto 1fr auto; align-items: center; column-gap: 28px; border-bottom: 2px solid var(--ink-3); padding-bottom: 14px; }
  .gm-nav { position: static; display: flex; justify-content: center; gap: 8px; padding: 0; border: 0; background: none; align-items: center; }
  .gm-tab, .gm-add { display: inline-flex; align-items: center; gap: 8px; min-height: 46px; padding: 0 14px; font-size: 18px; }
  .gm-tab svg { width: 20px; height: 20px; }
  .gm-add { background: var(--ink); color: var(--cream); border: 2px solid var(--cream-3); border-radius: 999px; padding: 0 18px 0 12px; order: 9; }
  .gm-add svg { width: 22px; height: 22px; padding: 0; margin: 0; border: 0; box-shadow: none; background: none; }
  .gm-add span { color: var(--cream-2); }
  body[data-view="add"] .gm-add { background: var(--orange); color: var(--ink); border-color: var(--ink); }
  body[data-view="add"] .gm-add svg { background: none; box-shadow: none; }
  body[data-view="add"] .gm-add span { color: var(--ink); }
  .gm-sig { padding-top: 14px; }
  .gm-view { gap: 34px; }
  .gm-hero { padding: 40px 44px 40px; min-height: 420px; }
  .gm-hero-title { font-size: clamp(4.4rem, 6.6vw, 7rem); max-width: 12ch; }
  .gm-hero { grid-template-columns: minmax(0, 1fr) 300px; grid-template-areas: "title host" "meta host" "note host" "act host"; column-gap: 40px; }
  .gm-hero .gm-host-slot { width: 300px; align-self: center; margin: 0; }
  .gm-hero-note { font-size: 19px; }
  .gm-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .gm-cards-row { grid-auto-flow: row; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: visible; margin: 0; padding: 0; }
  .gm-find { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 36px; align-items: start; }
  .gm-find-media { margin: 0; }
  .gm-find-visual { position: sticky; top: 100px; } /* photo and its credit stay together in the left column */
  .gm-podium { max-width: 760px; }
  .gm-toast { bottom: 28px; }
}

.gm-textlink { justify-self: center; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 6px; font: 900 18px/1 var(--cond); text-transform: uppercase; letter-spacing: .04em; color: inherit; text-decoration: underline; text-underline-offset: .22em; }
.gm-textlink::after { content: ""; width: 1.1em; height: 1em; background: currentColor; -webkit-mask: var(--arrow) center / contain no-repeat; mask: var(--arrow) center / contain no-repeat; }
.gm-alt svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; margin-left: 8px; }
.gm-miniboard { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.gm-miniboard li { display: grid; grid-template-columns: 2em minmax(0, 1fr) auto; gap: 10px; align-items: center; min-height: 44px; padding: 4px 14px 4px 8px; border-radius: 12px; background: var(--ink-2); }
.gm-miniboard li:first-child { background: var(--lime); color: var(--ink); }
.gm-mb-rank { font: 900 26px/1 var(--cond); text-align: center; color: var(--lime); }
.gm-miniboard li:first-child .gm-mb-rank { color: var(--ink); }
.gm-mb-name { font: 900 17px/1.1 var(--cond); text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gm-mb-name a { color: inherit; text-decoration: none; }
.gm-mb-score { font: 900 20px/1 var(--cond); font-variant-numeric: tabular-nums; }
.gm-mb-score small { font: 600 12px/1 var(--text); margin-left: 3px; opacity: .75; }
.gm-locked { padding: 14px 16px; gap: 8px; }
.gm-locked-ghost span:nth-child(1) { height: 40px; } .gm-locked-ghost span:nth-child(2) { height: 56px; } .gm-locked-ghost span:nth-child(3) { height: 32px; }
.gm-locked-ghost span { width: 48px; font-size: 22px; }
@media (max-width: 959px) { .gm-locked { grid-template-columns: auto 1fr; align-items: center; } .gm-locked .gm-mini { grid-column: 1 / -1; justify-self: start; } }
.gm-hero .gm-go { font-size: 26px; white-space: nowrap; }
@media (min-width: 960px) {
  .gm-view[data-view="home"] { grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); column-gap: 28px; align-items: start; }
  .gm-view[data-view="home"] > .gm-hero { grid-column: 1; grid-row: 1; min-height: 520px; grid-template-columns: minmax(0, 1fr) 230px; }
  .gm-view[data-view="home"] > .gm-hero .gm-host-slot { width: 230px; }
  .gm-view[data-view="home"] > .gm-hero .gm-hero-title { font-size: clamp(3.6rem, 5vw, 5.4rem); }
  .gm-view[data-view="home"] > .gm-preview { grid-column: 2; grid-row: 1; align-self: stretch; align-content: start; padding: 26px; border-radius: 22px; border: 3px solid var(--ink-3); }
  .gm-view[data-view="home"] > .gm-strip, .gm-view[data-view="home"] > .gm-check-tile, .gm-view[data-view="home"] > .gm-awards { grid-column: 1 / -1; }
  .gm-view[data-view="home"] > .gm-preview[hidden] + .gm-strip { grid-row: auto; }
}
@media (min-width: 960px) { .gm-view[data-view="home"]:has(> .gm-preview[hidden]) > .gm-hero { grid-column: 1 / -1; } }
/* Duel: compact, side by side even on phones */
.gm-duel { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; position: relative; }
.gm-duel > .gm-vs { position: absolute; left: 50%; top: 92px; transform: translate(-50%, -50%) rotate(-8deg); margin: 0; width: 52px; height: 52px; font-size: 20px; }
.gm-duel-card { background: var(--cream); color: var(--ink); border-radius: 16px; overflow: hidden; display: grid; }
.gm-duel-media { position: relative; aspect-ratio: 1 / 1; }
.gm-duel-media img, .gm-duel-media .gm-plate { display: block; width: 100%; height: 100%; object-fit: cover; }
.gm-judge-view .gm-photo-credit { overflow-wrap: anywhere; }
.gm-duel-media .gm-card-cat { left: 8px; top: 8px; font-size: 11px; }
.gm-duel-body { display: grid; gap: 4px; padding: 10px 10px 12px; align-content: start; }
.gm-duel-title { font: 900 18px/1 var(--cond); text-transform: uppercase; overflow-wrap: anywhere; }
.gm-duel-price { font: 900 24px/1 var(--cond); font-variant-numeric: tabular-nums; display: grid; }
.gm-duel-price span { font: 600 12px/1.2 var(--text); color: var(--ink-soft); }
.gm-duel-place, .gm-duel-inc { font-size: 13px; line-height: 1.25; color: var(--ink-soft); }
.gm-duel .gm-evidence .gm-ev { font-size: 11px; padding: 3px 7px; }
.gm-duel .gm-pick { min-height: 56px; font-size: 22px; }
.gm-duel-side.is-picked .gm-duel-card { outline: 5px solid var(--lime); outline-offset: 3px; }
@media (min-width: 700px) { .gm-duel { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; } .gm-duel > .gm-vs { top: 140px; width: 70px; height: 70px; font-size: 26px; } }
.gm-price-box input { flex: 1; min-width: 0; width: 100%; border: 0; background: transparent; font: 900 36px/1 var(--cond); letter-spacing: .01em; font-variant-numeric: tabular-nums; color: var(--ink); padding: 12px 0 10px; }
.gm-price-box input::placeholder { color: #8a8073; }
.gm-enter { padding: 14px; border-radius: 14px; background: var(--lime); color: var(--ink); }
.gm-enter input { accent-color: var(--ink); }
input[type="file"]::file-selector-button { min-height: 44px; margin-right: 12px; padding: 0 16px; border-radius: 12px; border: 2px solid var(--cream); background: var(--ink-2); color: var(--cream); font: 900 16px/1 var(--cond); text-transform: uppercase; letter-spacing: .04em; cursor: pointer; }

/* Layered host: Higgsfield dial + face, code needle (it swings on reveals). */
.gm-host svg image { image-rendering: auto; }
@media (prefers-reduced-motion: no-preference) {
  .gm-host[data-mood="celebratory"] .h-face { animation: hop .7s cubic-bezier(.16,1,.3,1) 1; transform-box: fill-box; transform-origin: 50% 100%; }
  .gm-host[data-mood="impressed"] .h-face { animation: jolt .45s cubic-bezier(.2,.9,.3,1) 1; transform-box: fill-box; transform-origin: 50% 50%; }
}
@keyframes hop { 35% { transform: translateY(-14px) scale(1.03); } 70% { transform: translateY(0) scale(.99, 1.01); } }
@keyframes jolt { 20% { transform: scale(1.08) rotate(-3deg); } 40% { transform: scale(.97) rotate(2deg); } }

/* ===== Board-faithful components (Higgsfield art) ===== */
.gm-poster::before { display: none; }
.gm-hero, .gm-chal { padding: 30px 28px 26px; }
/* Cards: the board's phone card */
.gm-card { border: 4px solid var(--ink); box-shadow: 0 0 0 3px var(--cream); border-radius: 26px; margin: 3px; }
.gm-card-media { aspect-ratio: 4 / 3; }
.gm-card-media .gm-ill { object-fit: cover; }
.gm-ill-fallback { display: block; width: 100%; height: 100%; background: var(--lime); }
.gm-card-cat { background: var(--ink); color: var(--cream); top: 14px; left: 14px; transform: none; border-radius: 8px; padding: 7px 10px 6px; font-size: 14px; }
.gm-card-body { gap: 8px; padding: 16px 18px 14px; }
.gm-card-title { font-size: 30px; line-height: .95; }
.gm-card-place { font-size: 14px; }
.gm-card-pricerow { display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; border-top: 3px dotted var(--ink); padding-top: 10px; }
.gm-card-label { font: 900 12px/1 var(--cond); text-transform: uppercase; letter-spacing: .08em; }
.gm-card-price b { font-size: 38px; }
.gm-card-pricerow .gm-evidence { justify-content: flex-end; }
.gm-card-vote { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding-top: 4px; }
.gm-card-vote button { min-height: 52px; font-size: 21px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; border-radius: 12px; }
.gm-card-vote svg, .gm-vote svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2.8; stroke-linecap: round; stroke-linejoin: round; }
.gm-card-reveal { display: grid; gap: 8px; padding: 10px 12px; border-radius: 12px; background: var(--ink); color: var(--cream); font-weight: 700; }
.gm-card-reveal b { font: 900 30px/1 var(--cond); color: var(--lime); }
.gm-reveal-bar { display: block; height: 12px; border-radius: 999px; background: var(--orange); overflow: hidden; }
.gm-reveal-bar span { display: block; height: 100%; width: 100%; background: var(--lime); box-shadow: inset -3px 0 0 var(--ink); transform-origin: left; transform: scaleX(calc(var(--pct) / 100)); animation: grow .35s var(--e-progress, ease-out) both; }
@keyframes grow { from { transform: scaleX(0); } }
.gm-card-foot { border-top: 2px solid rgba(20, 20, 20, .12); padding-top: 10px; gap: 14px; justify-content: flex-start; }
.gm-stat { display: inline-flex; align-items: center; gap: 5px; font: 800 14px/1 var(--text); }
.gm-stat svg, .gm-share-ic svg { width: 18px; height: 18px; fill: none; stroke: var(--ink); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.gm-card-foot .gm-card-by { margin-left: auto; font-size: 13px; }
.gm-share-ic { display: inline-grid; place-items: center; width: 44px; height: 44px; margin: -10px -8px -10px 0; }
/* Category tiles (board) */
.gm-cat { flex: none; position: relative; display: grid; justify-items: center; align-content: center; gap: 4px; width: 92px; min-height: 96px; padding: 8px 6px 9px; border-radius: 16px; background: var(--cream); color: var(--ink); border: 3px solid var(--cream); text-decoration: none; font: 900 13px/1 var(--cond); text-transform: uppercase; letter-spacing: .04em; cursor: pointer; transition: transform .15s var(--ease-out), background-color .15s; }
.gm-cat img { width: 56px; height: 56px; object-fit: contain; }
.gm-cat[aria-pressed="true"], .gm-cat:has(input:checked) { background: var(--lime); border-color: var(--ink); box-shadow: 0 0 0 3px var(--lime); transform: rotate(-2deg); }
.gm-cat:hover { transform: translateY(-2px); }
.gm-cat input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.gm-cat:has(input:focus-visible) { outline: 3px solid var(--lime); outline-offset: 4px; }
.gm-cat-check { background: var(--orange); border-color: var(--orange); }
.gm-filters { gap: 10px; padding-top: 6px; padding-bottom: 10px; }
.gm-cat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.gm-cat-grid .gm-cat { width: auto; }
@media (min-width: 700px) { .gm-cat-grid { grid-template-columns: repeat(7, minmax(0, 1fr)); } }
/* Badges: Higgsfield medallions; names set on the banner */
.gm-badges { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
.gm-medal { position: relative; display: block; width: 140px; align-self: start; container-type: inline-size; } /* never stretched by the row: the name is placed in % of the art */
.gm-medal img { display: block; width: 100%; height: auto; }
/* The name sits inside the banner (about 72% of the medal wide, 16% tall): one line up to 10 letters, two balanced
   lines when that sets bigger type; the size follows the medal width (cqi) and the longest line (--n, set by badgeEl). */
.gm-medal .gm-medal-name { position: absolute; left: 14%; right: 14%; top: 76.5%; transform: translateY(-50%); text-align: center; white-space: pre; font: 900 min(12.5cqi, calc(var(--w, 72) * .97cqi / (var(--n, 8) * .6)))/1 var(--cond); text-transform: uppercase; color: var(--ink); letter-spacing: .01em; }
.gm-medal .gm-medal-name.is-two { font-size: min(8.4cqi, calc(var(--w, 72) * .97cqi / (var(--n, 8) * .6))); line-height: .9; }
.gm-medal-shield .gm-medal-name, .gm-medal-hex .gm-medal-name { top: 74.5%; }
.gm-badge.is-full .gm-medal { width: 150px; }
.gm-badge-how { font-size: 13px; color: var(--cream-3); line-height: 1.3; text-align: center; }
.gm-badge.is-locked .gm-medal { opacity: .3; filter: grayscale(1); }
.gm-earned .gm-medal { width: 96px; }
.gm-award { grid-template-columns: 96px 1fr; grid-template-rows: auto 1fr; column-gap: 14px; align-items: center; }
.gm-award img { grid-row: 1 / span 2; width: 96px; height: auto; }
/* Slogan */
.gm-slogan { display: flex; align-items: center; gap: 12px; font: 900 clamp(2rem, 8vw, 3.4rem)/.95 var(--cond); text-transform: uppercase; color: var(--cream); }
.gm-slogan span { background: linear-gradient(var(--orange), var(--orange)) 0 100% / 100% 6px no-repeat; padding-bottom: 8px; }
.gm-slogan img { width: 56px; height: 56px; }
.gm-card-pricerow { flex-wrap: wrap; }
.gm-card-price b, .gm-ev { white-space: nowrap; }

/* Motion tokens (MOTION.md) */
:root { --m-feedback: 140ms; --m-progress: 350ms; --m-celebrate: 850ms; --e-feedback: cubic-bezier(.2,.9,.3,1); --e-progress: cubic-bezier(.22,1,.36,1); --e-pop: cubic-bezier(.16,1,.3,1); }
.h-needle { transition: opacity var(--m-feedback) var(--e-feedback); }
button.is-picked { outline: 4px solid var(--ink); outline-offset: 2px; transform: scale(1.02); transition: transform var(--m-feedback) var(--e-feedback); opacity: 1 !important; }
button.is-dimmed { opacity: .38; transition: opacity var(--m-feedback) var(--e-feedback); }
button[data-pending] { cursor: progress; }
.gm-yes:active, .gm-no:active, .gm-pick:active, .gm-go:active, .gm-mini:active, .gm-act:active { transform: scale(.97); transition: transform var(--m-feedback) var(--e-feedback); }

/* ===== Motion-system pieces ===== */
.gm-meter-side { display: grid; gap: 8px; justify-items: start; }
.gm-stamp-sm { font-size: 26px; padding: 6px 10px 5px; max-width: none; border-width: 3px; background: var(--lime); }
.gm-meter-scale { display: flex; justify-content: space-between; max-width: 150px; font: 900 12px/1 var(--cond); text-transform: uppercase; letter-spacing: .05em; margin-top: -6px; }
.gm-meter-scale span:first-child { color: #3f5200; } .gm-meter-scale span:last-child { color: #a33208; }
.gm-after { display: grid; gap: 8px; border-top: 3px dotted var(--ink); padding-top: 12px; }
.gm-after-q { font: 900 18px/1 var(--cond); text-transform: uppercase; letter-spacing: .04em; }
.gm-after-row { display: flex; flex-wrap: wrap; gap: 8px; }
.gm-judgebox .gm-act { border-color: var(--ink); color: var(--ink); text-decoration: none; display: inline-flex; align-items: center; }
.gm-find .gm-vote.is-done .gm-no { background: var(--cream); }
.gm-duel-read .gm-reveal-bar { margin-top: 6px; }
.gm-round-saves { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; width: 100%; }
.gm-round-saves li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 10px; align-items: center; padding: 8px 8px 8px 14px; border-radius: 14px; background: var(--ink-2); }
.gm-round-saves a { color: var(--cream); font-weight: 700; } .gm-round-saves span { font: 900 18px/1 var(--cond); color: var(--cream-2); }
.gm-celebrate { position: relative; display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 12px; align-items: center; margin: 0 var(--pad) 18px; padding: 16px 44px 16px 14px; border-radius: 22px; background: var(--lime); color: var(--ink); border: 4px solid var(--ink); box-shadow: 0 0 0 3px var(--lime); }
.gm-celebrate .gm-host { position: static; width: 110px; }
.gm-celebrate-k { font: 900 22px/1 var(--cond); text-transform: uppercase; margin-bottom: 6px; }
.gm-celebrate .gm-badge { justify-items: start; text-align: left; }
.gm-celebrate .gm-medal { width: 96px; } .gm-celebrate .gm-badge-how { color: var(--ink-soft); text-align: left; }
.gm-celebrate .gm-textlink { justify-self: start; padding: 0; }
.gm-celebrate-x { position: absolute; top: 6px; right: 6px; width: 44px; height: 44px; border: 0; background: none; font: 900 28px/1 var(--text); color: var(--ink); }
.gm-impact { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 12px; align-items: center; padding: 14px; border-radius: 20px; border: 3px solid var(--lime); }
.gm-impact .gm-host { position: static; width: 84px; }
.gm-impact h2 { font: 900 22px/1 var(--cond); text-transform: uppercase; color: var(--lime); }
.gm-impact ul { list-style: none; margin: 6px 0 0; padding: 0; display: grid; gap: 4px; }
.gm-impact b { font: 900 22px/1 var(--cond); color: var(--lime); }
.gm-impact .gm-textlink { justify-self: start; padding: 0; color: var(--cream); }
.gm-ranks li.is-moved { outline: 3px solid var(--lime); outline-offset: -3px; }
.gm-moved { display: inline-block; margin-left: 8px; padding: 2px 7px; border-radius: 6px; font: 900 12px/1.3 var(--cond); text-transform: uppercase; letter-spacing: .04em; background: var(--lime); color: var(--ink); }
.gm-moved[data-dir="down"] { background: var(--cream-3); }
@media (min-width: 960px) { .gm-view[data-view="home"] > .gm-impact { grid-column: 1 / -1; } }

.gm-meter-side .gm-meter-read { font: 700 15px/1.3 var(--text); text-transform: none; }
.gm-stamp-sm { white-space: nowrap; font-size: 24px; }
.gm-step.is-moved { outline: 4px solid var(--orange); outline-offset: -4px; }
.gm-step .gm-moved { margin: 4px 0 0; justify-self: start; }
/* If the paper image fails, ink text still sits on cream (inset so torn edges stay visible when it loads). */

/* ===== Finish-review fixes ===== */
:root { --arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 12h15M13 5l7 7-7 7' fill='none' stroke='black' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
/* Poster paper as a 9-slice: torn edge and printed frame keep their thickness at any size. */
.gm-poster { background: var(--cream) padding-box; border: 36px solid transparent; border-image: url(/assets/art/poster-portrait.webp) 72 fill / 36px stretch; border-radius: 0; }
@media (min-width: 700px) { .gm-hero, .gm-chal { border-image-source: url(/assets/art/poster-wide.webp); } }
.gm-check-view > .gm-poster { padding: 0 0 0; }
/* Home poster: the board's composition — headline, real-data stickers, host breaking the bottom frame; action below. */
.gm-hero { padding: 4px 4px 0; gap: 8px 10px; grid-template-columns: minmax(0, 1fr) minmax(140px, 48%);
  grid-template-areas: "title title" "meta meta" "note note" "stick host"; min-height: 0; }
.gm-hero-stickers { grid-area: stick; display: grid; gap: 12px; align-content: end; justify-items: start; padding: 0 0 10px; }
.gm-hero .gm-sticker { position: static; max-width: 11em; font-size: 16px; }
.gm-hero .gm-sticker-lime { transform: rotate(-5deg); } .gm-hero .gm-sticker-orange { transform: rotate(4deg); margin-left: 8px; }
.gm-hero-host { grid-area: host; position: relative; align-self: end; margin-bottom: -60px; z-index: 3; }
.gm-hero-host .gm-host-slot { position: static; width: 100%; margin: 0; }
.gm-hero-host .gm-host { position: static; width: 100%; }
.gm-burst { position: absolute; left: -14%; top: -12%; width: 128%; height: auto; fill: none; stroke: var(--ink); stroke-width: 7; stroke-linecap: round; pointer-events: none; }
.gm-hero-note { font-size: 16px; padding: 0 4px; }
.gm-hero-actions { padding: 34px 0 0; display: grid; gap: 4px; }
.gm-hero-actions .gm-go { font-size: 28px; white-space: normal; text-align: center; }
.gm-hero-actions .gm-textlink { color: var(--cream); }
.gm-view[data-view="home"] { row-gap: 0; }
.gm-view[data-view="home"] > .gm-impact, .gm-view[data-view="home"] > .gm-preview { margin-top: 26px; }
.gm-view[data-view="home"] > .gm-strip, .gm-view[data-view="home"] > .gm-check-tile, .gm-view[data-view="home"] > .gm-awards { margin-top: 30px; }
@media (min-width: 960px) {
  .gm-view[data-view="home"] > .gm-hero { grid-column: 1; grid-row: 1; min-height: 0; padding: 10px 14px 0; grid-template-columns: minmax(0, 1fr) 260px;
    grid-template-areas: "title host" "meta host" "note host" "stick host"; }
  .gm-view[data-view="home"] > .gm-hero .gm-hero-host { width: 260px; margin-bottom: -58px; }
  .gm-view[data-view="home"] > .gm-hero-actions { grid-column: 1; grid-row: 2; grid-template-columns: max-content max-content; align-items: center; column-gap: 20px; padding-top: 30px; }
  .gm-view[data-view="home"] > .gm-preview { grid-column: 2; grid-row: 1 / span 2; align-self: start; margin-top: 0; }
  .gm-view[data-view="home"]:has(> .gm-preview[hidden]) > .gm-hero, .gm-view[data-view="home"]:has(> .gm-preview[hidden]) > .gm-hero-actions { grid-column: 1 / -1; }
  .gm-view[data-view="home"] > .gm-impact { grid-column: 1 / -1; }
}
/* Find art is labelled as illustration, never posing as the find's own photo. */
.gm-art-tag { position: absolute; left: 10px; bottom: 10px; padding: 4px 7px 3px; border-radius: 6px; background: rgba(20, 20, 20, .82); color: var(--cream); font: 800 11px/1 var(--text); letter-spacing: .04em; text-transform: uppercase; }
.gm-find-media .gm-art-tag { left: 14px; bottom: 14px; font-size: 12px; }
/* Duel: outlined, filled pick buttons with icon; long text wraps inside the card */
.gm-pick { display: inline-flex; align-items: center; justify-content: center; gap: 8px; background: var(--cream); border: 3px solid var(--ink); box-shadow: 0 0 0 3px var(--ink); }
.gm-pick svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2.8; stroke-linecap: round; stroke-linejoin: round; }
.gm-duel-body { min-width: 0; } .gm-duel-place, .gm-duel-inc, .gm-duel-title { overflow-wrap: anywhere; }
.gm-duel .gm-ev { white-space: normal; }
.gm-duel-read-wide { font: 700 15px/1.35 var(--text); text-transform: none; color: var(--cream-2); text-align: center; padding: 6px 4px 0; }
.gm-nobr { white-space: nowrap; }
.gm-card-vote button { white-space: nowrap; }
/* Compete: badge art on the board tabs, a sticker on #1 */
.gm-tab-b { justify-items: center; text-align: center; gap: 6px; padding: 10px 6px 10px; background: var(--ink-2); }
.gm-tab-b img { width: 84px; height: auto; display: block; }
.gm-tab-b[aria-selected="true"] { background: var(--cream); border-color: var(--lime); box-shadow: 0 0 0 3px var(--lime); }
.gm-tab-b[aria-selected="true"] small { color: var(--ink-soft); }
.gm-step { position: relative; }
.gm-lead { position: absolute; top: -14px; right: -6px; left: auto; bottom: auto; width: auto; height: auto; padding: 6px 8px 5px; font-size: 13px; transform: rotate(6deg); max-width: none; pointer-events: none; }
/* Meter axis caption (no kicker above the question) */
.gm-meter-caption { font-size: 13px; line-height: 1.35; color: var(--ink-soft); max-width: 34em; }
.gm-celebrate-k { font: 900 22px/1 var(--cond); text-transform: uppercase; margin: 0 0 6px; }
/* Slogan: the board's painted brush stroke and the lime outline mascot */
.gm-slogan span { background: url(/assets/art/brush-underline.webp) 0 100% / 100% 16px no-repeat; padding-bottom: 14px; }
.gm-slogan img { width: 64px; height: 64px; }

/* ===== Show your find ===== */
.gm-lede { color: var(--cream-2); font-size: 17px; max-width: 34em; }
.gm-capture { display: grid; gap: 10px; }
.gm-cap { position: relative; display: grid; grid-template-columns: 64px minmax(0, 1fr); grid-template-rows: auto 1fr; column-gap: 14px; align-items: center; padding: 16px; border-radius: 20px; background: var(--cream); color: var(--ink); border: 3px solid var(--cream); text-align: left; cursor: pointer; font: inherit; }
.gm-cap img { grid-row: 1 / span 2; width: 64px; height: 64px; object-fit: contain; }
.gm-cap b { font: 900 26px/1 var(--cond); text-transform: uppercase; }
.gm-cap span { font-size: 14px; color: var(--ink-soft); }
.gm-cap input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.gm-cap:has(input:focus-visible), .gm-cap:focus-visible { outline: 3px solid var(--lime); outline-offset: 3px; }
.gm-cap-photo { background: var(--lime); border-color: var(--lime); }
.gm-cap-receipt { background: var(--orange); border-color: var(--orange); } .gm-cap-receipt span { color: var(--ink); }
.gm-cap-manual { display: flex; flex-wrap: wrap; gap: 4px 18px; } .gm-cap-manual .gm-textlink { color: var(--cream-2); justify-self: auto; }
.gm-reqs { padding: 16px; border-radius: 18px; border: 3px dashed var(--lime); display: grid; gap: 6px; }
.gm-reqs h2 { font: 900 18px/1 var(--cond); text-transform: uppercase; letter-spacing: .04em; color: var(--lime); }
.gm-reqs-title { font: 900 24px/1 var(--cond); text-transform: uppercase; }
.gm-reqs ul { margin: 0; padding-left: 1.2em; color: var(--cream-2); display: grid; gap: 4px; }
.gm-ps-results { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 6px; }
.gm-ps-results a { display: block; padding: 12px 14px; border-radius: 12px; background: var(--ink-2); color: var(--cream); text-decoration: none; }
.gm-reading { display: grid; justify-items: center; gap: 10px; padding: 30px 0; text-align: center; }
.gm-reading .gm-host-slot { width: 170px; } .gm-reading .gm-host { position: static; width: 100%; }
.gm-resume { color: var(--lime); font-weight: 700; display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.gm-resume .gm-textlink { justify-self: auto; color: var(--cream-2); }
.gm-draft-layout { display: grid; gap: 18px; }
.gm-draft-card .gm-card-media { aspect-ratio: 16 / 10; }
.gm-draft-tag { position: absolute; right: 12px; top: 12px; padding: 5px 9px 4px; border-radius: 7px; background: var(--cream); color: var(--ink); font: 900 13px/1 var(--cond); letter-spacing: .06em; text-transform: uppercase; transform: rotate(4deg); }
.gm-sugg { margin-left: 6px; padding: 3px 7px; border-radius: 6px; border: 2px dashed var(--ink); background: var(--lime); font: 800 11px/1.2 var(--text); color: var(--ink); vertical-align: middle; cursor: pointer; text-transform: none; }
.gm-draft-side { display: grid; gap: 14px; align-content: start; }
.gm-elig { padding: 14px 16px; border-radius: 16px; background: var(--ink-2); border: 2px solid var(--ink-3); display: grid; gap: 4px; }
.gm-elig b { color: var(--lime); display: inline-block; width: 1em; }
.gm-elig ul { margin: 6px 0 0; padding-left: 1.2em; color: var(--cream-3); font-size: 14px; }
.gm-ask { padding: 18px; border-radius: 20px; background: var(--cream); color: var(--ink); display: grid; gap: 12px; }
.gm-ask h2 { font: 900 clamp(1.7rem, 7vw, 2.3rem)/.95 var(--cond); text-transform: uppercase; }
.gm-ask-done { background: var(--lime); }
.gm-ask .gm-field-error { color: #a33208; }
.gm-ask .gm-alt { color: var(--ink); border-color: var(--ink); justify-self: start; }
.gm-ask .gm-alt:hover { background: var(--ink); color: var(--lime); }
.gm-ask .gm-textlink { color: var(--ink); justify-self: start; }
.gm-askform { display: grid; gap: 10px; }
.gm-basis { border: 0; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 16px; }
.gm-basis label { display: flex; gap: 8px; align-items: center; min-height: 44px; font-weight: 600; }
.gm-basis input { width: 20px; height: 20px; accent-color: var(--lime); }
.gm-askrow { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }
.gm-ask .gm-cat { width: auto; background: var(--ink-2); color: var(--cream); border-color: var(--ink-2); }
.gm-ask .gm-cat-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.gm-chiprow { display: flex; flex-wrap: wrap; gap: 8px; }
.gm-chip-b { min-height: 44px; padding: 0 14px; border-radius: 999px; border: 2px solid var(--ink); background: transparent; color: var(--ink); font: 900 16px/1 var(--cond); text-transform: uppercase; letter-spacing: .03em; }
.gm-chip-b:hover { background: var(--ink); color: var(--lime); }
.gm-ask .gm-cap { background: var(--ink); color: var(--cream); grid-template-columns: 1fr; } .gm-ask .gm-cap span { color: var(--cream-2); }
.gm-more-fields summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; font: 900 16px/1 var(--cond); text-transform: uppercase; letter-spacing: .05em; color: var(--cream-2); }
.gm-all { display: grid; gap: 12px; padding-top: 6px; }
.gm-all select { min-height: 52px; }
.gm-autosave { font-size: 13px; color: var(--cream-3); }
.gm-warn-box { padding: 14px; border-radius: 14px; border: 3px solid var(--orange); display: grid; gap: 8px; justify-items: start; }
@media (min-width: 960px) { .gm-draft-layout { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); align-items: start; } .gm-draft-layout > .gm-draft-card { position: sticky; top: 100px; } .gm-capture { grid-template-columns: repeat(3, minmax(0, 1fr)); } .gm-cap { grid-template-columns: 1fr; justify-items: start; row-gap: 10px; } .gm-cap img { grid-row: auto; } }
.gm-failbox { padding: 16px; border-radius: 16px; border: 3px solid var(--orange); display: grid; gap: 10px; justify-items: start; }
.gm-ranks li[data-you] { background: var(--lime); color: var(--ink); } .gm-ranks li[data-you] .gm-rank-n, .gm-ranks li[data-you] a, .gm-ranks li[data-you] small { color: var(--ink); }
.gm-hero-actions .gm-textlink#gm-share-ch { color: var(--lime); }
button.gm-textlink { background: none; border: 0; cursor: pointer; font-family: var(--cond); }
.gm-done { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 959px) { .gm-draft-card .gm-card-media { aspect-ratio: 16 / 7; } }
/* Verdict-round fixes: the action block lives outside the poster, so it never takes the poster's grid area. */
.gm-view > .gm-hero-actions { grid-area: auto; }
@media (max-width: 959px) {
  .gm-hero { grid-template-columns: minmax(0, 1fr); grid-template-areas: "title" "meta" "stick" "host"; padding-bottom: 0; }
  .gm-hero-title { font-size: clamp(2.1rem, 10vw, 3rem); overflow-wrap: normal; hyphens: none; }
  .gm-hero-note { display: none; }
  .gm-hero-stickers { display: flex; flex-wrap: wrap; gap: 8px 12px; padding: 2px 0 0; align-items: center; }
  .gm-hero .gm-sticker { font-size: 15px; max-width: none; white-space: nowrap; }
  .gm-hero-host { justify-self: center; width: 150px; margin-bottom: -50px; }
  .gm-hero-actions { padding-top: 44px; }
  .gm-cards-row { grid-auto-columns: calc(100vw - 2 * var(--pad) - 34px); }
}
.gm-cards-row { scroll-padding-inline: var(--pad); }
.gm-celebrate-x svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 3; stroke-linecap: round; }

/* ===== Home: compact challenge banner + real contenders (owner brief 2026-10-28) ===== */
.gm-hero.is-banner { min-height: 0; padding: 16px 16px 14px; gap: 8px 10px; grid-template-columns: minmax(0, 1fr) 72px; grid-template-areas: "meta host" "title host" "note note"; }
.gm-hero.is-banner .gm-hero-title { font-size: clamp(1.6rem, 7.4vw, 3.1rem); max-width: none; padding-top: 0; }
.gm-hero.is-banner .gm-hero-meta { font-size: 13px; gap: 4px 10px; }
.gm-hero.is-banner .gm-hero-note { font-size: 14px; color: var(--ink-soft); align-self: start; }
.gm-hero.is-banner .gm-hero-note:empty { display: none; }
.gm-hero.is-banner .gm-host-slot { width: 72px; align-self: center; margin: 0; }
.gm-hero.is-banner .gm-burst, .gm-hero.is-banner .gm-hero-stickers { display: none; }
.gm-contenders { display: grid; gap: 14px; }
.gm-contenders h2 { font: 900 clamp(1.9rem, 8.4vw, 3rem)/.95 var(--cond); text-transform: uppercase; }
.gm-pick-card { display: block; color: inherit; text-decoration: none; border-radius: 16px; }
.gm-pick-card:focus-visible { outline: 4px solid var(--lime); outline-offset: 3px; }
.gm-pick-card:hover .gm-duel-card { transform: translateY(-2px); }
.gm-pick-card .gm-duel-card { transition: transform 140ms var(--ease-out); }
.gm-pick-one { max-width: 280px; }
.gm-pick-act { display: grid; gap: 4px; justify-items: stretch; }
.gm-pick-act .gm-go { font-size: 26px; white-space: normal; text-align: center; }
.gm-pick-act .gm-textlink { color: var(--cream); }
.gm-view[data-view="home"] > .gm-hero-actions[hidden] { display: none; }
.gm-await-h { font: 900 18px/1.1 var(--cond); text-transform: uppercase; letter-spacing: .03em; color: var(--cream-2); margin-top: 6px; }
.gm-await { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.gm-await li { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "name n" "meta n"; column-gap: 12px; align-items: center; min-height: 52px; padding: 8px 12px; border-radius: 12px; background: var(--ink-2); }
.gm-await a { grid-area: name; font: 900 17px/1.1 var(--cond); text-transform: uppercase; color: var(--cream); text-decoration: none; overflow-wrap: anywhere; }
.gm-await a:hover { text-decoration: underline; }
.gm-await small { grid-area: meta; font-size: 13px; color: var(--cream-3); overflow-wrap: anywhere; }
.gm-await-n { grid-area: n; font: 900 15px/1 var(--cond); font-variant-numeric: tabular-nums; color: var(--lime); white-space: nowrap; }
.gm-exits { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; width: 100%; max-width: 420px; }
.gm-exits a { width: 100%; justify-content: center; text-align: center; }
.gm-span { grid-column: 1 / -1; }
@media (min-width: 700px) { .gm-pick-act { grid-template-columns: max-content max-content; align-items: center; column-gap: 20px; justify-content: start; } }
@media (min-width: 960px) {
  .gm-view[data-view="home"]:has(> .gm-hero.is-banner) > .gm-hero { grid-column: 1 / -1; grid-row: 1; min-height: 0; padding: 22px 32px; grid-template-columns: minmax(0, 1fr) 110px; grid-template-areas: "meta host" "title host" "note host"; }
  .gm-view[data-view="home"]:has(> .gm-hero.is-banner) > .gm-hero .gm-hero-title { font-size: clamp(2.4rem, 3.6vw, 3.6rem); }
  .gm-view[data-view="home"]:has(> .gm-hero.is-banner) > .gm-hero .gm-host-slot { width: 110px; }
  .gm-view[data-view="home"] > .gm-contenders { grid-column: 1; grid-row: 2; }
  .gm-view[data-view="home"]:has(> .gm-hero.is-banner) > .gm-preview { grid-row: 2; }
  .gm-view[data-view="home"]:has(> .gm-preview[hidden]) > .gm-contenders { grid-column: 1 / -1; }
}
/* Draft preview stays compact until a real photo exists; the next question leads */
.gm-draft-card.is-compact { grid-template-columns: 76px minmax(0, 1fr); align-items: start; }
.gm-draft-card.is-compact .gm-card-media { aspect-ratio: 1 / 1; width: 64px; margin: 12px 0 12px 12px; border-radius: 12px; background: var(--cream-2); }
.gm-draft-card.is-compact .gm-card-media img { width: 100%; height: 100%; object-fit: contain; padding: 6px; }
.gm-draft-card.is-compact .gm-card-cat, .gm-draft-card.is-compact .gm-draft-tag { display: none; }
@media (max-width: 959px) { .gm-draft-card.is-compact .gm-card-media { aspect-ratio: 1 / 1; } }
.gm-ps-results li { display: grid; gap: 6px; }
.gm-ps-acts { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: center; }
/* Find page: what someone needs to go and get it */
.gm-plan { display: grid; gap: 6px; margin: 0; padding: 14px 16px; border-radius: 16px; background: var(--ink-2); border: 2px solid var(--ink-3); }
.gm-plan > div { display: grid; grid-template-columns: 6.5em minmax(0, 1fr); gap: 10px; align-items: baseline; }
.gm-plan dt { font: 900 14px/1.2 var(--cond); text-transform: uppercase; letter-spacing: .05em; color: var(--cream-3); }
.gm-plan dd { margin: 0; overflow-wrap: anywhere; }
.gm-plan .gm-plan-cta { grid-template-columns: 1fr; padding-top: 6px; }
.gm-maplink { margin-left: 6px; color: var(--lime); font-weight: 700; white-space: nowrap; }
.gm-impact-me { display: grid; gap: 10px; padding: 16px 18px; border-radius: 18px; background: var(--ink-2); border: 2px solid var(--lime); }
.gm-impact-me ul { margin: 0; padding-left: 1.2em; display: grid; gap: 6px; }
.gm-impact-me a { color: var(--lime); }
.gm-next-steps { margin: 0; padding-left: 1.3em; display: grid; gap: 6px; max-width: 34em; }
.gm-sent-preview { max-width: 360px; width: 100%; }
.gm-view > * { min-width: 0; }
.gm-hero.is-banner .gm-hero-host { width: 72px; margin: 0; align-self: center; justify-self: end; }
@media (min-width: 960px) { .gm-view[data-view="home"]:has(> .gm-hero.is-banner) > .gm-hero .gm-hero-host { width: 110px; margin: 0; } }
.gm-chal > .gm-hero-actions, .gm-done > .gm-hero-actions { grid-area: auto; }
@media (min-width: 700px) { .gm-signals { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.gm-plan-by { display: block; font-size: 13px; color: var(--cream-3); }
/* Compete: primary first, share last, room before the board tabs */
.gm-chal-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; padding-top: 16px; }
.gm-chal-actions + .gm-yours, .gm-chal-actions ~ .gm-tabs { margin-top: 24px; }
@media (max-width: 699px) { .gm-chal-actions > a { flex: 1 1 100%; justify-content: center; } }
/* Mobile first screen: the banner stays small so the contenders and "Pick one" fit above the tab bar */
@media (max-width: 699px) {
  .gm-hero.is-banner { padding: 12px 14px; gap: 4px 8px; grid-template-columns: minmax(0, 1fr) 52px; }
  .gm-hero.is-banner .gm-hero-title { font-size: clamp(1.35rem, 5.8vw, 1.75rem); }
  .gm-hero.is-banner .gm-hero-meta { flex-wrap: nowrap; overflow: hidden; white-space: nowrap; }
  .gm-hero.is-banner .gm-hero-meta > span:nth-child(4) { display: none; }
  .gm-hero.is-banner .gm-hero-note:not(:empty) { display: block; grid-column: 1 / -1; font-size: 12px; line-height: 1.3; }
  .gm-hero.is-banner .gm-hero-host { width: 52px; }
  .gm-contenders { gap: 10px; }
  .gm-contenders h2 { font-size: 1.75rem; }
  .gm-pick-duel .gm-evidence { display: none; }
  .gm-pick-duel .gm-duel-media { aspect-ratio: 4 / 3; }
  .gm-pick-duel .gm-duel-price { display: block; }
  .gm-pick-duel .gm-duel-price span { display: inline; margin-left: 4px; }
  .gm-pick-duel > .gm-vs { top: 70px; }
}
@media (max-width: 699px) { .gm-hero.is-banner .gm-hero-meta { flex-wrap: wrap; white-space: normal; row-gap: 2px; } }
/* Entry variants: discovery filters, compare keep-buttons, shortlist planning */
.gm-disc { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.gm-disc-feed { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 460px; }
.gm-disc label { display: grid; gap: 4px; font: 900 13px/1.1 var(--cond); text-transform: uppercase; letter-spacing: .04em; color: var(--cream-2); }
.gm-disc select { min-height: 44px; min-width: 0; border-radius: 12px; border: 2px solid var(--ink-3); background: var(--ink-2); color: var(--cream); font: 600 15px/1.2 var(--text); padding: 0 8px; }
.gm-pick-keep { display: flex; gap: 6px; margin-top: 8px; }
.gm-pick-keep .gm-act { flex: 1; justify-content: center; }
/* Duel price: COP leads on its own line; ≈ US$ and the unit share one small line (owner, 2026-10-31). */
.gm-duel { container-type: inline-size; } /* on the pair, not the card: a size container cannot be a subgrid */
p.gm-duel-price { display: block; font: 600 12px/1.3 var(--text); color: var(--ink-soft); }
.gm-duel-price .gm-money, .gm-duel-price > span { font: 600 12px/1.3 var(--text); color: var(--ink-soft); }
.gm-duel-price > span, .gm-duel-price .gm-play-usd { white-space: nowrap; }
.gm-duel-price .gm-play-cop { display: block; margin-bottom: 2px; font: 900 24px/1 var(--cond); font-size: min(24px, calc(7cqi - 1px)); /* 14% of one card */ color: var(--ink); white-space: nowrap; font-variant-numeric: tabular-nums; }
.gm-duel-price .gm-play-usd { font: inherit; }
.gm-duel-price .gm-money:has(.gm-play-usd) + span::before { content: "· "; } /* the space before it is the line break point */
@container (max-width: 330px) { /* cards under ~160px */ .gm-duel-price .gm-money:has(.gm-play-usd) + span { display: block; } .gm-duel-price .gm-money:has(.gm-play-usd) + span::before { content: none; } }
.gm-duel-body .gm-credit { margin: 2px 0 0; font-size: 11px; line-height: 1.3; color: var(--ink-soft); overflow-wrap: anywhere; }
/* Two cards side by side share one height, so both answers sit on one line (challenge matchup and "Which should we do?"). */
.gm-duel { align-items: stretch; }
.gm-duel-side { display: flex; flex-direction: column; gap: 10px; }
.gm-duel-side > :first-child { flex: 1; }
.gm-duel-card { align-content: start; }
/* "Which should we do?": Save is the small second action. */
#gm-pick2 > .gm-lede { margin: 0 0 16px; }
.gm-pick-card { display: flex; } .gm-pick-card > .gm-duel-card { flex: 1; } /* fallback without subgrid */
#gm-pick2 .gm-duel-media { aspect-ratio: 4 / 3; }
#gm-pick2 .gm-duel > .gm-vs { top: calc((min(100cqi, 880px) - 10px) * .1875); } /* centred on the 4:3 photos */
#gm-pick2 .gm-pick-keep { justify-content: center; margin-top: 0; }
#gm-pick2 .gm-pick-keep .gm-act { flex: 0 1 auto; min-height: 44px; padding: 0 20px; }
#gm-pick2 .gm-pick-keep .gm-act[aria-pressed="true"] { background: transparent; color: var(--lime); border-color: var(--lime); } /* a lime fill here means your pick */
@media (max-width: 699px) { #gm-pick2 .gm-duel-inc { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; } } /* the card opens the full find */
#gm-pick2-after { display: grid; gap: 12px; justify-items: start; margin-top: 20px; }
#gm-pick2-after:empty { display: none; }
@media (min-width: 700px) { #gm-pick2 .gm-duel, #gm-pick2 > .gm-lede, #gm-pick2-after { max-width: 880px; } }
/* Side by side, every line sits level with its twin: photos, titles, prices, places, what's included, the trust pill
   and the credit share rows across both cards (subgrid: side 10 rows = card 8 + answer + second action). */
@supports (grid-template-rows: subgrid) {
  .gm-duel { row-gap: 0; }
  .gm-duel-side { display: grid; grid-row: span 10; grid-template-rows: subgrid; gap: 0; }
  .gm-duel-side > .gm-pick-card { display: grid; grid-row: span 8; grid-template-rows: subgrid; }
  .gm-duel-card { grid-row: span 8; grid-template-rows: subgrid; row-gap: 0; }
  .gm-duel-body { grid-row: span 7; grid-template-rows: subgrid; row-gap: 0; }
  .gm-duel-body > :empty { margin: 0; padding: 0; }
  .gm-duel-body > :not(:first-child):not(:empty) { margin-top: 5px; }
  .gm-duel-body > .gm-evidence:not(:empty) { margin-top: 8px; }
  .gm-duel-side > .gm-pick, .gm-duel-side > .gm-pick-keep, .gm-duel-side > .gm-duel-read { margin-top: 10px; }
}
.gm-plan-two { position: sticky; bottom: calc(100px + env(safe-area-inset-bottom)); z-index: 6; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 10px 10px 16px; border-radius: 18px; background: var(--ink-2); border: 2px solid var(--lime); box-shadow: 0 0 0 4px var(--ink); }
.gm-plan-two p { margin: 0; font: 900 20px/1 var(--cond); text-transform: uppercase; letter-spacing: .02em; font-variant-numeric: tabular-nums; }
.gm-plan-two .gm-go { width: auto; min-height: 54px; font-size: 24px; }
@media (min-width: 960px) { .gm-plan-two { bottom: 16px; } }
/* Picking two: the whole row is the tap target; the drawn check sits clear of the title. */
.gm-plan-tick { position: absolute; inset: 0; z-index: 4; border-radius: 16px; cursor: pointer; }
.gm-plan-tick input { position: absolute; opacity: 0; pointer-events: none; }
.gm-plan-tick svg { position: absolute; top: 12px; right: 12px; width: 32px; height: 32px; padding: 5px; border-radius: 50%; border: 2px solid var(--cream-3); background: var(--ink); fill: none; stroke: transparent; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.gm-plan-tick:has(input:checked) svg { background: var(--lime); border-color: var(--lime); stroke: var(--ink); }
.gm-plan-tick:has(input:focus-visible) { outline: 3px solid var(--lime); outline-offset: 3px; }
.gm-runs.is-picking .gm-run-title { margin-right: 40px; }
.gm-runs.is-picking .gm-run-act, .gm-runs.is-picking .gm-run-track, .gm-runs.is-picking .gm-run-need { display: none; } /* asks that can't be tapped while picking */
.gm-runs.is-picking .gm-run:has(input:checked) { border-color: var(--lime); }
.gm-runs.is-picking .gm-run:has(input:disabled) { opacity: .5; }
.gm-card { position: relative; }
@media (max-width: 380px) { .gm-disc { grid-template-columns: 1fr 1fr; } .gm-disc label:last-child { grid-column: 1 / -1; } }
.gm-hero.is-banner .gm-hero-note:not(:empty) { display: block; } /* upcoming rotation shows at every width (C5-03) */

/* ---------- Put your city on the meter ---------- */
.gm-city-tile { background: var(--ink-2); border: 2px solid var(--lime); color: var(--cream); }
.gm-city-lead { max-width: 60ch; color: var(--cream-2); }
.gm-city-form { display: grid; gap: 16px; padding: clamp(18px, 4vw, 28px); border-radius: 22px; background: var(--ink-2); border: 2px solid var(--ink-3); margin: 18px 0 28px; }
.gm-city-form .gm-h2 { margin: 0; }
.gm-city-form fieldset { border: 0; margin: 0; padding: 0; display: grid; gap: 10px; }
.gm-city-form fieldset label { display: flex; gap: 10px; align-items: center; font: 600 17px/1.3 var(--text); text-transform: none; letter-spacing: 0; color: var(--cream); }
.gm-row2 { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 12px; }
.gm-city-list { list-style: none; margin: 0 0 24px; padding: 0; display: grid; gap: 10px; }
.gm-city-row a { display: grid; grid-template-columns: minmax(64px, auto) minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 14px 18px; border-radius: 18px; background: var(--ink-2); border: 2px solid var(--ink-3); text-decoration: none; }
.gm-city-row a:hover { border-color: var(--lime); }
.gm-city-rank { font: 900 30px/1 var(--cond); color: var(--lime); }
.gm-city-name { display: grid; min-width: 0; }
.gm-city-name b { font: 900 clamp(1.5rem, 6vw, 2rem)/.95 var(--cond); text-transform: uppercase; overflow-wrap: anywhere; }
.gm-city-name small, .gm-city-num small { color: var(--cream-3); font-size: 14px; }
.gm-city-num { display: grid; justify-items: end; text-align: right; }
.gm-city-num b { font: 900 30px/1 var(--cond); }

.gm-city-blocks { display: grid; gap: 14px; margin: 18px 0; }
@media (min-width: 720px) { .gm-city-blocks { grid-template-columns: 1fr 1fr; } }
.gm-city-block { padding: 20px; border-radius: 22px; background: var(--ink-2); border: 2px solid var(--ink-3); }
.gm-city-block h2 { margin: 0 0 8px; font: 900 clamp(1.7rem, 7vw, 2.4rem)/.95 var(--cond); text-transform: uppercase; color: var(--cream-2); }
.gm-city-big { margin: 0; font: 900 clamp(3.6rem, 16vw, 5.4rem)/.9 var(--cond); color: var(--lime); }
.gm-city-big small { margin-left: 10px; font: 700 18px/1 var(--text); color: var(--cream-2); }
.gm-city-meter { height: 18px; margin: 12px 0; border-radius: 99px; background: var(--ink-3); overflow: hidden; }
.gm-city-meter span { display: block; height: 100%; width: var(--w); min-width: 6px; background: var(--cream-3); border-radius: inherit; }
.gm-ok { margin: 0; font-weight: 700; color: var(--lime); }
.gm-city-finds, .gm-city-mine { list-style: none; margin: 0 0 20px; padding: 0; display: grid; gap: 10px; }
.gm-city-finds li { display: grid; gap: 4px; padding: 14px 16px; border-radius: 16px; background: var(--ink-2); }
.gm-city-finds small { color: var(--cream-3); }
.gm-city-price { font: 900 26px/1 var(--cond); color: var(--cream); }
.gm-city-price small { font: 600 14px/1 var(--text); color: var(--cream-3); }
.gm-crew { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; font-weight: 700; }
.gm-crew small { width: 100%; color: var(--cream-3); font-weight: 400; }
[data-view="city"] .gm-fine, [data-view="cities"] .gm-fine, .gm-city-block p { max-width: 70ch; }
/* Photo credits: always visible with a photo we did not take. */
.gm-photo-credit { position: absolute; right: 8px; top: 8px; max-width: 62%; padding: 3px 7px; border-radius: 6px; background: rgba(20, 20, 20, .8); color: var(--cream); font: 600 11px/1.3 var(--text); text-align: right; pointer-events: none; } /* wraps: the full author and licence stay readable (C16-02) */
.gm-credit { margin: 6px 0 0; font-size: 13px; color: var(--cream-3); }
.gm-credit a { color: inherit; }
/* Profiles: optional identity, showcase picked by the person */
.gm-profile-head { display: flex; gap: 16px; align-items: center; margin-bottom: 12px; }
.gm-profile-head .gm-view-title { margin: 0; overflow-wrap: anywhere; }
.gm-handle { margin: 4px 0 0; color: var(--cream-3); font-weight: 700; }
.gm-bio { margin: 8px 0 0; max-width: 60ch; }
.gm-avatar { border-radius: 50%; object-fit: cover; vertical-align: middle; border: 3px solid var(--cream); }
.gm-avatar-lg { width: 88px; height: 88px; flex: none; }
.gm-showcase, .gm-showcase-pick { list-style: none; margin: 0 0 20px; padding: 0; display: grid; gap: 8px; }
.gm-showcase li, .gm-showcase-pick li { padding: 12px 14px; border-radius: 14px; background: var(--ink-2); display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; justify-content: space-between; }
.gm-showcase small, .gm-showcase-pick small { color: var(--cream-3); }

/* City campaign hero: one vertical flow on every width (name, country, invitation, primary action, status).
   The paper, frame and stamp are decoration around the content; no text depends on absolute positions. */
.gm-city-hero { position: relative; display: flex; flex-direction: column; gap: 10px; padding: clamp(24px, 6vw, 40px); border-radius: 22px; background: var(--cream); color: var(--ink); }
.gm-city-hero::before { content: ""; position: absolute; inset: 9px; border: 3px solid var(--ink); border-radius: 16px; pointer-events: none; }
.gm-city-hero > * { position: relative; margin: 0; }
.gm-city-title { font: 900 clamp(2.6rem, 13vw, 6.5rem)/.9 var(--cond); text-transform: uppercase; letter-spacing: -.01em; overflow-wrap: break-word; hyphens: auto; }
.gm-city-country { font: 900 clamp(1rem, 4.5vw, 1.25rem)/1.2 var(--wide); text-transform: uppercase; color: var(--ink-soft); }
.gm-city-invite { font: 700 clamp(1.05rem, 4.2vw, 1.25rem)/1.35 var(--text); max-width: 40ch; }
.gm-city-primary { margin-top: 6px; }
.gm-city-primary .gm-go { width: 100%; }
.gm-city-primary .gm-ok { color: var(--ink); font-weight: 800; }
.gm-city-status { font: 600 15px/1.45 var(--text); color: var(--ink-soft); max-width: 60ch; }
.gm-city-stamp { display: inline-block; margin-right: 6px; padding: 3px 8px 2px; border: 2px solid var(--orange); border-radius: 6px; color: var(--orange-ink); font: 900 13px/1.1 var(--cond); letter-spacing: .04em; transform: rotate(-2deg); vertical-align: 1px; }
.gm-city-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 16px; }
.gm-city-actions > button { flex: 1 1 200px; }
@media (min-width: 720px) { .gm-city-primary .gm-go { width: auto; min-width: 320px; } }
.gm-crew .gm-sticker { position: static; transform: rotate(-2deg); }
/* Narrow phones: the count or status moves under the city name instead of squeezing beside it. */
@media (max-width: 360px) { .gm-city-row a { grid-template-columns: auto minmax(0, 1fr); } .gm-city-num { grid-column: 2; justify-items: start; text-align: left; } }
/* Cards in a row line up: the body is a column and the actions sit at its bottom, whatever the title length. */
.gm-card-body { display: flex; flex-direction: column; }
.gm-card-body > .gm-card-vote, .gm-card-body > .gm-card-foot { margin-top: auto; }
.gm-card-body > .gm-card-vote + .gm-card-foot { margin-top: 0; }
.gm-ev { white-space: normal; } /* evidence chips wrap instead of widening narrow cards (C16-07) */
.gm-card, .gm-card-body, .gm-card-pricerow > * { min-width: 0; }
/* Scrolling lands content between the sticky top bar and the bottom nav (focus on a field with an error,
   "jump to result", anchors, the software keyboard). One rule for the whole site instead of per-screen fixes. */
html { scroll-padding-top: 84px; scroll-padding-bottom: calc(100px + env(safe-area-inset-bottom)); }
@media (min-width: 960px) { html { scroll-padding-top: 104px; scroll-padding-bottom: 24px; } }

/* Judging: one bounded decision (offering, price, inclusions, question, answers, result). */
.gm-decision { display: grid; grid-template-columns: minmax(0, 1fr); background: var(--cream); color: var(--ink); border: 4px solid var(--ink); box-shadow: 0 0 0 3px var(--cream); border-radius: 26px; overflow: hidden; margin: 3px; }
.gm-decision-media { position: relative; display: block; aspect-ratio: 16 / 10; background: var(--cream-2); }
.gm-decision-media > img, .gm-decision-media > svg { width: 100%; height: 100%; object-fit: cover; display: block; }
.gm-decision-body { display: flex; flex-direction: column; gap: 8px; padding: clamp(16px, 4vw, 26px); min-width: 0; }
.gm-decision-body > * { margin: 0; }
.gm-decision-title { font: 900 clamp(1.8rem, 7vw, 2.6rem)/.95 var(--cond); text-transform: uppercase; overflow-wrap: break-word; }
.gm-decision-place { font-weight: 700; color: var(--ink-soft); }
.gm-decision-price b { font: 900 clamp(2rem, 8vw, 2.8rem)/1 var(--cond); }
.gm-decision-price { color: var(--ink-soft); font-weight: 600; }
.gm-decision-inc { font-size: 16px; }
.gm-decision-ev { font-size: 14px; color: var(--ink-soft); }
.gm-decision-ev a { color: var(--ink); font-weight: 800; }
.gm-decision .gm-q { margin-top: 8px; font: 900 clamp(1.4rem, 5.5vw, 1.9rem)/1.05 var(--cond); text-transform: uppercase; }
.gm-decision .gm-vote { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.gm-skip { min-height: 44px; padding: 0 16px; border: 2px dashed var(--ink); border-radius: 12px; background: transparent; color: var(--ink); font: 800 16px/1 var(--text); }
.gm-decision-why { font-size: 14px; color: var(--ink-soft); }
.gm-decision-why summary { cursor: pointer; font-weight: 800; color: var(--ink); }
.gm-decision-result { padding-top: 6px; border-top: 2px solid rgba(20, 20, 20, .12); }
.gm-meter-sm { grid-template-columns: minmax(0, 110px) minmax(0, 1fr); }
.gm-decision .gm-form-error:empty { display: none; }
@media (min-width: 860px) { .gm-decision { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); } .gm-decision-media { aspect-ratio: auto; min-height: 100%; } }
/* While judging, the decision stays the focus: no large promotional footer. */
body[data-view="judge"] .gm-foot { display: none; }
@media (max-width: 859px) { .gm-decision-media { aspect-ratio: 16 / 7; } } /* all three answers stay on a phone screen */
.gm-tab-b { min-width: 0; } .gm-tab-b img { width: min(84px, 100%); } /* three board tabs fit a 288px phone */
/* Reading card (owner, 2026-10-31): it appears only with a reading, so it is sized by what it shows, never by a
   minimum height or a headline. The number and the needle say the same thing, so they share the top row; the verdict
   stamp and the scope sit under them. Phone: the reading, its sentence and Share fit one screen. Desktop: about the
   height of the result beside it. The number is sized from the card (cqi) so a three-digit reading still fits. */
.gm-check-view > .gm-poster { min-height: 0; padding: 6px 4px 4px; container-type: inline-size;
  grid-template-columns: minmax(0, 1fr) min(40%, 300px); grid-template-areas: "score host" "stamp stamp" "what what"; column-gap: 12px; row-gap: 12px; }
.gm-check-view .gm-poster-verdict { display: contents; }
.gm-check-view .gm-score, .gm-check-view .gm-pips { grid-area: score; align-self: center; }
.gm-check-view .gm-score { font-size: min(11rem, calc((60cqi - 28px) / 1.56)); }
.gm-check-view .gm-pips { gap: 10px; }
.gm-check-view .gm-pip { width: min(44px, calc((60cqi - 56px) / 5)); height: min(44px, calc((60cqi - 56px) / 5)); }
.gm-check-view .gm-stamp { grid-area: stamp; justify-self: start; max-width: 100%; margin: .35em 0 0 4px; } /* the -6deg tilt lifts its right end: clear the host's stand */
.gm-check-view .gm-what { grid-area: what; max-width: none; padding: 0 0 4px 4px; }
.gm-check-view .gm-host-slot { grid-area: host; align-self: center; position: relative; z-index: 2; }
.gm-check-view .gm-host { position: static; width: 100%; }
@media (min-width: 960px) { .gm-check-view > .gm-poster { padding: 16px 20px 10px; } .gm-check-view .gm-score { font-size: min(9.5rem, calc((60cqi - 28px) / 1.56)); } .gm-check-view .gm-stamp { font-size: min(3.4rem, 9cqi); } }
/* Deals: the offer, its dates and what people found, kept apart from price evidence and votes. */
.gm-deal { display: grid; gap: 4px; padding: 10px 12px; border-radius: 12px; border: 2px dashed var(--orange); background: rgba(255, 90, 31, .06); }
.gm-deal > p { margin: 0; }
.gm-deal-tag { justify-self: start; padding: 2px 8px; border-radius: 6px; background: var(--orange); color: var(--ink); font: 900 13px/1.3 var(--cond); text-transform: uppercase; letter-spacing: .04em; }
.gm-deal.is-ended { border-color: var(--cream-3); background: transparent; }
.gm-deal.is-ended .gm-deal-tag { background: var(--cream-3); }
.gm-deal-terms { font-weight: 800; }
.gm-deal-dates, .gm-deal-checks { font-size: 14px; color: var(--ink-soft); }
.gm-find .gm-deal-dates, .gm-find .gm-deal-checks, .gm-find .gm-deal .gm-fine { color: var(--cream-3); }
.gm-deal-ask { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 6px; }
.gm-deal-ask > p { width: 100%; margin: 0; font-weight: 700; }
.gm-deal-price { display: flex; flex-wrap: wrap; gap: 8px; align-items: end; width: 100%; }
.gm-cat-deals .gm-deal-chip { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 16px; background: var(--orange); color: var(--ink); font: 900 34px/1 var(--cond); }


/* ---------- Home: say what it is, show the range, then the game ---------- */
.gm-view[data-view="home"] > .gm-intro { margin-top: 4px; }
.gm-intro { position: relative; display: grid; gap: 18px; padding: clamp(22px, 6vw, 44px); border-radius: 24px; background: var(--cream); color: var(--ink); overflow: hidden; }
.gm-intro::before { content: ""; position: absolute; inset: 9px; border: 3px solid var(--ink); border-radius: 18px; pointer-events: none; }
.gm-intro > * { position: relative; }
.gm-intro-copy { display: grid; gap: 14px; }
.gm-intro-copy > * { margin: 0; }
.gm-intro-title { font: 900 clamp(2.5rem, 11.5vw, 5.4rem)/.9 var(--cond); text-transform: uppercase; letter-spacing: -.005em; max-width: 13ch; overflow-wrap: break-word; }
.gm-intro-sub { font: 600 clamp(1.02rem, 4.2vw, 1.2rem)/1.42 var(--text); max-width: 46ch; }
.gm-intro-actions { display: grid; gap: 12px; justify-items: start; }
.gm-intro-actions .gm-go { width: 100%; }
.gm-intro-more { margin: 0; display: flex; flex-wrap: wrap; gap: 8px 20px; }
.gm-intro-more a { color: var(--ink); font-weight: 800; text-decoration-thickness: 2px; }
.gm-intro-fine { margin: 0; font-size: 14px; font-weight: 700; color: var(--ink-soft); }
.gm-intro-host { position: relative; justify-self: end; width: min(200px, 52%); margin: -8px -6px -40px 0; }
.gm-intro-host .gm-burst { position: absolute; inset: auto 0 52% 0; width: 100%; stroke: var(--orange); stroke-width: 6; stroke-linecap: round; fill: none; }
@media (min-width: 900px) {
  .gm-intro { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); align-items: end; column-gap: 32px; }
  .gm-intro-actions .gm-go { width: auto; min-width: 280px; }
  .gm-intro-host { width: min(340px, 100%); margin: 0 0 -46px; }
}
.gm-uses { display: grid; gap: 10px; margin-top: 24px; }
.gm-uses-title { margin: 0; font: 900 clamp(1.6rem, 6.5vw, 2.2rem)/1 var(--cond); text-transform: uppercase; }
.gm-uses-row { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 158px), 1fr)); gap: 10px; }
.gm-use { display: grid; grid-template-columns: 40px minmax(0, 1fr); grid-template-areas: "ico label" "ico count"; align-items: center; column-gap: 10px; padding: 12px; border-radius: 16px; background: var(--ink-2); border: 2px solid var(--ink-3); color: var(--cream); text-decoration: none; min-height: 64px; }
.gm-use:hover, .gm-use:focus-visible { border-color: var(--lime); }
.gm-use > img, .gm-use-ico { grid-area: ico; width: 40px; height: 40px; }
.gm-use-l { grid-area: label; font: 900 17px/1.05 var(--cond); text-transform: uppercase; overflow-wrap: break-word; }
.gm-use-n { grid-area: count; font-size: 13px; font-weight: 700; color: var(--lime); }
.gm-uses-more { margin: 0; font-size: 14px; color: var(--cream-3); }
.gm-uses-more a { color: var(--lime); font-weight: 800; }
.gm-strip-note { margin: -4px 0 12px; max-width: 70ch; font-size: 15px; color: var(--cream-2); }
.gm-view[data-view="home"] > .gm-chal-home { margin-top: 34px; display: grid; gap: 14px; }
.gm-chal-home .gm-hero.is-banner .gm-hero-title { font-size: clamp(2rem, 8vw, 3.4rem); }
.gm-pick-h { margin: 0; font: 900 clamp(1.4rem, 5.5vw, 1.9rem)/1 var(--cond); text-transform: uppercase; }
.gm-pick-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.gm-pick-list li { display: grid; gap: 2px; padding: 12px 14px; border-radius: 14px; background: var(--ink-2); }
.gm-pick-list a { font: 900 18px/1.1 var(--cond); text-transform: uppercase; color: var(--cream); }
.gm-pick-list span { font-size: 14px; color: var(--cream-3); }
.gm-pick-list b { color: var(--cream); }
.gm-awards-note { margin: 0 0 12px; color: var(--cream-2); }
.gm-award b small { display: block; margin-top: 2px; font: 700 12px/1 var(--text); letter-spacing: .04em; color: var(--cream-3); }
.gm-intro .gm-host-slot .gm-host { position: static; width: 100%; } .gm-intro .gm-host-slot { width: 100%; }
/* Home is one column on every width now: intro, uses, finds, challenge, board. (The old two-column grid placed the
   challenge poster beside the board; both now live further down the page.) */
@media (min-width: 960px) {
  .gm-view[data-view="home"] { grid-template-columns: minmax(0, 1fr); }
  .gm-view[data-view="home"] > [class] { grid-column: 1 / -1; grid-row: auto; }
  .gm-view[data-view="home"] > .gm-uses { grid-template-columns: auto minmax(0, 1fr); align-items: start; column-gap: 28px; }
  .gm-view[data-view="home"] > .gm-uses > .gm-uses-title { padding-top: 14px; }
  .gm-view[data-view="home"] > .gm-uses > .gm-uses-more { grid-column: 2; }
  .gm-uses-row { grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); }
  .gm-intro-title { font-size: clamp(3.6rem, 5.6vw, 6rem); max-width: 14ch; }
  .gm-chal-home .gm-hero.is-banner { min-height: 0; padding: 22px 32px; grid-template-columns: minmax(0, 1fr); grid-template-areas: "meta" "title" "note"; }
}
.gm-uses[hidden] { display: none; }
.gm-chal-home .gm-hero-note, .gm-uses-more { max-width: 70ch; }
/* Finish review: the challenge is visible but optional on the first screen; tidy the uses grid and carousel. */
.gm-intro-chal { display: block; justify-self: start; max-width: 34ch; padding: 10px 14px; border: 3px solid var(--ink); border-radius: 12px; background: var(--lime); color: var(--ink); font: 700 15px/1.35 var(--text); text-decoration: none; transform: rotate(-1.2deg); }
.gm-intro-chal[hidden] { display: none; }
.gm-intro-chal-k { display: block; font: 900 13px/1.2 var(--cond); text-transform: uppercase; letter-spacing: .05em; }
.gm-intro-chal b { white-space: nowrap; }
.gm-cards-row { align-items: start; }
@media (min-width: 900px) { .gm-intro { grid-template-areas: "copy chal" "copy host"; } .gm-intro-copy { grid-area: copy; } .gm-intro-chal { grid-area: chal; justify-self: end; align-self: start; } .gm-intro-host { grid-area: host; } }
@media (min-width: 960px) { .gm-uses-row { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); } .gm-chal-home .gm-hero.is-banner { grid-template-areas: "title" "meta" "note"; } }
@media (min-width: 1024px) { .gm-cards-row { align-items: stretch; } }
.gm-chal-home .gm-hero.is-banner { grid-template-columns: minmax(0, 1fr); grid-template-areas: "title" "meta" "note"; } /* the chip follows its title, never an eyebrow */
/* A "Worth it?" answer can be changed: the other answer stays clearly tappable, not greyed out. */
.gm-vote button.is-dimmed:not(:disabled) { opacity: .62; }
.gm-vote button.is-dimmed:not(:disabled):hover, .gm-vote button.is-dimmed:not(:disabled):focus-visible { opacity: 1; }
.gm-change-hint { margin: 6px 0 0; font-size: 14px; font-weight: 700; color: var(--ink-soft); }
/* After a card vote: a stamp with your answer, the count toward the verdict, then the next step. */
.gm-card-reveal { gap: 10px; padding: 12px; }
.gm-card-reveal p { margin: 0; }
.gm-cr-stamp { display: inline-flex; align-items: center; gap: 6px; justify-self: start; padding: 6px 10px 5px; border: 3px solid currentColor; border-radius: 10px; font: 900 20px/1 var(--cond); text-transform: uppercase; letter-spacing: .03em; transform: rotate(-2deg); }
.gm-cr-stamp svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 3.4; stroke-linecap: round; stroke-linejoin: round; }
.gm-cr-worth { color: var(--lime); }
.gm-cr-pass { color: var(--orange); }
.gm-cr-count { font: 900 19px/1.1 var(--cond); text-transform: uppercase; letter-spacing: .03em; }
.gm-cr-steps { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 4px; }
.gm-cr-steps i { height: 10px; border-radius: 999px; background: rgb(255 247 232 / .2); }
.gm-cr-steps i.on { background: var(--lime); }
.gm-card-reveal .gm-fine { color: var(--cream-2); font-size: 15px; }
.gm-cr-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; }
.gm-cr-next { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 14px; border: 3px solid var(--ink); border-radius: 12px; background: var(--lime); color: var(--ink); font: 900 18px/1 var(--cond); text-transform: uppercase; letter-spacing: .03em; }
.gm-cr-next svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.gm-cr-change { min-height: 44px; padding: 0 4px; border: 0; background: none; color: var(--cream); font: 800 15px/1.2 var(--text); text-decoration: underline; text-underline-offset: 3px; }
@media (prefers-reduced-motion: no-preference) {
  .gm-cr-stamp { animation: gm-stamp .34s cubic-bezier(.16, 1, .3, 1) both; }
  .gm-cr-steps i.on:last-of-type { animation: grow .35s ease-out both; transform-origin: left; }
}
@keyframes gm-stamp { from { opacity: 0; transform: rotate(-2deg) scale(1.5); } }
/* Player card: own and public profile. A cream card like the find cards, with real counts. */
.gm-idcard { display: grid; gap: 14px; padding: 18px; background: var(--cream); color: var(--ink); border: 4px solid var(--ink); box-shadow: 0 0 0 3px var(--cream); border-radius: 26px; margin: 3px 3px 18px; }
.gm-idcard-top { display: flex; gap: 14px; align-items: center; min-width: 0; }
.gm-idcard .gm-avatar { width: 96px; height: 96px; flex: none; border: 4px solid var(--ink); }
.gm-monogram { display: inline-grid; place-items: center; background: var(--orange); color: var(--ink); font: 900 52px/1 var(--cond); }
.gm-idcard-who { min-width: 0; }
.gm-idcard-name { margin: 0; font: 900 clamp(2rem, 9vw, 3rem)/.92 var(--cond); text-transform: uppercase; overflow-wrap: anywhere; }
.gm-idcard-meta { margin: 6px 0 0; font-weight: 700; color: var(--ink-soft); }
.gm-idcard-bio { margin: 0; font-size: 17px; line-height: 1.45; max-width: 60ch; }
.gm-idcard-note { margin: 0; font-size: 14px; color: var(--ink-soft); }
/* One ruled scorecard strip, not cards inside the card. */
.gm-idcard-stats { display: flex; flex-wrap: wrap; row-gap: 10px; margin: 0; padding-top: 12px; border-top: 3px solid var(--ink); }
.gm-idcard-stats div { flex: 1 1 0; min-width: 76px; display: grid; gap: 3px; padding: 0 12px; border-left: 2px solid var(--ink); }
.gm-idcard-stats div:first-child { padding-left: 0; border-left: 0; }
.gm-idcard-stats dt { order: 2; font: 900 13px/1.1 var(--cond); text-transform: uppercase; letter-spacing: .04em; color: var(--ink-soft); overflow-wrap: normal; word-break: normal; hyphens: auto; } /* long ES labels hyphenate, never split mid-word */
.gm-idcard-stats dd { order: 1; margin: 0; font: 900 30px/1 var(--cond); font-variant-numeric: tabular-nums; }
#gm-me > .gm-idcard-stats { margin: 14px 0 18px; border-color: var(--cream-3); color: var(--cream); }
#gm-me > .gm-idcard-stats div { border-color: var(--cream-3); }
#gm-me > .gm-idcard-stats dt { color: var(--cream-2); }
.gm-idcard-show { margin: 0; line-height: 1.5; }
.gm-idcard-show a { color: var(--ink); font-weight: 700; }
.gm-idcard-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 16px; margin: 0; }
.gm-idcard-link { display: inline-flex; align-items: center; min-height: 44px; padding: 0; border: 0; background: none; color: var(--ink); font: 800 16px/1.2 var(--text); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.gm-next-up { margin: 4px 0 8px; padding-left: 1.2em; display: grid; gap: 6px; }
.gm-next-up b { color: var(--lime); }
/* Your eye: the meter answers how often your verdicts matched. */
.gm-taste { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 14px; align-items: center; margin: 0 0 18px; padding: 16px; border-radius: 20px; background: var(--ink-2); border: 2px solid var(--lime); }
.gm-taste .gm-host-slot { width: 112px; }
.gm-taste .gm-host-slot .gm-host { position: static; width: 100%; }
.gm-taste-body { display: grid; gap: 8px; justify-items: start; min-width: 0; }
.gm-taste-body .gm-h2, .gm-taste-body p { margin: 0; }
.gm-taste-num b { font: 900 56px/1 var(--cond); color: var(--lime); }
a.gm-cr-next { text-decoration: none; }
/* Edit your profile: one tap away in Profile Settings. */
details.gm-profile-edit { margin: 18px 0; }
details.gm-profile-edit > summary { cursor: pointer; list-style: none; display: flex; align-items: center; gap: 10px; min-height: 44px; }
details.gm-profile-edit > summary::-webkit-details-marker { display: none; }
details.gm-profile-edit > summary .gm-h2 { margin: 0; }
details.gm-profile-edit > summary svg { width: 26px; height: 26px; flex: none; fill: none; stroke: var(--lime); stroke-width: 3.4; stroke-linecap: round; transition: transform .2s; }
details.gm-profile-edit[open] > summary svg { transform: rotate(45deg); }
/* Inputs inside a cream question card: a white field with an ink border, so it reads as a box to tap. */
.gm-ask .gm-text, .gm-ask .gm-lbl input, .gm-ask .gm-price-box { background: #fff; border: 3px solid var(--ink); }
.gm-ask .gm-text::placeholder { color: #8a8073; }
.gm-ask .gm-text:focus-visible, .gm-ask .gm-lbl input:focus-visible { border-color: var(--ink); outline: 3px solid var(--lime); outline-offset: 2px; }
.gm-ask .gm-price-box:focus-within { border-color: var(--ink); box-shadow: 0 0 0 3px var(--lime); }
/* The raised + must sit inside the nav's own box: iOS Safari clipped the part that stuck out above it. The top band
   is transparent and lets taps through, so the bar looks and behaves as before. */
@media (max-width: 959px) {
  .gm-nav { padding-top: 30px; border-top: 0; pointer-events: none;
    background: linear-gradient(to bottom, transparent 24px, var(--ink-3) 24px, var(--ink-3) 26px, var(--ink) 26px); }
  .gm-nav a { pointer-events: auto; }
}
/* Send button before the find is complete: clearly not ready, but a tap shows what is missing. */
.gm-go.is-blocked { background: transparent; color: var(--cream-2); border: 3px dashed var(--cream-3); box-shadow: none; filter: none; }
.gm-ask.is-flash { animation: gm-flash .9s ease-out 1; }
@keyframes gm-flash { 0%, 40% { box-shadow: 0 0 0 4px var(--orange); } 100% { box-shadow: 0 0 0 0 transparent; } }
@media (prefers-reduced-motion: reduce) { .gm-ask.is-flash { animation: none; box-shadow: 0 0 0 4px var(--orange); } }
.gm-confirm-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.gm-confirm-list li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; align-items: center; padding: 10px 0; border-top: 2px solid rgb(20 20 20 / .15); }
.gm-cl-k { grid-column: 1; font: 900 13px/1 var(--cond); text-transform: uppercase; letter-spacing: .05em; color: var(--ink-soft); }
.gm-cl-v { grid-column: 1; font-size: 18px; overflow-wrap: anywhere; }
.gm-cl-act { grid-column: 2; grid-row: 1 / span 2; display: flex; gap: 6px; align-items: center; }
.gm-cl-act .gm-alt { min-height: 44px; padding: 0 16px; }
.gm-cl-fix { min-height: 44px; padding: 0 6px; border: 0; background: none; color: var(--ink); font: 800 15px/1 var(--text); text-decoration: underline; text-underline-offset: 3px; }
/* What the price got you: right under the price on every card. */
.gm-card-for { margin: 0; font-size: 16px; line-height: 1.35; font-weight: 600; }
.gm-card-for b { font-weight: 800; }
/* After sending a find: a stamp, the host celebrating, a progress track and only true facts. */
.gm-sent { gap: 18px; }
.gm-sent-top { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 14px; align-items: center; }
.gm-sent-top .gm-host-slot { width: 120px; }
.gm-sent-top .gm-host-slot .gm-host { position: static; width: 100%; }
.gm-sent-stamp { display: inline-block; margin: 0; padding: 8px 14px 6px; border: 4px solid var(--lime); border-radius: 12px; color: var(--lime); font: 900 clamp(1.9rem, 8vw, 2.8rem)/1 var(--cond); text-transform: uppercase; transform: rotate(-3deg); }
.gm-sent-sub { margin: 10px 0 0; color: var(--cream-2); }
@media (prefers-reduced-motion: no-preference) { .gm-sent-stamp { animation: gm-stamp .4s cubic-bezier(.16, 1, .3, 1) both; } }
.gm-track { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; counter-reset: step; }
.gm-track li { counter-increment: step; display: grid; gap: 4px; align-content: start; padding-top: 34px; position: relative; font-size: 13px; color: var(--cream-3); }
.gm-track li::before { content: counter(step); position: absolute; top: 0; left: 0; width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; border: 3px solid var(--cream-3); font: 900 15px/1 var(--cond); }
.gm-track li::after { content: ""; position: absolute; top: 13px; left: 32px; right: -4px; height: 3px; background: var(--ink-3); }
.gm-track li:last-child::after { display: none; }
.gm-track b { font: 900 15px/1.1 var(--cond); text-transform: uppercase; letter-spacing: .03em; color: var(--cream); }
.gm-track li.is-done::before { content: "✓"; background: var(--lime); border-color: var(--lime); color: var(--ink); }
.gm-track li.is-done::after { background: var(--lime); }
.gm-track li.is-now::before { border-color: var(--cream); color: var(--cream); }
.gm-sent-facts { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.gm-sent-facts:empty { display: none; }
.gm-sent-facts li { padding: 12px 14px; border-radius: 14px; background: var(--ink-2); border: 2px solid var(--ink-3); }
.gm-sent-facts b { color: var(--lime); font: 900 17px/1 var(--cond); text-transform: uppercase; letter-spacing: .03em; margin-right: 6px; }
/* The account step: email with a 6-digit code, then name, city and origin, as two-option choices. */
.gm-account .gm-code { font: 900 32px/1 var(--cond); letter-spacing: .3em; text-align: center; }
fieldset.gm-choice { border: 0; margin: 0; padding: 0; display: grid; gap: 8px; } /* only the radio fieldsets: a.gm-choice (Add cards) keeps its padding */
.gm-choice legend { padding: 0 0 6px; font: 900 16px/1.1 var(--cond); text-transform: uppercase; letter-spacing: .04em; }
.gm-choice label { display: flex; gap: 10px; align-items: center; min-height: 48px; padding: 0 14px; border: 2px solid var(--ink); border-radius: 12px; font-weight: 700; cursor: pointer; }
.gm-choice label:has(input:checked) { background: var(--ink); color: var(--lime); }
.gm-choice input { width: 20px; height: 20px; accent-color: var(--lime); flex: none; }
.gm-kind { font-weight: 800; }
/* Labels inside a cream question card read in ink (they were styled for the dark page). */
.gm-ask .gm-lbl, .gm-ask .gm-choice legend { color: var(--ink); }
.gm-ask .gm-fine { color: var(--ink-soft); }
.gm-ask { color-scheme: light; } /* native radios and checkboxes on the cream card render light, so unchecked looks unchecked */
/* City claims: our list as you type, or a new city with its country. */
.gm-city-claim { display: grid; gap: 8px; }
.gm-city-claim .gm-lbl { margin: 0; color: var(--ink); }
.gm-city-claim [data-mde] { justify-self: start; }
.gm-city-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.gm-city-list button { width: 100%; min-height: 44px; padding: 0 12px; text-align: left; border: 2px solid var(--ink); border-radius: 10px; background: #fff; color: var(--ink); font-weight: 700; }
.gm-city-list small { color: var(--ink-soft); font-weight: 600; }
.gm-city-new select { min-height: 48px; width: 100%; }
.gm-city-claim.is-set .gm-text { border-color: var(--ink); background: #fff; font-weight: 700; }
/* Judging: back to the previous card to change an answer or undo a misclick. */
.gm-back-row { margin: 0 0 10px; }
.gm-back { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 12px; border: 2px solid var(--ink-3); border-radius: 12px; background: var(--ink-2); color: var(--cream); font: 700 15px/1.2 var(--text); text-align: left; max-width: 100%; }
.gm-back svg { width: 18px; height: 18px; flex: none; fill: none; stroke: currentColor; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
.gm-geo-cc { min-height: 48px; width: 100%; }
.gm-geo-hint { margin: 0; }
.gm-flag { font-size: 1.05em; }
.gm-foot-credit { margin: 6px 0 0; font-size: 13px; color: var(--cream-3); }
.gm-foot-credit a { color: inherit; }
/* Grid cards have a fixed budget, so a row is as tall as its content and no card runs long.
   Order of attention: price, then what it is, then what you get; a deal is a note, not a second headline.
   Long text stops at a set number of lines; the find page shows all of it. */
.gm-cards .gm-card:not(.gm-draft-card) .gm-card-media { aspect-ratio: 16 / 9; }
.gm-cards .gm-card-title { font-size: 25px; line-height: .98; }
.gm-cards .gm-card-price b { font-size: 42px; }
.gm-cards .gm-card-title, .gm-cards .gm-card-for, .gm-cards .gm-deal-terms { display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; }
.gm-cards .gm-card-title { -webkit-line-clamp: 2; }
.gm-cards .gm-card-for { -webkit-line-clamp: 3; font-size: 15px; font-weight: 500; }
.gm-cards .gm-card .gm-deal { display: block; padding: 8px 10px; border-width: 2px; }
.gm-cards .gm-card .gm-deal-tag { display: inline-block; font-size: 12px; }
.gm-cards .gm-card .gm-deal-terms { -webkit-line-clamp: 2; margin-top: 4px; font-size: 14px; font-weight: 600; line-height: 1.35; }
.gm-cards .gm-card .gm-deal-dates { margin-top: 4px; font-size: 13px; }
.gm-cards .gm-card .gm-deal-checks { display: none; }
/* No photo: the whole category mark, centred on its colour, instead of a cropped close-up. */
.gm-cards .gm-card-media .gm-plate { width: auto; height: 100%; margin: 0 auto; }
.gm-cards .gm-card[data-cat="food"] .gm-card-media:has(.gm-plate), .gm-cards .gm-card[data-cat="fitness"] .gm-card-media:has(.gm-plate) { background: #d7f64a; }
.gm-cards .gm-card[data-cat="cafe"] .gm-card-media:has(.gm-plate), .gm-cards .gm-card[data-cat="fashion"] .gm-card-media:has(.gm-plate) { background: #ff5a1f; }
.gm-cards .gm-card[data-cat="transport"] .gm-card-media:has(.gm-plate), .gm-cards .gm-card[data-cat="culture"] .gm-card-media:has(.gm-plate) { background: #fff7e8; }
.gm-cards .gm-card[data-cat="nightlife"] .gm-card-media:has(.gm-plate) { background: #141414; }
/* Profile with no account yet: the sign-up, with what it gets you above it and the anonymous way in below. */
.gm-join { display: grid; gap: 14px; max-width: 640px; margin-top: 14px; }
#gm-profile-setup ~ .gm-level-profile { max-width: 640px; } /* the newcomer column keeps one width at 1280 */
.gm-join-gets { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.gm-join-gets li { display: flex; align-items: center; gap: 10px; font-weight: 700; color: var(--cream); }
.gm-join-gets svg { flex: none; width: 22px; height: 22px; padding: 3px; border-radius: 50%; background: var(--lime); fill: none; stroke: var(--ink); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.gm-join-skip { margin: 0; color: var(--cream-2); }
.gm-join-skip a { color: var(--lime); font-weight: 800; }
/* The newcomer owns a card before supplying an email. Its editable title becomes the saved-name preview. */
.gm-profile-join { margin-top: 18px; gap: 16px; }
.gm-profile-join form[data-profile-create] { display: grid; gap: 18px; }
.gm-profile-draft { margin: 3px; gap: 12px; }
.gm-profile-draft .gm-idcard-top { gap: 12px; }
.gm-profile-draft .gm-idcard-who { flex: 1; }
.gm-profile-avatar { flex: none; width: 80px; }
.gm-profile-avatar .gm-host { position: relative; width: 100%; }
.gm-profile-draft .gm-lbl { color: var(--ink); font-size: 17px; line-height: 1.2; letter-spacing: .02em; }
.gm-profile-draft .gm-profile-name { padding: 0 8px; border: 2px solid var(--ink); background: var(--cream); border-radius: 12px; font: 900 30px/1.2 var(--cond); text-transform: uppercase; }
.gm-profile-name::placeholder { color: var(--ink-soft); opacity: 1; }
.gm-profile-draft .gm-idcard-name { font-size: clamp(1.7rem, 7.5vw, 2.6rem); }
.gm-profile-level { margin: 0; padding-top: 12px; border-top: 3px dotted var(--ink); font: 900 19px/1.15 var(--cond); text-transform: uppercase; }
.gm-profile-draft .gm-field-error { color: var(--orange-ink); }
.gm-profile-draft .gm-field-error:empty, [data-profile-account]:empty { display: none; }
.gm-profile-join .gm-join-gets li { font: 400 15px/1.4 var(--text); }
.gm-profile-join .gm-join-skip { font: 400 14px/1.4 var(--text); }
.gm-profile-join > .gm-textlink { justify-self: start; min-height: 44px; text-align: left; }
.gm-profile-join .gm-account .gm-text { background: var(--cream); }
.gm-profile-created { margin: 3px; }
.gm-profile-created .gm-idcard-name { font-size: clamp(1.7rem, 7.5vw, 2.6rem); }
#gm-profile-setup { scroll-margin-top: 100px; }
#gm-profile-setup ~ .gm-level-profile h2 { text-transform: uppercase; }
#gm-profile-setup ~ .gm-level-profile .gm-level-number,
#gm-profile-setup ~ .gm-level-profile .gm-level-xp { font: 900 17px/1.2 var(--cond); text-transform: uppercase; }

/* Saved = your runs, not a second feed. A stamp page that only grows (one stamp per price you paid), then compact run
   rows on ink that move Saved → Paid → Your call. Discover keeps the big cream cards; nothing here looks like them. */
.gm-pass { display: grid; gap: 10px; padding: 20px 18px 22px; border-radius: 22px; background: var(--cream); color: var(--ink); }
.gm-pass-h { font: 900 clamp(1.9rem, 8vw, 2.6rem)/.92 var(--cond); text-transform: uppercase; letter-spacing: -.005em; margin: 0; }
.gm-pass-line { margin: 0; font-weight: 700; color: var(--ink-soft); max-width: 60ch; }
.gm-stamps { list-style: none; margin: 6px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 16px 14px; }
.gm-postmark a { position: relative; display: grid; justify-items: center; align-content: center; gap: 1px; width: 104px; height: 104px; border-radius: 50%;
  border: 3px solid var(--orange); box-shadow: inset 0 0 0 4px var(--cream), inset 0 0 0 6px var(--orange); color: var(--ink); text-decoration: none;
  transform: rotate(var(--r, 0deg)); transition: transform var(--m-feedback) var(--e-feedback); }
.gm-postmark a:hover { transform: rotate(0deg) scale(1.04); }
.gm-postmark img { width: 40px; height: 40px; object-fit: contain; }
.gm-postmark-where { max-width: 84px; font: 900 13px/1 var(--cond); text-transform: uppercase; letter-spacing: .03em; text-align: center; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gm-postmark-when { max-width: 80px; font: 700 11px/1.15 var(--text); color: var(--orange-ink); text-align: center; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.gm-postmark-next a { border: 3px dashed var(--ink-soft); box-shadow: none; transform: none; }
.gm-postmark-next .gm-postmark-when { color: var(--ink-soft); }
.gm-postmark-plus { font: 900 34px/.8 var(--cond); color: var(--ink-soft); }
@media (prefers-reduced-motion: no-preference) {
  .gm-postmark.is-new a { animation: stamp-in .56s var(--e-pop) both; }
  .gm-postmark.is-new:nth-last-child(3) a { animation-delay: .12s; }
}
@keyframes stamp-in { from { opacity: 0; filter: blur(3px); transform: rotate(calc(var(--r, 0deg) - 16deg)) scale(1.9); } 62% { opacity: 1; filter: none; transform: rotate(var(--r, 0deg)) scale(.93); } to { transform: rotate(var(--r, 0deg)) scale(1); } }
.gm-runs { display: grid; gap: 10px; margin-top: 26px; }
.gm-runs-h { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 14px; }
.gm-runs-h .gm-h2 { margin: 0; }
.gm-runs-n { display: inline-grid; place-items: center; min-width: 1.6em; height: 1.6em; padding: 0 .3em; border-radius: 999px; background: var(--ink-3); color: var(--cream); font-size: .62em; vertical-align: .2em; }
.gm-run-pick { min-height: 44px; padding: 0 4px; background: none; border: 0; color: var(--lime); font: 900 17px/1 var(--cond); text-transform: uppercase; letter-spacing: .04em; text-decoration: underline; text-underline-offset: .22em; cursor: pointer; }
.gm-run-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.gm-run { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 10px 14px; padding: 12px; border-radius: 18px; background: var(--ink-2); color: var(--cream); border: 2px solid var(--ink-3); }
.gm-run.is-call { border-color: var(--lime); }
.gm-run-thumb { display: block; width: 76px; height: 76px; border-radius: 12px; overflow: hidden; background: var(--ink-3); }
.gm-run-thumb img, .gm-run-thumb .gm-plate { display: block; width: 100%; height: 100%; object-fit: cover; }
.gm-run-body { display: grid; gap: 4px; align-content: start; min-width: 0; }
.gm-run-title { margin: 0; font: 900 21px/1 var(--cond); text-transform: uppercase; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.gm-run-title a { color: inherit; text-decoration: none; }
.gm-run-meta { margin: 0; font-size: 14px; color: var(--cream-2); }
.gm-run-meta b { color: var(--cream); font-variant-numeric: tabular-nums; white-space: nowrap; }
.gm-run-meta b .gm-money { white-space: nowrap; overflow-wrap: normal; }
.gm-run-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 2px 0 0; }
.gm-run-chips span { padding: 3px 8px; border-radius: 999px; border: 2px solid var(--orange); color: var(--orange); font: 800 12px/1.2 var(--text); }
.gm-run-track { list-style: none; margin: 6px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; }
.gm-run-track li { --seg: var(--ink-3); padding-top: 12px; background: linear-gradient(var(--seg), var(--seg)) top / 100% 5px no-repeat; font: 900 11px/1 var(--cond); text-transform: uppercase; letter-spacing: .05em; color: var(--cream-3); }
.gm-run-track li.on { --seg: var(--lime); color: var(--cream); }
.gm-run-act { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; }
.gm-run-go { flex: 1 1 220px; display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 16px; border-radius: 14px; background: var(--orange); color: var(--ink); font: 900 19px/1 var(--cond); text-transform: uppercase; letter-spacing: .02em; text-decoration: none; text-align: center; }
.gm-run-go:hover { background: var(--lime); }
.gm-run-drop { min-height: 44px; padding: 0 4px; background: none; border: 0; color: var(--cream-2); font: 700 14px/1 var(--text); text-decoration: underline; text-underline-offset: .2em; cursor: pointer; }
.gm-run-q { width: 100%; margin: 0; font: 900 19px/1 var(--cond); text-transform: uppercase; color: var(--lime); }
.gm-run-vote { flex: 1 1 100%; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.gm-run-vote button { min-height: 50px; font-size: 19px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; border-radius: 12px; }
.gm-run-vote svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2.8; stroke-linecap: round; stroke-linejoin: round; }
.gm-run-done { margin: 0; font-size: 15px; color: var(--cream-2); }
.gm-run-done b { color: var(--cream); }
.gm-run.is-done { opacity: .82; }
.gm-run { position: relative; }
@media (min-width: 720px) {
  .gm-run { grid-template-columns: 96px minmax(0, 1fr) minmax(220px, 300px); align-items: center; }
  .gm-run-thumb { width: 96px; height: 96px; }
  .gm-run-act { grid-column: auto; justify-content: flex-end; }
  .gm-postmark a { width: 116px; height: 116px; }
}
/* Discover only: filters → useful find → save/open. Keep other screens' card anatomy intact. */
.gm-view[data-view="discover"] { gap: 14px; }
.gm-view[data-view="discover"] .gm-filters { padding-block: 4px 8px; }
.gm-view[data-view="discover"] .gm-disc-feed { max-width: none; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.gm-view[data-view="discover"] .gm-disc-feed label { grid-column: auto; min-width: 0; }
.gm-view[data-view="discover"] .gm-feed-h { margin-top: 0; font-size: 24px; }
.gm-discover-modes { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; margin-bottom: 10px; }
.gm-discover-play { margin: 0; }
.gm-discover-modes .gm-textlink { padding: 0; color: var(--cream); }
#gm-feed { gap: 18px; }
#gm-feed > .gm-discover-card { display: block; grid-row: auto; margin: 3px; min-width: 0; }
.gm-discover-open { display: block; color: inherit; text-decoration: none; }
#gm-feed .gm-card-media { aspect-ratio: 2.1 / 1; }
.gm-discover-body { display: grid; grid-template-columns: minmax(0, 1fr); gap: 4px; padding: 10px 12px 12px; }
.gm-discover-body > * { min-width: 0; }
#gm-feed .gm-card-title { font-size: 22px; line-height: 1.05; min-height: 2lh; }
#gm-feed .gm-card-place { font-size: 13px; line-height: 1.25; }
#gm-feed .gm-card-price { gap: 4px 8px; line-height: 1.1; }
#gm-feed .gm-card-price b { font-size: 26px; line-height: 1.1; }
#gm-feed .gm-card-price span { font-size: 12px; }
#gm-feed .gm-card-price .gm-money { font: inherit; }
.gm-discover-meta { font-size: 11px; line-height: 1.3; color: var(--ink-soft); overflow-wrap: anywhere; }
.gm-discover-for { font-size: 13px; line-height: 1.35; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gm-discover-save { position: absolute; top: 8px; right: 8px; display: inline-flex; align-items: center; justify-content: center; gap: 5px; min-height: 44px; min-width: 44px; padding: 0 10px; border: 2px solid var(--ink); border-radius: 12px; box-shadow: 2px 2px 0 var(--ink); background: var(--cream); color: var(--ink); font: 900 15px/1 var(--cond); text-transform: uppercase; }
.gm-discover-save svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; }
.gm-discover-save[aria-pressed="true"] { background: var(--lime); }
.gm-discover-save[aria-pressed="true"] svg { fill: currentColor; }
.gm-discover-save:disabled { opacity: .65; cursor: wait; }
/* What is hidden because you already judged it, and the honest end of the fresh feed. */
.gm-feed-judged { margin: -4px 0 12px; font-size: 14px; color: var(--cream-2); }
.gm-feed-toggle { min-height: 44px; padding: 0 4px; background: none; border: 0; color: var(--lime); font: 800 14px/1 var(--text); text-decoration: underline; text-underline-offset: .2em; cursor: pointer; }
.gm-caught { display: block; margin-bottom: 12px; }
.gm-caught b { display: block; font: 900 clamp(1.9rem, 8vw, 2.6rem)/.92 var(--cond); text-transform: uppercase; color: var(--cream); margin-bottom: 6px; }
.gm-caught-acts { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; }
.gm-caught-acts .gm-go { color: var(--ink); }
/* Your answer on a card sits at the bottom like the Worth it / Pass buttons it replaces, so a row of cards stays level. */
.gm-card-body > .gm-card-reveal { margin-top: auto; }
.gm-card-body > .gm-card-reveal + .gm-card-foot { margin-top: 0; }
.gm-cr-count b { font: inherit; color: var(--lime); }
.gm-card-reveal .gm-fine { font-size: 14px; line-height: 1.3; }
.gm-cr-why { font-size: 14px; line-height: 1.3; color: var(--cream-2); }
.gm-cr-why summary { cursor: pointer; list-style: none; }
.gm-cr-why summary::-webkit-details-marker { display: none; }
.gm-cr-why summary span { color: var(--cream); text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
.gm-cr-why p { margin: 6px 0 0; }
.gm-cr-actions { min-height: 44px; }
/* One grid for every card in a row (subgrid): the photo, title, place, price, "for that price", deal, your answer and
   the footer each sit on a shared row, so the same thing is at the same height on every card. A card without a deal
   leaves that row empty instead of shifting everything below it. Spacing comes from margins, not gaps, so an unused
   row collapses to nothing. Browsers without subgrid keep the column layout above. */
@supports (grid-template-rows: subgrid) {
  .gm-cards { row-gap: 0; }
  /* Your finds on Profile: the status line takes a shared row above the card's 8, so those cards line up too. */
  .gm-cards > .gm-mine { grid-row: span 9; display: grid; grid-template-rows: subgrid; row-gap: 0; margin: 0 0 16px; }
  .gm-cards > .gm-mine > .gm-status { grid-row: 1; align-self: end; }
  .gm-cards > .gm-mine > .gm-card { grid-row: 2 / span 8; display: grid; grid-template-rows: subgrid; row-gap: 0; margin: 3px; }
  .gm-cards > .gm-mine > .gm-card > .gm-card-media { grid-row: 1; }
  .gm-cards > .gm-mine > .gm-card > .gm-card-body { grid-row: 2 / span 7; display: grid; grid-template-rows: subgrid; row-gap: 0; }
  .gm-cards > .gm-card:not(.gm-draft-card) { grid-row: span 8; display: grid; grid-template-rows: subgrid; row-gap: 0; margin: 3px 3px 19px; }
  .gm-cards > .gm-card:not(.gm-draft-card) > .gm-card-media { grid-row: 1; }
  .gm-cards > .gm-card:not(.gm-draft-card) > .gm-card-body { grid-row: 2 / span 7; display: grid; grid-template-rows: subgrid; row-gap: 0; }
  .gm-cards .gm-card:not(.gm-draft-card) > .gm-card-body > * { margin: 0 0 10px; }
  .gm-cards .gm-card:not(.gm-draft-card) .gm-card-title { grid-row: 1; align-self: start; }
  .gm-cards .gm-card:not(.gm-draft-card) .gm-card-place { grid-row: 2; }
  .gm-cards .gm-card:not(.gm-draft-card) .gm-card-pricerow { grid-row: 3; }
  .gm-cards .gm-card:not(.gm-draft-card) .gm-card-what { grid-row: 4; align-self: start; }
  .gm-cards .gm-card:not(.gm-draft-card) .gm-deal { grid-row: 5; align-self: start; }
  .gm-cards .gm-card:not(.gm-draft-card) .gm-card-vote,
  .gm-cards .gm-card:not(.gm-draft-card) .gm-card-reveal { grid-row: 6; align-self: end; }
  .gm-cards .gm-card:not(.gm-draft-card) .gm-card-foot { grid-row: 7; margin: 0; align-self: start; }
  .gm-cards .gm-card:not(.gm-draft-card) .gm-card-place { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
}
/* Phones: the landing page's horizontal row is one shared set of 8 rows, each card a column through all of them, so
   swiped-to cards are the same size with every section at the same height. (Desktop turns the row into the grid.) */
@supports (grid-template-rows: subgrid) { @media (max-width: 959px) {
  .gm-cards.gm-cards-row { grid-template-rows: repeat(8, auto); }
  .gm-cards.gm-cards-row > .gm-card:not(.gm-draft-card) { grid-row: 1 / span 8; margin-bottom: 3px; }
} }
/* Member number: cred for joining early. A sticker under the name on the player card; a small "#N" in bylines. */
.gm-member { display: inline-block; margin: 8px 0 0; padding: 6px 10px 5px; border-radius: 8px; background: var(--lime); color: var(--ink); font: 900 18px/1 var(--cond); text-transform: uppercase; letter-spacing: .04em; transform: rotate(-2deg); }
.gm-member-sm { font: 900 13px/1 var(--cond); letter-spacing: .03em; color: var(--ink-soft); }
/* People: rank-row style list on ink, your own row in orange, member number as the leading numeral. */
.gm-twins { margin-bottom: 26px; }
.gm-people { list-style: none; margin: 0 0 12px; padding: 0; display: grid; gap: 8px; }
.gm-person a { display: grid; grid-template-columns: 3.4em 48px minmax(0, 1fr); align-items: center; gap: 12px; min-height: 64px; padding: 8px 14px 8px 12px; border-radius: 14px; background: var(--ink-2); color: var(--cream); text-decoration: none; border: 2px solid var(--ink-3); }
.gm-person a:hover { border-color: var(--lime); }
.gm-person.is-you a { border-color: var(--orange); }
.gm-person-no { font: 900 26px/1 var(--cond); color: var(--lime); font-variant-numeric: tabular-nums; text-align: right; }
.gm-person .gm-avatar { width: 48px; height: 48px; }
.gm-person-who { display: grid; gap: 3px; min-width: 0; }
.gm-person-who b { font: 900 21px/1 var(--cond); text-transform: uppercase; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gm-person-who small { font-size: 14px; color: var(--cream-2); }
.gm-people-empty { color: var(--cream-2); max-width: 60ch; }
.gm-people-empty a { color: var(--lime); font-weight: 800; }
.gm-seg { display: inline-flex; gap: 4px; padding: 4px; border-radius: 999px; background: var(--ink-2); }
.gm-seg button { min-height: 40px; padding: 0 14px; border: 0; border-radius: 999px; background: none; color: var(--cream-2); font: 900 15px/1 var(--cond); text-transform: uppercase; letter-spacing: .04em; cursor: pointer; }
.gm-seg button[aria-pressed="true"] { background: var(--lime); color: var(--ink); }
.gm-person .gm-monogram { font-size: 24px; }
#gm-people-title { margin-bottom: 18px; }

/* Play: Discover's full-screen swipe deck. The card fills the screen like a story; the call lands as a stamp, then the
   real verdict, then the next card. On wide screens it stays phone-shaped in the middle. */
.gm-play-entry { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 14px; align-items: center; width: 100%; max-width: 640px; padding: 12px; border: 3px solid var(--lime); border-radius: 20px; background: var(--ink-2); color: var(--cream); text-align: left; cursor: pointer; }
.gm-play-entry:hover { background: var(--ink-3); }
.gm-play-entry-media { display: block; width: 112px; height: 112px; border-radius: 14px; overflow: hidden; transform: rotate(-3deg); box-shadow: 6px 6px 0 -2px var(--orange); }
.gm-play-entry-media img, .gm-play-entry-media .gm-plate { display: block; width: 100%; height: 100%; object-fit: cover; }
.gm-play-entry-text { display: grid; gap: 6px; }
.gm-play-entry-text b { font: 900 clamp(1.7rem, 7vw, 2.3rem)/.92 var(--cond); text-transform: uppercase; color: var(--lime); }
.gm-play-entry-text > span:not(.gm-play-go) { font-size: 15px; color: var(--cream-2); }
.gm-play-go { justify-self: start; padding: 8px 16px 7px; border-radius: 12px; background: var(--orange); color: var(--ink); font: 900 20px/1 var(--cond); text-transform: uppercase; letter-spacing: .03em; }
html.gm-play-on, html.gm-play-on body { overflow: hidden; }
.gm-play { position: fixed; inset: 0; z-index: 60; display: grid; grid-template-rows: auto minmax(min-content, 1fr) auto; gap: 10px; padding: max(10px, env(safe-area-inset-top)) 12px max(12px, env(safe-area-inset-bottom)); background: var(--ink); color: var(--cream); }
.gm-play > * { width: 100%; max-width: 480px; justify-self: center; }
.gm-play-top { display: grid; grid-template-columns: 44px 1fr 44px; align-items: center; }
.gm-play-count { margin: 0; text-align: center; font: 900 18px/1 var(--cond); text-transform: uppercase; letter-spacing: .05em; color: var(--lime); }
.gm-play-ic { display: grid; place-items: center; width: 44px; height: 44px; border: 0; border-radius: 50%; background: var(--ink-2); color: var(--cream); cursor: pointer; }
.gm-play-ic:disabled { opacity: .35; cursor: default; }
.gm-play-ic svg, .gm-play-btn svg, .gm-play-undo svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 2.8; stroke-linecap: round; stroke-linejoin: round; }
.gm-play-stage { --play-title-size: clamp(22px, 6vw, 28px); position: relative; min-height: 540px; }
.gm-play-card, .gm-play-under .gm-play-card { position: absolute; inset: 0; display: grid; grid-template-rows: 1fr 1fr; border-radius: 24px; overflow: hidden; background: var(--cream); color: var(--ink); touch-action: none; user-select: none; -webkit-user-select: none; will-change: transform; }
.gm-play-under { position: absolute; inset: 0; z-index: 0; transform: translateY(5%) scale(.93); filter: brightness(.45); pointer-events: none; }
.gm-play-stage > .gm-play-card { z-index: 1; }
.gm-play-media { position: relative; min-height: 0; overflow: hidden; background: var(--ink-2); }
/* The band depends on the viewport, never the image's intrinsic aspect or the text length. */
.gm-play-media > img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 45%; -webkit-user-drag: none; pointer-events: none; }
.gm-play-placeholder { position: absolute; inset: 0; display: grid; place-items: center; padding: 44px 12px; color: var(--cream-2); background: repeating-linear-gradient(135deg, transparent 0 22px, rgb(255 247 232 / .04) 22px 24px); font: 700 13px/1.4 var(--text); }
.gm-play-media .gm-card-cat { top: 10px; left: 10px; max-width: calc(100% - 70px); }
.gm-play-credit { position: absolute; top: 2px; right: 2px; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--cream); cursor: pointer; }
.gm-play-credit > span { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: rgb(20 20 20 / .85); font: 700 16px/1 var(--text); }
.gm-play-photo-labels { position: absolute; inset: auto 10px 8px; display: flex; align-items: center; gap: 6px; }
.gm-play-photo-labels > .gm-art-tag, .gm-play-photo-labels > .gm-play-battle, .gm-play-photo-labels > .gm-play-deal { position: static; flex: 0 1 auto; min-width: 0; max-width: none; margin: 0; padding: 5px 7px; border-radius: 6px; transform: none; font: 800 10px/1.2 var(--text); white-space: nowrap; text-transform: uppercase; letter-spacing: 0; }
.gm-play-photo-labels > .gm-play-deal { background: var(--orange); color: var(--ink); }
.gm-play-stamp { position: absolute; top: 28px; padding: 8px 14px 6px; border: 5px solid currentColor; border-radius: 12px; font: 900 40px/1 var(--cond); text-transform: uppercase; letter-spacing: .02em; opacity: 0; transition: opacity 120ms; background: rgb(20 20 20 / .55); }
.gm-play-stamp.is-worth { left: 18px; color: var(--lime); transform: rotate(-12deg); }
.gm-play-stamp.is-pass { right: 18px; color: var(--orange); transform: rotate(12deg); }
.gm-play-card.lean-worth .gm-play-stamp.is-worth, .gm-play-card.is-called.is-worth .gm-play-stamp.is-worth,
.gm-play-card.lean-pass .gm-play-stamp.is-pass, .gm-play-card.is-called.is-pass .gm-play-stamp.is-pass { opacity: 1; }
.gm-play-info { display: grid; grid-template-rows: calc(2.24 * var(--play-title-size)) 18px 50px 36.4px minmax(44px, 1fr); gap: 3px; min-width: 0; min-height: 0; padding: 10px; }
.gm-play-info > * { min-width: 0; }
.gm-play-title { margin: 0; font: 900 var(--play-title-size)/1.12 var(--cond); text-transform: uppercase; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; overflow-wrap: anywhere; }
.gm-play-place { margin: 0; font: 700 13px/18px var(--text); color: var(--ink-soft); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gm-play-price { margin: 0; display: grid; grid-template-columns: max-content minmax(0, 1fr); grid-template-rows: 32px 18px; align-items: baseline; column-gap: 7px; }
.gm-play-info .gm-play-price > b, .gm-play-price .gm-money { display: contents; }
.gm-play-price .gm-play-cop { grid-area: 1 / 1; font: 900 clamp(30px, 8.5vw, 38px)/32px var(--cond); font-variant-numeric: tabular-nums; white-space: nowrap; }
.gm-play-price.is-large-price .gm-play-cop { font-size: clamp(24px, 7vw, 32px); }
.gm-play-price .gm-play-usd { grid-area: 2 / 1 / 3 / -1; font: 600 12px/18px var(--text); color: var(--ink-soft); white-space: nowrap; }
.gm-play-price > .gm-play-unit { grid-area: 1 / 2; font: 600 12px/18px var(--text); color: var(--ink-soft); white-space: nowrap; }
.gm-play-for { margin: 0; font-size: 13px; line-height: 18.2px; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; overflow-wrap: anywhere; }
.gm-play-more { padding: 0 12px; border: 0; background: none; color: var(--ink); font: 800 14px/1.2 var(--text); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
/* More is inside the Play dialog; only its body scrolls, and the call controls remain below it. */
.gm-play-sheet { position: absolute; z-index: 4; inset: calc(var(--reward-lane) + 24px) 0 0; display: grid; grid-template-rows: auto minmax(0, 1fr); border: 2px solid var(--ink); border-radius: 22px; background: var(--cream); color: var(--ink); box-shadow: 0 0 0 3px var(--ink), 5px 5px 0 var(--cream-3); overflow: hidden; }
.gm-play-sheet > header { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 12px; border-bottom: 1px solid var(--cream-3); }
.gm-play-sheet > header h2 { margin: 0; font: 900 22px/1.15 var(--cond); }
.gm-play-sheet > header button { flex-shrink: 0; width: 44px; height: 44px; border: 0; border-radius: 50%; background: var(--ink); color: var(--cream); font: 700 26px/1 var(--text); cursor: pointer; }
.gm-play-sheet-scroll { overflow: auto; overscroll-behavior: contain; touch-action: pan-y; padding: 12px 16px 20px; font: 400 15px/1.45 var(--text); overflow-wrap: anywhere; }
.gm-play-sheet-scroll h2, .gm-play-sheet-scroll h3 { margin: 12px 0 6px; font: 900 21px/1.2 var(--cond); }
.gm-play-sheet-scroll > h3:first-child { margin-top: 0; }
.gm-play-sheet-scroll p { margin: 8px 0 14px; }
.gm-play-sheet a, .gm-play-sheet .gm-trm-note { color: var(--ink); }
.gm-play-sheet .gm-ev { color: var(--ink); border-color: var(--ink); }
.gm-play-sheet .gm-fine { color: var(--ink-soft); }
.gm-play-sheet .gm-options { margin: 16px 0; padding: 0; border: 0; background: none; }
.gm-play-sheet .gm-options ul { display: grid; gap: 0; padding: 0; list-style: none; }
.gm-play-sheet .gm-options li { margin: 0; border-bottom: 1px solid var(--cream-3); }
.gm-play-sheet .gm-options a { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 10px; padding: 10px 0; min-height: 44px; background: none; border: 0; color: var(--ink); font: inherit; }
.gm-play-option-title { min-width: 0; }
.gm-play-option-title small { display: block; color: var(--ink-soft); font-size: 11px; }
.gm-play-other-prices .gm-money { display: grid; gap: 3px; text-align: right; }
.gm-play-other-prices .gm-play-cop { font: 900 20px/1 var(--cond); }
.gm-play-other-prices .gm-play-usd { font: 500 11px/1.2 var(--text); color: var(--ink-soft); }
.gm-play-sheet .gm-location-list { grid-template-columns: 1fr; }
.gm-play-sheet .gm-location-list li { background: none; border-color: var(--cream-3); }
.gm-play-sheet .gm-play-sheet-links { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
.gm-play-sheet-links > a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 800; }
.gm-play-sheet .gm-play-ask { position: static; margin-bottom: 12px; }
.gm-play-sheet .gm-play-mute { white-space: normal; text-align: left; }
@media (prefers-reduced-motion: no-preference) { .gm-play-sheet { animation: play-sheet-in .18s var(--e-progress); } }
@keyframes play-sheet-in { from { transform: translateY(20%); opacity: 0; } }
@media (max-height: 800px) {
  .gm-play-stage { --play-title-size: 20px; min-height: 438px; }
  .gm-play-info { grid-template-rows: 44.8px 18px 44px 32px minmax(44px, 1fr); padding: 8px; gap: 2px; }
  .gm-play-price { grid-template-rows: 28px 16px; }
  .gm-play-price .gm-play-cop { font-size: 30px; line-height: 28px; }
  .gm-play-price.is-large-price .gm-play-cop { font-size: 24px; }
  .gm-play-price .gm-play-usd { line-height: 16px; }
  .gm-play-for { font-size: 12px; line-height: 16px; }
}
.gm-play-reveal { position: absolute; z-index: 3; inset: 0 0 auto; display: flex; flex-wrap: wrap; align-content: start; gap: 4px; height: 72px; padding: 4px 0; color: var(--cream); pointer-events: none; }
.gm-play-reveal.is-out { opacity: 0; transform: translateY(-8px); }
.gm-play-reveal p { margin: 0; }
.gm-play-reveal-line { display: flex; align-items: center; width: 100%; white-space: nowrap; font: 700 clamp(16px, 4.2vw, 18px)/20px var(--cond); }
.gm-play-reveal-line b { color: var(--lime); font: inherit; }
.gm-play-reveal-note { font-size: 14px; color: var(--cream-2); }
@media (prefers-reduced-motion: no-preference) { .gm-play-reveal { animation: play-down .26s var(--e-pop) both; } .gm-play-card:not(.is-called) { animation: play-in .18s var(--e-progress) both; } }
@keyframes play-down { from { transform: translateY(-14px); opacity: 0; } }
@keyframes play-in { from { transform: translateY(5%) scale(.93); filter: brightness(.45); } }
.gm-play-ctl { display: grid; grid-template-columns: 1.3fr .8fr 1.3fr; gap: 8px; } /* Pass · Skip · Smash: Smash saves */
.gm-play-btn { display: grid; justify-items: center; gap: 3px; min-height: 64px; padding: 8px 4px; border: 3px solid var(--ink); border-radius: 18px; font: 900 15px/1 var(--cond); text-transform: uppercase; letter-spacing: .04em; cursor: pointer; }
.gm-play-btn:disabled { opacity: .35; cursor: default; }
.gm-play-btn.is-worth { background: var(--lime); color: var(--ink); }
.gm-play-btn.is-pass { background: var(--orange); color: var(--ink); }
.gm-play-btn.is-skip, .gm-play-btn.is-save { background: var(--ink-2); color: var(--cream); border-color: var(--ink-3); }
.gm-play-btn.is-save.is-on { color: var(--lime); border-color: var(--lime); }
.gm-play-btn.is-save.is-on svg { fill: currentColor; }
.gm-play-end { display: grid; align-content: center; gap: 14px; height: 100%; padding: 20px; }
.gm-play-end-h { margin: 0; font: 900 clamp(2.4rem, 11vw, 3.4rem)/.9 var(--cond); text-transform: uppercase; color: var(--lime); }
.gm-play-end p { margin: 0; }
.gm-play-end-acts { display: flex; flex-wrap: wrap; gap: 12px 18px; align-items: center; }
.gm-ripper { display: inline-block; margin-left: 4px; padding: 3px 7px 2px; border-radius: 6px; background: var(--orange); color: var(--ink); font: 900 12px/1 var(--cond); letter-spacing: .05em; vertical-align: 3px; transform: rotate(-3deg); }
.gm-play-first { justify-self: start; padding: 4px 9px 3px; border-radius: 8px; background: var(--lime); color: var(--ink); font: 900 16px/1.1 var(--cond); text-transform: uppercase; letter-spacing: .03em; transform: rotate(-2deg); }
/* W73: Compete's compact league rows. The price-check league keeps its own styles. */
.gm-leagues { margin: 28px 0; }
.gm-league-grid { list-style: none; margin: 12px 0 0; padding: 0; border: 2px solid var(--ink-3); border-radius: 16px; overflow: hidden; }
.gm-league-grid > li + li { border-top: 1px solid var(--ink-3); }
.gm-league-row { display: grid; grid-template-columns: 36px minmax(0, 1fr) minmax(70px, .75fr) auto; gap: 12px; align-items: center; width: 100%; padding: 12px; min-height: 72px; border: 0; background: var(--ink-2); color: var(--cream); text-align: left; text-decoration: none; font: inherit; }
.gm-league-row:hover { background: var(--ink-3); }
.gm-league-row:focus-visible { outline-offset: -4px; }
.gm-league-row img { width: 36px; height: 36px; }
.gm-league-name { min-width: 0; overflow-wrap: anywhere; }
.gm-league-name b { display: block; font: 900 23px/1.1 var(--cond); text-transform: uppercase; }
.gm-league-name small { display: block; color: var(--cream-2); font-size: 12px; line-height: 1.4; }
.gm-league-status { font-size: 12px; line-height: 1.25; max-width: 15em; color: var(--cream-3); overflow-wrap: anywhere; }
.gm-league-action { font: 900 18px/1.1 var(--cond); white-space: nowrap; }
@media(max-width:360px) { .gm-league-row { gap: 8px; grid-template-columns: 30px minmax(0,1fr) 64px auto; padding: 10px 8px; } .gm-league-row img { width: 30px; height: 30px; } }

.gm-battle-h { margin-top: 8px; }
/* Photo prompt on your own card: shown with the audience in view (where people see you), not as a form field. */
.gm-face { display: grid; grid-template-columns: 56px 1fr; gap: 6px 12px; align-items: center; margin: 14px 0 4px; padding: 12px; border-radius: 14px; border: 2px dashed var(--ink-soft); }
.gm-face-ph { grid-row: span 2; display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: var(--ink); color: var(--lime); font: 900 30px/1 var(--cond); }
.gm-face p { margin: 0; font-size: 15px; }
.gm-face .gm-cr-next { justify-self: start; }
/* Smash or Pass: the place's other plans, "not into this", and the one-time fashion question. */
.gm-play-foot { margin: 0; display: flex; justify-content: center; align-items: center; gap: 8px; white-space: nowrap; }
.gm-play-mute { min-height: 44px; padding: 0; border: 0; background: none; color: var(--ink-soft); font: 700 clamp(11px, 3vw, 13px)/1.2 var(--text); white-space: nowrap; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
/* A one-time fashion preference uses the existing reward lane, outside the card's fixed anatomy. */
.gm-play-ask { position: absolute; inset: 0 0 auto; z-index: 2; display: flex; flex-wrap: wrap; align-items: center; gap: 2px 6px; padding: 4px 8px; border-radius: 12px; background: var(--lime); color: var(--ink); }
.gm-play-ask p { flex-basis: 100%; }
.gm-play-stage:has(.gm-play-reveal) .gm-play-ask { visibility: hidden; }
.gm-play-ask p { margin: 0 4px 0 0; font: 900 15px/1 var(--cond); text-transform: uppercase; }
.gm-play-ask button { min-height: 34px; padding: 0 12px; border: 2px solid var(--ink); border-radius: 999px; background: var(--cream); color: var(--ink); font: 900 14px/1 var(--cond); text-transform: uppercase; cursor: pointer; }
.gm-feedprefs { margin: 26px 0; }
.gm-feedprefs-cats, .gm-feedprefs-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 8px 0 0; }
.gm-feedprefs-row > span { margin-right: 4px; font: 900 15px/1 var(--cond); text-transform: uppercase; color: var(--cream-2); }
.gm-feedprefs button { min-height: 40px; padding: 0 14px; border-radius: 999px; border: 2px solid var(--ink-3); background: var(--ink-2); color: var(--cream-3); font: 900 15px/1 var(--cond); text-transform: uppercase; letter-spacing: .03em; cursor: pointer; text-decoration: line-through; }
.gm-feedprefs button[aria-pressed="true"] { border-color: var(--lime); background: var(--lime); color: var(--ink); text-decoration: none; }
.gm-feedprefs-row button { text-decoration: none; }
/* Price search on /check: full width above the meter; range bar with every real price and the median. */
.gm-psearch { display: grid; gap: 10px; margin: 0 0 22px; padding: 18px; border-radius: 22px; background: var(--ink-2); border: 2px solid var(--ink-3); }
@media (min-width: 960px) { .gm-check-view > .gm-psearch { grid-column: 1 / -1; } }
.gm-psearch h2 { margin: 0; font: 900 clamp(1.8rem, 7vw, 2.6rem)/.92 var(--cond); text-transform: uppercase; }
.gm-psearch-form input { width: 100%; min-height: 56px; padding: 0 16px; border-radius: 14px; border: 3px solid var(--ink); background: var(--cream); color: var(--ink); font: 700 19px/1 var(--text); }
.gm-psearch-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
.gm-psearch-chips:empty { display: none; }
.gm-psearch-chips button { min-height: 36px; padding: 0 12px; border-radius: 999px; border: 2px solid var(--ink-3); background: none; color: var(--cream); font: 800 14px/1 var(--text); cursor: pointer; }
.gm-psgroup { display: grid; gap: 6px; padding: 12px 0; border-top: 2px solid var(--ink-3); }
.gm-psgroup-h { margin: 0; color: var(--cream-2); }
.gm-psgroup-h b { font: 900 30px/1 var(--cond); color: var(--lime); font-variant-numeric: tabular-nums; }
.gm-psrange { position: relative; height: 22px; margin: 4px 8px 0; }
.gm-psrange-bar { position: absolute; left: 0; right: 0; top: 9px; height: 4px; border-radius: 2px; background: var(--ink-3); }
.gm-psrange i { position: absolute; top: 5px; width: 12px; height: 12px; margin-left: -6px; border-radius: 50%; background: var(--cream); border: 2px solid var(--ink); }
.gm-psrange-med { position: absolute; top: 0; width: 4px; height: 22px; margin-left: -2px; border-radius: 2px; background: var(--lime); }
.gm-psrange-ends { display: flex; justify-content: space-between; margin: 0 2px; font-size: 13px; color: var(--cream-3); font-variant-numeric: tabular-nums; }
.gm-pslist { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 4px; }
.gm-pslist a, .gm-pslist .gm-ps-ref { display: grid; grid-template-columns: 7.5em 1fr; gap: 10px; align-items: baseline; padding: 8px 10px; border-radius: 10px; color: var(--cream); text-decoration: none; }
.gm-pslist a:hover { background: var(--ink-3); }
.gm-pslist b { font: 900 19px/1 var(--cond); font-variant-numeric: tabular-nums; }
.gm-pslist span { display: grid; gap: 2px; }
.gm-pslist small { font-size: 13px; color: var(--cream-3); }
.gm-psearch-none { margin: 0; color: var(--cream-2); }
.gm-psearch-none b { color: var(--cream); }
.gm-psearch-none a { color: var(--lime); font-weight: 800; }
.gm-card-variants { flex-basis: 100%; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 2px 0 0; font-size: 13px; }
.gm-card-variants > span { font-weight: 800; color: var(--ink-soft); }
.gm-card-variants a { padding: 3px 8px; border-radius: 999px; border: 2px solid var(--ink); color: var(--ink); text-decoration: none; font-weight: 800; white-space: nowrap; }
.gm-card-variants a small { font-weight: 600; color: var(--ink-soft); }
/* Battle cards in Smash or Pass: this week's challenge entries, counted for the board. */
.gm-play-card.is-battle { box-shadow: 0 0 0 4px var(--orange); }
.gm-play-battle { position: absolute; z-index: 2; bottom: 14px; right: 14px; margin: 0; padding: 6px 10px 5px; border-radius: 8px; background: var(--orange); color: var(--ink); font: 900 16px/1 var(--cond); text-transform: uppercase; letter-spacing: .03em; transform: rotate(3deg); max-width: 70%; }
.gm-play-battle span { display: block; margin-top: 2px; font: 700 11px/1.2 var(--text); text-transform: none; letter-spacing: 0; }
.gm-chal-live b { color: var(--lime); font-variant-numeric: tabular-nums; }

/* One card anatomy everywhere (owner: same size and dimensions at all times, landing page included). Every zone has a
   fixed height, so content never changes a card's size: photo 16:9 · title 2 lines · place 1 line · price row · what
   you get 3 lines (a deal takes one of them) · your answer at the buttons' height · footer. Full text lives on the find. */
.gm-card:not(.gm-draft-card) .gm-card-media { aspect-ratio: 16 / 9; }
.gm-card .gm-card-title { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; min-height: 2lh; }
.gm-card .gm-card-place { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gm-card .gm-card-pricerow { flex-wrap: nowrap; }
.gm-card .gm-card-pricerow .gm-evidence { flex-wrap: nowrap; overflow: hidden; min-width: 0; }
.gm-card-what { display: grid; align-content: start; gap: 0; font-size: 15px; line-height: 1.35; min-height: 3lh; }
.gm-card-what .gm-card-for { margin: 0; font-size: inherit; line-height: inherit; font-weight: 500; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
.gm-card-what:has(.gm-card-dealline) .gm-card-for { -webkit-line-clamp: 2; }
.gm-card-dealline { margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: 700; }
.gm-card-dealline span { margin-right: 6px; padding: 0 6px; vertical-align: 1px; border-radius: 5px; background: var(--orange); color: var(--ink); font: 900 12px/1.3 var(--cond); text-transform: uppercase; }
.gm-card-dealline.is-ended span { background: var(--cream-3); }
.gm-card-plans { position: absolute; right: 10px; bottom: 10px; padding: 5px 9px 4px; border-radius: 8px; background: var(--lime); color: var(--ink); font: 900 13px/1 var(--cond); text-transform: uppercase; letter-spacing: .03em; }
.gm-card .gm-card-vote, .gm-card .gm-card-reveal { box-sizing: border-box; height: 60px; }
.gm-card .gm-card-vote { padding-top: 4px; }
.gm-card .gm-card-vote button { min-height: 52px; }
.gm-card .gm-card-reveal { display: grid; align-content: center; gap: 4px; padding: 6px 10px; overflow: hidden; }
.gm-cr-line { display: flex; align-items: center; gap: 8px; margin: 0; min-width: 0; }
.gm-cr-line .gm-cr-stamp { padding: 3px 8px 2px; border-width: 2px; font-size: 15px; animation: none; }
.gm-cr-line .gm-cr-change { margin-left: auto; min-height: 28px; font-size: 13px; }
.gm-cr-why { min-height: 28px; padding: 0; border: 0; background: none; color: var(--cream-2); font: 700 13px/1 var(--text); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; white-space: nowrap; }
.gm-cr-status { margin: 0; display: flex; align-items: center; gap: 8px; font: 900 15px/1 var(--cond); text-transform: uppercase; letter-spacing: .03em; white-space: nowrap; overflow: hidden; }
.gm-cr-status b { color: var(--lime); font: inherit; }
.gm-cr-status .gm-cr-steps { flex: 1; max-width: 120px; }
.gm-cr-status .gm-cr-steps i { height: 8px; }
/* Your week: a real-numbers scorecard on Profile. */
.gm-week { margin: 22px 0 28px; padding: 16px; border-radius: 20px; background: var(--ink-2); border: 2px solid var(--lime); }
.gm-week .gm-h2 { margin: 0; }
.gm-week-streak { padding: 5px 10px 4px; border-radius: 8px; background: var(--orange); color: var(--ink); font: 900 15px/1 var(--cond); text-transform: uppercase; transform: rotate(-2deg); }
.gm-week-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 12px 0 6px; }
@media (max-width: 520px) { .gm-week-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.gm-week-t { display: grid; align-content: start; gap: 5px; padding: 10px; border: 0; border-radius: 12px; background: var(--ink); text-align: left; cursor: pointer; min-width: 0; }
.gm-week-t .gm-week-caption { color: var(--cream-2); font-weight: 400; line-height: 1.35; }
.gm-week-t b { font: 900 38px/1 var(--cond); color: var(--lime); font-variant-numeric: tabular-nums; }
.gm-week-t span { font: 900 13px/1.1 var(--cond); text-transform: uppercase; letter-spacing: .04em; color: var(--cream-2); }
.gm-week-t small { font-size: 12px; color: var(--lime); font-weight: 700; }
.gm-week-t.is-zero b { color: var(--cream-3); }
.gm-week-line { margin: 6px 0 0; font-size: 15px; color: var(--cream-2); }
.gm-week-line a { color: var(--cream); font-weight: 700; }
.gm-week-acts { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin: 12px 0 0; }
/* Landing: three real finds fanned above the Play button — the game is the front door. */
.gm-fan { position: relative; height: 128px; margin: 2px 0 12px; }
.gm-fan:empty { display: none; }
.gm-fan-card { position: absolute; top: 4px; left: calc(50% - 52px + (var(--i) - 1) * 70px); width: 104px; height: 120px; border-radius: 16px; overflow: hidden; border: 4px solid var(--ink); background: var(--ink); box-shadow: 4px 5px 0 var(--cream-3); transform: rotate(calc((var(--i) - 1) * 8deg)) translateY(calc(var(--i) * 0px)); transform-origin: 50% 120%; }
.gm-fan-card:nth-child(2) { z-index: 2; transform: translateY(-8px); }
.gm-fan-card img { display: block; width: 100%; height: 100%; object-fit: cover; }
.gm-fan-card b { position: absolute; left: 5px; bottom: 5px; padding: 3px 6px 2px; border-radius: 6px; background: var(--lime); color: var(--ink); font: 900 13px/1 var(--cond); font-variant-numeric: tabular-nums; }
@media (prefers-reduced-motion: no-preference) { .gm-fan-card { animation: fan-in .5s var(--e-pop) both; animation-delay: calc(var(--i) * 70ms); } }
@keyframes fan-in { from { opacity: 0; transform: translateY(30px) rotate(0deg); } }
.gm-intro-actions button.gm-go { width: 100%; white-space: nowrap; font-size: clamp(20px, 6vw, 28px); }
@media (min-width: 960px) { .gm-fan { height: 210px; } .gm-fan-card { width: 170px; height: 196px; left: calc(50% - 85px + (var(--i) - 1) * 96px); } }
/* /check trust: any period with the live monthly equivalent, how you paid, optional private proof, unusual-price check. */
.gm-period { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin-top: 8px; }
.gm-period-l { font: 900 14px/1 var(--cond); text-transform: uppercase; letter-spacing: .04em; color: var(--cream-2); }
.gm-period-seg { display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 4px; border-radius: 999px; background: var(--ink-2); }
.gm-period-seg button { min-height: 36px; padding: 0 12px; border: 0; border-radius: 999px; background: none; color: var(--cream-2); font: 900 14px/1 var(--cond); text-transform: uppercase; cursor: pointer; }
.gm-period-seg button[aria-pressed="true"] { background: var(--lime); color: var(--ink); }
.gm-period-eq { font: 900 18px/1 var(--cond); color: var(--lime); font-variant-numeric: tabular-nums; }
.gm-paidvia label { cursor: pointer; }
.gm-proof-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.gm-proof-name { min-width: 0; overflow-wrap: anywhere; font: 600 15px/1.3 var(--text); color: var(--cream-2); }
.gm-payer-known { padding-top: 0; }
.gm-proof-l { font-weight: 800; }
.gm-unusual { display: grid; gap: 8px; margin: 0 0 12px; padding: 12px 14px; border-radius: 14px; border: 2px solid var(--orange); background: rgb(255 90 31 / .08); }
.gm-unusual p { margin: 0; }
.gm-unusual-acts { display: flex; flex-wrap: wrap; gap: 8px; }

/* Place operations reuse the shared card anatomy, with no added rows or changing card heights. */
.gm-place-view { min-width: 0; }
.gm-business-flow { max-width: 620px; margin: 0 auto; display: grid; gap: 18px; min-width: 0; }
.gm-business-home { max-width: 960px; margin: 0 auto; display: grid; gap: 22px; min-width: 0; }
.gm-business-home > details { border: 2px solid var(--ink-3); border-radius: 16px; padding: 18px; min-width: 0; }
.gm-business-home summary { font: 900 26px/1.1 var(--cond); text-transform: uppercase; cursor: pointer; min-height: 44px; }
.gm-business-preview { margin: 0; background: var(--cream); color: var(--ink); border: 3px solid var(--ink); border-radius: 26px; overflow: hidden; }
.gm-business-preview img { display: block; width: 100%; height: 220px; object-fit: cover; }
.gm-business-preview > div { padding: 16px; }
.gm-business-preview h2 { font: 900 30px/1 var(--cond); text-transform: uppercase; margin: 0 0 12px; }
.gm-business-preview b { font: 900 38px/1 var(--cond); }
.gm-business-numbers { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.gm-business-numbers > div { display: grid; gap: 6px; }
.gm-business-numbers b { font: 900 44px/1 var(--cond); font-variant-numeric: tabular-nums; }
.gm-business-numbers span { font: 900 16px/1.1 var(--cond); text-transform: uppercase; }
.gm-business-chips { display: flex; gap: 12px; flex-wrap: wrap; }
.gm-business-chips .gm-chip { background: transparent; color: inherit; } /* buttons, not labels: no browser grey */
.gm-business-chips .gm-chip[aria-pressed=true] { background: var(--lime); color: var(--ink); border-color: var(--lime); }
.gm-business-needs { display: grid; gap: 14px; }
.gm-business-needs button { white-space: normal; height: auto; min-height: 56px; padding: 12px 18px; }
.gm-business-tasks { list-style: none; padding: 0; display: grid; gap: 8px; }
.gm-business-team { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin: 12px 0; }
.gm-business-team span { flex: 1 1 160px; overflow-wrap: anywhere; }
.gm-official-list ul { list-style: none; padding: 0; display: grid; gap: 16px; }
.gm-official-list li { display: flex; justify-content: space-between; gap: 14px; border-bottom: 1px solid var(--ink-3); padding-bottom: 14px; min-width: 0; }
.gm-official-list li > div { display: grid; gap: 6px; min-width: 0; overflow-wrap: anywhere; }
.gm-official-list li > b { font: 900 26px/1.1 var(--cond); flex-shrink: 0; }
.gm-official-list small { color: var(--cream-2); }
.gm-business-flow input, .gm-business-flow textarea, .gm-business-flow select { max-width: 100%; min-width: 0; }
.gm-business-flow input[type=file] { width: 100%; font: inherit; }
.gm-business-flow .gm-business-form { display: grid; gap: 18px; }
.gm-business-flow .gm-lbl { display: grid; gap: 8px; }
.gm-business-flow .gm-go, .gm-business-home .gm-go { white-space: normal; }
@media (min-width: 700px) { .gm-business-numbers { grid-template-columns: repeat(4,minmax(0,1fr)); } }
.gm-place-head { margin-bottom: 20px; overflow-wrap: anywhere; }
.gm-place-head h1 { font: 900 clamp(2.4rem, 9vw, 4.4rem)/.95 var(--cond); text-transform: uppercase; margin-bottom: 12px; }
.gm-place-head .gm-ev { margin-top: 10px; }
.gm-place-score { display: grid; gap: 12px; padding: 18px; margin-bottom: 22px; border: 3px solid var(--ink-3); border-radius: 20px; }
.gm-place-score.is-earned { border-color: var(--lime); } /* lime means earned: never frame an unearned score with it */
.gm-place-pips { display: grid; grid-template-columns: repeat(10, 1fr); gap: 4px; max-width: 360px; }
.gm-place-pips i { height: 12px; border-radius: 7px; background: var(--ink-3); }
.gm-place-pips i.on { background: var(--lime); }
.gm-place-head > p { margin: 0; color: var(--cream-2); font: 900 20px/1.2 var(--cond); text-transform: uppercase; letter-spacing: .02em; }
.gm-place-view .gm-h2 { margin: 28px 0 14px; }
@media (min-width: 960px) {
  [data-place-summary] { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 32px; align-items: start; }
  [data-place-summary] .gm-place-score { margin-bottom: 0; }
}
.gm-place-score > p { margin: 0; }
.gm-place-link { color: inherit; text-underline-offset: 3px; position: relative; }
/* Enlarge the tap area without changing the one-line place row. */
.gm-place-link::after { content: ''; position: absolute; left: 0; right: 0; top: 50%; height: 44px; transform: translateY(-50%); }
.gm-place-link:focus-visible { outline-color: var(--orange); }
[data-place-tools] { display: grid; gap: 12px; margin-bottom: 24px; }
[data-place-tools] > button { justify-self: start; }
.gm-business-form { margin: 14px 0; max-width: 680px; }
.gm-business-form > *, .gm-business-form .gm-lbl { min-width: 0; }
.gm-business-form select, .gm-business-form textarea { width: 100%; max-width: 100%; min-height: 52px; padding: 12px; border: 3px solid var(--cream); border-radius: 14px; background: var(--cream); color: var(--ink); font: 600 18px/1.3 var(--text); }
.gm-business-form textarea { resize: vertical; }
.gm-business-form [data-result] { overflow-wrap: anywhere; }
.gm-business-form [data-result] a { color: var(--lime); }
.gm-business-form [data-result]:empty { margin: 0; }
[data-place-tools] button, .gm-business-form button { min-height: 44px; }
.gm-place-view .gm-card:has(.gm-place-reply-control) { position: relative; }
.gm-place-reply-control { min-height: 44px; position: absolute; top: 10px; right: 10px; z-index: 1; min-width: 72px; padding: 8px 12px; border: 3px solid var(--ink); border-radius: 12px; background: var(--cream); color: var(--ink); font: 900 16px/1 var(--cond); cursor: pointer; }
.gm-place-reply-control:focus-visible { outline-color: var(--orange); }
.gm-business-reply { margin-top: 22px; padding: 18px; border: 2px solid var(--cream-3); border-radius: 18px; overflow-wrap: anywhere; }
.gm-business-reply p { white-space: pre-wrap; }
.gm-business-reply time { font-size: 14px; color: var(--cream-2); }
.gm-place-sticker { width: min(100%, 360px); color: var(--ink); background: var(--lime); border: 4px solid var(--ink); border-radius: 28px; overflow: hidden; box-shadow: 0 0 0 3px var(--lime); }
.gm-place-sticker svg { display: block; width: 100%; height: auto; font-family: var(--cond); }
.gm-place-sticker strong { display: block; padding: 8px 18px 18px; text-align: center; font: 900 25px/1.1 var(--cond); overflow-wrap: anywhere; }
.gm-sticker-kit { display: grid; justify-items: center; gap: 16px; padding: 24px; background: white; color: var(--ink); border-radius: 20px; max-width: 480px; }
.gm-sticker-kit[hidden] { display: none; }
.gm-sticker-qr { width: min(100%, 240px); height: auto; }
@media print {
  body:has(.gm-sticker-kit:not([hidden])) { background: white; }
  body:has(.gm-sticker-kit:not([hidden])) *:not(:has(.gm-sticker-kit)):not(.gm-sticker-kit):not(.gm-sticker-kit *) { display: none !important; }
  body:has(.gm-sticker-kit:not([hidden])) .gm-sticker-kit,
  body:has(.gm-sticker-kit:not([hidden])) .gm-sticker-kit * { visibility: visible; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .gm-sticker-kit { position: absolute; inset: 0 auto auto 0; width: 100%; max-width: 480px; break-inside: avoid; }
  .gm-sticker-kit button { display: none !important; }
}

/* Daily data limit (free D1 plan): one fixed, honest notice above everything. */
.gm-daily-limit { position: sticky; top: 0; z-index: 60; margin: 0; padding: 10px 16px; background: var(--gm-lime, #d7f64a); color: #141414; font-weight: 700; font-size: 15px; line-height: 1.35; text-align: center; }

/* Accessibility: two-colour focus rings work on both the ink and cream surfaces. */
body.gm :is(button, a, input, select, textarea, summary, [tabindex]):focus-visible { outline: 3px solid var(--lime); outline-offset: 3px; box-shadow: 0 0 0 6px var(--ink); }
body.gm :is(.gm-ticket, .gm-chip, .gm-cat, .gm-cap):has(input:focus-visible) { outline: 3px solid var(--lime); outline-offset: 3px; box-shadow: 0 0 0 6px var(--ink); }
.gm-card:not(.gm-draft-card):not(.gm-edit-card):focus-within { outline: 3px solid var(--lime); outline-offset: 4px; }
/* Skip link and the judge's Skip button share a historical class, not positioning. */
button.gm-skip { position: static; }
body > a.gm-skip { display: inline-flex; align-items: center; min-height: 44px; background: var(--lime); color: var(--ink); }
/* Native dialogs keep the existing panels; the browser supplies modal inertness. */
dialog:not([open]) { display: none !important; }
.gm-modal { width: min(640px, calc(100% - 32px)); max-height: calc(100dvh - 32px); padding: 20px; border: 3px solid var(--cream-3); border-radius: 20px; background: var(--ink); color: var(--cream); overflow: auto; }
.gm-modal::backdrop, .gm-play::backdrop { background: rgb(20 20 20 / .8); }
.gm-modal > .gm-alt { margin-bottom: 16px; }
.gm-modal .gm-account { margin-top: 12px; }
.gm-privacy-auth { display: grid; gap: 16px; width: min(540px, calc(100% - 32px)); }
.gm-privacy-auth:not([open]) { display: none; }
.gm-privacy-auth h2 { font: 900 clamp(2rem, 8vw, 2.8rem)/.95 var(--cond); text-transform: uppercase; margin: 0; }
.gm-privacy-auth p { margin: 0; line-height: 1.45; }
.gm-privacy-auth a, .gm-privacy-auth .gm-textlink { color: var(--lime); text-underline-offset: 3px; }
.gm-privacy-auth .gm-go { width: 100%; }
.gm-privacy-auth .gm-textlink { justify-self: start; }
.gm-went { margin: auto; }
.gm-went [data-went-close]::after { content: none; }
.gm-went .gm-lbl { margin-top: 18px; }
.gm-went .gm-panel, .gm-went .gm-lbl { min-width: 0; }
.gm-went input { max-width: 100%; min-width: 0; }
.gm-went .gm-askrow { flex-wrap: wrap; }
.gm-trust-ladder { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; padding: 0; }
.gm-find .gm-signals { grid-template-columns: minmax(0, 1fr); }
.gm-trust-ladder .gm-ev { white-space: normal; }
.gm-trust-ladder [aria-current] { border-color: var(--lime); }
.gm-trust-ladder .gm-ev:not([aria-current]) { color: var(--cream-3); border: 2px dashed var(--cream-3); }
.gm-trust-ladder .gm-ev:not([aria-current])::before { content: none; }
.gm-trust .gm-fine { overflow-wrap: anywhere; }
.gm-trust .gm-warn b { font: inherit; font-weight: 800; }
.gm-trust .gm-textlink, .gm-post-find .gm-textlink, .gm-after > .gm-textlink, .gm-after-row > .gm-textlink { font-size: 16px; line-height: 1.3; }
.gm-post-find .gm-textlink, .gm-after > .gm-textlink, .gm-after-row > .gm-textlink { padding: 12px 0; }
.gm-after-row > .gm-textlink { flex-basis: 100%; }
@media (max-width: 560px) { .gm-went { max-height: calc(100dvh - 16px); padding: 14px; } }
dialog.gm-play { width: 100%; height: 100dvh; max-width: none; max-height: none; margin: 0; border: 0; overflow: auto; }
.gm-play-stage .gm-play-info { overflow: visible; }
.gm-play-reveal { cursor: auto; }
.gm-play-under { pointer-events: none; }
/* Keep bright accents as fills on paper; readable text uses the existing accent inks. */
.gm-decision .gm-form-error { color: var(--orange-ink); }
.gm-decision .gm-textlink, .gm-sticker-kit .gm-alt { color: var(--ink); }
.gm-sticker-kit .gm-alt { border-color: var(--ink); }
.gm-ask .gm-fine a { color: var(--lime-ink); }
.gm-find .gm-member-sm, .gm-rank-name .gm-member-sm { color: inherit; }
.gm-ask input::placeholder, .gm-price-box input::placeholder { color: var(--ink-soft); opacity: 1; }
/* A changeable choice remains legible, even when it is not selected. */
button.is-dimmed:not(:disabled), .gm-vote.is-done button:not(:disabled) { opacity: 1; }
.gm-rules summary h2 { display: inline; font: inherit; }
/* Room for fingers on controls outside the owner's fixed card anatomy. */
.gm-seg button, .gm-period-seg button, .gm-feedprefs button, .gm-psearch-chips button,
.gm-play-mute, .gm-play-ask button, .gm-sugg, .gm-plan-tick { min-height: 44px; min-width: 44px; }
.gm-play-more, .gm-more-link, .gm-intro-more a, .gm-foot-credit a { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; }
.gm-wordmark, .gm-decision-why summary, .gm-rules summary, .gm-city-form fieldset label { min-height: 44px; }
.gm-wordmark { justify-content: center; }
body.gm button:not(.gm-card button) { min-width: 44px; }
/* Owner's photo on a find in review (no art column; the whole tile is the file picker). */
.gm-own-photo { grid-template-columns: minmax(0, 1fr); row-gap: 4px; margin: 0 0 16px; color: var(--ink); }
.gm-own-photo span { color: var(--ink); }
.gm-own-photo.is-busy { opacity: .7; pointer-events: none; }

/* W39 overflow */
/* Let the section heading wrap while its short destination link keeps its full tap target. */
.gm-preview-head h2 { min-width: 0; overflow-wrap: anywhere; }
.gm-more-link { flex-shrink: 0; }
/* A grid item's intrinsic width must not push text through a card's clipped edge. */
.gm-card-body, .gm-card-what { grid-template-columns: minmax(0, 1fr); }
.gm-card-body > *, .gm-card-what > * { min-width: 0; }
/* Public names and titles can contain 60 unbroken characters; allow a break within the available space. */
.gm-card-title, .gm-card-place, .gm-card-by, .gm-card-for, .gm-card-what, .gm-find-title,
.gm-play-title, .gm-play-place, .gm-play-for, .gm-place-head, .gm-rank-name,
.gm-step-name, .gm-person, .gm-idcard-name, .gm-name-now, .gm-notices, .gm-impact, #gm-pick2-after {
  min-width: 0; overflow-wrap: anywhere;
}
/* Profile biographies and handles also participate in grid intrinsic sizing. */
.gm-idcard { grid-template-columns: minmax(0, 1fr); overflow-wrap: anywhere; }
.gm-idcard > * { min-width: 0; }
/* An uncounted-call explanation needs another line; never crop the answer or Change control. */
.gm-card .gm-card-reveal { height: auto; min-height: 60px; }
.gm-cr-line { flex-wrap: wrap; }
.gm-cr-line .gm-cr-stamp { flex-shrink: 0; }
.gm-cr-line .gm-cr-why { order: 1; flex-basis: 100%; white-space: normal; text-align: left; }
.gm-cr-status { flex-wrap: wrap; flex-shrink: 0; white-space: normal; overflow: visible; line-height: 1.2; }
/* W39 overflow end */
/* Owner photo saved: the picked photo shows at once, a stamp confirms the save, the readiness list ticks over. */
.gm-find-media.is-saving img { filter: saturate(.6) brightness(.85); }
.gm-photo-stamp { position: absolute; z-index: 2; right: 14px; bottom: 14px; padding: 8px 14px 7px; border: 3px solid var(--ink); border-radius: 10px; background: var(--cream); color: var(--ink); font: 900 22px/1 var(--cond); text-transform: uppercase; transform: rotate(-4deg); }
.gm-photo-stamp.is-saved { background: var(--lime); }
.gm-photo-stamp.is-out { opacity: 0; transition: opacity 400ms ease; }
@media (prefers-reduced-motion: no-preference) {
  .gm-photo-stamp.is-saving { animation: gm-stamp-pulse 900ms ease-in-out infinite alternate; }
  .gm-photo-stamp.is-saved { animation: gm-stamp-pop 420ms cubic-bezier(.16,1,.3,1); }
  .gm-ready.is-fresh li.on:last-child { animation: gm-stamp-pop 420ms cubic-bezier(.16,1,.3,1); }
  @keyframes gm-stamp-pulse { from { opacity: .65; } to { opacity: 1; } }
  @keyframes gm-stamp-pop { 0% { transform: scale(1.6) rotate(-10deg); opacity: 0; } 60% { transform: scale(.94) rotate(-3deg); opacity: 1; } 100% { transform: scale(1) rotate(-4deg); } }
}
[data-own-photo-box].is-busy { opacity: .7; pointer-events: none; }
.gm-ready { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 0 0 16px; }
.gm-ready b { font: 900 18px/1 var(--cond); text-transform: uppercase; color: var(--cream); }
.gm-ready ul { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.gm-ready li { padding: 5px 10px; border: 2px solid var(--cream-3); border-radius: 999px; font-weight: 700; font-size: 14px; color: var(--cream-2); }
.gm-ready li.on { border-color: var(--lime); background: var(--lime); color: var(--ink); }
.gm-own-photo-done { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin: -6px 0 16px; color: var(--cream-2); font-weight: 700; }
.gm-own-photo-done label { position: relative; cursor: pointer; }
.gm-own-photo-done input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
/* Challenge at a glance (owner feedback: less text). */
.gm-chal-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(88px, 1fr)); gap: 8px; margin: 10px 0 12px; }
.gm-chal-stat { min-width: 0; padding: 10px 12px; border: 2px solid var(--cream-3); border-radius: 14px; background: var(--ink-2); }
.gm-chal-stat b { display: block; font: 900 clamp(24px, 6vw, 34px)/1 var(--cond); color: var(--lime); overflow-wrap: anywhere; }
.gm-chal-stat span { display: block; margin-top: 4px; font-size: 13px; color: var(--cream-2); }
details.gm-chal-rules { margin: 0 0 14px; font-size: 14px; color: var(--cream-2); }
details.gm-chal-rules summary { cursor: pointer; font-weight: 700; color: var(--cream); }
details.gm-chal-rules p { margin: 8px 0 0; line-height: 1.45; max-width: 70ch; }
/* Tap to explain (accolades and stat tiles). */
[data-explain] { cursor: pointer; }
[data-explain]:focus-visible { outline: 3px solid var(--lime); outline-offset: 3px; border-radius: 12px; }
.gm-badge[data-explain]:active .gm-medal, .gm-week-t[data-explain]:active { transform: scale(.97); }
dialog.gm-explain { width: min(92vw, 380px); padding: 22px; border: 3px solid var(--ink); border-radius: 22px; background: var(--cream); color: var(--ink); box-shadow: 6px 6px 0 var(--lime); text-align: center; }
dialog.gm-explain::backdrop { background: rgb(20 20 20 / .6); }
.gm-explain-art { display: block; width: 120px; height: auto; margin: 0 auto 8px; }
dialog.gm-explain h2 { margin: 0 0 8px; font: 900 28px/1 var(--cond); text-transform: uppercase; overflow-wrap: anywhere; }
dialog.gm-explain p { margin: 0 0 14px; line-height: 1.45; }
.gm-explain-progress { display: grid; gap: 6px; justify-items: center; }
.gm-explain-bar { display: block; width: 100%; height: 12px; border: 2px solid var(--ink); border-radius: 999px; overflow: hidden; background: #fff; }
.gm-explain-bar > span { display: block; height: 100%; background: var(--lime); }
dialog.gm-explain .gm-go { width: 100%; }
/* Your feed topics: on shows a check, hidden is dashed and struck through (the state reads without colour). */
.gm-feedprefs-status { margin: 4px 0 10px; font-weight: 700; color: var(--cream); }
.gm-feedprefs-cats [data-pref-cat][aria-pressed="true"]::before { content: "✓ "; }
.gm-feedprefs-cats [data-pref-cat][aria-pressed="false"] { background: transparent; color: var(--cream-3); border: 2px dashed var(--cream-3); text-decoration: line-through; }
/* Price field = one box (owner screenshot): the input inside .gm-price-box never draws its own border, background or
   focus ring; the box shows focus once (:focus-within). The generic ".gm-ask .gm-lbl input" frame was doubling it. */
.gm-price-box input, .gm-ask .gm-price-box input, .gm-ask .gm-lbl .gm-price-box input { border: 0; background: transparent; color: var(--ink); box-shadow: none; border-radius: 0; padding-left: 0; -webkit-appearance: none; appearance: none; }
.gm-price-box input:focus, .gm-price-box input:focus-visible { outline: none; border: 0; box-shadow: none; }

/* The reward has its own fixed lane: it cannot cover even a short card's title or price. */
.gm-play-stage { --reward-lane: 76px; }
@media (max-height: 800px) { .gm-play-stage { --reward-lane: 24px; } .gm-play-for { font-size: 12px; line-height: 16px; } }
@media (max-height: 620px) {
  .gm-play-stage { --play-title-size: 18px; --reward-lane: 0px; min-height: 362px; }
  .gm-play-info { grid-template-rows: 40.32px 14px 38px 32px minmax(44px, 1fr); padding: 6px; gap: 0; }
  .gm-play-place { font-size: 12px; line-height: 14px; }
  .gm-play-price { grid-template-rows: 24px 14px; }
  .gm-play-price .gm-play-cop { font-size: 28px; line-height: 24px; }
  .gm-play-price.is-large-price .gm-play-cop { font-size: 24px; }
  .gm-play-price .gm-play-usd { line-height: 14px; }
}
.gm-play-stage > .gm-play-card, .gm-play-stage > .gm-play-under { top: var(--reward-lane); }
.gm-play-stage > .gm-play-end { padding-top: var(--reward-lane); }
.gm-play-pips { display: inline-flex; gap: 2px; margin-left: auto; padding-left: 4px; }
.gm-play-pips i { width: 4px; height: 6px; border-radius: 2px; background: var(--ink-3); }
.gm-play-pips i.on { background: var(--lime); }
.gm-play-reveal .gm-compare-more { display: inline-flex; align-items: center; width: auto; min-height: 32px; margin: 0; padding: 4px 10px; border: 1px solid var(--lime); font: 700 12px/1.2 var(--text); white-space: nowrap; text-decoration: none; pointer-events: auto; }
.gm-play-actions { display: grid; gap: 4px; }
.gm-play-undo { display: inline-flex; align-items: center; justify-content: center; gap: 6px; justify-self: center; min-height: 44px; min-width: 100px; padding: 6px 18px; border: 2px solid var(--cream-3); border-radius: 999px; background: var(--ink-2); color: var(--cream); font: 800 16px/1 var(--text); cursor: pointer; }
.gm-play-undo:disabled { visibility: hidden; }
/* The top Undo remains available; a second copy cannot consume a compact phone's photo band. */
@media (max-height: 800px) { .gm-play-undo { display: none; } }
/* Beat the global accessibility selector; focus belongs to the surrounding price box. */
body.gm .gm-price-box input:focus, body.gm .gm-price-box input:focus-visible { border: 0; outline: 0; box-shadow: none; }
body.gm .gm-price-box:focus-within { border-color: var(--ink); outline: 3px solid var(--lime); outline-offset: 2px; box-shadow: none; }
/* Official, dated physical locations (W64). */
.gm-locations{margin:24px 0;border-top:2px solid;padding-top:18px}.gm-locations h2{font-size:1.4rem;margin:0 0 10px}.gm-location-list{list-style:none;padding:0;display:grid;gap:12px;max-height:26rem;overflow:auto;overscroll-behavior:contain}.gm-location-list li{padding:14px;border:2px solid;border-radius:12px;overflow-wrap:anywhere}.gm-location-list p{margin:6px 0}.gm-location-list a{display:inline-block;padding:10px 0;text-underline-offset:3px}.gm-stores{display:inline-block;margin:0 0 8px;font-size:.75rem}
/* Reserve the same rail during loading, success, empty and failure states. */
/* A horizontal row must share all card rows. Resetting each card to one subgrid row squeezed the price. */
.gm-cards.gm-cards-row { grid-auto-flow: column; grid-auto-columns: min(78vw, 300px); grid-template-columns: none; grid-template-rows: repeat(8, auto); align-items: start; overflow-x: auto; }
.gm-cards.gm-cards-row > .gm-card:not(.gm-draft-card) { grid-row: 1 / span 8; min-width: 0; margin-bottom: 3px; }
.gm-home-find-state { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; min-height: 250px; padding: 20px; box-sizing: border-box; white-space: normal; overflow-wrap: anywhere; }
.gm-play-reveal { height: auto; min-height: 72px; background: var(--ink); padding: 8px; box-sizing: border-box; }
.gm-play-reveal-line { flex-wrap: wrap; white-space: normal; overflow-wrap: anywhere; gap: 0 3px; }
.gm-play-reveal-line .gm-call-impact { flex-basis: 100%; font-size: 14px; line-height: 1.3; }

/* W71 Home and global chrome: keep the play action above the fold, retain the brand. */
.gm-view[data-view="home"] .gm-intro { padding: 24px; gap: 0; }
.gm-view[data-view="home"] .gm-intro-copy { min-width: 0; gap: 10px; }
.gm-view[data-view="home"] .gm-intro-title { font-size: clamp(36px, 10vw, 64px); max-width: 19ch; padding-right: 45px; }
.gm-view[data-view="home"] .gm-intro-sub { font-size: 15px; max-width: 40ch; }
.gm-view[data-view="home"] .gm-intro-host { position: absolute; top: 24px; right: 15px; width: 64px; margin: 0; pointer-events: none; }
.gm-view[data-view="home"] .gm-intro-host .gm-burst { display: none; }
.gm-view[data-view="home"] .gm-intro-actions .gm-go { min-width: 0; white-space: normal; padding: 8px 12px; font-size: clamp(20px, 6vw, 28px); }
.gm-view[data-view="home"] .gm-intro-more a { font-size: 14px; }
.gm-view[data-view="home"] .gm-intro-fine { font-size: 12px; }
.gm-foot .gm-slogan { font-size: clamp(24px, 6vw, 36px); }
.gm-foot .gm-slogan img { width: 44px; height: 44px; }
.gm-foot-links { gap: 0 18px; font-size: 13px; }
.gm-foot-credit { margin-top: 0; }
@media (min-width: 900px) {
  .gm-view[data-view="home"] .gm-intro { grid-template-columns: minmax(0, 1fr) 240px; grid-template-areas: "copy host"; align-items: center; padding: 28px 36px; }
  .gm-view[data-view="home"] .gm-intro-title { padding-right: 0; }
  .gm-view[data-view="home"] .gm-intro-host { position: relative; inset: auto; width: 240px; }
  .gm-view[data-view="home"] .gm-fan { height: 128px; max-width: 420px; }
  .gm-view[data-view="home"] .gm-fan-card { width: 104px; height: 120px; left: calc(50% - 52px + (var(--i) - 1) * 70px); }
  .gm-view[data-view="home"] .gm-intro-actions .gm-go { width: fit-content; min-width: 300px; }
}
@media (max-width: 380px) {
  .gm-view[data-view="home"] .gm-fan-card { width: 88px; height: 106px; left: calc(50% - 44px + (var(--i) - 1) * 56px); }
  .gm-view[data-view="home"] .gm-fan { height: 116px; }
}
@media (min-width: 960px) { [data-nav][data-cue]::after { right: 4px; } }
/* W73: one job per Compete / Profile screen; reuse the existing ink, cream and badge art. */
#gm-compete, #gm-me { width: 100%; max-width: 900px; min-width: 0; margin-inline: auto; }
.gm-rank-strip, .gm-focus-challenge { border: 3px solid var(--ink); border-radius: 18px; padding: clamp(14px,3vw,24px); background: var(--cream); color: var(--ink); margin: 18px 0; box-shadow: 5px 5px 0 var(--cream-3); overflow-wrap: anywhere; }
.gm-rank-strip h2, .gm-focus-challenge h2 { font: 900 clamp(28px,5vw,40px)/1 var(--cond); text-transform: uppercase; }
.gm-rank-strip .gm-community-ranks li { grid-template-columns: max-content 32px minmax(0,1fr) auto; gap: 6px; padding: 5px 4px; min-height: 44px; position: relative; font-size: 14px; }
.gm-rank-strip .gm-community-ranks a::after { content: ''; position: absolute; inset: 0; }
.gm-rank-strip .gm-community-ranks a:focus-visible::after { outline: 3px solid var(--ink); outline-offset: -3px; }
.gm-rank-strip .gm-community-rank { font: 900 20px/1 var(--cond); }
.gm-rank-strip .gm-rank-jump { border-top-style: dashed; }
.gm-rank-strip .gm-rank-jump::before { content: '···' / ''; grid-column: 1 / -1; margin: -4px 0 2px; text-align: center; font: 900 18px/1 var(--cond); letter-spacing: .3em; }
.gm-rank-strip .gm-community-rank { white-space: nowrap; }
.gm-rank-strip .gm-community-ranks small { display: inline; }
.gm-rank-strip .gm-community-avatar { width: 28px; height: 28px; }
.gm-rank-strip .gm-community-ranks { margin-top: 12px; }
.gm-rank-strip .gm-rank-gap { margin: 12px 0; font-weight: 700; }
.gm-rank-strip .gm-go { max-width: 100%; white-space: normal; margin: 8px 0; }
.gm-rank-strip .gm-community-note { margin-top: 8px; }
.gm-focus-challenge { box-shadow: 5px 5px 0 var(--lime); }
.gm-focus-challenge p { margin: 8px 0; }
.gm-focus-challenge a { display: inline-block; padding: 12px 0; color: var(--ink); }
.gm-top-locals > summary, #gm-compete [data-community-more] > summary { cursor: pointer; min-height: 44px; padding: 10px 0; font-weight: 700; }
#gm-compete-activity .gm-community-window { max-width: none; }
#gm-compete-activity .gm-community-events li { padding: 9px 0; }
#gm-compete .gm-rules { margin-top: 24px; }
#gm-me > .gm-h2 { margin-top: 24px; }
#gm-me > .gm-empty { margin: 8px 0 20px; }
#gm-me .gm-level-profile { margin-top: 18px; }
#gm-me .gm-level-current { grid-template-columns: 96px minmax(0,1fr); }
#gm-me .gm-level-current > .gm-level-avatar { width: 96px; height: 96px; }
#gm-me .gm-level-to { white-space: normal; }
#gm-me .gm-level-goal { margin: 12px 0; }
#gm-me .gm-week { margin: 24px 0; }
.gm-settings { margin-top: 32px; border-top: 2px solid var(--ink-3); padding-top: 20px; }
.gm-settings > details, .gm-profile-taste { border-bottom: 1px solid var(--ink-3); margin: 8px 0; }
.gm-settings > details > summary, .gm-profile-taste > summary { padding: 14px 0; min-height: 48px; cursor: pointer; font-weight: 700; }
.gm-settings > details > summary h3 { display: inline; font: inherit; }
.gm-settings > details.gm-profile-edit { border: 0; border-bottom: 1px solid var(--ink-3); padding: 0; border-radius: 0; }
.gm-settings > details.gm-profile-edit > summary { display: list-item; list-style: disclosure-closed inside; }
.gm-settings > details.gm-profile-edit[open] > summary { list-style: disclosure-open inside; }
.gm-settings .gm-community-profile { margin: 12px 0; }
.gm-settings .gm-community-picker { margin: 0; padding: 0; border: 0; }
.gm-settings .gm-idcard { margin: 12px 0; }
.gm-settings #gm-recovery-out input { min-width: 0; width: 100%; }
@media(max-width:360px) { #gm-me .gm-level-current { grid-template-columns: 68px minmax(0,1fr); gap: 10px; } #gm-me .gm-level-current > .gm-level-avatar { width: 68px; height: 68px; } }

#gm-compete .gm-chal-stat span { overflow-wrap: anywhere; }

/* W76: compact controls and one-line call notices at the narrow phone size. */
@media (max-width: 359px) {
  .gm-play-ctl { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 5px; }
  .gm-play-btn { min-width: 0; padding-inline: 2px; font-size: 14px; letter-spacing: 0; }
}
.gm-call-impact.is-uncounted { display: flex; align-items: center; gap: 5px; white-space: nowrap; font-size: 13px; }
.gm-call-impact.is-uncounted button { display: inline-grid; place-items: center; flex-shrink: 0; width: 44px; height: 44px; margin-block: -10px; border: 0; background: transparent; color: inherit; font: 700 19px/1 var(--text); cursor: pointer; pointer-events: auto; }
#gm-feed .gm-discover-card .gm-card-title { min-height: 0; }
@media (min-width: 1200px) {
  .gm-view[data-view="home"] { max-width: 1180px; margin-inline: auto; }
  .gm-view[data-view="home"] .gm-intro { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(0,1fr); column-gap: 40px; }
  .gm-view[data-view="home"] .gm-intro-title { max-width: 19ch; }
  .gm-view[data-view="home"] .gm-intro-host { width: min(340px,100%); justify-self: center; }
}

.gm-check-view .gm-sticker-orange { background: var(--cream); }
/* On short phones, keep the disclosed call result above the next card and preserve its facts. */
@media (max-height: 800px) {
  .gm-play-stage:has(.gm-call-impact.is-uncounted) { --reward-lane: 56px; }
  .gm-play-stage:has(.gm-call-impact.is-uncounted) .gm-play-reveal { min-height: 56px; padding-block: 4px; }
  .gm-play-stage:has(.gm-call-impact.is-uncounted) .gm-play-card { grid-template-rows: minmax(0,1fr) 208px; }
}
@media (max-height: 620px) {
  .gm-play-stage:has(.gm-call-impact.is-uncounted) .gm-play-card { grid-template-rows: minmax(0,1fr) 182px; }
}

/* W77: one place question, one searchable field; no assumed country. */
.gm-geo-results { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; max-height: 240px; overflow-y: auto; overscroll-behavior: contain; }
.gm-geo-results [role=option] { display: flex; align-items: center; min-height: 44px; padding: 10px 12px; border: 2px solid var(--ink); border-radius: 10px; color: var(--ink); background: #fff; font: 700 16px/1.3 var(--text); cursor: pointer; overflow-wrap: anywhere; }
.gm-geo-results [aria-selected=true], .gm-geo-results [role=option]:hover { background: var(--lime); }
.gm-origin-results button { width: 100%; display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 10px 12px; border: 2px solid var(--ink); border-radius: 10px; color: var(--ink); background: var(--cream); font: 700 16px/1.3 var(--text); text-align: left; cursor: pointer; overflow-wrap: anywhere; }
.gm-origin-results button:hover, .gm-origin-results button:focus-visible { background: var(--lime); }
.gm-geo-fallback, .gm-account [data-same] { min-height: 44px; text-align: left; color: inherit; }
.gm-city-claim .gm-text, .gm-geo-cc { min-width: 0; width: 100%; font-size: 16px; }
.gm-city-form .gm-city-claim .gm-lbl { color: inherit; }
.gm-city-claim [hidden] { display: none !important; }
.gm-account-modal { padding: 12px; }
.gm-account-modal .gm-account { padding: clamp(12px, 4vw, 24px); margin: 0; }
.gm-account-modal .gm-account h2 { font-size: clamp(26px, 7vw, 38px); line-height: 1.05; }
.gm-account .gm-askform { min-width: 0; }
.gm-account .gm-askrow { flex-wrap: wrap; }
.gm-account .gm-textlink { color: var(--ink); min-height: 44px; }
.gm-account .gm-lbl { font-size: 17px; line-height: 1.3; }
.gm-account .gm-text { font-size: 16px; }
.gm-account .gm-code { font-size: 32px; }
.gm-account .gm-field-error:empty { display: none; }
.gm-city-celebration { position: relative; max-width: 480px; padding: 24px; border: 3px solid var(--ink); outline: 5px solid var(--lime); outline-offset: -8px; background: var(--lime); color: var(--ink); text-align: center; }
.gm-city-celebration [data-close] { position: absolute; top: 8px; right: 8px; min-width: 44px; min-height: 44px; color: var(--ink); font-size: 28px; }
.gm-city-cheer-host { width: 115px; margin: 4px auto 8px; }
.gm-city-cheer-kicker { font: 900 18px/1.1 var(--cond); text-transform: uppercase; }
.gm-city-celebration h2 { font: 900 clamp(28px, 8vw, 42px)/1.05 var(--cond); text-transform: uppercase; overflow-wrap: anywhere; }
.gm-city-celebration p { overflow-wrap: anywhere; }
.gm-city-celebration .gm-fine { color: var(--ink-soft); }
.gm-city-celebration .gm-go { width: 100%; background: var(--ink); color: var(--lime); box-shadow: none; white-space: normal; }
.gm-city-celebration [data-close] { text-decoration: none; }
.gm-city-celebration [data-close]::after { display: none; }
/* W78: one useful, sourced example before the first call. */
#gm-home-example { min-width: 0; }
.gm-home-example { display: grid; grid-template-columns: 80px minmax(0,1fr); gap: 10px; align-items: start; border-block: 1px solid var(--cream-3); padding-block: 12px; }
.gm-home-example:not(:has(.gm-home-example-photo)) { grid-template-columns: minmax(0,1fr); }
.gm-home-example-photo { position: relative; overflow: hidden; border: 2px solid var(--ink); border-radius: 10px; }
.gm-home-example-photo img { display: block; width: 100%; height: 110px; object-fit: cover; }
.gm-home-example-photo > span { position: absolute; bottom: 0; left: 0; right: 0; padding: 3px; color: var(--cream); background: var(--ink); font-size: 10px; text-align: center; }
.gm-home-example-copy { display: grid; gap: 5px; min-width: 0; }
.gm-home-example-copy p { margin: 0; }
.gm-home-example-title { font: 900 19px/1.1 var(--cond); text-transform: uppercase; text-decoration: none; overflow-wrap: anywhere; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
.gm-home-example-title:hover { text-decoration: underline; }
.gm-home-example-place, .gm-home-example-source { font: 600 11px/1.35 var(--text); overflow-wrap: anywhere; }
.gm-home-example-price { display: flex; flex-wrap: wrap; gap: 2px 6px; align-items: baseline; }
.gm-home-example-price .gm-money { font: 900 23px/1.1 var(--cond); }
.gm-home-example-price > small { font: 600 11px/1.2 var(--text); }
.gm-home-example-verdict { font: 900 19px/1.1 var(--cond); }
.gm-home-example-verdict small { display: block; font: 600 11px/1.35 var(--text); }
.gm-home-example-source a { display: inline-flex; align-items: center; min-height: 24px; font-weight: 800; }
.gm-home-example-empty { margin: 8px 0; font-size: 13px; }
.gm-first-calls { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; padding: 16px 0; margin: 0; border-bottom: 1px solid var(--ink-3); list-style: none; }
.gm-first-calls li { min-width: 0; display: grid; align-content: start; gap: 6px; overflow-wrap: anywhere; }
.gm-first-calls b { font: 700 17px/1.15 var(--cond); color: var(--lime); }
.gm-first-calls span { font: 400 12px/1.4 var(--text); color: var(--cream-2); }
.gm-first-call-coach { position: absolute; bottom: 0; left: 0; right: 0; margin: 0; padding: 8px 10px; background: var(--lime); color: var(--ink); font: 700 13px/1.3 var(--text); }
.gm-play-media:has(.gm-first-call-coach) .gm-play-photo-labels { top: 46px; bottom: auto; }
.gm-first-reveal { width: 100%; font: 700 14px/1.3 var(--text); }
.gm-play-stage:has(.gm-play-reveal.is-first-reveal) { --reward-lane: 116px; }
.gm-play-stage:has(.gm-play-reveal.is-first-reveal) .gm-play-reveal { min-height: 0; }
@media (max-height: 800px) {
  .gm-play-stage:has(.gm-play-reveal.is-first-reveal) { --reward-lane: 116px; }
  .gm-play-stage:has(.gm-play-reveal.is-first-reveal) .gm-play-card { grid-template-rows: minmax(0,1fr) 208px; }
}
@media (max-height: 620px) {
  .gm-first-call-coach { padding: 5px 8px; font-size: 12px; }
  .gm-play-stage:has(.gm-play-reveal.is-first-reveal) .gm-play-card { grid-template-rows: minmax(0,1fr) 182px; }
}
@media (min-width: 900px) {
  .gm-home-example { grid-template-columns: 110px minmax(0,1fr); max-width: 620px; }
  .gm-home-example-photo img { height: 130px; }
  .gm-home-example-title { font-size: 24px; }
  .gm-home-example-price .gm-money { font-size: 28px; }
}
@media (max-width: 380px) {
  .gm-view[data-view="home"] .gm-intro-title { font-size: 32px; }
}
@media (max-width: 600px) and (max-height: 650px) {
  .gm-view[data-view="home"] .gm-intro-copy { gap: 7px; }
  .gm-view[data-view="home"] .gm-intro-title { font-size: 27px; }
  .gm-view[data-view="home"] .gm-intro-sub { font-size: 13px; }
  .gm-home-example { grid-template-columns: 60px minmax(0,1fr); gap: 8px; padding-block: 8px; }
  .gm-home-example-title { font-size: 17px; -webkit-line-clamp: 2; }
  .gm-home-example-copy { gap: 3px; }
  .gm-home-example-photo img { height: 92px; }
}
.gm-idcard-stats .gm-stat-caption { order: 3; font: 400 11px/1.35 var(--text); }

/* W80: compact, tap-friendly group question and real split; never covers the next card. */
.gm-tribe-question,.gm-tribe-split { width:100%; min-width:0; box-sizing:border-box; pointer-events:auto; font:500 13px/1.3 var(--text); }
/* Where you're from: a game-show prompt, not a form. Condensed title, why first, pill chips, one quiet footer.
   currentColor keeps it right on cream reveals and on the ink stage. */
.gm-tribe-question { border:2px solid currentColor; border-radius:16px; padding:12px 14px; margin-top:8px; display:grid; gap:10px; font:500 15px/1.35 var(--text); }
.gm-tribe-heading b { font:900 19px/1 var(--cond); text-transform:uppercase; letter-spacing:.04em; }
.gm-tribe-heading,.gm-split-head { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.gm-tribe-heading button { font-size:24px; min-height:44px; min-width:44px; }
.gm-tribe-buttons { display:flex; flex-wrap:wrap; gap:8px; }
.gm-tribe-buttons button { flex:0 1 auto; min-width:0; min-height:44px; border:2px solid currentColor; border-radius:999px; background:transparent; color:inherit; padding:0 16px; font:900 16px/1.1 var(--cond); text-transform:uppercase; letter-spacing:.03em; overflow-wrap:anywhere; }
.gm-tribe-buttons button span { font-size:1.15em; }
.gm-tribe-buttons button[aria-pressed=true] { background:var(--lime); color:var(--ink); border-color:var(--lime); }
.gm-origin-foot { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.gm-tribe-question small { display:block; font-size:12px; line-height:1.3; opacity:.8; }
.gm-tribe-question [data-origin-payoff] { margin:0; overflow-wrap:anywhere; }
.gm-tribe-question .gm-textlink { min-height:44px; }
.gm-tribe-question select,.gm-tribe-question input { width:100%; min-width:0; box-sizing:border-box; min-height:44px; }
.gm-tribe-question .gm-city-claim { min-width:0; }
.gm-tribe-question .gm-lbl,.gm-tribe-question .gm-fine { color:inherit; }
.gm-tribe-question .gm-geo-results { max-height:min(180px,calc(var(--origin-view-height,100dvh) * .35)); scroll-margin-bottom:12px; }
.gm-tribe-question .gm-geo-results [role=option] { background:var(--cream); }
.gm-tribe-question [data-tribe-status] { display:block; overflow-wrap:anywhere; }
/* On cream reveals the cream field needs an edge; currentColor gives it one there and stays cream on the stage. */
.gm-tribe-question .gm-text { border-color:currentColor; }
.gm-tribe-question button:disabled:not([aria-pressed=true]) { opacity:.5; }
/* Typing a city: the Smash or Pass bar steps aside so a stray tap cannot advance the card. */
body:has(.gm-tribe-question input:focus) .gm-play-actions { visibility:hidden; }
/* The Judge round's narrow column: one chip per row, full width, and a footer that wraps. */
.gm-tribe-question { container-type:inline-size; }
@container (max-width: 240px) { .gm-tribe-buttons button { flex:1 1 100%; padding-inline:10px; font-size:14px; } .gm-origin-foot { flex-wrap:wrap; } }
.gm-tribe-question [data-tribe-status]:empty,.gm-tribe-question [data-origin-countries]:empty,.gm-tribe-question [data-origin-picker]:empty { display:none; }
.gm-play-reveal:has([data-tribe-question]) { max-height:calc(var(--origin-view-height,100dvh) - 140px); overflow-y:auto; overscroll-behavior:contain; }
.gm-split-head { line-height:1.1; }
.gm-split-head button { min-height:28px; min-width:32px; }
.gm-split-side { display:grid; grid-template-columns:128px minmax(0,1fr); align-items:center; gap:8px; margin-block:7px; }
.gm-split-track { height:7px; position:relative; margin:0 5px; border:1px solid currentColor; }
.gm-split-track i { display:block; height:100%; width:var(--split); background:var(--lime); }
.gm-split-track b { position:absolute; top:-4px; left:clamp(0px,var(--choice),100%); width:3px; height:13px; background:currentColor; transform:translateX(-50%); }
.gm-split-empty { display:flex; gap:8px; align-items:center; justify-content:space-between; margin-top:3px; }
.gm-split-empty span { min-width:0; flex:1; font-size:12px; }
.gm-split-empty button { flex:none; font-size:12px; min-height:32px; }
.gm-play-stage:has([data-split]) { --reward-lane:160px; }
.gm-play-stage:has([data-tribe-question]) { --reward-lane:340px; overflow-y:auto; }
.gm-play-reveal:has([data-tribe-question]) { position:relative; grid-area:1/1; }
.gm-play-stage:has([data-tribe-question]) .gm-play-card { min-height:310px; }
.gm-play-reveal button { color:inherit; }
.gm-today-price { display:grid; gap:4px; color:inherit; text-decoration:none; border-top:1px solid var(--ink); padding:12px; }
.gm-split-head button::after { content:none; }
.gm-tribe-heading button { text-decoration:none; }
.gm-tribe-heading button::after { width:18px; height:18px; -webkit-mask-image:var(--close); mask-image:var(--close); }
:root { --close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 5l14 14M19 5L5 19' fill='none' stroke='black' stroke-width='3.2' stroke-linecap='round'/%3E%3C/svg%3E"); }
@media(max-width:420px) { .gm-play-btn { letter-spacing:0; min-width:0; font-size:14px; padding-inline:2px; } }

/* The swipe reveal does not intercept the next card; its small Post-it link is interactive. */
.gm-play-reveal [data-post-find] { pointer-events: auto; max-width: 100%; font-size: 16px; line-height: 1.2; white-space: normal; }
/* Profile taste card styles retained when the retired game stylesheet was removed. */
.gm-taste-card { margin-block: 24px; padding: 18px; border: 2px solid var(--lime); border-radius: 20px; background: var(--ink-2); }
.gm-taste-card .gm-h2 { margin: 0; color: var(--lime); }
.gm-taste-card p { margin: 10px 0; }
.gm-taste-card .gm-taste-invite { margin: 0; }
.gm-taste-line { font-weight: 800; font-variant-numeric: tabular-nums; }
.gm-taste-card button { min-height: 44px; }
.gm-taste-card [data-taste-status] { overflow-wrap: anywhere; user-select: text; }
.gm-taste-card [data-taste-status]:empty { margin: 0; }

/* W89b: quiet photo utilities and one evidence action, using Discover's existing chip. */
.gm-find-utilities { position: absolute; top: 8px; right: 8px; display: flex; gap: 6px; }
.gm-find-utilities .gm-discover-save { position: static; box-shadow: none; }
.gm-trust-action { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; max-width: 100%; height: auto; min-height: 56px; padding: 12px 16px; text-align: left; }
.gm-trust-action small { font: 600 14px/1.3 var(--text); text-transform: none; }
.gm-went-choices { display: flex; flex-wrap: wrap; gap: 10px; margin: 16px 0; }
.gm-went-choices .gm-alt { flex: 1 1 150px; height: auto; min-height: 56px; padding: 12px; white-space: normal; }
.gm-went [data-price-amount] > .gm-alt { height: auto; min-height: 56px; white-space: normal; padding: 12px; margin: 16px 0; }
.gm-went details { margin: 12px 0; }
.gm-went summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; text-decoration: underline; }
.gm-went-changes { padding-left: 20px; }
.gm-went-changes li + li { margin-top: 12px; }
/* The full credit (including required licence links) sits immediately below a find's photo. */
.gm-find-media .gm-photo-credit { display: none; }

/* Challenge questions can wrap without pushing the secondary action offscreen. */
.gm-chal-actions, .gm-beat > .gm-hero-actions, .gm-sent > .gm-hero-actions, .gm-judge-view .gm-done > .gm-hero-actions { grid-template-columns: minmax(0, 1fr); }
.gm-hero-actions [data-post-game], .gm-hero-actions [data-judge-continue] { min-width: 0; }
.gm-cards.gm-sent-preview { grid-template-columns: minmax(0, 1fr); }

/* W94: one editable draft card; one primary action. */
.gm-post-flow { width: 100%; max-width: 680px; margin-inline: auto; display: grid; gap: 16px; min-width: 0; }
.gm-photo-start { background: var(--orange); border-color: var(--orange); min-height: 220px; grid-template-columns: 1fr; gap: 12px; justify-items: start; }
.gm-photo-start img { grid-row: auto; }
.gm-photo-start span { color: var(--ink); }
.gm-capture-secondary, .gm-draft-options { display: grid; gap: 10px; }
.gm-file-link { display: inline-flex; position: relative; align-items: center; min-height: 44px; cursor: pointer; font: 900 18px/1.2 var(--cond); text-decoration: underline; }
.gm-file-link.gm-textlink { line-height: 1; }
.gm-file-link input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.gm-file-link:has(input:focus-visible) { outline: 3px solid var(--lime); outline-offset: 3px; }
.gm-quick-draft { display: grid; gap: 14px; min-width: 0; }
.gm-edit-card { margin: 0; display: block; min-width: 0; }
.gm-edit-card .gm-card-media { width: 100%; aspect-ratio: 16 / 4; max-height: 112px; background: var(--ink-2); }
.gm-edit-card .gm-card-media > img { object-fit: cover; }
.gm-edit-card .gm-edit-fields { display: grid; gap: 12px; padding: 18px; }
.gm-edit-fields .gm-lbl { color: var(--ink); min-width: 0; }
.gm-edit-fields :is(.gm-text,select) { background-color: var(--cream); color: var(--ink); border: 2px solid var(--ink); width: 100%; min-width: 0; }
.gm-edit-fields .gm-text { height: 48px; }
.gm-edit-fields .gm-price-box { border: 2px solid var(--ink); background: var(--cream); }
.gm-draft-chip { display: grid; align-content: start; gap: 4px; color: var(--ink-soft); font: 900 14px/1.2 var(--cond); text-transform: uppercase; min-width: 0; }
.gm-draft-chip select { border-radius: 999px; min-height: 44px; padding: 8px 40px 8px 12px; font: 900 16px/1.2 var(--cond); text-transform: uppercase; }
.gm-draft-chips { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 10px; }
.gm-draft-price { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,1fr); gap: 10px; align-items: end; }
.gm-draft-price .gm-price-box { min-height: 52px; }
.gm-draft-price .gm-draft-chip > label { gap: 8px; font: 900 15px/1 var(--cond); letter-spacing: .05em; }
.gm-draft-price .gm-draft-chip select { min-height: 58px; }
.gm-draft-price .gm-price-box input { font-size: 30px; width: 100%; min-width: 0; }
.gm-draft-inclusions { display: flex; gap: 8px 12px; align-items: center; flex-wrap: wrap; }
.gm-draft-inclusions .gm-lbl { width: 100%; }
.gm-edit-fields :is(.gm-textlink,.gm-alt,.gm-chip-b) { color: var(--ink); border-color: var(--ink); }
.gm-edit-fields .gm-chip-b[aria-pressed=true] { background: var(--lime); }
.gm-edit-fields .gm-fine { color: var(--ink-soft); }
.gm-edit-fields .gm-basis { margin: 0; }
.gm-edit-fields .gm-check-row { color: var(--ink); }
.gm-read-tag { display: inline-flex; align-items: center; justify-self: start; min-height: 44px; max-width: 100%; margin-top: 4px; padding: 6px 10px; border: 2px solid var(--ink); border-radius: 999px; background: var(--cream); color: var(--ink); font: 600 13px/1.3 var(--text); text-transform: none; cursor: pointer; }
.gm-read-check { border-top: 2px dotted var(--ink); padding-top: 10px; display: grid; gap: 8px; }
.gm-read-check .gm-alt { min-height: 44px; font-size: 20px; }
.gm-draft-matches { list-style: none; padding: 0; display: grid; gap: 6px; }
.gm-draft-matches:empty { display: none; }
.gm-draft-matches .gm-alt { width: 100%; font-size: 18px; white-space: normal; text-align: left; }
.gm-update-note { padding: 10px; background: var(--cream); border: 2px solid var(--ink); color: var(--ink); border-radius: 12px; font-size: 14px; }
.gm-change-photo { position: absolute; bottom: 8px; right: 10px; padding: 0 12px; border-radius: 999px; color: var(--cream); background: var(--ink); }
.gm-photo-needed { display: grid; place-content: center; height: 100%; color: var(--cream); padding-bottom: 40px; }
.gm-post-flow .gm-form-error:empty, .gm-post-flow [data-post-account]:empty { display: none; }
body:has(.gm-post-flow) .gm-add { background: var(--ink); color: var(--cream); border-color: var(--cream); box-shadow: none; }
.gm-post-flow [hidden] { display: none !important; }

.gm-capture-secondary .gm-textlink, .gm-draft-options .gm-textlink { justify-self: start; }
.gm-draft-chip > label { display: grid; gap: 4px; }
.gm-more-fields > summary.gm-textlink { list-style: none; cursor: pointer; }
.gm-more-fields > summary.gm-textlink::-webkit-details-marker { display: none; }
.gm-more-fields[open] > summary.gm-textlink::after { transform: rotate(90deg); }
.gm-change-photo { text-transform: uppercase; }
body:has(.gm-sent) .gm-add { background: var(--ink); color: var(--cream); border-color: var(--cream); box-shadow: none; }

/* W98b: business screens use the stage's headline, ticket, sticker and requirement devices. */
.gm-business-flow h1, .gm-business-home h1 { font: 900 clamp(2.3rem,10.6vw,5.6rem)/.88 var(--cond); text-transform: uppercase; letter-spacing: -.01em; margin: 0; overflow-wrap: anywhere; }
.gm-business-flow .gm-place-head, .gm-business-home .gm-place-head { margin: 0; display: grid; gap: 12px; }
.gm-business-home .gm-h2 { margin: 0 0 14px; }
.gm-business-home h3 { font: 900 24px/.95 var(--cond); text-transform: uppercase; margin: 22px 0 12px; }
.gm-business-home .gm-business-meta, .gm-business-home .gm-business-staff { font: 400 17px/1.5 var(--text); text-transform: none; letter-spacing: normal; }
.gm-business-home .gm-business-staff { color: var(--cream); }
.gm-business-intro { gap: 14px; }
.gm-business-intro p, .gm-business-pitch p, .gm-business-score p { margin: 0; }
.gm-business-pitch { display: grid; gap: 4px; }
.gm-business-preview-stats { grid-template-columns: repeat(3,minmax(0,1fr)); }
.gm-business-back { justify-self: start; flex-direction: row-reverse; text-align: left; }
.gm-business-back::after { transform: rotate(180deg); }
.gm-business-score { display: grid; gap: 18px; }
.gm-business-score .gm-business-numbers { grid-template-columns: repeat(3,minmax(0,1fr)); }
.gm-business-ticket { padding: 14px 10px; background: var(--cream); color: var(--ink); border: 4px solid var(--ink); box-shadow: 0 0 0 3px var(--cream); border-radius: 20px; align-content: start; min-width: 0; }
.gm-business-ticket b { font-size: 48px; }
.gm-business-ticket > span { min-height: 2.2em; }
.gm-business-ticket small { color: var(--orange-ink); font: 600 14px/1.3 var(--text); }
.gm-business-verdict { display: flex; gap: 18px; align-items: center; }
.gm-business-verdict > div { width: 130px; flex-shrink: 0; }
.gm-business-verdict .gm-host { position: static; width: 100%; }
.gm-business-verdict p { display: grid; gap: 6px; }
.gm-business-verdict b { font: 900 48px/1 var(--cond); text-transform: uppercase; }
.gm-business-verdict span { font: 900 18px/1.1 var(--cond); text-transform: uppercase; }
.gm-business-status { display: flex; align-items: center; gap: 8px; width: fit-content; max-width: 100%; margin: 6px 0 16px; padding: 8px 12px; background: var(--orange); color: var(--ink); border: 3px solid var(--ink); box-shadow: 0 0 0 2px var(--orange); border-radius: 7px; transform: rotate(-1deg); font: 900 20px/1.1 var(--cond); text-transform: uppercase; overflow-wrap: anywhere; }
.gm-business-status svg { width: 24px; height: 24px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.gm-business-fresh { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.gm-business-fresh p { flex: 1 1 100%; margin: 0; }
.gm-business-fresh .gm-go { width: auto; min-width: 112px; }
.gm-business-tools { padding-bottom: 4px; }
.gm-business-goal { border: 2px dashed var(--cream-3); border-radius: 16px; padding: 18px; }
.gm-business-goal.is-earned { border-style: solid; border-color: var(--lime); background: var(--lime); color: var(--ink); }
.gm-business-goal.is-earned .gm-alt { color: var(--ink); border-color: var(--ink); margin-top: 18px; }
.gm-business-goal.is-earned p { color: var(--ink); }
.gm-business-requirement { height: 14px; border: 2px dashed var(--cream-3); border-radius: 14px; overflow: hidden; }
.gm-business-requirement i { display: block; height: 100%; background: var(--cream); }
.is-earned .gm-business-requirement { border: 2px solid var(--ink); }
.is-earned .gm-business-requirement i { background: var(--lime); }
[data-earned-host] { width: 110px; }
[data-earned-host] .gm-host { position: static; width: 100%; }
.gm-business-celebrate { margin: 0; padding: 14px; }
.gm-business-celebrate p { font: 900 28px/1 var(--cond); text-transform: uppercase; margin: 0; }
.gm-business-team-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.gm-business-remove { color: var(--orange); }
.gm-business-remove::after { content: none; }
.gm-business-team [role=status] { flex-basis: 100%; margin: 0; }
.gm-business-flow [data-business-status]:empty, .gm-business-home [data-business-status]:empty { display: none; }
@media (max-width: 480px) {
  .gm-business-preview img { height: 150px; }
  .gm-business-preview > div { padding: 12px; }
  .gm-business-preview h2 { font-size: 26px; margin-bottom: 8px; }
  .gm-business-preview b { font-size: 32px; }
  .gm-business-preview-stats b, .gm-business-ticket b { font-size: 40px; }
  .gm-business-numbers { gap: 10px; }
  .gm-business-numbers span { font-size: 16px; }
}

/* One repeatable price, followed by one place's existing card. */
.gm-one-item { gap: 18px; }
.gm-one-item .gm-view-title { font-size: clamp(2.3rem,8vw,5.6rem); }
.gm-one-item form { display: grid; gap: 14px; min-width: 0; }
.gm-scope-choices { display: grid; gap: 12px; justify-items: start; }
.gm-one-item .gm-chip { background: transparent; color: var(--cream); white-space: nowrap; max-width: 100%; }
.gm-one-item .gm-chip[aria-pressed=true] { background: var(--lime); color: var(--ink); border-color: var(--lime); }
.gm-item-picks { display: flex; flex-wrap: wrap; gap: 8px; }
.gm-one-item .gm-item-picks { max-height: 112px; overflow-y: auto; align-content: start; }
.gm-one-item .gm-item-picks:has([data-board]) { overflow: visible; max-height: none; }
.gm-item-picks .gm-chip { overflow: hidden; text-overflow: ellipsis; display: block; }
.gm-board-mini { display: flex; align-items: center; gap: 14px; padding: 14px; background: var(--cream); color: var(--ink); border: 4px solid var(--ink); box-shadow: 0 0 0 3px var(--cream); border-radius: 26px; }
.gm-board-mini > img { flex: 0 0 88px; object-fit: cover; border-radius: 12px; }
.gm-board-mini > div { min-width: 0; display: grid; gap: 8px; }
.gm-board-mini h2 { font: 900 24px/1 var(--cond); text-transform: uppercase; }
.gm-board-mini p { font: 900 26px/1 var(--cond); }
.gm-one-item select { min-height: 48px; }
/* 66px Post + 24px dock padding. Mobile nav is 30 + 52 + 8px plus the safe area. */
.gm-quick-draft { padding-bottom: 90px; }
.gm-publish-dock { position: fixed; z-index: 8; bottom: calc(90px + env(safe-area-inset-bottom)); inset-inline: 0; padding: 12px max(20px,calc((100% - 680px)/2)); background: var(--ink); }
.gm-publish-dock > #gm-publish { width: 100%; }
.gm-publish-dock:has(> #gm-publish[hidden]) { display: none; }
.gm-post-flow > [data-keep-draft], .gm-post-flow > [data-replace-draft] { white-space: nowrap; }
@media(min-width:960px) { .gm-publish-dock { bottom: 0; } }
body:has(.gm-quick-draft) .gm-nav { background: var(--ink); }
@media(max-width:959px) {
  .gm-post-flow:has(.gm-quick-draft) .gm-resume { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 14px; }
  .gm-post-flow:has(.gm-quick-draft) .gm-resume .gm-textlink { font-size: 16px; white-space: nowrap; }
  .gm-edit-card .gm-edit-fields { gap: 10px; padding: 14px; }
}

body:has(.gm-one-item-notice) .gm-add { background: var(--ink); color: var(--cream); border-color: var(--cream); box-shadow: none; }
.gm-one-item-notice { margin-block: 18px 26px; }

.gm-own-prices ul { list-style: none; padding: 0; display: grid; gap: 18px; }
.gm-own-prices li { border-bottom: 2px solid var(--ink-3); padding-bottom: 14px; }
.gm-own-prices h3 { font: 900 24px/1 var(--cond); text-transform: uppercase; }

/* Group pick: the same level card rows, then the host reveals a private group split. */
.gm-group-pick { max-width: 880px; }
.gm-group-pick .gm-pick { transition: transform 140ms var(--ease-out); }
.gm-group-pick .gm-pick:active { transform: scale(.97); }
.gm-group-pick .gm-duel-side.is-other .gm-pick-card { opacity: .68; }
.gm-group-card-label { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px; padding-top: 8px; min-height: 36px; }
.gm-group-stamp { display: inline-block; background: var(--lime); color: var(--ink); border: 3px solid var(--ink); border-radius: 6px; padding: 4px 7px; font: 900 16px/1 var(--cond); text-transform: uppercase; white-space: nowrap; transform: rotate(-3deg); }
.gm-group-reward { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; }
.gm-group-reward h2 { font: 900 clamp(24px,6vw,34px)/1 var(--cond); text-transform: uppercase; margin: 0; text-wrap: balance; }
.gm-group-reward.is-plan { background: var(--lime); color: var(--ink); border: 3px solid var(--ink); border-radius: 16px; padding: 8px; }
.gm-group-host { width: 96px; flex: 0 0 96px; }
#gm-pick2.is-revealed .gm-duel-media { height: 86px; aspect-ratio: auto; }
#gm-pick2.is-revealed .gm-duel-inc { -webkit-line-clamp: 2; }
.gm-group-tally { margin: 6px 0; }
.gm-group-counts { display: flex; justify-content: space-between; align-items: center; font: 900 18px/1 var(--cond); text-transform: uppercase; }
.gm-group-counts b { font-size: 28px; font-variant-numeric: tabular-nums; }
.gm-group-split { display: flex; height: 14px; background: var(--ink); border: 2px solid var(--cream); border-radius: 999px; overflow: hidden; margin: 6px 0; }
/* impeccable-disable-next-line layout-transition: Owner W103b §3 requires 350ms width progress on these two fixed-height tally segments; reduced motion disables it. */
.gm-group-split span { display: block; flex-shrink: 0; height: 100%; background: var(--cream); transition: width 350ms var(--ease-out); }
.gm-group-split span.is-yours { background: var(--lime); }
.gm-group-names { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.gm-group-names p { margin: 0; font: 400 14px/1.3 var(--text); overflow-wrap: anywhere; max-height: 56px; overflow-y: auto; }
.gm-group-names p:last-child { text-align: right; }
.gm-group-actions { display: grid; gap: 8px; margin: 4px 0; }
.gm-group-actions .gm-go { min-height: 56px; }
.gm-group-saved { margin: 0; color: var(--lime); }
.gm-group-reward.is-plan .gm-group-saved { color: var(--ink); }
.gm-group-links { display: flex; flex-wrap: wrap; gap: 4px 18px; }
.gm-group-links .gm-textlink, .gm-group-card-label .gm-textlink, .gm-group-actions .gm-textlink, .gm-group-name-toggle { min-height: 44px; }
.gm-group-actions .gm-textlink { justify-self: start; }
.gm-group-links .gm-fine { margin: 0; }
.gm-group-name { display: grid; gap: 8px; max-width: 440px; margin: 0 0 12px; }
.gm-group-name[hidden] { display: none; }
.gm-group-pick.is-naming .gm-duel { display: none; }
.gm-group-name label { font: 900 18px/1.2 var(--cond); text-transform: uppercase; }
.gm-group-name input { min-width: 0; padding: 12px; border: 3px solid var(--cream); border-radius: 14px; background: var(--cream); color: var(--ink); font: 400 17px/1.3 var(--text); }
.gm-group-error:empty { display: none; }
.gm-group-error { color: var(--orange); }
.gm-group-private { margin-top: 12px; }
.gm-run-group { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 6px 0; font: 900 16px/1 var(--cond); text-transform: uppercase; }
.gm-run-group a { white-space: nowrap; }
#gm-return-card:has(.gm-return-group) { background: var(--ink-2); color: var(--cream); box-shadow: none; }
#gm-return-card.is-group-plan { border-color: var(--lime); }
.gm-return-group h2 { margin: 0; font: 900 26px/1 var(--cond); text-transform: uppercase; }
.gm-return-group [data-return-dismiss] { white-space: nowrap; min-height: 44px; }
@media (min-width: 700px) { #gm-pick2.gm-group-pick .gm-duel-media { max-height: 190px; } }
@media (prefers-reduced-motion: reduce) { .gm-group-pick *, .gm-group-pick *::before, .gm-group-pick *::after { animation: none !important; transition: none !important; } }
.gm-view[data-view="pick"]:has(.gm-group-pick.is-revealed) { gap: 6px; }
.gm-view[data-view="pick"]:has(.gm-group-pick.is-revealed) > .gm-view-title { font-size: clamp(1.7rem, 7.5vw, 2.6rem); margin-bottom: 0; }
.gm-group-counts, .gm-group-stamp, .gm-run-group, .gm-return-group h2 { word-spacing: .15em; }
.gm-group-reward.is-plan h2 { font-size: 26px; }
#gm-saved:has(.gm-run-group) .gm-run:not(:first-child) .gm-run-go { background: transparent; color: var(--cream); border-color: var(--cream-3); box-shadow: none; }

@media (min-width: 700px) { #gm-pick2.gm-group-pick .gm-duel > .gm-vs { top: 95px; } }
#gm-pick2.gm-group-pick.is-revealed .gm-duel > .gm-vs { top: 43px; }
/* The VS disc straddles the gap: the right card's category chip starts clear of it. */
#gm-pick2.gm-group-pick.is-revealed .gm-duel > .gm-duel-side:last-child .gm-card-cat { left: 34px; }
@media (min-width: 700px) { #gm-pick2.gm-group-pick.is-revealed .gm-duel > .gm-duel-side:last-child .gm-card-cat { left: 44px; } }

.gm-group-pick .gm-pick-card:hover .gm-duel-card { transform: none; }
.gm-group-card-label:empty { min-height: 0; padding: 0; }
.gm-group-pick .gm-pick-keep:empty { display: none; }
.gm-group-saved { font-size: 14px; line-height: 1.3; }

/* First business price: a compact form that clears the fixed phone tabs. */
.gm-business-flow .gm-business-list-form { gap: 10px; margin: 0; }
.gm-business-list-form .gm-lbl { margin: 0; gap: 6px; }
.gm-business-list-form input, .gm-business-list-form select { min-height: 44px; }
.gm-business-flow:has(.gm-business-list-form) { gap: 10px; }
.gm-business-flow:has(.gm-business-list-form) .gm-h1 { font-size: clamp(1.7rem,7.5vw,2.6rem); }
.gm-list-units { display: flex; flex-wrap: wrap; gap: 8px; border: 0; padding: 4px 0; margin: 0; min-width: 0; }
.gm-list-units button { flex-shrink: 0; white-space: nowrap; }
.gm-business-zero { max-width: 640px; }
.gm-business-zero summary { min-height: 44px; font: 900 22px/1.2 var(--cond); text-transform: uppercase; cursor: pointer; }
.gm-business-zero .gm-place-head p { margin-bottom: 0; }
.gm-list-units .gm-chip { background: transparent; color: var(--cream); padding: 0 12px; }
.gm-list-units .gm-chip[aria-pressed=true] { background: var(--lime); color: var(--ink); border-color: var(--lime); }

/* Accents extend above the tight display line box into the sticky masthead: room above, poster leading kept. */
.gm-place-view .gm-place-head h1 { line-height: .95; padding-top: .2em; }
.gm-business-list-form .gm-field-error { font: 700 15px/1.3 var(--text); text-transform: none; letter-spacing: normal; padding: 0; }
.gm-business-list-form .gm-field-error:empty { display: none; }
.gm-business-list-form .is-bad input { border-color: var(--orange); }
.gm-business-list-form button[type=submit] { margin-top: 2px; }
.gm-business-flow [data-send-claim], .gm-business-zero [data-first-price] { white-space: nowrap; }

.gm-business-flow fieldset.gm-business-chips { border: 0; padding: 0; margin: 0; min-width: 0; }
.gm-business-flow .gm-business-chips legend { padding: 0; margin-bottom: 8px; }

/* Business prices lead; existing palette and phone tab clearance stay shared. */
.gm-business-loop { display: grid; gap: 18px; min-width: 0; }
.gm-business-loop > p { margin: 0; }
.gm-list-count { font: 600 16px/1.35 var(--text); }
.gm-interest { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.gm-interest p { display: grid; align-content: start; gap: 6px; margin: 0; min-width: 0; font: 400 14px/1.4 var(--text); }
.gm-interest b { font: 900 18px/1.1 var(--cond); text-transform: uppercase; }
.gm-business-price-rows { list-style: none; padding: 0; margin: 0; }
.gm-business-price-rows > li, .gm-business-loop article { padding: 18px 0; border-bottom: 2px solid var(--ink-3); }
.gm-list-row-title { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.gm-list-row-title h3 { margin: 0; overflow-wrap: anywhere; }
.gm-list-row-title > b { white-space: nowrap; font: 900 24px/1 var(--cond); }
.gm-business-loop h3 { font: 900 26px/1.1 var(--cond); text-transform: uppercase; }
.gm-business-loop .gm-business-chips { margin-top: 12px; }
.gm-business-loop .gm-interest + .gm-fine { margin-top: 6px; }
.gm-business-price-rows .gm-fine { margin: 8px 0; }
.gm-business-price-rows .gm-textlink { min-height: 44px; }
.gm-business-notices, .gm-your-place ul { margin: 0; padding-left: 20px; font: 400 14px/1.4 var(--text); }
.gm-your-place { display: grid; gap: 8px; margin: 12px 0; }
.gm-your-place .gm-alt { font-size: 22px; height: auto; min-height: 56px; text-align: left; }
.gm-bulk-saved { display: grid; gap: 8px; }
.gm-bulk-saved:empty { display: none; }
.gm-bulk-saved > div { padding: 8px 0; border-bottom: 2px solid var(--ink-3); }
.gm-bulk-saved p { margin: 0; font: 400 14px/1.3 var(--text); }
.gm-bulk-saved .gm-textlink { min-height: 44px; font-size: 18px; margin-right: 12px; }
.gm-list-options { margin-top: 8px; }
.gm-list-options summary { min-height: 44px; cursor: pointer; font: 900 18px/1.2 var(--cond); text-transform: uppercase; }
.gm-list-options[open] { display: grid; gap: 12px; }
.gm-business-list-form button[type=submit] { margin-top: 12px; }
.gm-table-card { padding: 22px; background: var(--cream); color: var(--ink); border: 3px solid var(--ink); text-align: center; }
.gm-table-card .gm-sticker-qr { max-width: 100%; margin: 12px auto; }
.gm-website-badge { max-width: 360px; }
.gm-business-flow textarea[data-badge-code] { width: 100%; min-height: 100px; }
@media print {
 body:has(.gm-table-card) * { visibility: hidden; }
 body:has(.gm-table-card) .gm-table-card, body:has(.gm-table-card) .gm-table-card * { visibility: visible; }
 .gm-table-card { position: absolute; top: 0; left: 0; width: 320px; }
}
.gm-view[data-view=home]:has(#gm-business-home-places:not(:empty)) .gm-intro-actions .gm-go { background: transparent; color: var(--ink); border-color: var(--ink); box-shadow: none; }
.gm-your-place .gm-go { height: auto; min-height: 66px; font-size: 26px; white-space: nowrap; text-align: left; }
.gm-bulk-saved [data-undo-bulk]::after { content: none; }

/* Business finish: one queue, one scoreboard, all saved rows in page flow. */
.gm-business-loop [id], .gm-business-home [data-goal] { scroll-margin-top: 110px; }
.gm-business-loop [data-open-items] { display: grid; gap: 26px; }
.gm-business-loop [hidden] { display: none; }
.gm-business-loop [data-pricelist] { margin-top: 18px; }
.gm-interest > div { display: grid; gap: 4px; align-content: start; min-width: 0; }
.gm-interest b { font: 900 32px/1 var(--cond); font-variant-numeric: tabular-nums; white-space: nowrap; }
.gm-interest span { font: 900 14px/1.15 var(--cond); text-transform: uppercase; white-space: nowrap; }
.gm-interest small { font: 400 12px/1.3 var(--text); }
.gm-item-interest { margin: 4px 0; font: 400 14px/1.3 var(--text); }
.gm-business-notices { padding: 0; display: grid; }
.gm-business-notice { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; padding: 10px 0; border-bottom: 1px solid var(--ink-3); font: 400 16px/1.35 var(--text); text-decoration: none; }
.gm-business-notice svg { width: 22px; height: 22px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 2; }
.gm-place-label { margin: 0; font: 900 20px/1.1 var(--cond); text-transform: uppercase; }
.gm-your-place .gm-go, .gm-your-place .gm-alt { white-space: nowrap; }
/* A to-do is never lime: the Profile tasks button is a neutral cream outline. */
body.gm .gm-your-place a.gm-alt { background: transparent; color: var(--cream); border-color: var(--cream-3); }
[data-customer-price] .gm-money, [data-customer-price] .gm-money * { white-space: nowrap; }
[data-loop-primary] { white-space: nowrap; font-size: clamp(20px, 6vw, 28px); }
.gm-official-list small { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; }
.gm-official-list small > span { white-space: nowrap; }
.gm-price-stale { background: var(--orange); color: var(--ink); border-color: var(--orange); white-space: nowrap; }
.gm-price-check-row h3 { margin: 0; font: 900 22px/1.05 var(--cond); text-transform: uppercase; }
.gm-price-check-row > div { display: flex; align-items: center; gap: 12px; }
.gm-price-check-row .gm-alt { min-height: 44px; height: 44px; padding: 0 10px; font-size: 20px; white-space: nowrap; }
.gm-price-check-row .gm-textlink { min-height: 44px; font-size: 18px; white-space: nowrap; }
.gm-check-panel { gap: 10px; }
.gm-check-panel .gm-h1 { font-size: 30px; }
.gm-check-list > li { padding: 6px 0; }
.gm-check-list .gm-item-interest { font-size: 12px; margin: 0; }
.gm-check-helper { margin: 0; font: 400 14px/1.3 var(--text); }
.gm-check-panel [data-confirm-all] { min-height: 52px; height: 52px; font-size: 24px; }
.gm-business-tools { display: flex; flex-wrap: wrap; gap: 4px 18px; }
.gm-business-tools .gm-textlink { min-height: 44px; font-size: 20px; }
.gm-bulk-saved-line { display: flex; align-items: baseline; gap: 4px; white-space: nowrap; }
.gm-bulk-saved-line strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; font-weight: 600; }
.gm-bulk-saved-line .gm-money { font: 900 18px/1 var(--cond); }
.gm-bulk-saved .gm-bulk-payoff { margin-bottom: 4px; font-size: 16px; }
.gm-business-flow:has(.gm-business-save-dock) { padding-bottom: 100px; }
.gm-business-save-dock { position: fixed; z-index: 8; bottom: calc(90px + env(safe-area-inset-bottom)); inset-inline: 0; padding: 12px max(20px,calc((100% - 680px)/2)); background: var(--ink); }
.gm-business-save-dock > .gm-go { width: 100%; margin: 0; }
.gm-business-earned { display: flex; gap: 10px; align-items: center; padding: 8px 12px; background: var(--lime); color: var(--ink); border: 3px solid var(--ink); box-shadow: 0 0 0 3px var(--lime); border-radius: 7px; }
.gm-business-earned strong { font: 900 24px/1 var(--cond); text-transform: uppercase; }
[data-business-earned]:empty { display: none; }
[data-price-earned-host] { width: 56px; flex: 0 0 56px; }
.gm-confirmed-host { display: inline-block; width: 36px; flex: 0 0 36px; vertical-align: middle; }
.gm-confirmed-host .gm-host, [data-price-earned-host] .gm-host { position: static; width: 100%; }
@media(min-width:960px) { .gm-business-save-dock { bottom: 0; } }

.gm-business-loop [data-open-items]:not(:has(> :not([hidden]))), .gm-business-notices:empty { display: none; }
.gm-business-price-rows .gm-business-chips .gm-textlink { font-size: 18px; }
.gm-price-check-row .gm-alt { column-gap: 6px; }
.gm-price-check-row .gm-money { word-spacing: .12em; }
@media(max-width:959px) {
 .gm-business-save-dock::after { content: ""; position: absolute; top: 100%; inset-inline: 0; height: calc(90px + env(safe-area-inset-bottom)); background: var(--ink); }
}
