/* Replay map timelapse panel (stats/replay_detail.html, static/js/replay_timelapse.js).
   The map sits between the game's own Atlantean minimap corner panels; the play controls use the
   game's timeline art. Sizes: .size-s / default / .size-l on #replay-timelapse. */
.rtl{--mapw:520px;position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(300px,400px);grid-template-areas:"stage key side";gap:14px 20px;align-items:start}
.rtl.size-s{--mapw:380px}
.rtl.size-l{--mapw:700px;grid-template-columns:minmax(0,1fr);grid-template-areas:"stage" "key" "side"}
.rtl-score{display:flex;justify-content:center;align-items:stretch;gap:0;margin:0 auto;max-width:100%;background:#fff;color:#111;border:1px solid rgba(0,0,0,.25);border-radius:4px;box-shadow:0 6px 18px rgba(0,0,0,.35);overflow:hidden}
.rtl-score[hidden]{display:none}
.rtl-score .rtl-side{display:flex;align-items:center;gap:8px;padding:6px 14px;min-width:0}
.rtl-score .rtl-side i{width:10px;height:10px;border-radius:2px;background:var(--pc);flex:none}
.rtl-score .nm{font-weight:700;max-width:16ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rtl-score b{font:700 18px var(--font-title,Georgia,serif);font-variant-numeric:tabular-nums;min-width:2ch;text-align:right}
.rtl-score .l{font-size:11px;letter-spacing:.08em;color:#555}
.rtl-div{width:1px;background:rgba(0,0,0,.2);margin:6px 0}

.rtl-stage{grid-area:stage;min-width:0;display:flex;flex-direction:column;gap:10px;align-self:center}
.rtl-mapbox{position:relative;width:100%;max-width:var(--mapw);margin:0 auto}
.rtl-mapbox canvas{display:block;width:100%;height:auto;aspect-ratio:1/1}
.rtl-status{position:absolute;inset:0;display:none;align-items:center;justify-content:center;margin:0;color:var(--parchment-muted);font-size:14px}
.rtl.is-loading .rtl-status-loading,.rtl.is-error .rtl-status-error{display:flex}
.rtl-frame{position:absolute;left:50%;top:50%;aspect-ratio:1/1;pointer-events:none;background:center/100% 100% no-repeat;filter:drop-shadow(0 3px 6px rgba(0,0,0,.55))}
.rtl-frame[hidden]{display:none}
.rtl-corner{position:absolute;bottom:-1%;width:37%;background:center/100% 100% no-repeat;pointer-events:none;filter:drop-shadow(0 6px 10px rgba(0,0,0,.55))}
.rtl-corner.l{left:-1.5%;aspect-ratio:272/266}
.rtl-corner.r{right:-1.5%;aspect-ratio:256/266}
.rtl-gbtn{position:absolute;width:23%;aspect-ratio:1/1;transform:translate(-50%,-50%);border:0;padding:0;border-radius:50%;cursor:pointer;pointer-events:auto;background:center/100% 100% no-repeat var(--img)}
.rtl-gbtn:hover{background-image:var(--imgh)}
.rtl-gbtn:active{filter:brightness(.78)}
.rtl-gbtn:focus-visible,.rtl-tbtn:focus-visible{outline:2px solid var(--gold-300,#e8c46f);outline-offset:2px}
.rtl-gbtn.on{box-shadow:0 0 0 2px #e8c46f,0 0 12px rgba(232,196,111,.65)}
.rtl-gbtn:disabled{cursor:not-allowed;filter:grayscale(.8) brightness(.55)}
.rtl-gbtn:disabled:hover{background-image:var(--img)}
.rtl-gbtn.layered{background:center/58% 58% no-repeat var(--icon),center/100% 100% no-repeat var(--base)}
.rtl-gbtn.layered:hover{background:center/58% 58% no-repeat var(--icon),center/100% 100% no-repeat var(--baseh)}
.rtl-tip{position:absolute;z-index:5;pointer-events:none;background:rgba(8,13,24,.97);color:var(--parchment-soft,#efe6d2);border:1px solid rgba(232,196,111,.45);font-size:13px;padding:7px 10px;border-radius:6px;max-width:300px;line-height:1.35;box-shadow:0 22px 54px rgba(0,0,0,.44)}
.rtl-tip .t{color:var(--gold-300,#e8c46f)}

.rtl-bar{width:100%;max-width:max(var(--mapw),520px);margin:6px auto 0;padding:10px 14px 8px;display:flex;flex-direction:column;gap:6px;background:#141414 center/100% 100% no-repeat;border:1px solid rgba(232,196,111,.35);border-radius:4px;box-sizing:border-box}
.rtl-timeline{display:flex;align-items:center;gap:10px}
.rtl-clock{font:400 20px var(--font-title,Georgia,serif);color:#fff;min-width:3.6em}
.rtl-end{font:400 14px var(--font-title,Georgia,serif);color:var(--parchment-muted);min-width:3.2em;text-align:right}
.rtl-scrub{flex:1;min-width:0;height:22px;background:transparent;-webkit-appearance:none;appearance:none}
.rtl-scrub::-webkit-slider-runnable-track{height:5px;border-radius:3px;background:linear-gradient(90deg,#e8c46f var(--pct,100%),#3a3a3a var(--pct,100%));border:1px solid #000}
.rtl-scrub::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;margin-top:-6px;transform:rotate(45deg);background:linear-gradient(135deg,#fff0bc,#c99a3e);border:1.5px solid #1a1206}
.rtl-scrub::-moz-range-track{height:5px;border-radius:3px;background:#3a3a3a;border:1px solid #000}
.rtl-scrub::-moz-range-progress{height:5px;background:#e8c46f}
.rtl-scrub::-moz-range-thumb{width:14px;height:14px;transform:rotate(45deg);border-radius:0;background:#e8c46f;border:1.5px solid #1a1206}
.rtl-btns{display:flex;justify-content:center;align-items:center;gap:6px}
.rtl-tbtn{width:57px;height:46px;border:0;padding:0;cursor:pointer;background:center/100% 100% no-repeat var(--img)}
.rtl-tbtn.rtl-play{width:66px;height:53px}
.rtl-tbtn:hover{background-image:var(--imgh)}
.rtl-tbtn:active{filter:brightness(.78)}
.rtl-speed{font:400 15px var(--font-title,Georgia,serif);color:var(--gold-100,#fff0bc);min-width:3em;margin-left:4px}

.rtl-layers{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 18px;font-size:14px;color:var(--parchment-muted)}
.rtl-layers label{display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.rtl-layers input{accent-color:var(--gold-300,#e8c46f)}
.rtl-switch input{position:absolute;opacity:0;width:1px;height:1px}
.rtl-switch span{width:34px;height:18px;border-radius:999px;background:rgba(5,10,17,.8);border:1px solid rgba(213,177,101,.55);position:relative;transition:background 170ms ease}
.rtl-switch span::after{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:var(--gold-100,#fff0bc);transition:transform 170ms ease}
.rtl-switch input:checked+span{background:rgba(232,196,111,.45)}
.rtl-switch input:checked+span::after{transform:translateX(16px)}
.rtl-switch input:focus-visible+span{outline:2px solid var(--gold-300,#e8c46f);outline-offset:2px}

.rtl>.rtl-side{grid-area:side;min-width:0;align-self:start;display:flex;flex-direction:column;gap:12px}
.rtl>.rtl-side>h3{margin:0}
.rtl-heatp{background:rgba(5,10,17,.8);color:var(--parchment-soft,#efe6d2);border:1px solid rgba(213,177,101,.45);border-radius:6px;padding:2px 6px;font-size:12.5px}
.rtl-heatp:focus-visible{outline:2px solid var(--gold-300,#e8c46f);outline-offset:2px}
.rtl-legend{grid-area:key;align-self:center;width:190px;box-sizing:border-box;padding:10px 12px 12px;background:rgba(5,10,17,.42);border:1px solid rgba(232,196,111,.16);border-radius:8px}
.rtl.size-l .rtl-legend{width:100%;max-width:700px;margin:0 auto}
.rtl-legend h3{margin:0 0 8px}
.rtl-key-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:6px 18px;align-items:start}
.rtl .rtl-legend .rtl-key-group h4{margin:0 0 4px;font-weight:700;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-300,#e8c46f)}
.rtl-key-group ul{list-style:none;margin:0;padding:0;font-size:12.5px;color:var(--parchment-soft,#efe6d2)}
.rtl-key-group li{display:grid;grid-template-columns:18px minmax(0,1fr);gap:8px;align-items:center;padding:2px 6px;border-radius:4px}
.rtl-key-group li:nth-child(odd){background:rgba(255,255,255,.035)}
.rtl-key-group .k{display:flex;align-items:center;justify-content:center;height:16px}
.rtl-key-group i{display:inline-block;width:11px;height:11px;border-radius:2px}
.rtl-key-group i.dot{border-radius:50%;width:9px;height:9px}
.rtl-key-group img{width:15px;height:15px;filter:drop-shadow(0 0 1px #000)}
.rtl-note{margin:0 auto;max-width:38ch;text-align:center;font-style:italic;font-size:12.5px;line-height:1.45;color:var(--parchment-muted);opacity:.85}
.rtl-side h3{margin:0 0 8px;font:400 15px var(--font-title,Georgia,serif);letter-spacing:.06em;color:var(--gold-300,#e8c46f)}
.rtl-moment{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.rtl-mcol{display:flex;flex-direction:column;gap:6px;min-width:0;padding:10px 12px 12px;background:rgba(5,10,17,.42);border:1px solid rgba(232,196,111,.16);border-top:3px solid var(--pc);border-radius:8px;box-shadow:inset 0 1px 0 rgba(255,255,255,.03)}
.rtl-mcol .who{display:flex;align-items:center;gap:7px;font:400 16px var(--font-title,Georgia,serif);color:var(--parchment-soft,#efe6d2);overflow-wrap:anywhere}
.rtl-mcol .who i{width:10px;height:10px;border-radius:50%;flex:none;background:var(--pc)}
.rtl-mcol .age{font:400 19px var(--font-title,Georgia,serif);color:var(--gold-100,#fff0bc)}
.rtl-mcol .sub{margin-top:-6px;font-size:12px;color:var(--parchment-muted)}
.rtl-mcol dl{display:grid;grid-template-columns:auto 1fr;margin:4px 0 0;font-size:13px;border-radius:5px;overflow:hidden}
.rtl-mcol dt,.rtl-mcol dd{padding:2px 6px}
.rtl-mcol dt:nth-of-type(odd),.rtl-mcol dd:nth-of-type(odd){background:rgba(255,255,255,.035)}
.rtl-mcol dt{color:var(--parchment-muted)}
.rtl-mcol dd{margin:0;text-align:right;font-variant-numeric:tabular-nums;color:var(--parchment-soft,#efe6d2)}
.rtl-mcol ul{list-style:none;margin:6px 0 0;padding:8px 0 0;height:calc(7.5em + 8px);overflow:hidden;border-top:1px solid rgba(232,196,111,.14);display:flex;flex-direction:column;gap:2px;font-size:12.5px;color:var(--parchment-soft,#efe6d2)}
.rtl-mcol li{display:grid;grid-template-columns:3.2em minmax(0,1fr);gap:6px;line-height:1.5}
.rtl-mcol li>span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rtl-mcol .sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rtl-mcol li .t{color:var(--gold-300,#e8c46f);font-variant-numeric:tabular-nums}
.rtl-mcol li i,.rtl-side .none{color:var(--parchment-muted);font-style:normal}
.rtl-feedbox{display:flex;flex-direction:column;gap:8px;padding:10px 12px 12px;background:rgba(5,10,17,.42);border:1px solid rgba(232,196,111,.16);border-radius:8px}
.rtl-feedhead{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.rtl-feedhead h3{margin:0}
.rtl-feedp{background:rgba(5,10,17,.8);color:var(--parchment-soft,#efe6d2);border:1px solid rgba(213,177,101,.45);border-radius:6px;padding:3px 6px;font-size:12.5px}
.rtl-chips{display:flex;flex-wrap:wrap;gap:5px}
.rtl-chip{font-weight:700;font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--gold-100,#fff0bc);background:rgba(20,34,58,.85);border:1px solid rgba(213,177,101,.45);border-radius:6px;padding:3px 8px;cursor:pointer}
.rtl-chip[aria-pressed="true"]{background:rgba(232,196,111,.2);border-color:var(--gold-300,#e8c46f)}
.rtl-chip:focus-visible,.rtl-feedp:focus-visible{outline:2px solid var(--gold-300,#e8c46f);outline-offset:2px}
.rtl-feed{height:320px;overflow-y:auto;scrollbar-color:rgba(213,177,101,.4) transparent}
.rtl-feed li[data-t]{cursor:pointer;border-radius:4px;padding:3px 6px}
.rtl-feed li[data-t]:nth-child(odd){background:rgba(255,255,255,.035)}
.rtl-feed li[data-t]:hover{background:rgba(232,196,111,.08)}
.rtl-feedcount{margin:0;font-size:12px;color:var(--parchment-muted)}
.rtl-feed{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--parchment-soft,#efe6d2)}
.rtl-feed li{display:grid;grid-template-columns:3.2em 8px 1fr;gap:8px;align-items:baseline}
.rtl-feed .t{color:var(--gold-300,#e8c46f);font-variant-numeric:tabular-nums}
.rtl-feed .d{width:8px;height:8px;border-radius:2px;align-self:center}
.rtl-feed li.atk>span:last-child{color:#ffc4b8}

@media (max-width:1100px){
  .rtl{grid-template-columns:minmax(0,1fr) minmax(300px,400px);grid-template-areas:"stage side" "key side";grid-template-rows:auto 1fr}
  .rtl-stage{align-self:start}
  .rtl-legend{width:100%;max-width:max(var(--mapw),520px);margin:0 auto}
}
@media (max-width:900px){
  .rtl{grid-template-columns:minmax(0,1fr);grid-template-areas:"stage" "key" "side";grid-template-rows:auto}
}
@media (max-width:520px){
  .rtl-score .rtl-side{padding:5px 8px;gap:5px}
  .rtl-score .nm{max-width:12ch}
  .rtl-score .l{display:none}
  .rtl-score b{font-size:16px}
  .rtl-tbtn{width:46px;height:37px}
  .rtl-tbtn.rtl-play{width:54px;height:43px}
  .rtl-clock{font-size:17px}
}
@media (prefers-reduced-motion:reduce){.rtl-switch span,.rtl-switch span::after{transition:none}}

/* god portraits on the player cards */
.rtl-mcol .who{align-items:center}
.rtl-mcol .who img.god{width:30px;height:30px;border-radius:50%;object-fit:cover;flex:none;border:2px solid var(--pc);box-shadow:0 0 0 1px rgba(0,0,0,.6)}
.rtl-mcol .who>span{display:flex;flex-direction:column;min-width:0;line-height:1.15}
.rtl-mcol .who .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rtl-mcol .who small{font-weight:400;font-size:11.5px;color:var(--parchment-muted)}
/* slider with event marks */
.rtl-track{position:relative;flex:1;min-width:0;display:flex;align-items:center}
.rtl-track .rtl-scrub{width:100%}
.rtl-ticks{position:absolute;inset:0;pointer-events:none}
.rtl-tick{position:absolute;padding:0;border:0;cursor:pointer;pointer-events:auto;background:var(--pc)}
.rtl-tick.age{top:1px;height:20px;width:3px;margin-left:-1.5px;border-radius:1px;box-shadow:0 0 0 1px rgba(0,0,0,.75)}
.rtl-tick.gp{top:50%;width:7px;height:7px;margin:-3.5px 0 0 -3.5px;transform:rotate(45deg);background:#96dcff;box-shadow:0 0 0 1.5px var(--pc),0 0 0 2.5px rgba(0,0,0,.7)}
.rtl-tick.mom{top:-7px;width:11px;height:10px;margin-left:-5.5px;background:#ffd166;clip-path:polygon(0 0,100% 0,50% 100%);filter:drop-shadow(0 0 1px #000)}
/* a fight: a red bar just under the slider line, as long as the fight lasted (under the line, so the slider stays draggable above it) */
.rtl-tick.fight{top:calc(50% + 6px);height:5px;min-width:5px;border-radius:2px;background:#e8503c;box-shadow:0 0 0 1px rgba(0,0,0,.75)}
.rtl-tick:hover,.rtl-tick:focus-visible{filter:brightness(1.35);outline:none;z-index:1}
.rtl-ttip{position:absolute;bottom:calc(100% + 8px);transform:translateX(-50%);white-space:nowrap;pointer-events:none;z-index:7;padding:4px 9px;background:rgba(8,13,24,.97);border:1px solid rgba(232,196,111,.55);border-radius:6px;box-shadow:0 8px 22px rgba(0,0,0,.5);font-size:12px;color:var(--parchment-soft,#efe6d2)}
.rtl-ttip[hidden]{display:none}
.rtl-tbtn.rtl-flip{transform:scaleX(-1)}
.rtl-tbtn:disabled{opacity:.35;cursor:default;filter:grayscale(.4)}
.rtl-tbtn:disabled:hover{background-image:var(--img)}
.rtl-tbtn[hidden]{display:none}
/* key-moment buttons */
.rtl-moments{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;width:100%;max-width:max(var(--mapw),520px);margin:0 auto}
.rtl-moments[hidden]{display:none}
.rtl-mom{display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 4px;border-radius:999px;cursor:pointer;font-weight:600;font-size:12px;color:var(--parchment-soft,#efe6d2);background:rgba(5,10,17,.6);border:1px solid rgba(213,177,101,.35);box-shadow:inset 3px 0 0 var(--pc)}
.rtl-mom img{width:20px;height:20px;object-fit:contain}
.rtl-mom i{width:8px;height:8px;border-radius:50%;background:var(--pc);margin-left:5px}
.rtl-mom .t{color:var(--gold-300,#e8c46f);font-variant-numeric:tabular-nums}
.rtl-mom:hover{border-color:var(--gold-300,#e8c46f)}
.rtl-mom.past{opacity:.55}
.rtl-mom:focus-visible{outline:2px solid var(--gold-300,#e8c46f);outline-offset:2px}
/* controls help, in the timeline bar */
.rtl-help{position:relative;margin-left:2px}
.rtl-help summary{list-style:none;cursor:pointer;display:flex;border-radius:50%}
.rtl-help summary::-webkit-details-marker{display:none}
.rtl-help summary img{display:block;filter:drop-shadow(0 1px 2px rgba(0,0,0,.6))}
.rtl-help summary:hover img{filter:brightness(1.15) drop-shadow(0 1px 2px rgba(0,0,0,.6))}
.rtl-help summary:focus-visible{outline:2px solid var(--gold-300,#e8c46f);outline-offset:2px}
.rtl-help-body{position:absolute;right:-8px;bottom:calc(100% + 10px);z-index:6;width:min(320px,80vw);padding:12px 14px;background:rgba(8,13,24,.98);border:1px solid rgba(232,196,111,.5);border-radius:8px;box-shadow:0 18px 40px rgba(0,0,0,.55);font-size:12.5px;line-height:1.45;color:var(--parchment-soft,#efe6d2)}
.rtl .rtl-help-body h4{margin:0 0 6px;font:400 14px var(--font-title,Georgia,serif);color:var(--gold-300,#e8c46f);letter-spacing:.05em}
.rtl-help-body ul{margin:0;padding-left:16px;display:flex;flex-direction:column;gap:4px}
.rtl-help-body b{color:var(--gold-100,#fff0bc);font-weight:600}
.rtl-mapbox canvas:focus-visible{outline:2px solid var(--gold-300,#e8c46f);outline-offset:4px}

/* team games: the APM bar groups players by team, one line each */
.rtl-score.is-team{flex-direction:column;align-items:stretch;padding:2px 0}
.rtl-score.is-team .cap{align-self:center;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:#666;padding:3px 0 0}
.rtl-score.is-team .rtl-team{display:flex;flex-wrap:wrap;justify-content:center}
.rtl-score.is-team .rtl-team+.rtl-team{border-top:1px solid rgba(0,0,0,.18)}
.rtl-score.is-team .rtl-side{padding:4px 9px;gap:6px}
.rtl-score.is-team .nm{max-width:9ch;font-size:13px}
.rtl-score.is-team b{font-size:15px}
.rtl-score.is-team .l{display:none}
/* team games: one compact table row per player instead of a card each */
.rtl-moment.is-table{display:block}
.rtl-mtable{width:100%;border-collapse:separate;border-spacing:0;font-size:12.5px;color:var(--parchment-soft,#efe6d2);background:rgba(5,10,17,.42);border:1px solid rgba(232,196,111,.16);border-radius:8px;overflow:hidden}
.rtl-mtable thead th{font-weight:700;font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--gold-300,#e8c46f);text-align:right;padding:6px 6px 5px;border-bottom:1px solid rgba(232,196,111,.2)}
.rtl-mtable thead th:first-child{text-align:left;padding-left:10px}
.rtl-mtable tr.team th{text-align:left;font-weight:700;font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--parchment-muted);padding:6px 10px 3px;background:rgba(255,255,255,.02)}
.rtl-mtable td{padding:3px 6px;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.rtl-mtable tbody tr:not(.team):nth-child(even) td{background:rgba(255,255,255,.035)}
.rtl-mtable td.who{text-align:left;padding-left:7px;box-shadow:inset 3px 0 0 var(--pc)}
.rtl-mtable td.who .wi{display:flex;align-items:center;gap:6px;max-width:150px;min-width:0}
.rtl-mtable td.who img.god{width:18px;height:18px;border-radius:50%;object-fit:cover;flex:none;border:1.5px solid var(--pc)}
.rtl-mtable td.who i{width:9px;height:9px;border-radius:50%;flex:none;background:var(--pc)}
.rtl-mtable td.who .nm{overflow:hidden;text-overflow:ellipsis;min-width:0}
@media (max-width:520px){
  .rtl-mtable td,.rtl-mtable thead th{padding-left:4px;padding-right:4px}
  .rtl-mtable td.who .wi{max-width:104px;gap:4px}
  .rtl-mtable.has-atk td.who .wi{max-width:78px}  /* the attack-orders column takes its room from the name */
  .rtl-mtable td.who img.god{width:15px;height:15px}
}

/* a styled tooltip for the panel's controls, placed above the pointer (clear of the game cursor) */
.rtl-hint{position:absolute;z-index:8;pointer-events:none;max-width:280px;padding:5px 9px;background:rgba(8,13,24,.97);border:1px solid rgba(232,196,111,.55);border-radius:6px;box-shadow:0 8px 22px rgba(0,0,0,.5);font-size:12.5px;line-height:1.35;color:var(--parchment-soft,#efe6d2)}
.rtl-hint[hidden]{display:none}
