/* Room-reveal game; all visual rules stay inside #room-rodeo. */
#room-rodeo{--rr-paper:#efe3cb;--rr-ink:#38251f;--rr-rust:#651f16;--rr-rule:#b8a07a;--rr-muted:#705942;--rr-sky:#f6ecd8;--rr-dirt:#d7ba8a;--rr-mountain:#d6c5a2;color-scheme:light;background:var(--rr-paper);color:var(--rr-ink);font:18px/1.4 var(--body, Georgia, serif);width:100%;max-width:780px;min-width:0;margin:0 auto 36px;padding:0 26px 26px;isolation:isolate}
#room-rodeo,#room-rodeo *{box-sizing:border-box}
#room-rodeo[hidden],#room-rodeo [hidden]{display:none!important}
#room-rodeo h2,#room-rodeo h3,#room-rodeo p{margin:0}
#room-rodeo .rr-cue:empty,#room-rodeo .rr-cue-sub:empty,#room-rodeo .rr-result-kicker:empty,#room-rodeo .rr-result-meta:empty,#room-rodeo .rr-result-names:empty{display:none}
#room-rodeo button,#room-rodeo select{font:inherit;color:inherit}
#room-rodeo button{touch-action:manipulation;cursor:pointer}
#room-rodeo button:focus-visible,#room-rodeo select:focus-visible{outline:3px solid var(--rr-rust);outline-offset:4px}
#room-rodeo button:disabled,#room-rodeo select:disabled{cursor:default;opacity:.45}
#room-rodeo .rr-primary:disabled:hover{background:var(--rr-rust)}
#room-rodeo .rr-header{text-align:center;padding:17px 0 20px;border-top:3px double var(--rr-ink)}
#room-rodeo .rr-eyebrow{font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;margin-bottom:14px}
#room-rodeo h2{font:400 clamp(27px,5.6vw,43px)/1.13 var(--display, "TAY Basal", Georgia, serif);text-transform:uppercase;letter-spacing:-.025em;text-wrap:balance}
#room-rodeo .rr-deck{font-size:18px;margin-top:12px}
#room-rodeo .rr-rider{display:flex;align-items:center;justify-content:space-between;gap:18px;border-top:1px solid var(--rr-rule);padding:16px 0}
#room-rodeo .rr-rider label{min-width:0;display:flex;align-items:center;gap:13px;font-size:16px}
#room-rodeo select{border:1px solid var(--rr-rule);border-radius:0;background:#f7ecd6;padding:9px 30px 9px 12px;min-height:44px;font-size:17px;max-width:100%}
#room-rodeo .rr-link{cursor:pointer;padding:8px 0;background:none;border:0;text-decoration:underline;text-underline-offset:4px;color:var(--rr-rust);font-size:14px;min-height:44px}
#room-rodeo .rr-arena{height:340px;position:relative;overflow:hidden;background:var(--rr-sky);border:1px solid var(--rr-rule);user-select:none;touch-action:pan-y}
#room-rodeo .rr-sun{position:absolute;width:58px;height:58px;border-radius:50%;top:43px;right:12%;background:#d6ac73;opacity:.65}
#room-rodeo .rr-mountains{position:absolute;inset:84px -4% auto;height:85px;background:var(--rr-mountain);clip-path:polygon(0 83%,9% 36%,14% 62%,25% 2%,38% 71%,45% 28%,52% 56%,62% 18%,68% 56%,76% 35%,86% 74%,93% 47%,100% 89%,100% 100%,0 100%)}
#room-rodeo .rr-hills{position:absolute;top:130px;left:-5%;right:-5%;height:63px;background:#beab82;clip-path:polygon(0 55%,10% 60%,22% 10%,30% 25%,47% 0,57% 50%,72% 38%,87% 72%,100% 41%,100% 100%,0 100%)}
#room-rodeo .rr-earth{position:absolute;inset:174px 0 0;background:var(--rr-dirt)}
#room-rodeo .rr-fence{position:absolute;left:0;right:0;top:156px;height:42px;background:repeating-linear-gradient(90deg,transparent 0 45px,#8f7150 45px 49px,transparent 49px 76px);opacity:.65}
#room-rodeo .rr-fence:before,#room-rodeo .rr-fence:after{content:'';position:absolute;left:0;right:0;height:4px;background:#8f7150;top:8px}
#room-rodeo .rr-fence:after{top:26px}
#room-rodeo .rr-groundline{position:absolute;width:34px;height:1px;background:#b29467;transform:rotate(-8deg);top:79%;left:14%;box-shadow:90px 21px 0 #b29467,195px -12px 0 #b29467,333px 24px 0 #b29467,480px -17px 0 #b29467}
#room-rodeo .rr-sprite{position:absolute;display:block;height:auto;object-fit:contain;pointer-events:none;will-change:transform;transform:translateX(-50%)}
#room-rodeo .rr-horse{width:clamp(105px,28%,180px);left:28%;bottom:32px;z-index:4}
#room-rodeo .rr-bull{width:clamp(80px,20%,127px);left:67%;bottom:85px;z-index:3}
#room-rodeo .rr-rope{position:absolute;inset:0;width:100%;height:100%;z-index:5;pointer-events:none}
#room-rodeo .rr-scene-copy{position:absolute;z-index:6;top:21px;left:15px;right:15px;text-align:center;pointer-events:none}
#room-rodeo .rr-cue{font:400 21px/1.15 var(--display, "TAY Basal", Georgia, serif);text-transform:uppercase;letter-spacing:.02em}
#room-rodeo .rr-cue-sub{display:block;font-size:14px;margin-top:7px}
#room-rodeo .rr-controls{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:18px 0 9px}
#room-rodeo .rr-steering{display:flex;gap:8px}
#room-rodeo .rr-steer{min-height:46px;min-width:57px;background:transparent;border:1px solid var(--rr-rule);padding:9px 14px;font-size:15px}
#room-rodeo .rr-primary{min-height:46px;background:var(--rr-rust);color:var(--rr-paper);border:1px solid var(--rr-rust);padding:10px 22px;font-weight:600;box-shadow:2px 2px 0 var(--rr-ink);min-width:170px}
#room-rodeo .rr-primary:hover:not(:disabled){background:var(--rr-ink)}
#room-rodeo .rr-primary[aria-disabled=true]{opacity:.65;cursor:wait}
#room-rodeo .rr-steer:disabled{opacity:.35;cursor:default}
#room-rodeo .rr-help{display:flex;gap:12px;align-items:center;justify-content:space-between;font-size:13px;color:var(--rr-muted);min-height:35px}
#room-rodeo .rr-pause{font-size:13px;padding:7px 0;min-height:36px;border:0;background:transparent;text-decoration:underline;text-underline-offset:3px}
#room-rodeo .rr-result{margin-top:20px;padding:22px 10px 0;border-top:3px double var(--rr-ink);text-align:center}
#room-rodeo .rr-result-kicker{font-size:12px;text-transform:uppercase;letter-spacing:.14em;margin-bottom:10px}
#room-rodeo .rr-result h3{font:400 28px/1.2 var(--display, "TAY Basal", Georgia, serif);text-transform:uppercase}
#room-rodeo .rr-result-meta{font-size:15px;color:var(--rr-muted);margin-top:7px}
#room-rodeo .rr-result-names{font-size:22px;font-weight:600;margin-top:13px;text-wrap:balance}
#room-rodeo .rr-guide-status{font-size:14px;color:var(--rr-muted);margin-top:12px}
#room-rodeo .rr-result .rr-link{margin-top:10px}
#room-rodeo .rr-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
#room-rodeo[data-look=sunset]{--rr-sky:#edd6b0;--rr-dirt:#cfad7a;--rr-mountain:#cba678}
#room-rodeo[data-caught=true] .rr-cue{color:var(--rr-rust);font-size:31px}
@media(max-width:520px){#room-rodeo{padding:0 16px 20px}#room-rodeo .rr-rider{gap:8px;align-items:flex-start}#room-rodeo .rr-rider label{flex-direction:column;gap:4px;align-items:flex-start;font-size:14px}#room-rodeo .rr-rider .rr-link{align-self:flex-end;max-width:95px;text-align:right;font-size:13px}#room-rodeo select{min-width:145px}#room-rodeo .rr-arena{height:315px}#room-rodeo .rr-controls{gap:10px}#room-rodeo .rr-steering{gap:5px}#room-rodeo .rr-steer{min-width:44px;padding:10px 8px;font-size:13px}#room-rodeo .rr-primary{min-width:0;flex:1;padding:11px 9px;font-size:16px}#room-rodeo .rr-cue{font-size:19px}#room-rodeo .rr-cue-sub{font-size:13px}#room-rodeo .rr-horse{bottom:27px}#room-rodeo .rr-bull{bottom:90px}#room-rodeo .rr-help{gap:8px;font-size:12px}#room-rodeo .rr-result{padding-left:0;padding-right:0}#room-rodeo .rr-result h3{font-size:25px}}
#room-rodeo .rr-result .rr-link{margin-left:8px;margin-right:8px}
#room-rodeo .rr-result-names{white-space:normal;overflow-wrap:anywhere}
@media(max-width:360px){#room-rodeo{padding:0 12px 18px}#room-rodeo .rr-rider{flex-wrap:wrap;gap:5px 10px}#room-rodeo .rr-rider label{flex:1 1 140px}#room-rodeo select{min-width:0;width:100%}#room-rodeo .rr-rider .rr-link{max-width:none;text-align:left}#room-rodeo .rr-controls{gap:8px}#room-rodeo .rr-steer{min-width:40px;padding:10px 6px}#room-rodeo .rr-primary{padding-left:7px;padding-right:7px}}
@media(prefers-reduced-motion:reduce){#room-rodeo *,#room-rodeo *:before,#room-rodeo *:after{scroll-behavior:auto;animation:none!important;transition:none!important}}
@media print{#room-rodeo{display:none!important}}
/* Go-rounds, the hold-him meter, and the ride stamp. */
#room-rodeo .rr-status{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0 0;font-size:13px;color:var(--rr-muted);min-height:30px}
#room-rodeo .rr-pips{display:flex;gap:7px;align-items:center;flex:none}
#room-rodeo .rr-pip{width:16px;height:16px;border-radius:50%;border:2px solid var(--rr-rule);background:transparent;transition:background .2s,border-color .2s}
#room-rodeo .rr-pip[data-state=live]{border-color:var(--rr-rust)}
#room-rodeo .rr-pip[data-state=done]{background:var(--rr-rust);border-color:var(--rr-rust)}
#room-rodeo .rr-tally{font-variant-numeric:tabular-nums;text-align:right}
#room-rodeo .rr-meter{flex:1;max-width:260px;height:10px;border:1px solid var(--rr-ink);background:#f7ecd6;overflow:hidden}
#room-rodeo .rr-meter-fill{height:100%;background:var(--rr-rust);width:60%}
#room-rodeo .rr-arena.rr-hit{animation:rr-nudge .2s ease-out}
@keyframes rr-nudge{0%{transform:translateX(0)}30%{transform:translateX(3px)}65%{transform:translateX(-2px)}100%{transform:translateX(0)}}
#room-rodeo .rr-stamp{font-size:14px;color:var(--rr-muted);margin-top:12px;font-variant-numeric:tabular-nums}
#room-rodeo .rr-best{font-size:13px;color:var(--rr-muted);margin-top:4px}
#room-rodeo .rr-stamp:empty,#room-rodeo .rr-best:empty{display:none}
/* Keep roping after the reveal: the room card stays, the corral comes back. */
#room-rodeo .rr-result .rr-keep{display:block;margin:18px auto 4px}
#room-rodeo[data-mode=streak] .rr-result{margin-top:16px;padding-top:16px}
#room-rodeo[data-mode=streak] .rr-result h3{font-size:22px}
#room-rodeo[data-mode=streak] .rr-result-names{font-size:18px;margin-top:8px}
#room-rodeo[data-mode=streak] .rr-result-kicker{display:none}

/* Holding a steer button must never turn into a page scroll or a long-press callout. */
#room-rodeo .rr-steer,#room-rodeo .rr-primary{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}

/* The gate sign and the brand. Both are pure functions of state: data-sign (still / loose / locked) and data-reads (0–3) on #room-rodeo. */
#room-rodeo .rr-gate{position:absolute;z-index:2;right:12px;top:108px;width:176px;height:60px;border-top:5px solid #8f7150;pointer-events:none}
#room-rodeo .rr-gate:before,#room-rodeo .rr-gate:after{content:'';position:absolute;top:-5px;bottom:0;width:5px;background:#8f7150}
#room-rodeo .rr-gate:before{left:0}
#room-rodeo .rr-gate:after{right:0}
#room-rodeo .rr-sign{position:absolute;left:12px;right:12px;top:8px;height:32px;background:var(--rr-paper);border:2px solid var(--rr-ink);box-shadow:2px 2px 0 var(--rr-ink);color:var(--rr-ink);font:400 16px/1 var(--display, "TAY Basal", Georgia, serif);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;transform-origin:50% -8px}
#room-rodeo .rr-sign:before,#room-rodeo .rr-sign:after{content:'';position:absolute;top:-10px;width:2px;height:8px;background:var(--rr-ink)}
#room-rodeo .rr-sign:before{left:16px}
#room-rodeo .rr-sign:after{right:16px}
#room-rodeo .rr-sign-slot{position:absolute;inset:0;padding:0 6px;overflow:hidden;display:flex;align-items:center;justify-content:center}
#room-rodeo .rr-sign-text{display:block;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis}
#room-rodeo .rr-sign-text.rr-flip{animation:rr-flip .16s ease-out}
#room-rodeo .rr-sign-text[data-struck]{text-decoration:line-through;text-decoration-thickness:2px;text-decoration-color:var(--rr-rust);color:var(--rr-muted)}
#room-rodeo[data-sign=loose] .rr-sign{animation:rr-swing 2.6s ease-in-out infinite alternate}
#room-rodeo[data-sign=locked] .rr-sign{background:var(--rr-rust);color:var(--rr-paper);box-shadow:2px 2px 0 var(--rr-ink),inset 0 0 0 3px var(--rr-rust),inset 0 0 0 4px var(--rr-paper);animation:rr-lock .22s ease-out}
@keyframes rr-flip{from{transform:translateY(-40%);opacity:.15}to{transform:none;opacity:1}}
@keyframes rr-swing{from{transform:rotate(-1.2deg)}to{transform:rotate(1.2deg)}}
@keyframes rr-lock{from{transform:scale(1.08)}to{transform:none}}
/* A small iron mark sits on the bull's flank. Each read brings one stroke into focus. */
#room-rodeo .rr-brand{position:absolute;left:67%;bottom:85px;width:clamp(80px,20%,127px);aspect-ratio:3/2;z-index:3;pointer-events:none;transform:translateX(-50%)}
#room-rodeo .rr-brand-mark{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round}
#room-rodeo .rr-brand .rr-brand-mark{position:absolute;left:37%;top:46%;width:13%;height:auto;aspect-ratio:1;color:#deb88a;transform:translate(-50%,-50%) rotate(-10deg)}
#room-rodeo .rr-brand path{opacity:.38;transition:opacity .2s}
#room-rodeo[data-reads="1"] .rr-brand-first,#room-rodeo[data-reads="2"] .rr-brand-first,#room-rodeo[data-reads="3"] .rr-brand-first,#room-rodeo[data-reads="2"] .rr-brand-second,#room-rodeo[data-reads="3"] .rr-brand-second,#room-rodeo[data-reads="3"] .rr-brand-third{opacity:1}
#room-rodeo .rr-brand-card{display:block;width:38px;height:38px;margin:0 auto 10px;color:var(--rr-rust)}
#room-rodeo[data-mode=streak] .rr-brand-card{width:30px;height:30px;margin-bottom:6px}
/* The three pips become three reads: Floor, Bed, Room. */
#room-rodeo .rr-status{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px;padding:12px 0 0;font-size:13px;color:var(--rr-muted);min-height:30px}
#room-rodeo .rr-reads{display:flex;gap:14px;align-items:center;flex:1 1 auto;min-width:0}
#room-rodeo .rr-read{display:flex;align-items:center;gap:6px;min-width:0}
#room-rodeo .rr-pip{width:10px;height:10px;flex:none}
#room-rodeo .rr-read-text{display:flex;flex-direction:column;line-height:1.15;min-width:0}
#room-rodeo .rr-read-label{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--rr-muted)}
#room-rodeo .rr-read-value{display:block;font-size:14px;font-weight:600;color:var(--rr-ink);min-height:16px;white-space:normal;overflow-wrap:anywhere}
#room-rodeo .rr-read-value:empty{width:2.5em;height:13px;min-height:0;border-bottom:1px dashed var(--rr-rule)}
#room-rodeo .rr-read-value[data-pending]{color:var(--rr-muted);font-weight:400}
#room-rodeo .rr-read-value[data-failed]{color:var(--rr-rust);font-weight:400}
#room-rodeo .rr-read-value[data-locked]{color:var(--rr-rust)}
#room-rodeo .rr-tally,#room-rodeo .rr-meter{margin-left:auto}
#room-rodeo .rr-retry-ride{color:var(--rr-rust)}
@media(max-width:520px){#room-rodeo .rr-gate{right:14px;width:156px}#room-rodeo .rr-sign{left:10px;right:10px;font-size:14px}#room-rodeo .rr-brand{bottom:90px}#room-rodeo .rr-reads{flex-basis:100%}#room-rodeo .rr-tally{font-size:12px}}
