/* LETTER RUSH (assets/rush.js). Builds on assets/loop.css (start screen, chips, results, class mode). */
:root{--rs-a:#4F46E5;--rs-b:#A855F7;--rs-c:#6D5CF0;--rs-ink:#1E1B3A;--rs-lav:#EEEBFF;--rs-lav2:#F6F4FF;--rs-line:#DCD6FB;--rs-bad:#C2364B;--rs-badbg:#FDECEF}
.rs-h1 span{color:var(--rs-a)}
.rs-cats-g{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.rs-cats-g h3{margin:0 0 6px;font-size:16px}.rs-cats-g ul{margin:0;padding-left:18px;line-height:1.7;color:var(--muted)}
@media(max-width:760px){.rs-cats-g{grid-template-columns:1fr}}

/* the start screen */
.rs-cont{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between;padding:12px 16px;margin-bottom:6px;border-radius:16px;background:var(--rs-lav2);border:1.5px solid var(--rs-line)}
.rs-count{margin:0 0 10px}
.rs-clist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px}
.rs-c{display:flex;align-items:center;gap:4px;padding:4px 4px 4px 12px;border-radius:14px;border:1.5px solid var(--rs-line);background:#fff;transition:opacity .15s,background-color .15s}
.rs-c.off{background:#f7f7fa;opacity:.6}
.rs-c label{flex:1;display:flex;align-items:center;gap:10px;min-height:44px;font-weight:700;font-size:15px;cursor:pointer;min-width:0}
.rs-c label span{min-width:0}
.rs-c input{width:20px;height:20px;flex:0 0 auto;accent-color:var(--rs-a)}
.rs-tag{flex:0 0 auto;padding:1px 7px;border-radius:7px;background:var(--rs-lav);color:var(--rs-a);font-size:11.5px;font-weight:800}.rs-mine{background:#fff3d6;color:#7a4b00}
.rs-pin,.rs-del{flex:0 0 auto;width:40px;height:40px;border:0;border-radius:10px;background:none;font-size:17px;cursor:pointer;touch-action:manipulation;filter:grayscale(1);opacity:.45}
.rs-pin[aria-pressed=true]{filter:none;opacity:1;background:var(--rs-lav)}
.rs-del{filter:none;opacity:1;font-size:22px;color:var(--muted)}.rs-del:disabled{opacity:.3;cursor:default}
@media(hover:hover){.rs-pin:hover{opacity:.8}.rs-del:not(:disabled):hover{color:var(--rs-bad)}}
.rs-add{display:flex;gap:8px;margin-top:12px}.rs-add input{flex:1;min-width:0;min-height:46px;border:1.5px solid var(--rs-line);border-radius:12px;padding:8px 12px;font:inherit;font-size:16px}
.rs-add input:focus{outline:none;border-color:var(--rs-a);box-shadow:0 0 0 4px #4f46e522}
.rs-note{margin:8px 0 0}.rs-addmsg{min-height:1.3em;margin:4px 0 0;font-weight:700;color:var(--rs-a)}
.rs-lgrid{display:grid;grid-template-columns:repeat(13,1fr);gap:6px;max-width:640px}
.rs-l{aspect-ratio:1;min-height:40px;border:1.5px solid var(--rs-line);border-radius:10px;background:#f7f7fa;font:800 16px/1 var(--display,system-ui);color:#a3a0b8;cursor:pointer;touch-action:manipulation;text-decoration:line-through}
.rs-l[aria-pressed=true]{background:var(--rs-a);border-color:var(--rs-a);color:#fff;text-decoration:none}
.rs-tedit{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px}
.rs-trow{display:flex;gap:4px;align-items:center}.rs-trow input{flex:1;min-width:0;min-height:46px;border:1.5px solid var(--rs-line);border-radius:12px;padding:8px 12px;font:inherit;font-size:16px}
.rs-tadd{min-height:46px}
.rs-err{min-height:1.3em;margin:8px 0 0;font-weight:800;color:var(--rs-bad)}
@media(max-width:520px){.rs-lgrid{grid-template-columns:repeat(7,1fr)}.rs-add{flex-direction:column}}

/* the game: the whole screen, for a projector (16:9) */
.rs-class{position:fixed;inset:0;z-index:1000;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:1.6vmin;padding:1.8vmin 2.4vmin 2.2vmin;background:radial-gradient(circle at 15% 0%,#fff 0,var(--rs-lav2) 45%,var(--rs-lav) 100%);color:var(--rs-ink);overflow:hidden}
.rs-top{display:flex;align-items:center;gap:2.4vmin;min-width:0}
.rs-brand{font:900 3.4vmin/1 var(--display,system-ui);letter-spacing:.02em;white-space:nowrap}.rs-brand span{color:var(--rs-a)}
.rs-info{display:flex;align-items:baseline;gap:1.6vmin;white-space:nowrap}.rs-info b{font:800 3.4vmin/1 var(--display,system-ui)}.rs-info span{font-weight:700;font-size:2.4vmin;color:#6c66a8}
.rs-tools{margin-left:auto;display:flex;gap:1vmin;align-items:stretch}
.rs-tool{min-height:5.6vmin;padding:0 1.8vmin;border:0;border-radius:1.6vmin;background:#fffb;font:700 2vmin/1 inherit;font-family:inherit;color:#4a4670;cursor:pointer;white-space:nowrap}
@media(hover:hover){.rs-tool:hover{background:#fff}}
.rs-x{width:6.4vmin;min-height:5.6vmin}
.rs-main{display:grid;grid-template-columns:minmax(0,38vmin) minmax(0,1fr) minmax(0,34vmin);gap:2.6vmin;min-height:0}
.rs-class.no-scores .rs-main{grid-template-columns:minmax(0,44vmin) minmax(0,1fr)}.rs-class.no-scores .rs-scores{display:none}
/* with the examples, the board takes the wheel’s place */
.rs-class.show-ex .rs-main{grid-template-columns:minmax(0,1fr) minmax(0,34vmin)}.rs-class.show-ex.no-scores .rs-main{grid-template-columns:minmax(0,1fr)}.rs-class.show-ex .rs-wcol{display:none}

/* the wheel, with Finn or Loop */
.rs-wcol{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:0;gap:1vmin}
.rs-wheel{width:100%;max-height:100%;height:auto;display:block;overflow:visible;filter:drop-shadow(0 1.2vmin 2.4vmin #2b1f7a26)}
.rs-wg{transform-origin:110px 110px;transition:transform 3.2s cubic-bezier(.15,.75,.1,1)}
.rs-rim{fill:#fff}
.rs-seg path{stroke:#fff;stroke-width:1.2}
.rs-seg text{font:800 13px/1 var(--display,system-ui);fill:#fff;pointer-events:none}
.rs-seg.c0 path{fill:var(--rs-a)}.rs-seg.c1 path{fill:var(--rs-c)}.rs-seg.c2 path{fill:var(--rs-b)}
.rs-seg.off path{fill:#E7E5F0}.rs-seg.off text{fill:#B3B0C6}
.rs-seg.used path{fill:#CFCAEE}.rs-seg.used text{fill:#fff;opacity:.85}
.rs-seg.now path{fill:#F59E0B}
.rs-hub{fill:#fff;stroke:var(--rs-line);stroke-width:2}.rs-hubt{font:900 26px/1 var(--display,system-ui);fill:var(--rs-a)}
.rs-ptr{fill:var(--rs-ink);stroke:#fff;stroke-width:2;stroke-linejoin:round}
.rs-spinner{position:absolute;left:-1vmin;bottom:3vmin;width:13vmin;height:auto;pointer-events:none}
.rs-wcap{margin:0;font-weight:800;font-size:2.2vmin;color:#6c66a8;min-height:1.2em;text-align:center}

/* the board: the letter, the clock and the categories */
.rs-board{display:flex;flex-direction:column;gap:2vmin;min-height:0;min-width:0}
.rs-bhead{display:flex;align-items:center;gap:3vmin}
.rs-letter{flex:0 0 auto;display:grid;place-items:center;width:18vmin;height:18vmin;border-radius:3.4vmin;background:var(--rs-a);color:#fff;font:900 13vmin/1 var(--display,system-ui);box-shadow:0 1.2vmin 3vmin #4f46e540}
.rs-letter.empty{background:#fff;color:#cfc9f0;box-shadow:inset 0 0 0 .5vmin var(--rs-line)}
.rs-letter.pop{animation:rs-pop .55s cubic-bezier(.34,1.56,.64,1)}@keyframes rs-pop{from{transform:scale(.4) rotate(-12deg)}}
.rs-clockbox{min-width:0}
.rs-clock{font:900 11vmin/1 var(--display,system-ui);font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--rs-ink)}.rs-clock.low{color:var(--rs-bad)}
.rs-hint{margin:.6vmin 0 0;font:800 2.8vmin/1.2 var(--display,system-ui);color:#4a4670}
.rs-rows{--n:5;--fs:min(3.6vmin,22vmin / var(--n));list-style:none;margin:0;padding:0;flex:1;min-height:0;display:grid;grid-template-rows:repeat(var(--n),minmax(0,1fr));gap:1vmin;counter-reset:none}
.rs-rows li{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:0 2vmin;padding:0 2.4vmin;border-radius:2vmin;background:#fff;border:.3vmin solid var(--rs-line);min-height:0;overflow:hidden}
.rs-rows.ex li{grid-template-columns:auto minmax(0,1.3fr) minmax(0,1fr)}
.rs-n{display:grid;place-items:center;width:calc(var(--fs) * 1.5);aspect-ratio:1;border-radius:1.2vmin;background:var(--rs-lav);color:var(--rs-a);font:900 calc(var(--fs) * .75)/1 var(--display,system-ui)}
.rs-cl{font-weight:800;font-size:var(--fs);line-height:1.12;color:var(--rs-ink);text-wrap:balance}
.rs-ex{font-weight:800;font-size:calc(var(--fs) * .9);line-height:1.2;color:var(--good)}.rs-ex.none{color:var(--muted);font-weight:700}

/* the scores */
.rs-scores{display:flex;flex-direction:column;gap:1.2vmin;min-height:0;padding:2vmin;border-radius:3vmin;background:#fffc;border:.3vmin solid var(--rs-line)}
.rs-sh{display:flex;justify-content:space-between;align-items:center}.rs-sh h2{margin:0;font:900 3.2vmin/1 var(--display,system-ui)}
.rs-edit{border:0;background:var(--rs-lav);border-radius:1.2vmin;padding:1vmin 1.6vmin;font:inherit;font-weight:800;font-size:2vmin;color:var(--rs-a);cursor:pointer}
.rs-sl{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1vmin;overflow-y:auto;min-height:0}
.rs-sl li{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(8vmin,auto) auto;align-items:center;gap:.6vmin 1vmin;padding:1.2vmin 1.4vmin;border-radius:2vmin;background:#fff;border:.25vmin solid var(--rs-line)}
.rs-tn{grid-column:1/-1;font:800 2.8vmin/1.15 var(--display,system-ui);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rs-rd{grid-row:2;grid-column:1;font-weight:700;font-size:1.9vmin;color:#6c66a8}
.rs-pm{grid-row:2;width:6vmin;height:6vmin;border:0;border-radius:1.6vmin;background:var(--rs-lav);color:var(--rs-a);font:900 4vmin/1 var(--display,system-ui);cursor:pointer;touch-action:manipulation;transition:transform .12s}
.rs-pm{grid-column:2}.rs-pm:last-child{grid-column:4;background:var(--rs-a);color:#fff}.rs-pm:active{transform:scale(.94)}
.rs-tot{grid-row:2;grid-column:3;min-width:8vmin;height:6.4vmin;border:0;border-radius:1.6vmin;background:none;font:900 4.6vmin/1 var(--display,system-ui);color:var(--rs-ink);font-variant-numeric:tabular-nums;cursor:text}
.rs-totin{grid-row:2;grid-column:3;width:10vmin;height:6.4vmin;border:.3vmin solid var(--rs-a);border-radius:1.6vmin;font:900 3.6vmin/1 var(--display,system-ui);text-align:center}
.rs-sl li:has(.rs-sname){grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto}
.rs-sname{min-width:0;height:5.6vmin;border:.25vmin solid var(--rs-line);border-radius:1.4vmin;padding:0 1.4vmin;font:inherit;font-weight:700;font-size:2.4vmin}
.rs-scores .rs-del{width:5.6vmin;height:5.6vmin;font-size:3.4vmin}
.rs-scores .rs-tadd{min-height:5.6vmin;font-size:2.2vmin;border-radius:1.6vmin}

/* the buttons under the board */
.rs-acts{display:flex;justify-content:center;gap:1.6vmin;min-height:10vmin}
.rs-go{min-height:10vmin;padding:0 5vmin;font-size:3.4vmin;border-radius:2.4vmin}
.rs-sec{min-height:10vmin;padding:0 3.4vmin;font-size:2.8vmin;border-radius:2.4vmin;background:#fff;border:.3vmin solid var(--rs-line);color:var(--rs-ink)}
.rs-go:disabled{opacity:.6;cursor:default}
.rs-stop{min-height:10vmin;min-width:50vmin;padding:0 6vmin;border:0;border-radius:2.4vmin;background:var(--rs-bad);color:#fff;font:900 5.6vmin/1 var(--display,system-ui);letter-spacing:.06em;cursor:pointer;box-shadow:0 1vmin 0 #8f2234;touch-action:manipulation;transition:transform .1s,box-shadow .1s}
.rs-stop:active{transform:translateY(.6vmin);box-shadow:0 .4vmin 0 #8f2234}

/* STOP! / Time's up */
.rs-flash{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2vmin;background:#f6f4ffd9;pointer-events:none;text-align:center}
.rs-flash[hidden]{display:none}.rs-flash b{font:900 18vmin/1 var(--display,system-ui);color:var(--rs-bad);letter-spacing:.04em}.rs-flash span{font:800 4vmin/1.2 var(--display,system-ui);color:var(--rs-ink)}
.rs-flash.in b{animation:rs-pop .5s cubic-bezier(.34,1.56,.64,1)}

/* tablets in portrait and other tall screens */
@media(max-aspect-ratio:1/1){
  .rs-main,.rs-class.no-scores .rs-main{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}
  .rs-wcol{grid-column:1;grid-row:1;max-height:30vh}.rs-wheel{width:auto;height:26vh}.rs-spinner{width:9vh;left:0;bottom:0}
  .rs-scores{grid-column:2;grid-row:1;max-height:30vh}
  .rs-board{grid-column:1/-1;grid-row:2}
  .rs-tool{font-size:1.8vmin}.rs-brand{display:none}.rs-top{flex-wrap:wrap;row-gap:1vmin}
  .rs-class.show-ex .rs-main{grid-template-columns:minmax(0,1fr)}.rs-class.show-ex .rs-scores{grid-column:1;max-height:22vh}
  .rs-letter{width:14vmin;height:14vmin;font-size:10vmin}.rs-clock{font-size:9vmin}
}
@media(max-aspect-ratio:16/10){.rs-brand{display:none}.rs-tool{padding:0 1.4vmin}}

/* the final ranking */
.rs-final-m{display:flex;justify-content:center;gap:10px}.rs-final-m img{width:120px;height:auto}
.rs-rank{list-style:none;margin:16px auto;padding:0;max-width:520px;display:flex;flex-direction:column;gap:8px}
.rs-rank li{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:12px 18px;border-radius:16px;background:var(--rs-lav2);border:1.5px solid var(--rs-line);text-align:left}
.rs-rank li.win{background:#fff;border-color:var(--rs-a);box-shadow:0 0 0 4px #4f46e51f}
.rs-rk{font:900 20px/1 var(--display,system-ui);color:var(--rs-a)}.rs-rank b{font-size:18px;overflow-wrap:anywhere}.rs-rank strong{font:900 22px/1 var(--display,system-ui);color:var(--rs-a);white-space:nowrap}

/* the printed sheet */
.rs-print{display:none}
@media print{
  body.rs-printing>*:not(.rs-print){display:none!important}
  body.rs-printing .rs-print{display:block;color:#000;font:13px/1.3 system-ui,sans-serif}
  .rs-phead{display:flex;justify-content:space-between;gap:12px;margin-bottom:6px}.rs-phead b{font-size:15px;letter-spacing:.04em}
  .rs-print table{width:100%;border-collapse:collapse}
  .rs-print th,.rs-print td{border:1px solid #555;padding:6px 8px;text-align:left;vertical-align:top}
  .rs-pround{height:24.5vh;break-inside:avoid;padding-bottom:8px;margin-bottom:8px;border-bottom:1px dashed #999}
  .rs-pround th{width:42%;font-weight:700}.rs-pround td{height:26px}.rs-pround .rs-ppt{width:12%}
  .rs-pgame th{font-size:11px;font-weight:700}.rs-pgame td{height:64px}.rs-pgame th:first-child,.rs-pgame th:last-child{width:8%}
}

@media(prefers-reduced-motion:reduce){.rs-wg{transition:none}.rs-letter.pop,.rs-flash.in b{animation:none}.rs-pm,.rs-stop,.rs-c{transition:none}}
