:root{
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:#4B4B4B;
  background:#F2F1E6;
  line-height:1.45;
  --charcoal:#4B4B4B;
  --cream:#F2F1E6;
  --move-pill-height:46px;
  --move-pill-font-size:1rem;
  --move-text-size:16px;
  --darkbox:#4B4B4B;
}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;background:#fff}
.shell{width:min(760px,100%);margin:auto;padding:24px 16px 48px}
.brand{text-align:center;margin:10px 0 24px}
.brand h1{font-size:clamp(42px,9vw,72px);line-height:1;margin:0;letter-spacing:-0.045em}
.brand p{margin:8px 0}
.tagline{font-size:1.08rem}
.panel{background:#fff;border:3px solid var(--keyline);border-radius:0;padding:clamp(18px,4vw,32px);box-shadow:0 8px 30px rgba(75,75,75,.06)}
.hidden{display:none!important}
.homeStats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:24px}
.homeStats div{border:3px solid var(--keyline);border-radius:0;padding:18px;text-align:center}
.homeStats span{display:block;font-size:.85rem}
.homeStats strong{display:block;font-size:2rem;margin-top:4px}
button,input{font:inherit}
button{border:3px solid var(--keyline);background:#fff;color:var(--charcoal);border-radius:0;padding:11px 16px;cursor:pointer;font-weight:650;min-height:46px}
button:hover{background:#f0f0ed}
button:disabled{opacity:.45;cursor:not-allowed}
.primary{background:var(--charcoal);color:#fff}
.primary:hover{background:#2d2d2d}
.danger{background:var(--charcoal);color:#fff}
.large{display:block;width:100%;font-size:1.15rem;padding:16px}
.statusLine,.scoreLine{display:flex;justify-content:space-between;gap:14px;align-items:center}
.statusLine{font-size:1.15rem;font-weight:750}
.scoreLine{font-size:.9rem;margin:8px 0 18px;color:var(--charcoal)}

/* Start and Target */
.wordPair{text-align:center;margin:18px 0}
.wordBox{
  position:relative;
  height:92px;
  border:0;
  border-radius:0;
  padding:10px 18px;
  background:var(--charcoal);
  color:var(--cream);
  display:flex;
  align-items:center;
  justify-content:center;
}
.wordBox span{
  position:absolute;
  left:16px;
  top:50%;
  transform:translateY(-50%);
  display:block;
  font-size:.72rem;
  letter-spacing:.16em;
  color:#fff;
  font-weight:750;
}
.wordBox strong{
  display:block;
  font-size:clamp(32px,7vw,52px);
  font-weight:500;
  text-transform:uppercase;
  line-height:1;
  color:var(--cream);
  margin:0;
  max-width:76%;
  overflow-wrap:anywhere;
}
.arrow{font-size:1.8rem;line-height:1.1;margin:5px 0}

/* Controls: Undo/Input/Add above Clear All/Input/Switch */
.moveControls{
  display:grid;
  grid-template-columns:minmax(105px,.8fr) minmax(0,1.7fr) minmax(105px,.8fr);
  grid-template-rows:46px 46px;
  gap:8px;
}
.moveControls input{
  grid-column:2;
  grid-row:1 / 3;
  border:3px solid var(--keyline);
  border-radius:0;
  padding:13px;
  text-transform:uppercase;
  min-width:0;
  text-align:center;
}
#undoBtn{grid-column:1;grid-row:1}
#clearAllBtn{grid-column:1;grid-row:2}
#addMoveBtn{grid-column:3;grid-row:1}
#switchBtn{grid-column:3;grid-row:2}
.inputSpacer{display:none}

/* Feedback and move list */
.message{min-height:28px;text-align:center;padding:8px;font-weight:650}
.message.error{color:#8b0000}
.message.success{color:#165d16}
.routeList{margin:8px auto 18px;width:100%;display:flex;flex-direction:column;align-items:center}
.routeEntry{
  display:flex;
  align-items:center;
  justify-content:center;
  width:calc(50% - 4px);
  min-height:46px;
  padding:8px 18px;
  margin:4px 0;
  border:3px solid var(--keyline);
  border-radius:999px;
  background:var(--cream);
  color:var(--charcoal);
  text-transform:uppercase;
  font-weight:800;
  text-align:center;
  overflow-wrap:anywhere;
}
.routeEntry.invalid{
  background:#8b0000;
  color:#fff;
  text-decoration:line-through;
}
.buttonRow{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.rulesButton{margin-top:10px}

/* Dialogs */
.dialogHeading{display:flex;align-items:center;justify-content:space-between;gap:16px}
.dialogHeading h2{margin:0}
.rulesDialogCard p{margin:10px 0 5px;line-height:1.32}
.rulesDialogCard ul{margin:5px 0 0;padding-left:22px}
.rulesDialogCard li{margin:4px 0;line-height:1.32}
.resultButtons,.shareButtons{display:grid;gap:8px}
.shareButtons{margin:14px 0 8px}
.completePair{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  margin:18px 0;
  white-space:nowrap;
  overflow-x:auto;
  padding:5px 2px;
}
.completePair strong{
  font-size:clamp(1.8rem,6vw,3.5rem);
  text-transform:uppercase;
  flex:0 0 auto;
}
.completePair span{font-size:1.8rem}
.movesLine{font-size:1.25rem;font-weight:800}
.totalMoves{font-size:1.1rem}
dialog{border:none;background:transparent;padding:0;max-width:none}
dialog::backdrop{background:rgba(75,75,75,.55)}
.dialogCard{background:#fff;border:3px solid var(--keyline);border-radius:0;padding:26px}
.dialogCard h2{margin-top:0}
.centered{text-align:center}
.dialogButtons{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:20px}
.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.75rem}
.adPlaceholder{height:180px;border:3px dashed var(--keyline);display:grid;place-items:center;margin:18px 0;background:#f5f5f3;color:var(--charcoal)}
.dialogCard .primary{width:100%}
#resultBody strong.big{display:block;font-size:3rem;margin:12px 0}
.trophy{font-size:1.2rem;font-weight:800;margin:18px 0}

@media(max-width:520px){
  .homeStats{grid-template-columns:1fr}
  .shell{padding-top:12px}
  .brand h1{font-size:48px}
  .moveControls{grid-template-columns:92px minmax(0,1fr) 92px}
  .moveControls button{padding-left:8px;padding-right:8px;font-size:.88rem}
  .routeEntry{width:calc(50% - 4px)}
  .dialogButtons{grid-template-columns:1fr}
  .wordBox{height:82px}
  .wordBox strong{font-size:clamp(27px,8vw,42px);max-width:72%}
  .wordBox span{left:11px;font-size:.62rem}
}

.tmMark{
  font-size:.26em;
  position:relative;
  top:-.24em;
  margin-left:.08em;
  letter-spacing:0;
  font-weight:400;
}
.resultDialog .dialogCard{
  min-height:360px;
  padding-top:34px;
  padding-bottom:34px;
  display:flex;
  flex-direction:column;
  justify-content:center
}
.completePair{margin-bottom:4px}
.movesLine{margin-top:2px;margin-bottom:16px;font-weight:400}
.totalMoves{font-weight:800}
.resultButtons,.shareButtons{justify-items:center}
.resultActionButton{width:auto;min-width:0}
.whatsappOnly{display:none}
.rulesDialogCard{
  box-sizing:border-box;
  max-height:calc(100dvh - 24px);
  max-height:calc(100vh - 24px);
  overflow:auto;
  overscroll-behavior:contain;
}
.shareButtons.hidden{display:none!important}
@media(max-width:700px){.whatsappOnly{display:block}}

.challengeForm{margin-top:8px;width:100%}
.challengeForm input{
  width:100%;
  min-height:46px;
  border:3px solid var(--keyline);
  border-radius:0;
  padding:12px 14px;
  color:var(--charcoal);
  background:#fff;
  text-align:center;
  text-transform:uppercase
}
.challengeForm input::placeholder{
  color:var(--charcoal);
  opacity:.72
}

.buildVersion{
  margin:14px 0 0;
  text-align:center;
  color:var(--charcoal);
  opacity:.55;
  font-size:.72rem;
}

#moveInput{border:3px solid var(--keyline)}
#gameView button:hover{background:var(--cream);color:var(--charcoal)}
#gameView .primary:hover,#gameView .danger:hover{background:var(--cream);color:var(--charcoal)}
.resultActionButton{width:calc(50% - 4px)!important;max-width:calc(50% - 4px)}
.completePair{margin-bottom:0}
.movesLine{margin-top:-2px}

#gameView{
  display:flex;
  flex-direction:column;
}
#gameView.hidden{
  display:none!important;
}
.routeList{
  flex:1 1 auto;
  min-height:190px;
  justify-content:center;
  margin-top:8px;
  margin-bottom:18px;
}




/* Wordport Player 0.8.7 — authoritative palette */
html,
body {
  background-color:#F2F1E6 !important;
}

/* The large central game/home panel stays white. */
.panel {
  background-color:#D4AF37 !important;
}

/* Requested gameplay button colour. */
#undoBtn,
#clearAllBtn,
#addMoveBtn,
#switchBtn,
#gameHowToPlayBtn,
#nextGameBtn {
  background-color:#F2F1E6 !important;
  color:#4B4B4B !important;
  border-color:#F2F1E6 !important;
}

#undoBtn:hover,
#clearAllBtn:hover,
#addMoveBtn:hover,
#switchBtn:hover,
#gameHowToPlayBtn:hover,
#nextGameBtn:hover {
  background-color:#F2F1E6 !important;
  color:#4B4B4B !important;
}

/* START, TARGET and all deliberately dark game boxes. */
.wordBox,
.primary,
.danger,
.adPlaceholder {
  background-color:#4B4B4B !important;
}

/* Input keylines requested in the darker grey. */
#moveInput,
#challengeInput,
.challengeForm input {
  border:3px solid #4B4B4B !important;
}

/* Move-list pills retain the cream fill. */
.routeEntry {
  background-color:#F2F1E6 !important;
  color:#4B4B4B !important;
  border-color:#F2F1E6 !important;
  border-radius:999px !important;
}


/* Wordport Player 0.8.8 — authoritative visual corrections */
.panel{
  box-shadow:none !important;
}

#moveInput,
#challengeInput,
.challengeForm input{
  border:2px solid #4B4B4B !important;
}

.wordBox{
  height:82px !important;
  background-color:#4B4B4B !important;
}

.wordBox strong{
  font-size:clamp(28px,7vw,48px) !important;
}

.routeEntry{
  background-color:#4B4B4B !important;
  color:#F2F1E6 !important;
  border-color:#4B4B4B !important;
}


/* Wordport Player 0.8.9 — move-list and session-result corrections */
.routeList{
  flex:0 0 auto !important;
  min-height:0 !important;
  justify-content:flex-start !important;
  align-items:center !important;
  margin-top:0 !important;
  margin-bottom:18px !important;
  padding-bottom:0 !important;
}
.routeEntry{
  flex:0 0 auto;
  margin:4px 0 !important;
}
.sessionRating{
  margin:18px 0 0;
  font-weight:400;
  font-size:1.05rem;
}


/* Wordport Player 0.9.0 — typography and move-stack alignment */
.routeList{
  flex:1 1 230px !important;
  min-height:230px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  align-items:center !important;
  margin-top:8px !important;
  margin-bottom:18px !important;
}

/* Match the visual language of the START and TARGET labels. */
.brand > p:not(.tagline),
#puzzleNumber,
#timer,
.scoreLine,
#undoBtn,
#clearAllBtn,
#addMoveBtn,
#switchBtn,
#gameHowToPlayBtn,
#nextGameBtn,
#moveInput,
#challengeInput{
  font-size:.72rem !important;
  letter-spacing:.16em !important;
  font-weight:750 !important;
  text-transform:uppercase !important;
}

#moveInput::placeholder,
#challengeInput::placeholder{
  font-size:.72rem;
  letter-spacing:.16em;
  font-weight:750;
  text-transform:uppercase;
}

.buildVersion{
  margin-bottom:1.5rem !important;
}

/* Wordport Player 0.9.1 */
.startWordBox .wordLabel{
  left:16px;
}


/* Entered move text matches the move-list pills. */
#moveInput:not(:placeholder-shown){
  font-size:1rem !important;
  letter-spacing:normal !important;
  font-weight:800 !important;
  text-transform:uppercase !important;
}

/* Wordport Player 0.9.2 refinements */
.startWordBox{
  position:relative;
}
.startWordBox .wordTimer{
  position:absolute !important;
  left:auto !important;
  right:16px !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  display:block;
  width:auto;
  margin:0;
  color:#fff;
  font-size:.72rem;
  letter-spacing:.16em;
  font-weight:750;
  line-height:1;
  text-transform:uppercase;
  text-align:right;
}

.routeList{
  flex:0 0 auto !important;
  min-height:0 !important;
  justify-content:center;
  margin-top:2px !important;
  margin-bottom:4px !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
}
.routeEntry{
  margin-top:2px !important;
  margin-bottom:2px !important;
}

/* Wordport Player 0.9.3 */
.startWordBox .wordTimer{
  font-size:1rem !important;
}
.routeList{
  flex:1 1 220px !important;
  min-height:180px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  align-items:center !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
}



/* Wordport Player 0.9.7 — single authoritative move-stack rules */
.routeStage{
  position:relative;
  width:100%;
  flex:0 0 auto;
}
.routeStage .message{
  position:absolute;
  left:0;
  right:0;
  top:0;
  min-height:var(--move-pill-height);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0 8px;
  z-index:1;
  pointer-events:none;
}
.routeStage .routeList{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:flex-start !important;
  width:100% !important;
  min-height:0 !important;
  height:auto !important;
  flex:0 0 auto !important;
  margin:0 !important;
  padding-top:var(--move-pill-height) !important;
  padding-bottom:var(--move-pill-height) !important;
  row-gap:12px !important;
}
.routeStage .routeEntry{
  min-height:var(--move-pill-height) !important;
  height:var(--move-pill-height) !important;
  margin:0 !important;
}
/* One grouped declaration guarantees the timer and pill text are identical. */
.routeStage .routeEntry,
.startWordBox .wordTimer{
  font-family:inherit !important;
  font-size:var(--move-pill-font-size) !important;
  font-weight:400 !important;
  line-height:1 !important;
  letter-spacing:0 !important;
}

/* Preserve 0.9.5 endpoint typography */
.wordBox strong{
  font-size:calc(clamp(27px, 7vw, 48px) - 5.33px) !important;
  font-weight:700 !important;
}

/* Wordport Player 0.9.8 */
.betweenWords{
  min-height:46px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0;
}
.betweenTimer,
.routeStage .routeEntry{
  font-size:var(--move-pill-font-size) !important;
}
.betweenTimer{
  color:#4B4B4B;
  font-weight:400;
  line-height:1;
  letter-spacing:normal;
  text-align:center;
}
.routeStage .routeEntry{
  font-weight:700 !important;
}

/* Wordport Player 0.9.9 */
.betweenWords{justify-content:flex-end !important;padding-right:16px}
.betweenTimer{font-size:calc(var(--move-pill-font-size) + 2px) !important;text-align:right !important}
.moveControls{grid-template-columns:minmax(105px,.8fr) minmax(0,1.7fr) minmax(105px,.8fr);grid-template-rows:46px 46px}
#undoBtn{grid-column:1;grid-row:1 / 3}
#moveInput{grid-column:2;grid-row:1 / 3}
#switchBtn{grid-column:3;grid-row:1 / 3}
.routeEntry{width:58% !important}

/* Wordport Player 1.0.0 — authoritative final rules */
.betweenTimer{
  font-size:calc(var(--move-pill-font-size) + 4px) !important;
}

#moveInput{
  border:1px solid #4B4B4B !important;
}

#challengeInput{
  border:1px solid #4B4B4B !important;
  font-weight:400 !important;
}

#undoBtn,
#switchBtn,
#moveInput,
#gameHowToPlayBtn,
#nextGameBtn{
  min-height:46px !important;
  height:46px !important;
}

/* Add Move field occupies the middle column; pills match that column width. */
.routeEntry{
  width:calc(100% - 226px) !important;
  max-width:none !important;
}

/* Wordport Player 1.0.1 */
.betweenTimer{
  font-size:24px !important;
  line-height:1 !important;
  text-align:right !important;
}
.routeEntry{
  max-width:none !important;
}
#challengeInput,
#challengeInput::placeholder{
  font-weight:400 !important;
}

/* Wordport Player 1.0.3 */
.routeEntry{max-width:none !important;}

/* Wordport Player 1.0.4 — authoritative layout */
.routeEntry{
  width:auto !important;
  max-width:none !important;
}
.sessionRating strong{font-weight:700 !important}


/* Wordport Player 1.0.8 — Daily Challenge */
.buttonRow{
  grid-template-columns:repeat(3,1fr) !important;
}
.betweenWords{
  min-height:12px !important;
  height:12px !important;
  padding:0 !important;
}
#adDialog .dialogCard{
  min-height:480px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
#adDialog .adPlaceholder{
  height:270px !important;
}
.archiveDialogCard{
  max-height:calc(100vh - 32px);
  overflow:auto;
}
.archiveIntro{
  margin-top:10px;
}
.archiveContent{
  display:grid;
  gap:16px;
  margin-top:18px;
}
.archiveDay{
  border-top:1px solid #4B4B4B;
  padding-top:14px;
}
.archiveDay:first-child{
  border-top:0;
  padding-top:0;
}
.archiveDay h3{
  margin:0 0 8px;
}
.archivePuzzle{
  margin:14px 0;
}
.archivePuzzle p{
  margin:0 0 7px;
}
.archiveRoute{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.archiveRoute span{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:6px 12px;
  border-radius:999px;
  background:#4B4B4B;
  color:#F2F1E6;
  font-size:.84rem;
  font-weight:700;
}
@media(max-width:700px){
  .buttonRow{
    grid-template-columns:1fr !important;
  }
}

/* Wordport Player 1.0.9 — direct daily launch */
#gameView.hidden{display:none}

/* Wordport Player 1.0.10: gameplay is always the initial view */
#gameView{display:block !important;}


/* Wordport Player 1.0.11 — supplied reference layout */
:root{
  --reference-panel-width:432px;
  --reference-panel-height:554px;
}
body{background:#F2F1E6 !important;}
.shell{
  width:100%;
  max-width:none;
  padding:145px 16px 42px;
  display:flex;
  flex-direction:column;
  align-items:center;
}
.brand{
  margin:0 0 22px;
}
/* Logo sizing deliberately unchanged. */
.brand h1{
  font-size:clamp(42px,9vw,72px);
}
.brand .tagline{
  margin-top:8px;
  font-size:1.08rem;
}
#gameView.panel{
  width:min(var(--reference-panel-width),calc(100vw - 32px));
  min-height:var(--reference-panel-height);
  padding:24px 44px 23px;
  border:0 !important;
  background:#fff !important;
  box-shadow:none !important;
  display:flex !important;
  flex-direction:column;
}
.gameMeta{
  margin-bottom:12px;
}
.metaRow{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  text-transform:uppercase;
  font-size:9px;
  line-height:1.2;
  letter-spacing:.17em;
  font-weight:800;
  white-space:nowrap;
}
.metaSecondary{margin-top:12px;font-size:8px;}
.metaRow strong{font-weight:800;}
.wordPair{margin:0;text-align:center;}
.wordBox{
  height:64px !important;
  padding:7px 18px !important;
  background:#4B4B4B !important;
  color:#F2F1E6 !important;
  border:0 !important;
}
.wordBox strong{
  font-size:34px !important;
  font-weight:700 !important;
  max-width:82%;
  color:#F2F1E6 !important;
}
.inlineSwitch{
  position:absolute;
  left:12px;
  top:50%;
  transform:translateY(-50%);
  z-index:2;
  width:auto !important;
  min-width:0 !important;
  min-height:0 !important;
  height:auto !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  color:#F2F1E6 !important;
  font-size:9px !important;
  line-height:1;
  letter-spacing:.16em;
  font-weight:800;
  text-transform:uppercase;
}
.inlineSwitch:hover{background:transparent !important;color:#fff !important;}
.betweenWords{
  height:8px !important;
  min-height:8px !important;
}
.moveControls{
  display:block !important;
  margin-top:8px;
}
#moveInput{
  display:block;
  width:100%;
  height:36px !important;
  min-height:36px !important;
  padding:8px 12px !important;
  border:1px solid #4B4B4B !important;
  background:#fff !important;
  color:#4B4B4B !important;
  text-align:center;
  font-size:16px !important;
  font-weight:700 !important;
  letter-spacing:.15em !important;
  text-transform:uppercase;
}
#moveInput::placeholder{color:#4B4B4B;opacity:1;}
.routeStage{
  position:relative;
  flex:1 1 auto !important;
  min-height:146px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.routeStage .message{
  position:static !important;
  min-height:22px !important;
  padding:2px 4px !important;
  font-size:10px;
}
.routeStage .routeList{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:2px !important;
  min-height:112px !important;
  padding:0 !important;
  margin:0 !important;
}
.routeStage .routeEntry{
  width:auto !important;
  min-width:0 !important;
  min-height:0 !important;
  height:auto !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  color:#4B4B4B !important;
  font-size:18px !important;
  line-height:1.35 !important;
  font-weight:700 !important;
  letter-spacing:0 !important;
  text-transform:uppercase;
}
.routeStage .routeEntry.invalid{color:#8b0000 !important;text-decoration:line-through;}
.buttonRow{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:8px !important;
  margin-top:auto;
}
#undoBtn,#nextGameBtn,#resultsArchiveBtn,#gameHowToPlayBtn{
  height:36px !important;
  min-height:36px !important;
  padding:8px 8px !important;
  border:0 !important;
  background:#F2F1E6 !important;
  color:#4B4B4B !important;
  font-size:16px !important;
  line-height:1;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-weight:800;
}
.challengeForm{margin-top:8px !important;}
#challengeInput{
  width:100%;
  height:36px !important;
  min-height:36px !important;
  padding:8px 12px !important;
  border:1px solid #4B4B4B !important;
  background:#fff !important;
  color:#4B4B4B !important;
  font-size:16px !important;
  font-weight:400 !important;
  letter-spacing:.13em;
  text-transform:uppercase;
}
#challengeInput::placeholder{color:#4B4B4B;opacity:1;font-weight:400 !important;}
.buildVersion{margin-top:14px;}
@media(max-width:560px){
  .shell{padding-top:36px;}
  #gameView.panel{padding:20px 24px;min-height:560px;}
  .metaRow{font-size:8px;letter-spacing:.11em;}
  .metaSecondary{font-size:7px;}
  .wordBox strong{font-size:30px !important;}
}


/* Wordport Player 1.0.12 — typography and alignment refinements */
.brand h1{
  font-size:clamp(38px,8vw,64px) !important;
}
.brand .tagline{
  font-size:.96rem !important;
  margin-top:6px !important;
}
.metaRow,
.metaSecondary{
  text-transform:none !important;
  font-size:9px !important;
  line-height:1.25 !important;
  letter-spacing:.08em !important;
  font-weight:600 !important;
}
.metaRow strong{
  font-weight:600 !important;
}
.inlineSwitch{
  background:transparent !important;
  color:#fff !important;
  font-size:16px !important;
  font-weight:800 !important;
  letter-spacing:.12em !important;
  padding:0 !important;
  border:0 !important;
  box-shadow:none !important;
}
.inlineSwitch:hover,
.inlineSwitch:focus{
  background:transparent !important;
  color:#fff !important;
}
#moveInput,
#moveInput::placeholder{
  font-size:7px !important;
  font-weight:400 !important;
  letter-spacing:.13em !important;
}
.routeStage{
  justify-content:flex-start !important;
  padding-top:0 !important;
}
.routeStage .message{
  min-height:16px !important;
  height:16px !important;
  padding:0 !important;
}
.routeStage .routeList{
  justify-content:flex-start !important;
  min-height:0 !important;
  padding-top:17px !important;
}
#undoBtn,#nextGameBtn,#resultsArchiveBtn,#gameHowToPlayBtn{
  margin:0 !important;
  align-self:stretch !important;
}
#gameHowToPlayBtn{
  transform:none !important;
  top:auto !important;
}
#challengeInput,
#challengeInput::placeholder{
  font-size:7px !important;
  font-weight:400 !important;
  letter-spacing:.13em !important;
}


/* Wordport Player 1.0.13 — authoritative requested refinements */
.statusLine,
.scoreLine,
.statusLine span,
.statusLine strong,
.scoreLine span,
.scoreLine strong,
#puzzleNumber,
#dailyDate,
#sessionMoves,
#fewestMovesToday{
  font-size:16px !important;
  font-weight:500 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
  line-height:1.25 !important;
}

#switchBtn,
.startWordBox #switchBtn,
.wordBox #switchBtn{
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  color:#D4AF37 !important;
  font-size:11px !important;
  font-weight:700 !important;
  letter-spacing:.08em !important;
  text-transform:uppercase !important;
  padding:0 !important;
  min-height:auto !important;
  height:auto !important;
  width:auto !important;
}

#moveInput,
#moveInput::placeholder,
#challengeInput,
#challengeInput::placeholder,
#moveInput:not(:placeholder-shown),
#challengeInput:not(:placeholder-shown){
  font-size:16px !important;
  font-weight:400 !important;
  letter-spacing:.08em !important;
  text-transform:uppercase !important;
}

.buttonRow{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  grid-template-rows:auto auto !important;
  gap:8px !important;
  align-items:stretch !important;
}
#undoBtn{grid-column:1 !important;grid-row:1 !important;}
#nextGameBtn{grid-column:2 !important;grid-row:1 !important;}
#resultsArchiveBtn{grid-column:1 !important;grid-row:2 !important;}
#gameHowToPlayBtn{
  grid-column:2 !important;
  grid-row:2 !important;
  align-self:stretch !important;
  margin:0 !important;
  transform:none !important;
}
#resultsArchiveBtn,
#gameHowToPlayBtn{
  min-height:46px !important;
  height:46px !important;
  margin:0 !important;
}


/* Wordport Player 1.0.14 — move pills and vertical centring */
html,
body{
  min-height:100%;
}
body{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}
.shell{
  width:min(760px,100%) !important;
  min-height:100vh !important;
  margin:0 auto !important;
  padding:12px 16px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
}
.brand{
  margin:0 0 16px !important;
}
#gameView.panel{
  margin:0 !important;
}
.buildVersion{
  margin:10px 0 0 !important;
}

/* Both information rows use the same, larger type size. */
.gameMeta .metaRow,
.gameMeta .metaRow span,
.gameMeta .metaRow strong,
#puzzleNumber,
#dailyDate,
#sessionMoves,
#fewestToday{
  font-size:16px !important;
  line-height:1.25 !important;
  font-weight:500 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
}

/* SWITCH exactly matches the RESULTS ARCHIVE button type size. */
#switchBtn,
.inlineSwitch{
  font-size:16px !important;
}

/* Gameplay move history now uses the same pill language as the archive. */
.routeStage .routeList{
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:wrap !important;
  align-items:center !important;
  justify-content:center !important;
  align-content:center !important;
  gap:6px !important;
  min-height:76px !important;
  padding:10px 0 !important;
  margin:0 !important;
}
.routeStage .routeEntry{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:auto !important;
  min-width:0 !important;
  min-height:34px !important;
  height:34px !important;
  margin:0 !important;
  padding:6px 12px !important;
  border:0 !important;
  border-radius:999px !important;
  background:#4B4B4B !important;
  color:#F2F1E6 !important;
  font-size:.84rem !important;
  line-height:1 !important;
  font-weight:700 !important;
  letter-spacing:0 !important;
  text-transform:uppercase !important;
  white-space:nowrap !important;
}
.routeStage .routeEntry.invalid{
  background:#8b0000 !important;
  color:#fff !important;
}

@media(max-width:560px){
  .shell{
    min-height:100svh !important;
    padding:8px 12px !important;
  }
  .brand{
    margin-bottom:12px !important;
  }
  .gameMeta .metaRow,
  .gameMeta .metaRow span,
  .gameMeta .metaRow strong,
  #puzzleNumber,
  #dailyDate,
  #sessionMoves,
  #fewestToday{
    font-size:11px !important;
  }
}


/* Wordport Player 1.0.15 — gameplay pills and controls */

/* Gameplay move pills match the Results Archive treatment:
   content-width, left aligned, row layout, and wrapping. */
#routeList,
.routeList{
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:wrap !important;
  justify-content:flex-start !important;
  align-items:flex-start !important;
  align-content:flex-start !important;
  gap:6px !important;
  width:100% !important;
  padding-left:0 !important;
  padding-right:0 !important;
}

#routeList .routeEntry,
.routeList .routeEntry{
  display:inline-flex !important;
  flex:0 0 auto !important;
  width:auto !important;
  min-width:0 !important;
  max-width:none !important;
  margin:0 !important;
  padding:6px 12px !important;
  min-height:34px !important;
  height:auto !important;
  border-radius:999px !important;
  background:#4B4B4B !important;
  color:#F2F1E6 !important;
  font-size:.84rem !important;
  font-weight:700 !important;
  line-height:1 !important;
  justify-content:center !important;
  align-items:center !important;
  white-space:nowrap !important;
  text-align:center !important;
}

/* All four action buttons use the same height. */
#undoBtn,
#nextGameBtn,
#resultsArchiveBtn,
#gameHowToPlayBtn{
  min-height:46px !important;
  height:46px !important;
  margin:0 !important;
  align-self:stretch !important;
}

/* Remove typing/focus highlight but retain the normal keyline. */
#moveInput,
#moveInput:hover,
#moveInput:focus,
#moveInput:focus-visible,
#moveInput:active{
  border:1px solid #4B4B4B !important;
  outline:none !important;
  box-shadow:none !important;
  background:#FFFFFF !important;
}


/* Wordport Player 1.0.16 — authoritative corrections */

/* Gameplay pills use exactly the same sizing language as archive pills:
   auto-width, left-ranged, row layout and wrapping. */
.routeStage{
  justify-content:flex-start !important;
}

.routeStage #routeList,
.routeStage .routeList{
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:wrap !important;
  justify-content:flex-start !important;
  align-items:flex-start !important;
  align-content:flex-start !important;
  gap:6px !important;
  width:100% !important;
  min-height:0 !important;
  padding:10px 0 0 !important;
  margin:0 !important;
}

.routeStage #routeList .routeEntry,
.routeStage .routeList .routeEntry{
  display:inline-flex !important;
  flex:0 0 auto !important;
  width:fit-content !important;
  min-width:0 !important;
  max-width:none !important;
  min-height:34px !important;
  height:34px !important;
  margin:0 !important;
  padding:6px 12px !important;
  border:0 !important;
  border-radius:999px !important;
  background:#4B4B4B !important;
  color:#F2F1E6 !important;
  font-size:.84rem !important;
  line-height:1 !important;
  font-weight:700 !important;
  letter-spacing:0 !important;
  text-transform:uppercase !important;
  white-space:nowrap !important;
  justify-content:center !important;
  align-items:center !important;
  text-align:center !important;
}

.routeStage #routeList .routeEntry.invalid,
.routeStage .routeList .routeEntry.invalid{
  background:#8B0000 !important;
  color:#D4AF37 !important;
  text-decoration:none !important;
}

/* SWITCH matches NEW GAME text size exactly. */
#switchBtn,
.inlineSwitch,
.startWordBox #switchBtn,
.wordBox #switchBtn{
  font-size:16px !important;
  line-height:1 !important;
  letter-spacing:.12em !important;
  font-weight:800 !important;
}

/* Version sits under the panel, centred within the same shell. */
.shell .buildVersion{
  position:static !important;
  display:block !important;
  width:100% !important;
  margin:10px 0 0 !important;
  padding:0 !important;
  text-align:center !important;
  align-self:center !important;
  transform:none !important;
  inset:auto !important;
}

/* Wordport Player 1.0.17 */
#switchBtn,.inlineSwitch,#undoBtn,#nextGameBtn,#resultsArchiveBtn,#gameHowToPlayBtn{font-size:9px !important;}
.routeStage #routeList,.routeStage .routeList{padding-bottom:16px !important;}
#moveInput{font-weight:700 !important;}#moveInput::placeholder{font-weight:400 !important;}#moveInput:not(:placeholder-shown){font-weight:700 !important;}
#adDialog,#resultDialog{padding:0 !important;overflow:hidden !important;}
#adDialog .dialogCard,#resultDialog .dialogCard{width:100% !important;height:100% !important;min-height:0 !important;max-height:none !important;box-sizing:border-box !important;display:flex !important;flex-direction:column !important;justify-content:center !important;}
.completePair{display:flex !important;flex-direction:column !important;align-items:center !important;justify-content:center !important;gap:5px !important;overflow:visible !important;white-space:normal !important;margin:16px 0 4px !important;}
.completePair strong{display:block !important;font-size:clamp(1.35rem,4.2vw,2.3rem) !important;line-height:1.05 !important;}.completePair span{display:none !important;}
.shareButtons,.resultButtons{width:100% !important;justify-items:center !important;}
#shareEmailBtn,#shareWhatsAppBtn,#resultContinueBtn{width:min(100%,330px) !important;min-width:min(100%,330px) !important;height:46px !important;background:#E6E6E3 !important;color:#4B4B4B !important;border:1px solid #4B4B4B !important;white-space:nowrap !important;font-size:10px !important;font-weight:700 !important;}
.sessionRating{display:none !important;}
.copyright{margin:3px 0 0 !important;padding:0 !important;text-align:center !important;color:#4B4B4B !important;opacity:.55 !important;font-size:.72rem !important;line-height:1.2 !important;}

/* Wordport Player 1.0.18 — unlimited daily attempts */


/* Wordport Player 1.0.19 — gameplay pills match Results Archive exactly */

.routeStage #routeList,
.routeStage .routeList{
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:wrap !important;
  justify-content:flex-start !important;
  align-items:flex-start !important;
  align-content:flex-start !important;
  gap:6px !important;
  width:100% !important;
  margin:0 !important;
  padding:10px 0 16px !important;
}

.routeStage #routeList .routeEntry,
.routeStage .routeList .routeEntry{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 auto !important;
  width:auto !important;
  min-width:0 !important;
  max-width:none !important;
  min-height:34px !important;
  height:auto !important;
  margin:0 !important;
  padding:6px 12px !important;
  border:0 !important;
  border-radius:999px !important;
  background:#4B4B4B !important;
  color:#F2F1E6 !important;
  font-size:.84rem !important;
  font-weight:700 !important;
  line-height:1 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
  white-space:nowrap !important;
  text-align:center !important;
}

.routeStage #routeList .routeEntry.invalid,
.routeStage .routeList .routeEntry.invalid{
  background:#8B0000 !important;
  color:#D4AF37 !important;
}

/* Wordport Player 1.0.20 — unlimited replay restored */


/* Wordport Player 1.0.21
   Archive and gameplay pills now share the exact same rule. */

.archiveRoute,
#routeList,
.routeList{
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:wrap !important;
  justify-content:flex-start !important;
  align-items:flex-start !important;
  align-content:flex-start !important;
  gap:6px !important;
}

#routeList,
.routeList{
  width:100% !important;
  min-height:0 !important;
  margin:0 !important;
  padding:10px 0 16px !important;
}

.archiveRoute span,
#routeList .routeEntry,
.routeList .routeEntry{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 auto !important;
  width:auto !important;
  min-width:0 !important;
  max-width:none !important;
  min-height:34px !important;
  height:auto !important;
  margin:0 !important;
  padding:6px 12px !important;
  border:0 !important;
  border-radius:999px !important;
  background:#4B4B4B !important;
  color:#F2F1E6 !important;
  font-size:.84rem !important;
  font-weight:700 !important;
  line-height:1 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
  white-space:nowrap !important;
  text-align:center !important;
}

#routeList .routeEntry.invalid,
.routeList .routeEntry.invalid{
  background:#8B0000 !important;
  color:#D4AF37 !important;
}
\n\n/* Wordport Player 1.0.22 — requested labels, tally and completion styling */\n\n/* Move pills are always capitalised. */\n.archiveRoute span,\n#routeList .routeEntry,\n.routeList .routeEntry{\n  text-transform:uppercase !important;\n}\n\n/* Typed move text is a little larger; placeholder remains unchanged. */\n#moveInput:not(:placeholder-shown){\n  font-size:16px !important;\n}\n\n/* Centre the sole Advertisement heading after removing Next Puzzle. */\n#adDialog .eyebrow{\n  width:100% !important;\n  margin-left:auto !important;\n  margin-right:auto !important;\n  text-align:center !important;\n}\n\n/* Every Puzzle Complete button matches the Advertisement Continue style. */\n#continueAfterAd,\n#resultContinueBtn,\n#shareEmailBtn,\n#shareWhatsAppBtn{\n  background:#4B4B4B !important;\n  color:#D4AF37 !important;\n  border-color:#4B4B4B !important;\n  font-family:inherit !important;\n  font-size:10px !important;\n  font-weight:700 !important;\n  letter-spacing:.08em !important;\n  text-transform:uppercase !important;\n}\n

/* Wordport Player 1.0.28
   Rebuilt from the working 1.0.22 branch. */

/* Results History and gameplay pills share the exact same format. */
.archiveRoute,
#routeList,
.routeList{
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:wrap !important;
  justify-content:flex-start !important;
  align-items:flex-start !important;
  align-content:flex-start !important;
  gap:6px !important;
}

#routeList,
.routeList{
  width:100% !important;
  min-height:0 !important;
  margin:0 !important;
  padding:10px 0 16px !important;
}

.archiveRoute span,
#routeList .routeEntry,
.routeList .routeEntry{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 auto !important;
  width:auto !important;
  min-width:0 !important;
  max-width:none !important;
  min-height:34px !important;
  height:auto !important;
  margin:0 !important;
  padding:6px 12px !important;
  border:0 !important;
  border-radius:999px !important;
  background:#4B4B4B !important;
  color:#F2F1E6 !important;
  font-size:.84rem !important;
  font-weight:700 !important;
  line-height:1 !important;
  letter-spacing:0 !important;
  text-transform:uppercase !important;
  white-space:nowrap !important;
  text-align:center !important;
}

/* Later visual changes requested after 1.0.22. */
#moveInput:not(:placeholder-shown){
  font-size:16px !important;
  font-weight:700 !important;
}

#adDialog .eyebrow,
#adDialog .dialogHeading,
#adDialog h2{
  width:100% !important;
  text-align:center !important;
  justify-content:center !important;
}

#continueAfterAd,
#resultContinueBtn,
#shareEmailBtn,
#shareWhatsAppBtn{
  background:#4B4B4B !important;
  color:#D4AF37 !important;
  border:1px solid #4B4B4B !important;
  box-shadow:none !important;
  font-family:inherit !important;
  font-size:10px !important;
  font-weight:700 !important;
  letter-spacing:.08em !important;
  text-transform:uppercase !important;
}


/* Wordport Player 1.0.29 — completion button text sizing only */

/* Puzzle 1 and Puzzle 2 completion button. */
#resultDialog #resultContinueBtn{
  font-size:16px !important;
}

/* Puzzle 3 completion buttons. */
#resultDialog #shareEmailBtn,
#resultDialog #shareWhatsAppBtn{
  font-size:16px !important;
}


/* Wordport Player 1.0.34 — requested share and challenge-field refinements */

/* Email share link behaves visually like the other result buttons. */
#resultDialog #shareEmailBtn{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  text-decoration:none !important;
  line-height:1 !important;
}

/* Preserve the challenge spacer element without adding extra space between button rows. */
.challengeSpacer{
  display:block;
  width:100%;
  height:0;
  margin:0;
  padding:0;
  visibility:hidden;
}


/* Wordport Player 1.0.41 — dialog depth matches starting gameplay window */

#adDialog,
#resultDialog{
  padding:0 !important;
  overflow:hidden !important;
}

#adDialog .dialogCard,
#resultDialog .dialogCard{
  width:100% !important;
  height:100% !important;
  min-height:0 !important;
  max-height:none !important;
  box-sizing:border-box !important;
}


/* Wordport Player 1.0.42 — Puzzle Complete vertical positioning only */

#resultDialog .dialogCard{
  display:grid !important;
  grid-template-rows:auto 1fr auto auto !important;
  align-content:stretch !important;
  justify-content:stretch !important;
}

#resultDialog #resultTitle{
  align-self:start !important;
  margin-top:0 !important;
  transform:translateY(-18px) !important;
}

#resultDialog #resultBody{
  align-self:center !important;
}

#resultDialog #shareButtons{
  align-self:end !important;
  margin-top:auto !important;
  margin-bottom:8px !important;
}

#resultDialog .resultButtons{
  align-self:end !important;
  margin-top:auto !important;
  margin-bottom:0 !important;
}


/* Wordport Player 1.0.43 — Puzzle Complete heading sizing only */

#resultDialog #resultTitle{
  font-size:inherit !important;
}

#resultDialog .totalMoves,
#resultDialog .totalMoves strong,
#resultDialog #resultTitle{
  font-size:1rem !important;
  line-height:1.2 !important;
}


/* Wordport Player 1.0.83 — bottom Instagram and Video Demo buttons only */
.socialButtonRow{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:8px !important;
  margin-top:8px !important;
}
#instagramBtn,#videoDemoBtn{
  height:36px !important;
  min-height:36px !important;
  padding:8px 8px !important;
  border:0 !important;
  background:#F2F1E6 !important;
  color:#4B4B4B !important;
  font-size:9px !important;
  line-height:1 !important;
  letter-spacing:.12em !important;
  text-transform:uppercase !important;
  font-weight:800 !important;
}


/* Wordport Player 1.0.88 — completion praise pill follows the route */
.routeStage #routeList .completionPraiseRoute,
.routeStage .routeList .completionPraiseRoute{
  background:#EFBF04 !important;
  color:#4B4B4B !important;
}


/* Wordport Player 1.0.92 — next-puzzle and advertisement buttons */
#resultDialog #resultContinueBtn.nextPuzzleAction,
#adDialog #continueAfterAd{
  background:#EFBF04 !important;
  color:#4B4B4B !important;
  border:0 !important;
  outline:0 !important;
  box-shadow:none !important;
}


/* Wordport Player 1.0.97 — Puzzle 3 Complete buttons only */
#resultDialog.puzzle3Complete #shareEmailBtn,
#resultDialog.puzzle3Complete #shareWhatsAppBtn,
#resultDialog.puzzle3Complete #resultContinueBtn{
  background:#EFBF04 !important;
  color:#4B4B4B !important;
  border:0 !important;
  border-color:transparent !important;
  outline:0 !important;
  box-shadow:none !important;
}


/* Wordport Player 1.0.102 — Best Today route actions only */
.routeStage #routeList .bestTodayAction,
.routeStage .routeList .bestTodayAction{
  background:#069494 !important;
  color:#D4AF37 !important;
  border:0 !important;
  outline:0 !important;
  box-shadow:none !important;
}

/* Wordport Player 1.0.129 — Best Today action pairing and route spacing only */
.routeStage #routeList,
.routeStage .routeList{
  padding-top:0 !important;
  padding-bottom:16px !important;
}

.routeStage #routeList .bestTodayActions,
.routeStage .routeList .bestTodayActions{
  display:inline-flex !important;
  flex:0 0 auto !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  gap:6px !important;
  width:max-content !important;
  max-width:100% !important;
  margin:0 !important;
  padding:0 !important;
}


/* Wordport Player 1.0.130 — Advertisement Continue text size only */
#adDialog #continueAfterAd{
  font-size:16px !important;
}


/* Wordport Player 1.0.146 — email share button pointer only */
#shareEmailBtn{
  cursor:pointer !important;
}


/* Wordport Player 1.0.200 — permanent hint pill and inline confirmation box */
.buttonRow{
  grid-template-columns:repeat(6,1fr) !important;
  grid-template-rows:auto auto !important;
  gap:8px !important;
}
#undoBtn{grid-column:1 / span 2 !important;grid-row:1 !important;}
#hintBtn{grid-column:3 / span 2 !important;grid-row:1 !important;}
#nextGameBtn{grid-column:5 / span 2 !important;grid-row:1 !important;}
#resultsArchiveBtn{grid-column:1 / span 3 !important;grid-row:2 !important;}
#gameHowToPlayBtn{grid-column:4 / span 3 !important;grid-row:2 !important;}
#hintBtn{
  height:46px !important;
  min-height:46px !important;
  padding:8px 8px !important;
  border:0 !important;
  background:#F2F1E6 !important;
  color:#4B4B4B !important;
  font-size:9px !important;
  line-height:1 !important;
  letter-spacing:.12em !important;
  text-transform:uppercase !important;
  font-weight:800 !important;
}
#hintBtn:disabled{opacity:.38 !important;cursor:default !important;}
.routeStage #routeList .routeEntry.hint,
.routeStage .routeList .routeEntry.hint,
#routeList .routeEntry[data-hint-word="true"],
.routeList .routeEntry[data-hint-word="true"]{
  background:#4B4B4B !important;
  color:#ff91a4 !important;
  border-radius:999px !important;
  padding:6px 14px !important;
}
#moveInput{
  width:100% !important;
  height:46px !important;
  min-height:46px !important;
  border-width:1px !important;
}
.hintConfirmBox{
  width:100% !important;
  height:46px !important;
  min-height:46px !important;
  margin:0 0 8px !important;
  padding:0 12px !important;
  border:1px solid #4B4B4B !important;
  background:#FFFFFF !important;
  color:#4B4B4B !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:4px !important;
  box-sizing:border-box !important;
  font-family:inherit !important;
  font-size:16px !important;
  line-height:1.25 !important;
  font-weight:500 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
  white-space:nowrap !important;
}
.hintConfirmBox.hidden{display:none !important;}
.hintConfirmBox button{
  min-width:0 !important;
  min-height:0 !important;
  height:auto !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  color:#4B4B4B !important;
  font-family:inherit !important;
  font-size:16px !important;
  line-height:1.25 !important;
  font-weight:500 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
}
.hintConfirmBox button:hover,
.hintConfirmBox button:focus{
  background:transparent !important;
  text-decoration:underline !important;
}


/* Wordport Player 1.0.201 — permanent hint colour and fixed game depth */
#gameView.panel{
  min-height:608px !important;
}
.routeStage #routeList .routeEntry.hint,
.routeStage .routeList .routeEntry.hint,
#routeList .routeEntry[data-hint-word="true"],
.routeList .routeEntry[data-hint-word="true"]{
  background:#4B4B4B !important;
  background-color:#4B4B4B !important;
  color:#ff91a4 !important;
}
@media(max-width:560px){
  #gameView.panel{min-height:614px !important;}
}


/* Wordport Player 1.0.203 — final permanent Hint-word pill colour */
.routeStage #routeList .routeEntry.hint,
.routeStage .routeList .routeEntry.hint,
#routeList .routeEntry[data-hint-word="true"],
.routeList .routeEntry[data-hint-word="true"]{
  background:#4B4B4B !important;
  background-color:#4B4B4B !important;
  color:#ff91a4 !important;
}


/* Wordport Player 1.0.211 — How to Play copy, Puzzle 3 totals, and restored game depth */
.rulesDialogCard p,
.rulesDialogCard li{
  font-size:13px !important;
}
#resultDialog .sessionTotals > span:first-child{
  font-weight:400 !important;
}
#gameView.panel{
  min-height:562px !important;
}
@media(max-width:560px){
  #gameView.panel{min-height:568px !important;}
}


/* Wordport Player 1.0.214 — requested route action and Hint pill colours */
.routeStage #routeList .bestTodayAction,
.routeStage .routeList .bestTodayAction{
  color:#FFFFFF !important;
}
.routeStage #routeList .routeEntry.hint,
.routeStage .routeList .routeEntry.hint,
#routeList .routeEntry[data-hint-word="true"],
.routeList .routeEntry[data-hint-word="true"]{
  background:#4B4B4B !important;
  background-color:#4B4B4B !important;
  color:#ff91a4 !important;
}


/* Wordport Player 1.0.232 — fixed-size Hint confirmation overlay */
#gameView.panel{position:relative !important;}
#hintConfirmBox{
  position:absolute !important;
  left:clamp(18px,4vw,32px) !important;
  right:clamp(18px,4vw,32px) !important;
  bottom:136px !important;
  width:auto !important;
  margin:0 !important;
  z-index:5 !important;
}
#hintConfirmBox.hidden{display:none !important;}
@media(max-width:560px){
  #hintConfirmBox{left:24px !important;right:24px !important;bottom:136px !important;}
}


/* Wordport Player 1.0.236 — preserve desktop logo/tagline proportions on mobile. */
@media(max-width:560px){
  .brand{
    width:min(var(--reference-panel-width),calc(100vw - 32px)) !important;
  }
  .brand h1{
    font-size:min(64px,calc((100vw - 32px) * 0.148148)) !important;
  }
  .brand .tagline{
    font-size:min(.96rem,calc((100vw - 32px) * 0.035556)) !important;
  }
}


/* Wordport Player 1.0.238 — consistent used-Hint state on every viewport. */
#hintBtn:disabled,
#hintBtn.hintUsed,
#hintBtn[aria-disabled="true"]{
  opacity:.38 !important;
  filter:grayscale(.35) !important;
  cursor:default !important;
  pointer-events:none !important;
}
.routeStage #routeList .routeEntry.hint,
.routeStage .routeList .routeEntry.hint,
#routeList .routeEntry[data-hint-word="true"],
.routeList .routeEntry[data-hint-word="true"]{
  color:#ff91a4 !important;
  -webkit-text-fill-color:#ff91a4 !important;
}


/* Wordport Player 1.0.240 — requested endpoint sizing, footer spacing, and mobile banner. */
.wordBox{
  height:36px !important;
  min-height:36px !important;
  padding:0 18px !important;
}
.footerLine{
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
  gap:1.2em !important;
  flex-wrap:wrap !important;
  width:100% !important;
  text-align:center !important;
}
.shell .footerLine.buildVersion{
  margin:10px 0 0 !important;
}
.shell .footerLine.copyright{
  margin:3px 0 0 !important;
}
.footerLine{
  flex-wrap:nowrap !important;
  white-space:nowrap !important;
  font-size:clamp(.58rem,2.4vw,.72rem) !important;
}


/* Wordport Player 1.0.240 — requested refinements. */
.wordBox{
  height:46px !important;
  min-height:46px !important;
  box-sizing:border-box !important;
}
.targetWordBox strong{
  font-size:30px !important;
}
.metaSecondary{
  margin-top:6px !important;
}
.shell .footerLine.buildVersion{
  gap:4ch !important;
}
.mobileBannerAd{
  display:none;
}
@media(max-width:700px){
  .mobileBannerAd{
    display:block;
    width:100%;
    height:50px;
    min-height:50px;
    margin:8px 0 0;
    background:rgba(75,75,75,.25);
  }
}


/* Wordport Player 1.0.241 — requested spacing, endpoint type, footer and mobile banner placement. */
.brand{margin-bottom:16px !important;}
.targetWordBox strong{font-size:26px !important;}
.shell .footerLine.buildVersion{column-gap:4ch !important;gap:4ch !important;}
@media(max-width:700px){
  .mobileBannerAd{
    margin:16px 0 0 !important;
  }
}

/* Wordport Player 1.0.242 — matched endpoint type, raised gameplay actions, and exact footer spacing. */
.startWordBox strong,
.targetWordBox strong{
  font-size:28px !important;
}
.buttonRow{
  position:relative !important;
  top:calc(-1 * var(--move-pill-height)) !important;
}
.shell .footerLine.buildVersion{
  column-gap:4ch !important;
  gap:4ch !important;
}


/* Wordport Player 1.0.243 — requested vertical refinements, Rules label, and exact footer spacing. */
.shell{
  transform:translateY(-8px) !important;
}
.buttonRow{
  top:calc(-1 * var(--move-pill-height) + 12px) !important;
}
.shell .footerLine.buildVersion{
  column-gap:0 !important;
  gap:0 !important;
}
.shell .footerLine.buildVersion .footerGap{
  display:inline-block !important;
  flex:0 0 4ch !important;
  width:4ch !important;
  min-width:4ch !important;
}


/* Wordport Player 1.0.245 — requested vertical position, action-row flow, and footer gap. */
.shell{
  transform:translateY(calc(-8px - 12pt)) !important;
}
.buttonRow{
  top:calc(-1 * var(--move-pill-height) + 18px) !important;
  margin-bottom:calc(-1 * var(--move-pill-height) + 18px) !important;
}
.shell .footerLine.buildVersion .footerGap{
  flex-basis:1ch !important;
  width:1ch !important;
  min-width:1ch !important;
}


/* Wordport Player 1.0.245 — requested colour, mobile logo, banner and Archive refinements. */
@media(max-width:560px){
  .brand{
    margin-top:18px !important;
  }
}
.mobileBannerAd{
  align-items:center;
  justify-content:center;
  text-align:center;
  color:#4B4B4B;
  font-size:9px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}
@media(max-width:700px){
  .mobileBannerAd{
    display:flex !important;
  }
}
.archiveDialogCard{
  font-size:.9rem;
}
.archiveRoute span{
  font-size:.84rem !important;
}
.archiveAnagramNote{
  display:inline-block;
  margin-top:2px;
}


/* Wordport Player 1.0.248 — requested refinements retained after removal of temporary access gate. */
.brand h1{font-size:clamp(40px,8.5vw,68px) !important;}
#gameView.panel{padding-top:20px !important;}
.shell .footerLine.copyright{gap:calc(1.2em - 1ch) !important;}


/* Wordport Player 1.0.250 - mobile layout tweaks */
@media (max-width: 768px){
  .brand,.logoWrap,.masthead{margin-top:14px !important;}
  .topActions,.actionRow{margin-top:-6px !important;}
  .shell,.gameShell,.mainPanel{padding-top:8px !important;}
  #switchBtn,.inlineSwitch,#undoBtn,#nextGameBtn,#resultsArchiveBtn,#gameHowToPlayBtn{
    font-size:18px !important;
  }
}


/* Wordport Player 1.0.251 - requested mobile-only refinements. */
@media (max-width: 700px){
  .brand{
    margin-top:20px !important;
  }
  .gameMeta .metaRow,
  .gameMeta .metaRow span,
  .gameMeta .metaRow strong{
    font-size:9px !important;
  }
  #undoBtn,
  #hintBtn,
  #nextGameBtn,
  #resultsArchiveBtn,
  #gameHowToPlayBtn{
    font-size:11px !important;
  }
}


/* Wordport Player 1.0.253 - requested mobile-only refinements. */
@media (max-width: 700px){
  .brand{
    margin-top:30px !important;
  }
  .gameMeta .metaRow,
  .gameMeta .metaRow span,
  .gameMeta .metaRow strong,
  #puzzleNumber{
    font-size:11px !important;
  }
  .footerLine{
    font-size:calc(clamp(.58rem, 2.4vw, .72rem) + 1pt) !important;
  }
}

/* Wordport Player 1.0.253 - requested mobile-only refinements. */
@media (max-width: 700px){
  body{
    align-items:flex-start !important;
  }
  .shell{
    min-height:100svh !important;
    justify-content:flex-start !important;
    transform:none !important;
  }
  .brand{
    margin-top:40px !important;
  }
  .gameMeta .metaRow,
  .gameMeta .metaRow span,
  .gameMeta .metaRow strong,
  #puzzleNumber{
    font-size:calc(11px + 1pt) !important;
  }
}


/* Wordport Player 1.0.260 - mobile game-meta labels use one identical font size. */
@media (max-width: 700px){
  #puzzleNumber,
  .metaPrimary > span:last-child,
  .metaSecondary > span:first-child,
  #fewestPossibleToday{
    font-size:calc(11px + 1pt) !important;
  }
}


/* Wordport Player 1.0.261 - remove access gate and enforce one exact mobile meta-label size. */
@media (max-width: 700px){
  #puzzleNumber,
  #puzzleNumber *,
  .metaPrimary > span:last-child,
  .metaPrimary > span:last-child *,
  .metaSecondary > span:first-child,
  .metaSecondary > span:first-child *,
  #fewestPossibleToday,
  #fewestPossibleToday *{
    font-size:12.333333px !important;
  }
}


/* Wordport Player 1.0.262 - mobile game-meta labels increased by 1px and kept identical. */
@media (max-width: 700px){
  #puzzleNumber,
  #puzzleNumber *,
  .metaPrimary > span:last-child,
  .metaPrimary > span:last-child *,
  .metaSecondary > span:first-child,
  .metaSecondary > span:first-child *,
  #fewestPossibleToday,
  #fewestPossibleToday *{
    font-size:13.333333px !important;
  }
}


/* Wordport Player 1.0.264 - single left-aligned puzzle summary above the endpoint panel. */
.gameMetaSummary{
  display:block !important;
  width:100% !important;
  margin-bottom:8px !important;
  padding:0 !important;
  text-align:left !important;
}
#puzzleSummary{
  display:block !important;
  width:100% !important;
  text-align:left !important;
}
@media (max-width:700px){
  .gameMetaSummary{
    margin-bottom:6px !important;
  }
}

/* Wordport Player 1.0.265 - vertically centred puzzle summary and mobile-only 35px upward shift. */
.gameMetaSummary{
  display:flex !important;
  align-items:center !important;
  min-height:32px !important;
  margin-bottom:0 !important;
}
@media (max-width:700px){
  .shell{
    transform:translateY(-35px) !important;
  }
}


/* Wordport Player 1.0.266 - centre puzzle summary across the complete white space above the first Endpoint Panel. */
.gameMetaSummary{
  height:56px !important;
  min-height:56px !important;
  margin-top:-24px !important;
  margin-bottom:0 !important;
  padding:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
}


/* Wordport Player 1.0.267 - move the puzzle summary line down by 5px. */
#puzzleSummary{
  transform:translateY(5px) !important;
}

/* Wordport Player 1.0.268 - centred puzzle summary and centred wrapping route rows. */
.gameMetaSummary{
  justify-content:center !important;
}
#puzzleSummary{
  text-align:center !important;
  transform:translateY(3px) !important;
}
.routeStage #routeList,
.routeStage .routeList{
  justify-content:center !important;
}
.routeStage #routeList .bestTodayActions,
.routeStage .routeList .bestTodayActions{
  display:flex !important;
  flex:0 0 100% !important;
  width:100% !important;
  max-width:100% !important;
  justify-content:center !important;
}


/* Wordport Player 1.0.273 - requested wording, spacing and input colours. */
.brand{margin-bottom:-4px !important;}
#moveInput::placeholder{color:#8b929a !important;opacity:1 !important;}
#moveInput:not(:placeholder-shown){color:#4B4B4B !important;}


/* Wordport Player 1.0.274 - move all content below the Wordport logo down by 20px. */
.brand{margin-bottom:16px !important;}


/* Wordport Player 1.0.276 - requested spacing and used-Hint appearance. */
.brand{margin-bottom:26px !important;}
#hintBtn:disabled,
#hintBtn.hintUsed,
#hintBtn[aria-disabled="true"]{
  opacity:1 !important;
  filter:none !important;
  color:#ff91a4 !important;
  -webkit-text-fill-color:#ff91a4 !important;
}


/* Wordport Player 1.0.278 - footer spacing/weight and gameplay message placement. */
.shell .footerLine{
  font-weight:400 !important;
}
.shell .footerLine.footerIntro{
  margin:0 !important;
  padding:0 !important;
}
.shell .footerLine.buildVersion{
  margin:0 !important;
  padding:0 !important;
}
.routeStage #routeList,
.routeStage .routeList{
  order:1 !important;
}
.routeStage #message,
.routeStage .message{
  order:2 !important;
  position:static !important;
  margin:0 !important;
}

/* Wordport Player 1.0.279 - requested Move Pills spacing and unified footer colour. */
.routeStage{
  justify-content:flex-start !important;
  padding-top:25px !important;
  box-sizing:border-box !important;
}
.shell .footerLine{
  color:#4B4B4B !important;
  opacity:.55 !important;
}

/* Wordport Player 1.0.280 - move footer and banner ad panel down by 10px. */
.shell .footerLine.footerIntro{
  margin-top:10px !important;
}


/* Wordport Player 1.0.286 - mobile Hint state and Yesterday's layout. */
@media (max-width: 768px){
  #hintBtn:active,
  #hintBtn:focus,
  #hintBtn:focus-visible,
  #hintBtn:disabled,
  #hintBtn.hintUsed,
  #hintBtn[aria-disabled="true"]{
    color:#ff91a4 !important;
    -webkit-text-fill-color:#ff91a4 !important;
  }
}
.archiveDialogHeading{
  justify-content:flex-end !important;
}
.archiveContent{
  margin-top:26px !important;
}
.archiveDay h3{
  margin-top:0 !important;
}
.archiveAnagramNote{
  margin:0 0 8px !important;
}


/* Wordport Player 1.0.288 - Yesterday's panel sizing, fixed viewport, and centred content. */
:root{
  --wordport-move-pill-pink:#ff91a4;
}
.routeStage #routeList .routeEntry.hint,
.routeStage .routeList .routeEntry.hint,
#routeList .routeEntry[data-hint-word="true"],
.routeList .routeEntry[data-hint-word="true"]{
  color:var(--wordport-move-pill-pink) !important;
  -webkit-text-fill-color:var(--wordport-move-pill-pink) !important;
}
@media (max-width:768px){
  #hintBtn:active,
  #hintBtn:focus,
  #hintBtn:focus-visible,
  #hintBtn:disabled,
  #hintBtn.hintUsed,
  #hintBtn[aria-disabled="true"]{
    color:var(--wordport-move-pill-pink) !important;
    -webkit-text-fill-color:var(--wordport-move-pill-pink) !important;
  }
}
#archiveDialog .archiveDialogCard{
  max-height:calc(100dvh - 32px) !important;
  display:flex !important;
  flex-direction:column !important;
  overflow:hidden !important;
}
#archiveDialog .archiveDialogHeading{
  flex:0 0 auto !important;
}
#archiveDialog .archiveContent{
  flex:1 1 auto !important;
  min-height:0 !important;
  margin-top:0 !important;
  overflow:hidden !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
}


/* Wordport Player 1.0.289 - requested share-card, error, puzzle-summary and Yesterday's refinements. */
.message.error{
  font-size:calc(1em + 1pt) !important;
  font-weight:400 !important;
}
#puzzleSummary{
  font-size:calc(1em - 1pt) !important;
}
#archiveDialog .archiveContent{
  align-items:center !important;
  text-align:center !important;
}
#archiveDialog .archiveContent > *{
  width:100% !important;
}
#archiveDialog .archiveRoute{
  justify-content:center !important;
}


/* Wordport Player 1.0.290 - responsive error sizing, non-mobile logo size, and consistent footer spacing. */
.message.error{
  font-size:1em !important;
}
@media (max-width:768px){
  .message.error{
    font-size:calc(1em + .5pt) !important;
  }
}
@media (min-width:99999px){
  .brand h1{
    font-size:clamp(38px,8vw,64px) !important;
  }
}
.shell .footerLine{
  line-height:1.35 !important;
}
.shell .footerLine.footerIntro{
  margin:10px 0 0 !important;
}
.shell .footerLine.buildVersion,
.shell .footerLine.copyright{
  margin:3px 0 0 !important;
}

/* Wordport Player 1.0.292 - requested input, error, logo, button and banner refinements. */
.message.error{
  font-size:calc(1em - 1pt) !important;
}
#gameHowToPlayBtn,
#gameHowToPlayBtn:hover,
#gameHowToPlayBtn:focus,
#gameHowToPlayBtn:focus-visible,
#gameHowToPlayBtn:active{
  background:rgba(75,75,75,.25) !important;
}
.mobileBannerAd{
  background:transparent !important;
  border:1px solid #4B4B4B !important;
  box-sizing:border-box !important;
}
@media (max-width:768px){
  .message.error{
    font-size:1em !important;
  }
}
@media (min-width:99999px){
  .brand h1{
    font-size:clamp(36px,7.5vw,60px) !important;
  }
}


/* Wordport Player 1.0.293 - mobile accessory-tick submission and How to Play text colour. */
#gameHowToPlayBtn,
#gameHowToPlayBtn:hover,
#gameHowToPlayBtn:focus,
#gameHowToPlayBtn:focus-visible,
#gameHowToPlayBtn:active{
  color:#FFFFFF !important;
}


/* Wordport Player 1.0.294 - How to Play copy, centred rules, and footer-baseline dialog alignment. */
#rulesDialog .rulesDialogCard{
  text-align:center !important;
}
#rulesDialog .dialogHeading{
  position:relative !important;
  justify-content:center !important;
}
#rulesDialog .dialogHeading h2{
  width:100% !important;
  text-align:center !important;
}
#rulesDialog #closeRulesBtn{
  position:absolute !important;
  right:0 !important;
  text-align:left !important;
}
#rulesDialog .rulesDialogCard ul{
  list-style:none !important;
  padding-left:0 !important;
  margin-left:0 !important;
  text-align:center !important;
}
#rulesDialog .rulesDialogCard li{
  font-weight:700 !important;
  text-align:center !important;
}

/* Wordport Player 1.0.295 - stationary mobile input focus and vertically centred How to Play content. */
#rulesDialog .rulesDialogCard{
  max-height:calc(100dvh - 32px) !important;
  display:flex !important;
  flex-direction:column !important;
  overflow:hidden !important;
}
#rulesDialog .dialogHeading{
  flex:0 0 auto !important;
}
#rulesDialog .rulesContent{
  flex:1 1 auto !important;
  min-height:0 !important;
  overflow:auto !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
}
@media (max-width:768px){
  html.mobileInputFocused,
  html.mobileInputFocused body{
    overflow-anchor:none !important;
  }
}


/* Wordport Player 1.0.297 - fixed mobile input viewport and requested How to Play refinements. */
#gameHowToPlayBtn,
#gameHowToPlayBtn:hover,
#gameHowToPlayBtn:focus,
#gameHowToPlayBtn:focus-visible,
#gameHowToPlayBtn:active{
  color:#4B4B4B !important;
}
#rulesDialog .dialogHeading{
  margin-bottom:2px !important;
}
#rulesDialog .rulesContent{
  margin-top:0 !important;
}
#rulesDialog .rulesContent > :first-child{
  margin-top:0 !important;
}
@media (max-width:768px){
  html.mobileInputFocused body{
    position:fixed !important;
    left:0 !important;
    right:0 !important;
    width:100% !important;
  }
}

/* Wordport Player 1.0.297 - stationary mobile input, tighter centred rules, and borderless Close focus states. */
#rulesDialog .rulesDialogCard{
  position:relative !important;
  justify-content:center !important;
  overflow:auto !important;
}
#rulesDialog .dialogHeading{
  flex:0 0 auto !important;
  margin-bottom:-4px !important;
}
#rulesDialog .rulesContent{
  flex:0 0 auto !important;
  min-height:auto !important;
  overflow:visible !important;
  display:block !important;
  margin-top:0 !important;
}
#rulesDialog .rulesContent > :first-child{
  margin-top:0 !important;
}
#rulesDialog #closeRulesBtn,
#rulesDialog #closeRulesBtn:hover,
#rulesDialog #closeRulesBtn:focus,
#rulesDialog #closeRulesBtn:focus-visible,
#rulesDialog #closeRulesBtn:active,
#archiveDialog #closeArchiveBtn,
#archiveDialog #closeArchiveBtn:hover,
#archiveDialog #closeArchiveBtn:focus,
#archiveDialog #closeArchiveBtn:focus-visible,
#archiveDialog #closeArchiveBtn:active{
  outline:none !important;
  box-shadow:none !important;
  -webkit-tap-highlight-color:transparent !important;
}
@media (max-width:768px){
  html.mobileInputFocused{
    height:var(--wp-locked-height) !important;
    min-height:var(--wp-locked-height) !important;
    overflow:hidden !important;
  }
  html.mobileInputFocused body{
    position:fixed !important;
    left:0 !important;
    right:0 !important;
    width:100% !important;
    height:var(--wp-locked-height) !important;
    min-height:var(--wp-locked-height) !important;
    overflow:hidden !important;
    transform:translate3d(0,var(--wp-viewport-offset),0) !important;
  }
}

/* Wordport Player 1.0.298 - matched Close button placement, centred How to Play content, and stable mobile input focus. */
#rulesDialog .rulesDialogCard{
  position:relative !important;
  max-height:calc(100dvh - 32px) !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  overflow:auto !important;
}
#rulesDialog .dialogHeading{
  position:static !important;
  flex:0 0 auto !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  margin:0 0 12px !important;
}
#rulesDialog .dialogHeading h2{
  width:100% !important;
  margin:0 !important;
  text-align:center !important;
}
#rulesDialog #closeRulesBtn{
  position:absolute !important;
  top:26px !important;
  right:26px !important;
  left:auto !important;
  width:auto !important;
  min-width:0 !important;
  min-height:46px !important;
  padding:11px 16px !important;
  margin:0 !important;
  text-align:center !important;
}
#rulesDialog .rulesContent{
  flex:0 0 auto !important;
  min-height:auto !important;
  overflow:visible !important;
  display:block !important;
  margin:0 !important;
}
#rulesDialog .rulesContent > :first-child{
  margin-top:0 !important;
}
@media (max-width:768px){
  html.mobileInputFocused,
  html.mobileInputFocused body{
    width:100% !important;
    height:100% !important;
    min-height:100% !important;
    overflow:hidden !important;
    transform:none !important;
  }
  html.mobileInputFocused body{
    position:fixed !important;
    left:0 !important;
    right:0 !important;
  }
}


/* Wordport Player 1.0.303 - simple text X controls for information dialogs. */
#rulesDialog #closeRulesBtn,
#archiveDialog #closeArchiveBtn{
  position:absolute !important;
  top:20px !important;
  right:20px !important;
  left:auto !important;
  width:36px !important;
  height:36px !important;
  min-width:36px !important;
  min-height:36px !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  color:#4B4B4B !important;
  -webkit-text-fill-color:#4B4B4B !important;
  font:700 28px/36px Arial, sans-serif !important;
  text-align:center !important;
  cursor:pointer !important;
  outline:none !important;
  box-shadow:none !important;
  -webkit-tap-highlight-color:transparent !important;
  z-index:2 !important;
}
#rulesDialog #closeRulesBtn:hover,
#rulesDialog #closeRulesBtn:focus,
#rulesDialog #closeRulesBtn:focus-visible,
#rulesDialog #closeRulesBtn:active,
#archiveDialog #closeArchiveBtn:hover,
#archiveDialog #closeArchiveBtn:focus,
#archiveDialog #closeArchiveBtn:focus-visible,
#archiveDialog #closeArchiveBtn:active{
  border:0 !important;
  background:transparent !important;
  color:#4B4B4B !important;
  -webkit-text-fill-color:#4B4B4B !important;
  outline:none !important;
  box-shadow:none !important;
}
#archiveDialog .archiveDialogCard{
  position:relative !important;
}


/* Wordport Player 1.0.304 - requested mobile anchoring and control refinements. */
#rulesDialog #closeRulesBtn,
#archiveDialog #closeArchiveBtn{
  color:#4B4B4B !important;
  -webkit-text-fill-color:#4B4B4B !important;
  font-weight:400 !important;
}
#nextGameBtn{
  color:#4B4B4B !important;
  -webkit-text-fill-color:#4B4B4B !important;
}
#nextGameBtn:disabled,
#nextGameBtn[disabled],
#nextGameBtn[aria-disabled="true"]{
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
  opacity:1 !important;
}
@media (max-width:768px){
  html.mobileInputFocused,
  html.mobileInputFocused body{
    margin-top:0 !important;
    padding-top:0 !important;
    overflow:hidden !important;
  }
  html.mobileInputFocused body{
    position:fixed !important;
    top:0 !important;
    left:0 !important;
    right:0 !important;
    width:100% !important;
    transform:none !important;
  }
}

/* Wordport Player 1.0.305 - requested Undo colours and hidden banner panel. */
#nextGameBtn{
  color:#4B4B4B !important;
  -webkit-text-fill-color:#4B4B4B !important;
}
#nextGameBtn:disabled,
#nextGameBtn[disabled],
#nextGameBtn[aria-disabled="true"]{
  color:rgba(75,75,75,.25) !important;
  -webkit-text-fill-color:rgba(75,75,75,.25) !important;
  opacity:1 !important;
}
.mobileBannerAd{
  visibility:hidden !important;
  border-color:transparent !important;
  background:transparent !important;
  color:transparent !important;
}

/* Wordport Player 1.0.306 - footer links and centred About/Contact information dialogs. */
.shell .footerLine.footerLinks{
  margin:10px 0 0 !important;
  gap:1.2em !important;
}
.footerInfoLink{
  appearance:none !important;
  -webkit-appearance:none !important;
  border:0 !important;
  padding:0 !important;
  margin:0 !important;
  background:transparent !important;
  color:inherit !important;
  -webkit-text-fill-color:currentColor !important;
  font:inherit !important;
  font-weight:700 !important;
  line-height:inherit !important;
  text-decoration:none !important;
  cursor:pointer !important;
}
.footerInfoLink:hover,
.footerInfoLink:focus,
.footerInfoLink:focus-visible,
.footerInfoLink:active{
  border:0 !important;
  background:transparent !important;
  color:inherit !important;
  outline:none !important;
  box-shadow:none !important;
}
.shell .footerLine.footerIntro{
  margin:3px 0 0 !important;
}
.shell .footerLine.copyright{
  margin:3px 0 0 !important;
}
.informationDialog .informationDialogCard{
  position:relative !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  text-align:center !important;
  overflow:auto !important;
}
.informationDialog .informationContent{
  width:100% !important;
  margin:auto 0 !important;
  text-align:center !important;
}
.informationDialog .informationContent h2{
  margin:0 0 18px !important;
  text-align:center !important;
}
.informationDialog .informationContent p{
  text-align:center !important;
}
.informationDialog .informationContent p:last-child{
  margin-bottom:0 !important;
}
.informationDialog .informationContent a{
  color:inherit !important;
  -webkit-text-fill-color:currentColor !important;
}
.informationDialog .informationCloseBtn,
.informationDialog .informationCloseBtn:hover,
.informationDialog .informationCloseBtn:focus,
.informationDialog .informationCloseBtn:focus-visible,
.informationDialog .informationCloseBtn:active{
  position:absolute !important;
  top:20px !important;
  right:20px !important;
  left:auto !important;
  width:36px !important;
  height:36px !important;
  min-width:36px !important;
  min-height:36px !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  color:#4B4B4B !important;
  -webkit-text-fill-color:#4B4B4B !important;
  font:400 28px/36px Arial, sans-serif !important;
  text-align:center !important;
  cursor:pointer !important;
  outline:none !important;
  box-shadow:none !important;
  -webkit-tap-highlight-color:transparent !important;
  z-index:2 !important;
}

/* Wordport Player 1.0.307 - consistent footer spacing and Contact link styling. */
.footerInfoLink{
  min-height:0 !important;
  height:auto !important;
  vertical-align:baseline !important;
}
.informationDialog .informationContent a{
  text-decoration:none !important;
}


/* Wordport Player 3.16 - prevent gameplay-page scrolling until two rows of Move Pills are full. */
html.gameplayScrollLocked,
html.gameplayScrollLocked body{
  overflow:hidden !important;
  overscroll-behavior:none !important;
}


/* Wordport Player 3.16 - completion thank-you lines use regular weight. */
#resultDialog .sessionTotals .completionThanks{
  font-weight:400 !important;
}

/* Wordport Player 3.28 - mobile layout matched to supplied PNG. */
@media (max-width:560px){
  .wordPair{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
    column-gap:8px !important;
    row-gap:0 !important;
    width:100% !important;
    margin:0 !important;
  }
  .wordPair .betweenWords{
    display:none !important;
  }
  .wordPair .wordBox{
    width:100% !important;
    min-width:0 !important;
    margin:0 !important;
    box-sizing:border-box !important;
  }
  .wordPair .startWordBox strong,
  .wordPair .targetWordBox strong{
    font-size:22.6667px !important;
  }
  .moveControls{
    margin-top:8px !important;
  }
}


/* Wordport Player 3.29 - mobile vertical placement matched to supplied PNG. */
@media (max-width:560px){
  .shell{
    width:100% !important;
    min-height:100dvh !important;
    margin:0 auto !important;
    padding:0 16px 25px !important;
    box-sizing:border-box !important;
    transform:none !important;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
    grid-template-rows:minmax(0,1fr) auto auto auto auto !important;
    align-items:center !important;
    justify-items:center !important;
  }
  .brand{
    grid-row:1 !important;
    align-self:center !important;
    margin:0 !important;
  }
  #gameView.panel{
    grid-row:2 !important;
  }
  .shell .footerLine.footerLinks{
    grid-row:3 !important;
  }
  .shell .footerLine.footerIntro{
    grid-row:4 !important;
  }
  .shell .footerLine.copyright{
    grid-row:5 !important;
  }
  .mobileBannerAd{
    display:none !important;
  }
}

/* Wordport Player 3.33 - mobile endpoint text in both endpoint panels is 4pt smaller than Player 3.29. */
@media (max-width:560px){
  .wordPair .startWordBox strong,
  .wordPair .targetWordBox strong{
    font-size:18.6667px !important;
  }
}


/* Wordport Player 3.34 - Privacy Policy dialog matching the How to Play presentation. */
#privacyDialog .rulesDialogCard{
  position:relative !important;
  width:min(760px,calc(100vw - 32px)) !important;
  max-height:calc(100dvh - 32px) !important;
  display:flex !important;
  flex-direction:column !important;
  overflow:hidden !important;
  text-align:left !important;
}
#privacyDialog .dialogHeading{
  position:relative !important;
  flex:0 0 auto !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  margin:0 0 12px !important;
}
#privacyDialog .dialogHeading h2{
  width:100% !important;
  margin:0 !important;
  text-align:center !important;
}
#privacyDialog #closePrivacyBtn{
  position:absolute !important;
  top:0 !important;
  right:0 !important;
  left:auto !important;
  width:auto !important;
  min-width:0 !important;
  min-height:46px !important;
  padding:11px 16px !important;
  margin:0 !important;
  text-align:center !important;
  outline:none !important;
  box-shadow:none !important;
  -webkit-tap-highlight-color:transparent !important;
}
#privacyDialog .privacyContent{
  flex:1 1 auto !important;
  min-height:0 !important;
  overflow-y:auto !important;
  -webkit-overflow-scrolling:touch !important;
  padding-right:6px !important;
  text-align:left !important;
}
#privacyDialog .privacyContent p{
  margin:10px 0 !important;
  line-height:1.42 !important;
}
#privacyDialog .privacyContent h3{
  margin:20px 0 8px !important;
  font-size:1em !important;
  font-weight:700 !important;
}
#privacyDialog .privacyContent ul{
  margin:6px 0 12px !important;
  padding-left:24px !important;
  list-style:disc !important;
  text-align:left !important;
}
#privacyDialog .privacyContent li{
  margin:4px 0 !important;
  line-height:1.4 !important;
  font-weight:400 !important;
  text-align:left !important;
}
#privacyDialog .privacyContent a{
  color:inherit !important;
  text-decoration:underline !important;
}
@media (max-width:768px){
  #privacyDialog .rulesDialogCard{
    width:calc(100vw - 20px) !important;
    max-height:calc(100dvh - 20px) !important;
    padding:20px !important;
  }
  #privacyDialog #closePrivacyBtn{
    top:0 !important;
    right:0 !important;
  }
}


/* Wordport Player 3.35 - Privacy dialog close control and centred policy text. */
#privacyDialog #closePrivacyBtn,
#privacyDialog #closePrivacyBtn:hover,
#privacyDialog #closePrivacyBtn:focus,
#privacyDialog #closePrivacyBtn:focus-visible,
#privacyDialog #closePrivacyBtn:active{
  position:absolute !important;
  top:20px !important;
  right:20px !important;
  left:auto !important;
  width:36px !important;
  height:36px !important;
  min-width:36px !important;
  min-height:36px !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  color:#4B4B4B !important;
  -webkit-text-fill-color:#4B4B4B !important;
  font:400 28px/36px Arial, sans-serif !important;
  text-align:center !important;
  cursor:pointer !important;
  outline:none !important;
  box-shadow:none !important;
  -webkit-tap-highlight-color:transparent !important;
  z-index:2 !important;
}
#privacyDialog .privacyContent,
#privacyDialog .privacyContent p,
#privacyDialog .privacyContent h3,
#privacyDialog .privacyContent ul,
#privacyDialog .privacyContent li{
  text-align:center !important;
}
#privacyDialog .privacyContent ul{
  list-style-position:inside !important;
  padding-left:0 !important;
}
#privacyDialog .privacyAgreement{
  margin-top:20px !important;
}


/* Wordport Player 3.36 - requested spacing and desktop Privacy overflow correction. */
#rulesDialog .rulesContent .rulesSectionGap{
  margin-top:20px !important;
}
#privacyDialog .dialogHeading{
  padding-top:20px !important;
}
@media (min-width:99999px){
  #privacyDialog .rulesDialogCard,
  #privacyDialog .privacyContent{
    max-width:100% !important;
    box-sizing:border-box !important;
    overflow-x:hidden !important;
  }
  #privacyDialog .privacyContent,
  #privacyDialog .privacyContent p,
  #privacyDialog .privacyContent h3,
  #privacyDialog .privacyContent ul,
  #privacyDialog .privacyContent li,
  #privacyDialog .privacyContent a{
    max-width:100% !important;
    box-sizing:border-box !important;
    overflow-wrap:anywhere !important;
    word-break:normal !important;
    white-space:normal !important;
  }
}

/* Wordport Player 3.37 - slightly tighter gameplay button lettering and narrower Privacy content. */
#undoBtn,
#hintBtn,
#nextGameBtn,
#resultsArchiveBtn,
#gameHowToPlayBtn{
  letter-spacing:.12em !important;
}
#privacyDialog .rulesDialogCard{
  padding-left:32px !important;
  padding-right:32px !important;
}


/* Wordport Player 3.38 - Reveal action and revealed-route pills. */
.buttonRow{
  grid-template-columns:repeat(8,1fr) !important;
  grid-template-rows:auto auto !important;
}
#undoBtn{grid-column:1 / span 2 !important;grid-row:1 !important;}
#nextGameBtn{grid-column:3 / span 2 !important;grid-row:1 !important;}
#hintBtn{grid-column:5 / span 2 !important;grid-row:1 !important;}
#revealBtn{grid-column:7 / span 2 !important;grid-row:1 !important;}
#resultsArchiveBtn{grid-column:1 / span 4 !important;grid-row:2 !important;}
#gameHowToPlayBtn{grid-column:5 / span 4 !important;grid-row:2 !important;}
#revealBtn{
  height:46px !important;
  min-height:46px !important;
  padding:8px !important;
  border:0 !important;
  background:#F2F1E6 !important;
  color:#4B4B4B !important;
  font-size:9px !important;
  line-height:1 !important;
  letter-spacing:.1em !important;
  text-transform:uppercase !important;
  font-weight:800 !important;
}
#revealBtn:disabled{opacity:.38 !important;cursor:default !important;}
.routeStage #routeList .revealedAction,
.routeStage .routeList .revealedAction{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
}
.routeStage #routeList .revealedLabel,
.routeStage .routeList .revealedLabel{
  background:#ff91a4 !important;
  cursor:default !important;
}
.routeStage #routeList .revealedNext,
.routeStage .routeList .revealedNext,
.routeStage #routeList .revealedSkip,
.routeStage .routeList .revealedSkip{
  background:#069494 !important;
}
@media (max-width:700px){
  #revealBtn{font-size:11px !important;}
}


/* Wordport Player 3.39 - revealed-route colours, action order, dim states, and Yesterday colour. */
.routeStage #routeList.revealedRoute > .routeEntry:not(.revealedAction),
.routeStage .routeList.revealedRoute > .routeEntry:not(.revealedAction){
  color:#ff91a4 !important;
  -webkit-text-fill-color:#ff91a4 !important;
}
html.revealSelected #revealBtn:disabled,
html.revealSelected #undoBtn:disabled{
  opacity:1 !important;
  filter:none !important;
  color:#ff91a4 !important;
  -webkit-text-fill-color:#ff91a4 !important;
  cursor:default !important;
  pointer-events:none !important;
}
#resultsArchiveBtn,
#resultsArchiveBtn:hover,
#resultsArchiveBtn:focus,
#resultsArchiveBtn:focus-visible,
#resultsArchiveBtn:active{
  background:rgba(75,75,75,.25) !important;
  color:#FFFFFF !important;
}


/* Wordport Player 3.41 - hide revealed-puzzle controls without moving the fixed lower buttons. */
html.revealSelected #undoBtn,
html.revealSelected #nextGameBtn,
html.revealSelected #hintBtn,
html.revealSelected #revealBtn{
  visibility:hidden !important;
  pointer-events:none !important;
}
#resultsArchiveBtn,
#resultsArchiveBtn:hover,
#resultsArchiveBtn:focus,
#resultsArchiveBtn:focus-visible,
#resultsArchiveBtn:active{
  color:#4B4B4B !important;
  -webkit-text-fill-color:#4B4B4B !important;
}


/* Wordport Player 3.43 - reveal confirmation, action order, praise text and completion action. */
.routeStage #routeList .completionPraiseRoute,
.routeStage .routeList .completionPraiseRoute{
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
}
.revealConfirmBox{
  grid-column:1 / span 8 !important;
  grid-row:1 !important;
  height:46px !important;
  min-height:46px !important;
  padding:8px 12px !important;
  border:0 !important;
  background:#F2F1E6 !important;
  color:#4B4B4B !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:22px !important;
  box-sizing:border-box !important;
  font-family:inherit !important;
  font-size:9px !important;
  line-height:1 !important;
  letter-spacing:.12em !important;
  text-transform:uppercase !important;
  font-weight:800 !important;
  white-space:nowrap !important;
}
.revealConfirmBox.hidden{display:none !important;}
.revealConfirmBox button{
  min-width:0 !important;
  min-height:0 !important;
  height:auto !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  color:#4B4B4B !important;
  font:inherit !important;
  letter-spacing:inherit !important;
  text-transform:inherit !important;
}
.revealConfirmBox button:hover,
.revealConfirmBox button:focus{
  background:transparent !important;
  text-decoration:underline !important;
}
html.revealConfirming #undoBtn,
html.revealConfirming #nextGameBtn,
html.revealConfirming #hintBtn,
html.revealConfirming #revealBtn{
  visibility:hidden !important;
  pointer-events:none !important;
}
.buttonRow{position:relative !important;}
#revealConfirmBox{position:absolute !important;left:0 !important;right:0 !important;top:0 !important;z-index:2 !important;}
@media (max-width:700px){
  .revealConfirmBox{font-size:11px !important;gap:20px !important;}
}


/* Wordport Player 3.44 - matching Hint and Reveal confirmation panels. */
.hintConfirmBox,
.revealConfirmBox{
  position:absolute !important;
  left:0 !important;
  right:0 !important;
  top:0 !important;
  z-index:2 !important;
  width:100% !important;
  height:46px !important;
  min-height:46px !important;
  margin:0 !important;
  padding:8px 12px !important;
  border:0 !important;
  background:#F2F1E6 !important;
  color:#4B4B4B !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:22px !important;
  box-sizing:border-box !important;
  font-family:inherit !important;
  font-size:9px !important;
  line-height:1 !important;
  letter-spacing:.12em !important;
  text-transform:uppercase !important;
  font-weight:800 !important;
  white-space:nowrap !important;
  text-align:center !important;
}
.hintConfirmBox.hidden,
.revealConfirmBox.hidden{display:none !important;}
.hintConfirmBox button,
.revealConfirmBox button{
  min-width:0 !important;
  min-height:0 !important;
  height:auto !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  color:#4B4B4B !important;
  font:inherit !important;
  letter-spacing:inherit !important;
  text-transform:inherit !important;
  text-decoration:none !important;
  cursor:pointer !important;
}
.hintConfirmBox button:hover,
.hintConfirmBox button:focus,
.hintConfirmBox button:active,
.revealConfirmBox button:hover,
.revealConfirmBox button:focus,
.revealConfirmBox button:active{
  background:transparent !important;
  text-decoration:none !important;
}
html.hintConfirming #undoBtn,
html.hintConfirming #nextGameBtn,
html.hintConfirming #hintBtn,
html.hintConfirming #revealBtn,
html.revealConfirming #undoBtn,
html.revealConfirming #nextGameBtn,
html.revealConfirming #hintBtn,
html.revealConfirming #revealBtn{
  visibility:hidden !important;
  pointer-events:none !important;
}
@media (max-width:700px){
  .hintConfirmBox,
  .revealConfirmBox{font-size:11px !important;gap:20px !important;}
}

#hintBtn.hintUsed,
#hintBtn[aria-disabled="true"]{
  visibility:hidden !important;
  pointer-events:none !important;
}


/* Wordport Player 3.45 - identical Hint and Reveal panel width. */
#hintConfirmBox,
#revealConfirmBox{
  left:0 !important;
  right:0 !important;
  width:100% !important;
  min-width:100% !important;
  max-width:none !important;
  flex-basis:100% !important;
}


/* Wordport Player 3.47 - completion heading spacing only. */
#resultDialog #resultTitle{
  margin-bottom:0 !important;
}
#resultDialog #resultBody .completePair{
  margin-top:0 !important;
}


/* Wordport Player 3.50 - three-line Reveal warning panel. */
#revealConfirmBox{
  height:116px !important;
  min-height:116px !important;
  padding:14px 12px !important;
  flex-direction:column !important;
  justify-content:center !important;
  gap:14px !important;
  white-space:normal !important;
}
#revealConfirmBox .revealConfirmLine{
  width:100% !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:22px !important;
  text-align:center !important;
  white-space:nowrap !important;
}
#revealConfirmBox .revealConfirmQuestion{
  line-height:1 !important;
}
@media (max-width:700px){
  #revealConfirmBox{
    height:116px !important;
    min-height:116px !important;
    gap:14px !important;
  }
  #revealConfirmBox .revealConfirmLine{gap:20px !important;}
}

/* Wordport Player 3.50 - keep the three-line Reveal panel in the normal grid row. */
#revealConfirmBox{
  position:relative !important;
  top:auto !important;
  left:auto !important;
  right:auto !important;
  z-index:2 !important;
  grid-column:1 / span 8 !important;
  grid-row:1 !important;
  align-self:stretch !important;
}



/* Wordport Player 3.52 - difficulty selector and Tricky controls. */
.brandWithDifficulty{
  display:grid;
  grid-template-columns:minmax(76px,1fr) auto minmax(76px,1fr);
  align-items:center;
  column-gap:18px;
}
.brandWithDifficulty h1{grid-column:2;margin:0;text-align:center;}
.difficultyButton{
  appearance:none;
  border:0;
  background:transparent;
  padding:8px 0;
  margin:0;
  font:inherit;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#cfcfcf;
  cursor:pointer;
  white-space:nowrap;
}
#moderateModeBtn{grid-column:1;justify-self:start;}
#trickyModeBtn{grid-column:3;justify-self:end;}
.difficultyButton.selected{color:#4b4b4b;}
.trickyMode #hintBtn,
.trickyMode #revealBtn,
.trickyMode #hintConfirmBox,
.trickyMode #revealConfirmBox{display:none!important;}
.trickyMode .buttonRow{grid-template-columns:repeat(2,minmax(0,1fr));}
.trickyMode #undoBtn,
.trickyMode #nextGameBtn{width:100%;}
@media(max-width:520px){
  .brandWithDifficulty{grid-template-columns:minmax(72px,1fr) auto minmax(72px,1fr);column-gap:10px;}
  .difficultyButton{font-size:13px;letter-spacing:.1em;}
}
.trickyMode .buttonRow{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  grid-template-rows:auto auto !important;
}
.trickyMode #undoBtn{grid-column:1 !important;grid-row:1 !important;}
.trickyMode #nextGameBtn{grid-column:2 !important;grid-row:1 !important;}
.trickyMode #resultsArchiveBtn{grid-column:1 !important;grid-row:2 !important;}
.trickyMode #gameHowToPlayBtn{grid-column:2 !important;grid-row:2 !important;}


/* Wordport Player 3.53 - in-panel difficulty selector, spacing and footer. */
.brand{display:block !important;}
.brand h1{margin:0 !important;text-align:center !important;}
.gameMetaSummary{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  gap:14px !important;
  padding-top:0 !important;
  margin-bottom:28px !important;
  color:#4b4b4b !important;
  font-size:9px !important;
  line-height:1 !important;
  letter-spacing:.12em !important;
  text-transform:uppercase !important;
  font-weight:800 !important;
}
.difficultySelector{display:flex;align-items:center;justify-content:center;gap:7px;}
.difficultyButton{
  appearance:none !important;border:0 !important;background:transparent !important;
  padding:0 !important;margin:0 !important;color:#cfcfcf !important;
  font:inherit !important;letter-spacing:inherit !important;text-transform:uppercase !important;
  cursor:pointer !important;white-space:nowrap !important;
}
.difficultyButton.selected{color:#4b4b4b !important;}
.difficultyBullet,.summaryBullet{color:#cfcfcf !important;}
#puzzleSummary{color:#4b4b4b !important;font:inherit !important;letter-spacing:inherit !important;}
.wordPair{margin-top:0 !important;}
.footerLinks .footerInfoLink,.footerIntro{color:#4b4b4b !important;}
.copyright{color:#4b4b4b !important;}
/* Keep control positions deterministic while changing difficulty. */
.buttonRow,#undoBtn,#nextGameBtn,#hintBtn,#revealBtn,#resultsArchiveBtn,#gameHowToPlayBtn{transition:none !important;}
.trickyMode #hintBtn,.trickyMode #revealBtn,.trickyMode #hintConfirmBox,.trickyMode #revealConfirmBox{display:none !important;}
.trickyMode .buttonRow{grid-template-columns:repeat(8,1fr) !important;grid-template-rows:auto auto !important;}
.trickyMode #undoBtn{grid-column:1 / span 4 !important;grid-row:1 !important;width:100% !important;}
.trickyMode #nextGameBtn{grid-column:5 / span 4 !important;grid-row:1 !important;width:100% !important;}
.trickyMode #resultsArchiveBtn{grid-column:1 / span 4 !important;grid-row:2 !important;}
.trickyMode #gameHowToPlayBtn{grid-column:5 / span 4 !important;grid-row:2 !important;}
@media(max-width:700px){
  .gameMetaSummary{gap:14px !important;margin-bottom:30px !important;font-size:9px !important;}
}


/* Wordport Player 3.54 - difficulty summary typography, spacing and footer colours only. */
.gameMetaSummary{
  min-height:72px !important;
  justify-content:center !important;
  gap:5px !important;
  margin-bottom:18px !important;
  color:#4b4b4b !important;
  font-family:inherit !important;
  font-size:9px !important;
  line-height:1 !important;
  letter-spacing:.12em !important;
  text-transform:uppercase !important;
  font-weight:800 !important;
}
.difficultySelector,#puzzleSummary{
  font:inherit !important;
  line-height:1 !important;
  letter-spacing:inherit !important;
  font-weight:inherit !important;
}
.difficultyButton{
  font:inherit !important;
  line-height:1 !important;
  letter-spacing:inherit !important;
  font-weight:inherit !important;
}
.difficultyButton.selected{color:#4b4b4b !important;}
.difficultyButton:not(.selected),.difficultyBullet{color:#cfcfcf !important;}
.summaryBullet{color:#4b4b4b !important;}
.shell .footerLine.footerLinks,
.shell .footerLine.footerIntro,
.shell .footerLine.footerLinks .footerInfoLink{
  color:#4b4b4b !important;
  -webkit-text-fill-color:#4b4b4b !important;
  opacity:1 !important;
}
@media(max-width:700px){
  .gameMetaSummary{
    min-height:72px !important;
    gap:5px !important;
    margin-bottom:18px !important;
    font-size:9px !important;
  }
}

/* Wordport Player 3.59 - requested typography only. */
.difficultySelector{
  font-family:inherit !important;
  font-size:11pt !important;
  line-height:1 !important;
  letter-spacing:.08em !important;
  font-weight:700 !important;
  transform:translateY(8px) !important;
}
.difficultyButton{
  font-family:inherit !important;
  font-size:inherit !important;
  line-height:inherit !important;
  letter-spacing:inherit !important;
  font-weight:inherit !important;
}
#puzzleSummary{
  font-family:inherit !important;
  font-size:10pt !important;
  line-height:1 !important;
  letter-spacing:0 !important;
  font-weight:400 !important;
  text-transform:none !important;
  transform:translateY(-4px) !important;
}

/* Wordport Player 3.61 - keep all valid gameplay controls visible while switching difficulty. */
html.difficultyChanging .buttonRow{visibility:visible !important;}


/* Wordport Player 3.63 - logo removal and in-panel difficulty heading only. */
.brandSpacer h1{visibility:hidden !important;}
.difficultySelector{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:7px !important;
  text-transform:none !important;
}
.difficultyWordport{
  order:1;
  color:#4b4b4b !important;
  text-transform:uppercase !important;
}
.difficultyBulletFirst{order:2;color:#cfcfcf !important;}
#moderateModeBtn{order:3;}
.difficultyBulletSecond{order:4;color:#cfcfcf !important;}
#trickyModeBtn{order:5;}
.trickyMode #trickyModeBtn{order:3;}
.trickyMode #moderateModeBtn{order:5;}
.difficultyButton{
  text-transform:none !important;
  text-decoration:none !important;
}
.difficultyButton:hover,.difficultyButton:focus,.difficultyButton:active{
  text-decoration:none !important;
}
.difficultyButton.selected{color:#4b4b4b !important;}
.difficultyButton:not(.selected){color:#cfcfcf !important;}


/* Wordport Player 3.64 - difficulty heading weights and tracking only. */
.difficultySelector{letter-spacing:0 !important;}
.difficultyWordport{font-weight:900 !important;letter-spacing:0 !important;}
.difficultyButton{font-weight:500 !important;letter-spacing:0 !important;}


/* Wordport Player 3.65 - requested vertical spacing, three-line heading and Hint availability. */
.shell{position:relative !important;top:8px !important;}
.gameMetaSummary{
  min-height:auto !important;
  height:auto !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
  gap:5px !important;
  padding-top:0 !important;
}
.difficultyWordport{
  font-size:12pt !important;
  line-height:1 !important;
  font-weight:900 !important;
  letter-spacing:0 !important;
  color:#4b4b4b !important;
}
.difficultySelector{
  font-size:11pt !important;
  line-height:1 !important;
  font-weight:700 !important;
  letter-spacing:0 !important;
  transform:none !important;
}
#puzzleSummary{
  transform:none !important;
  margin:0 !important;
}
.wordPair{margin-top:12px !important;}
#hintBtn.hintUnavailable{display:none !important;}


/* Wordport Player 3.66 - corrected three-line heading order and equal line spacing only. */
.gameMetaSummary{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:6px !important;
}
.gameMetaSummary > .difficultyWordport,
.gameMetaSummary > .difficultySelector,
.gameMetaSummary > #puzzleSummary{
  position:static !important;
  margin:0 !important;
  padding:0 !important;
  transform:none !important;
  line-height:1 !important;
}
.gameMetaSummary > .difficultyWordport{order:1 !important;}
.gameMetaSummary > .difficultySelector{order:2 !important;}
.gameMetaSummary > #puzzleSummary{order:3 !important;}


/* Wordport Player 3.67 - fixed level positions and compact vertically centred heading only. */
.gameMetaSummary{
  min-height:72px !important;
  justify-content:center !important;
  gap:2px !important;
}
.gameMetaSummary > .difficultyWordport,
.gameMetaSummary > .difficultySelector,
.gameMetaSummary > #puzzleSummary{
  line-height:1 !important;
}
.difficultySelector{
  gap:7px !important;
  font-weight:700 !important;
}
#moderateModeBtn{order:1 !important;font-weight:700 !important;}
.difficultyBulletFirst{
  order:2 !important;
  color:#cfcfcf !important;
  font-weight:700 !important;
}
#trickyModeBtn{order:3 !important;font-weight:700 !important;}
.trickyMode #moderateModeBtn{order:1 !important;}
.trickyMode .difficultyBulletFirst{order:2 !important;}
.trickyMode #trickyModeBtn{order:3 !important;}

/* Wordport Player 3.71 - requested heading positioning only. */
.gameMetaSummary > .difficultyWordport{
  transform:translateY(-1px) !important;
}
.gameMetaSummary > .difficultySelector{
  transform:translateY(-11px) !important;
}
.gameMetaSummary > #puzzleSummary{
  transform:translateY(-20px) !important;
}
.wordPair,
.moveControls,
.routeStage{
  transform:translateY(-18px) !important;
}


/* Wordport Player 3.77 - Puzzle 3 final action geometry only. */
#resultDialog.puzzle3Complete .dialogCard{
  --puzzle3-action-width:330px;
}
#resultDialog.puzzle3Complete .resultButtons{
  order:3 !important;
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:0 !important;
  width:min(100%,var(--puzzle3-action-width)) !important;
  max-width:var(--puzzle3-action-width) !important;
  margin:auto auto 0 !important;
  padding:0 !important;
  align-self:center !important;
  justify-items:stretch !important;
}
#resultDialog.puzzle3Complete #shareButtons{
  order:4 !important;
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
  gap:8px !important;
  width:min(100%,var(--puzzle3-action-width)) !important;
  max-width:var(--puzzle3-action-width) !important;
  margin:8px auto 0 !important;
  padding:0 !important;
  align-self:center !important;
  justify-items:stretch !important;
}
#resultDialog.puzzle3Complete #resultContinueBtn,
#resultDialog.puzzle3Complete #shareEmailBtn,
#resultDialog.puzzle3Complete #resultSwitchDifficultyBtn{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  height:46px !important;
  min-height:46px !important;
  margin:0 !important;
  padding:8px !important;
  box-sizing:border-box !important;
  border:0 !important;
  border-radius:0 !important;
  background:#EFBF04 !important;
  color:#4B4B4B !important;
  -webkit-text-fill-color:#4B4B4B !important;
  box-shadow:none !important;
  font-family:inherit !important;
  font-size:9px !important;
  font-weight:800 !important;
  line-height:1 !important;
  letter-spacing:.12em !important;
  text-transform:uppercase !important;
  text-decoration:none !important;
  white-space:nowrap !important;
}
#resultDialog.puzzle3Complete #resultSwitchDifficultyBtn.hidden,
#resultDialog.puzzle3Complete #shareEmailBtn.hidden{
  display:none !important;
}


/* Wordport Player 3.78 - final-action labels and Hint-matched font sizing only. */
@media (max-width:700px){
  #resultDialog.puzzle3Complete #resultContinueBtn,
  #resultDialog.puzzle3Complete #shareEmailBtn,
  #resultDialog.puzzle3Complete #resultSwitchDifficultyBtn{
    font-size:11px !important;
  }
}


/* Wordport Player 3.80 - Puzzle 1 and 2 gold-button text matches Puzzle 3. */
#resultDialog:not(.puzzle3Complete) #resultContinueBtn.nextPuzzleAction{
  color:#4B4B4B !important;
  -webkit-text-fill-color:#4B4B4B !important;
  font-family:inherit !important;
  font-size:9px !important;
  font-weight:800 !important;
  line-height:1 !important;
  letter-spacing:.12em !important;
  text-transform:uppercase !important;
  text-decoration:none !important;
  white-space:nowrap !important;
}
@media (max-width:700px){
  #resultDialog:not(.puzzle3Complete) #resultContinueBtn.nextPuzzleAction{
    font-size:11px !important;
  }
}


/* Wordport Player 3.89 - increase all bottom action-button text by exactly 1pt. */
#undoBtn,
#nextGameBtn,
#hintBtn,
#revealBtn,
#resultsArchiveBtn,
#gameHowToPlayBtn,
#resultDialog #resultContinueBtn,
#resultDialog #shareEmailBtn,
#resultDialog #resultSwitchDifficultyBtn{
  font-size:calc(9px + 1pt) !important;
}
@media (max-width:700px){
  #undoBtn,
  #nextGameBtn,
  #hintBtn,
  #revealBtn,
  #resultsArchiveBtn,
  #gameHowToPlayBtn,
  #resultDialog #resultContinueBtn,
  #resultDialog #shareEmailBtn,
  #resultDialog #resultSwitchDifficultyBtn{
    font-size:calc(11px + 1pt) !important;
  }
}


/* Wordport Player 3.90 - increase complete/revealed action-button text by a further 1pt. */
#resultDialog #resultContinueBtn,
#resultDialog #shareEmailBtn,
#resultDialog #resultSwitchDifficultyBtn{
  font-size:calc(9px + 2pt) !important;
}
@media (max-width:700px){
  #resultDialog #resultContinueBtn,
  #resultDialog #shareEmailBtn,
  #resultDialog #resultSwitchDifficultyBtn{
    font-size:calc(11px + 2pt) !important;
  }
}

/* Wordport Player 3.91 - increase complete/revealed gold action-button text by a further 1pt. */
#resultDialog #resultContinueBtn,
#resultDialog #shareEmailBtn,
#resultDialog #resultSwitchDifficultyBtn{
  font-size:calc(9px + 3pt) !important;
}
@media (max-width:700px){
  #resultDialog #resultContinueBtn,
  #resultDialog #shareEmailBtn,
  #resultDialog #resultSwitchDifficultyBtn{
    font-size:calc(11px + 3pt) !important;
  }
}

/* Wordport Player 3.92 - ensure the requested cumulative 3pt increase applies to all complete/revealed gold buttons. */
#resultDialog:not(.puzzle3Complete) #resultContinueBtn.nextPuzzleAction{
  font-size:calc(9px + 3pt) !important;
}
#resultDialog.puzzle3Complete #resultContinueBtn,
#resultDialog.puzzle3Complete #shareEmailBtn,
#resultDialog.puzzle3Complete #resultSwitchDifficultyBtn{
  font-size:calc(9px + 3pt) !important;
}
@media (max-width:700px){
  #resultDialog:not(.puzzle3Complete) #resultContinueBtn.nextPuzzleAction{
    font-size:calc(11px + 3pt) !important;
  }
  #resultDialog.puzzle3Complete #resultContinueBtn,
  #resultDialog.puzzle3Complete #shareEmailBtn,
  #resultDialog.puzzle3Complete #resultSwitchDifficultyBtn{
    font-size:calc(11px + 3pt) !important;
  }
}

/* Wordport Player 3.94 - reduce specified complete/revealed gold-button tracking by 50%. */
#resultDialog.moderateResult.completeResult #resultContinueBtn,
#resultDialog.moderateResult.completeResult #shareEmailBtn,
#resultDialog.moderateResult.completeResult #resultSwitchDifficultyBtn,
#resultDialog.moderateResult.revealedResult #resultContinueBtn,
#resultDialog.moderateResult.revealedResult #shareEmailBtn,
#resultDialog.moderateResult.revealedResult #resultSwitchDifficultyBtn,
#resultDialog.trickyResult.completeResult #resultContinueBtn,
#resultDialog.trickyResult.completeResult #shareEmailBtn,
#resultDialog.trickyResult.completeResult #resultSwitchDifficultyBtn{
  letter-spacing:.06em !important;
}


/* Wordport Player 3.95 - reduce specified gold-button text by 0.5pt and use normal weight. */
#resultDialog.moderateResult.completeResult #resultContinueBtn,
#resultDialog.moderateResult.completeResult #shareEmailBtn,
#resultDialog.moderateResult.completeResult #resultSwitchDifficultyBtn,
#resultDialog.moderateResult.revealedResult #resultContinueBtn,
#resultDialog.moderateResult.revealedResult #shareEmailBtn,
#resultDialog.moderateResult.revealedResult #resultSwitchDifficultyBtn,
#resultDialog.trickyResult.completeResult #resultContinueBtn,
#resultDialog.trickyResult.completeResult #shareEmailBtn,
#resultDialog.trickyResult.completeResult #resultSwitchDifficultyBtn{
  font-size:calc(9px + 2.5pt) !important;
  font-weight:400 !important;
}
@media (max-width:700px){
  #resultDialog.moderateResult.completeResult #resultContinueBtn,
  #resultDialog.moderateResult.completeResult #shareEmailBtn,
  #resultDialog.moderateResult.completeResult #resultSwitchDifficultyBtn,
  #resultDialog.moderateResult.revealedResult #resultContinueBtn,
  #resultDialog.moderateResult.revealedResult #shareEmailBtn,
  #resultDialog.moderateResult.revealedResult #resultSwitchDifficultyBtn,
  #resultDialog.trickyResult.completeResult #resultContinueBtn,
  #resultDialog.trickyResult.completeResult #shareEmailBtn,
  #resultDialog.trickyResult.completeResult #resultSwitchDifficultyBtn{
    font-size:calc(11px + 2.5pt) !important;
    font-weight:400 !important;
  }
}


/* Wordport Player 3.96 - reduce specified gold-button text by a further 0.5pt and use medium weight. */
#resultDialog.moderateResult.completeResult #resultContinueBtn,
#resultDialog.moderateResult.completeResult #shareEmailBtn,
#resultDialog.moderateResult.completeResult #resultSwitchDifficultyBtn,
#resultDialog.moderateResult.revealedResult #resultContinueBtn,
#resultDialog.moderateResult.revealedResult #shareEmailBtn,
#resultDialog.moderateResult.revealedResult #resultSwitchDifficultyBtn,
#resultDialog.trickyResult.completeResult #resultContinueBtn,
#resultDialog.trickyResult.completeResult #shareEmailBtn,
#resultDialog.trickyResult.completeResult #resultSwitchDifficultyBtn{
  font-size:calc(9px + 2pt) !important;
  font-weight:500 !important;
}
@media (max-width:700px){
  #resultDialog.moderateResult.completeResult #resultContinueBtn,
  #resultDialog.moderateResult.completeResult #shareEmailBtn,
  #resultDialog.moderateResult.completeResult #resultSwitchDifficultyBtn,
  #resultDialog.moderateResult.revealedResult #resultContinueBtn,
  #resultDialog.moderateResult.revealedResult #shareEmailBtn,
  #resultDialog.moderateResult.revealedResult #resultSwitchDifficultyBtn,
  #resultDialog.trickyResult.completeResult #resultContinueBtn,
  #resultDialog.trickyResult.completeResult #shareEmailBtn,
  #resultDialog.trickyResult.completeResult #resultSwitchDifficultyBtn{
    font-size:calc(11px + 2pt) !important;
    font-weight:500 !important;
  }
}


/* Wordport Player 4.06 - preserve line breaks in two-line red validation messages. */
.message.error{
  white-space:pre-line !important;
}


/* Wordport Player 4.09 - keep line 1 fixed and add 5px between validation-error lines. */
.routeStage .message.twoLineError{
  display:block !important;
  height:37px !important;
  min-height:37px !important;
  line-height:16px !important;
  padding:0 !important;
}
.routeStage .message.twoLineError .errorLine{
  display:block !important;
  line-height:16px !important;
}
.routeStage .message.twoLineError .errorLineSecond{
  margin-top:5px !important;
}

/* Wordport Player 4.10 - three-puzzle arrow navigation. */
.puzzleMoveNavigator{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:stretch;
  gap:10px;
  width:100%;
}
.puzzleMoveNavigator .moveControls{width:100%;margin:0;}
.puzzleMoveNavigator #moveInput{width:100%;height:100%;box-sizing:border-box;}
.puzzleNavArrow{
  width:48px;
  min-width:48px;
  padding:0;
  border:3px solid #4B4B4B;
  background:#fff;
  color:#4B4B4B;
  font:400 50px/1 Arial,sans-serif;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}
.puzzleNavArrow:disabled{opacity:.35;cursor:default;}
@media (max-width:768px){
  .puzzleMoveNavigator{gap:8px;}
  .puzzleNavArrow{width:44px;min-width:44px;font-size:46px;}
}


/* Wordport Player 4.11 - Part 2 presentation refinements only. */
#puzzleSummary{
  font-weight:400 !important;
}
#puzzleSummary > strong{
  font-weight:700 !important;
}

.puzzleMoveNavigator #moveInput{
  text-align:center !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
}
.puzzleMoveNavigator #moveInput::placeholder{
  font-size:calc(16px - 1pt) !important;
  line-height:1 !important;
  text-align:center !important;
}

.puzzleMoveNavigator{
  grid-template-columns:clamp(48px,12.5%,72px) minmax(0,1fr) clamp(48px,12.5%,72px) !important;
  gap:12px !important;
  align-items:stretch !important;
}
.puzzleNavArrow{
  position:relative !important;
  width:100% !important;
  min-width:0 !important;
  height:auto !important;
  padding:0 !important;
  border:2px solid #4B4B4B !important;
  color:transparent !important;
  font-size:0 !important;
  line-height:1 !important;
}
.puzzleNavArrow::before{
  content:"";
  display:block;
  width:20px;
  height:20px;
  border-top:2px solid #4B4B4B;
  border-right:2px solid #4B4B4B;
  position:absolute;
  top:50%;
  left:50%;
  box-sizing:border-box;
}
#previousPuzzleBtn::before{
  transform:translate(-35%,-50%) rotate(-135deg);
}
#nextPuzzleBtn::before{
  transform:translate(-65%,-50%) rotate(45deg);
}
@media (max-width:768px){
  .puzzleMoveNavigator{
    grid-template-columns:clamp(44px,12.5%,64px) minmax(0,1fr) clamp(44px,12.5%,64px) !important;
    gap:10px !important;
  }
  .puzzleNavArrow::before{
    width:18px;
    height:18px;
  }
}
\n\n/* Wordport Player 4.12 - requested difficulty contrast, arrow interaction and reference geometry. */\n.difficultyButton:not(.selected),\n.difficultyBullet{\n  color:#bdbdbd !important;\n}\n.puzzleNavArrow{\n  -webkit-tap-highlight-color:transparent !important;\n  touch-action:manipulation;\n  outline:none !important;\n  background:#fff !important;\n  border-color:#4B4B4B !important;\n  box-shadow:none !important;\n}\n.puzzleNavArrow:hover,\n.puzzleNavArrow:focus,\n.puzzleNavArrow:focus-visible,\n.puzzleNavArrow:active{\n  background:#fff !important;\n  border-color:#4B4B4B !important;\n  box-shadow:none !important;\n  outline:none !important;\n}\n.puzzleMoveNavigator{\n  grid-template-columns:clamp(48px,12.5%,72px) minmax(0,1fr) clamp(48px,12.5%,72px) !important;\n  gap:12px !important;\n}\n.puzzleNavArrow::before{\n  width:20px !important;\n  height:20px !important;\n  border-top-width:2px !important;\n  border-right-width:2px !important;\n}\n@media (max-width:768px){\n  .puzzleMoveNavigator{\n    grid-template-columns:44px minmax(0,1fr) 44px !important;\n    gap:8px !important;\n  }\n  .puzzleNavArrow::before{\n    width:18px !important;\n    height:18px !important;\n  }\n}\n

/* Wordport Player 4.13 - exact requested contrast, no Skip controls, persistent reveal state, and arrow geometry. */
.difficultyButton:not(.selected),
.difficultyBullet{
  color:#c8c8c8 !important;
}

/* No Skip control is displayed anywhere in the player. */
#skipDialog,
.revealedSkip{
  display:none !important;
}

/* A reviewed revealed puzzle retains its pink route and REVEALED status pill. */
#routeList.revealedRoute .routeEntry:not(.revealedLabel):not(.completionPraiseRoute){
  color:#ff91a4 !important;
}
#routeList .persistentRevealedRoute{
  display:flex !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* Arrow boxes align exactly to the move-entry box and use the same 3px keyline. */
.puzzleMoveNavigator{
  display:grid !important;
  grid-template-columns:44px minmax(0,1fr) 44px !important;
  align-items:stretch !important;
  column-gap:8px !important;
  width:100% !important;
}
.puzzleMoveNavigator .moveControls,
.puzzleMoveNavigator #moveInput,
.puzzleNavArrow{
  height:100% !important;
  min-height:100% !important;
  box-sizing:border-box !important;
  align-self:stretch !important;
}
.puzzleNavArrow{
  width:44px !important;
  min-width:44px !important;
  max-width:44px !important;
  margin:0 !important;
  padding:0 !important;
  border:3px solid #4B4B4B !important;
  border-radius:0 !important;
  background:#fff !important;
  color:transparent !important;
  box-shadow:none !important;
  outline:none !important;
  appearance:none !important;
  -webkit-appearance:none !important;
  -webkit-tap-highlight-color:transparent !important;
  user-select:none !important;
  -webkit-user-select:none !important;
  touch-action:manipulation !important;
}
.puzzleNavArrow:hover,
.puzzleNavArrow:focus,
.puzzleNavArrow:focus-visible,
.puzzleNavArrow:active{
  background:#fff !important;
  color:transparent !important;
  border-color:#4B4B4B !important;
  box-shadow:none !important;
  outline:none !important;
  filter:none !important;
  transform:none !important;
}
.puzzleNavArrow::before{
  width:18px !important;
  height:18px !important;
  border-top:3px solid #4B4B4B !important;
  border-right:3px solid #4B4B4B !important;
  box-sizing:border-box !important;
}
#previousPuzzleBtn::before{
  transform:translate(-35%,-50%) rotate(-135deg) !important;
}
#nextPuzzleBtn::before{
  transform:translate(-65%,-50%) rotate(45deg) !important;
}
@media (min-width:99999px){
  .puzzleMoveNavigator{
    grid-template-columns:clamp(48px,12.5%,72px) minmax(0,1fr) clamp(48px,12.5%,72px) !important;
    column-gap:12px !important;
  }
  .puzzleNavArrow{
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
  }
  .puzzleNavArrow::before{
    width:20px !important;
    height:20px !important;
  }
}


/* Wordport Player 4.14 - constant square puzzle navigation geometry. */
.puzzleMoveNavigator{
  display:grid !important;
  grid-template-columns:44px minmax(0,1fr) 44px !important;
  grid-template-rows:44px !important;
  align-items:stretch !important;
  column-gap:8px !important;
  width:100% !important;
  height:44px !important;
  min-height:44px !important;
  max-height:44px !important;
  box-sizing:border-box !important;
}
.puzzleMoveNavigator .moveControls{
  display:block !important;
  width:100% !important;
  height:44px !important;
  min-height:44px !important;
  max-height:44px !important;
  margin:0 !important;
  padding:0 !important;
  box-sizing:border-box !important;
}
.puzzleMoveNavigator #moveInput,
.puzzleMoveNavigator .puzzleNavArrow{
  height:44px !important;
  min-height:44px !important;
  max-height:44px !important;
  margin:0 !important;
  border:2px solid #4B4B4B !important;
  border-radius:0 !important;
  box-sizing:border-box !important;
  align-self:auto !important;
}
.puzzleMoveNavigator #moveInput{
  width:100% !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
}
.puzzleMoveNavigator .puzzleNavArrow{
  width:44px !important;
  min-width:44px !important;
  max-width:44px !important;
  aspect-ratio:1 / 1 !important;
  background:#fff !important;
  color:transparent !important;
  box-shadow:none !important;
  outline:none !important;
  filter:none !important;
  transform:none !important;
}
.puzzleMoveNavigator .puzzleNavArrow:hover,
.puzzleMoveNavigator .puzzleNavArrow:focus,
.puzzleMoveNavigator .puzzleNavArrow:focus-visible,
.puzzleMoveNavigator .puzzleNavArrow:active{
  background:#fff !important;
  border-color:#4B4B4B !important;
  box-shadow:none !important;
  outline:none !important;
  filter:none !important;
  transform:none !important;
}
.puzzleMoveNavigator .puzzleNavArrow::before{
  width:18px !important;
  height:18px !important;
  border-top:2px solid #4B4B4B !important;
  border-right:2px solid #4B4B4B !important;
}
@media (min-width:99999px){
  .puzzleMoveNavigator{
    grid-template-columns:48px minmax(0,1fr) 48px !important;
    grid-template-rows:48px !important;
    height:48px !important;
    min-height:48px !important;
    max-height:48px !important;
    column-gap:12px !important;
  }
  .puzzleMoveNavigator .moveControls,
  .puzzleMoveNavigator #moveInput,
  .puzzleMoveNavigator .puzzleNavArrow{
    height:48px !important;
    min-height:48px !important;
    max-height:48px !important;
  }
  .puzzleMoveNavigator .puzzleNavArrow{
    width:48px !important;
    min-width:48px !important;
    max-width:48px !important;
  }
  .puzzleMoveNavigator .puzzleNavArrow::before{
    width:20px !important;
    height:20px !important;
  }
}


/* Wordport Player 4.15 - exact inactive colour, 1px keylines and endpoint-matched vertical spacing. */
.difficultyButton:not(.selected),
.difficultyBullet{
  color:#ABABAB !important;
}

/* The gap between the endpoint panels is 46px; use the same Y gap below the target panel. */
.puzzleMoveNavigator{
  margin-top:46px !important;
}

.puzzleMoveNavigator #moveInput,
.puzzleMoveNavigator .puzzleNavArrow{
  border-width:1px !important;
  border-style:solid !important;
  border-color:#4B4B4B !important;
}
.puzzleMoveNavigator .puzzleNavArrow::before{
  border-top-width:1px !important;
  border-right-width:1px !important;
}

/* Wordport Player 4.16 - exact inactive colour and endpoint-matched control-row spacing. */
.difficultyButton:not(.selected),
.difficultyBullet{
  color:#CCCCCC !important;
}

/* Y is the actual 8px gap between the two endpoint boxes. Apply that same
   distance from the endpoint boxes to the complete arrow/input row. */
.panel{
  --endpoint-box-gap:8px;
}
.wordPair .betweenWords{
  height:var(--endpoint-box-gap) !important;
  min-height:var(--endpoint-box-gap) !important;
}
.puzzleMoveNavigator{
  margin-top:var(--endpoint-box-gap, 8px) !important;
}
@media (max-width:560px){
  .wordPair{
    column-gap:var(--endpoint-box-gap) !important;
  }
}


/* Wordport Player 4.17 - arrow boxes exactly 8px below endpoint boxes; no other boxes moved. */
.puzzleMoveNavigator .puzzleNavArrow{
  margin-top:0 !important;
  align-self:start !important;
}

/* Wordport Player 4.18 - arrow boxes exactly 8px below endpoint boxes; no other boxes moved. */
/* The endpoint boxes and move-entry form are already translated upward by 18px.
   Apply that same offset only to the two arrow boxes so their visible top edge
   is exactly 8px below the endpoint boxes, without moving the input or any other box. */
.puzzleMoveNavigator .puzzleNavArrow,
.puzzleMoveNavigator .puzzleNavArrow:hover,
.puzzleMoveNavigator .puzzleNavArrow:focus,
.puzzleMoveNavigator .puzzleNavArrow:focus-visible,
.puzzleMoveNavigator .puzzleNavArrow:active{
  transform:translateY(-18px) !important;
}


/* Wordport Player 4.23 - final tally presentation, keyboard-safe Undo and uninterrupted Praise transition. */
#resultDialog.finalTallyResult .dialogCard{
  justify-content:flex-start !important;
}
#resultDialog.finalTallyResult #resultTitle{
  margin-top:1.2em !important;
  margin-bottom:0 !important;
}
#resultDialog.finalTallyResult #resultBody{
  margin-top:0 !important;
}
#resultDialog.finalTallyResult .resultButtons{
  order:3 !important;
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:0 !important;
  width:100% !important;
  margin:auto 0 0 !important;
  padding:0 !important;
  align-self:stretch !important;
  justify-items:stretch !important;
}
#resultDialog.finalTallyResult #shareButtons{
  order:4 !important;
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
  gap:8px !important;
  width:100% !important;
  margin:8px 0 0 !important;
  padding:0 !important;
  align-self:stretch !important;
  justify-items:stretch !important;
}
#resultDialog.finalTallyResult #resultContinueBtn,
#resultDialog.finalTallyResult #shareEmailBtn,
#resultDialog.finalTallyResult #resultSwitchDifficultyBtn{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  height:46px !important;
  min-height:46px !important;
  margin:0 !important;
  padding:8px !important;
  box-sizing:border-box !important;
  border:0 !important;
  border-radius:0 !important;
  background:#EFBF02 !important;
  color:#4B4B4B !important;
  -webkit-text-fill-color:#4B4B4B !important;
  box-shadow:none !important;
  text-decoration:none !important;
}
#resultDialog.finalTallyResult #resultContinueBtn:hover,
#resultDialog.finalTallyResult #resultContinueBtn:focus,
#resultDialog.finalTallyResult #resultContinueBtn:active,
#resultDialog.finalTallyResult #shareEmailBtn:hover,
#resultDialog.finalTallyResult #shareEmailBtn:focus,
#resultDialog.finalTallyResult #shareEmailBtn:active,
#resultDialog.finalTallyResult #resultSwitchDifficultyBtn:hover,
#resultDialog.finalTallyResult #resultSwitchDifficultyBtn:focus,
#resultDialog.finalTallyResult #resultSwitchDifficultyBtn:active{
  background:#EFBF02 !important;
  color:#4B4B4B !important;
  -webkit-text-fill-color:#4B4B4B !important;
  box-shadow:none !important;
  outline:none !important;
  transform:none !important;
}

/* Wordport Player 4.24 - final tally button geometry from supplied reference. */
#resultDialog.finalTallyResult #resultTitle,
#resultDialog.finalTallyResult #resultBody,
#resultDialog.finalTallyResult #resultBody *{
  text-align:center !important;
}
#resultDialog.finalTallyResult .resultButtons,
#resultDialog.finalTallyResult #shareButtons{
  width:100% !important;
  max-width:none !important;
  box-sizing:border-box !important;
}
#resultDialog.finalTallyResult #resultContinueBtn,
#resultDialog.finalTallyResult #shareEmailBtn,
#resultDialog.finalTallyResult #resultSwitchDifficultyBtn,
#resultDialog.finalTallyResult #resultContinueBtn:hover,
#resultDialog.finalTallyResult #resultContinueBtn:focus,
#resultDialog.finalTallyResult #resultContinueBtn:active,
#resultDialog.finalTallyResult #shareEmailBtn:hover,
#resultDialog.finalTallyResult #shareEmailBtn:focus,
#resultDialog.finalTallyResult #shareEmailBtn:active,
#resultDialog.finalTallyResult #resultSwitchDifficultyBtn:hover,
#resultDialog.finalTallyResult #resultSwitchDifficultyBtn:focus,
#resultDialog.finalTallyResult #resultSwitchDifficultyBtn:active{
  border-radius:0 !important;
  -webkit-border-radius:0 !important;
}

/* Wordport Player 4.25 - exact Final Tally centring and supplied-reference button widths. */
#resultDialog.finalTallyResult #resultTitle,
#resultDialog.finalTallyResult #resultBody,
#resultDialog.finalTallyResult #resultBody p,
#resultDialog.finalTallyResult #resultBody span,
#resultDialog.finalTallyResult #resultBody strong{
  width:100% !important;
  max-width:100% !important;
  margin-left:auto !important;
  margin-right:auto !important;
  box-sizing:border-box !important;
  text-align:center !important;
  justify-content:center !important;
  align-items:center !important;
}
#resultDialog.finalTallyResult .resultButtons,
#resultDialog.finalTallyResult #shareButtons{
  width:87.565% !important;
  max-width:87.565% !important;
  margin-left:auto !important;
  margin-right:auto !important;
  align-self:center !important;
  justify-self:center !important;
  box-sizing:border-box !important;
}
#resultDialog.finalTallyResult #shareButtons{
  column-gap:2.367% !important;
}


/* Wordport Player 4.26 - rebuilt Final Tally layout from supplied reference. */
#resultDialog.finalTallyResult .dialogCard{
  display:grid !important;
  grid-template-rows:auto 1fr auto auto !important;
  grid-template-columns:minmax(0,1fr) !important;
  align-items:stretch !important;
  justify-items:stretch !important;
  text-align:center !important;
}
#resultDialog.finalTallyResult #resultTitle{
  width:100% !important;
  margin-left:0 !important;
  margin-right:0 !important;
  padding-left:0 !important;
  padding-right:0 !important;
  text-align:center !important;
  justify-self:stretch !important;
  transform:none !important;
}
#resultDialog.finalTallyResult #resultBody{
  display:block !important;
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
  padding-left:0 !important;
  padding-right:0 !important;
  text-align:center !important;
  justify-self:stretch !important;
}
#resultDialog.finalTallyResult #resultBody > *,
#resultDialog.finalTallyResult #resultBody p,
#resultDialog.finalTallyResult #resultBody span,
#resultDialog.finalTallyResult #resultBody strong{
  display:block !important;
  width:100% !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
  padding-left:0 !important;
  padding-right:0 !important;
  text-align:center !important;
  box-sizing:border-box !important;
}
#resultDialog.finalTallyResult .resultButtons,
#resultDialog.finalTallyResult #shareButtons{
  width:auto !important;
  max-width:none !important;
  margin-left:18px !important;
  margin-right:18px !important;
  padding:0 !important;
  align-self:end !important;
  justify-self:stretch !important;
  box-sizing:border-box !important;
}
#resultDialog.finalTallyResult .resultButtons{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) !important;
  gap:0 !important;
  margin-bottom:0 !important;
}
#resultDialog.finalTallyResult #shareButtons{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
  column-gap:8px !important;
  row-gap:0 !important;
  margin-top:8px !important;
  margin-bottom:0 !important;
}
#resultDialog.finalTallyResult #resultContinueBtn,
#resultDialog.finalTallyResult #shareEmailBtn,
#resultDialog.finalTallyResult #resultSwitchDifficultyBtn{
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  margin:0 !important;
  border-radius:0 !important;
  -webkit-border-radius:0 !important;
  box-sizing:border-box !important;
}


/* Wordport Player 4.27 - paired REPLAY and STICK controls. */
.routeStage #routeList .replayStickActions,
.routeStage .routeList .replayStickActions{
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
  gap:10px !important;
  width:100% !important;
}
.routeStage #routeList .replayStickActions .routeEntry,
.routeStage .routeList .replayStickActions .routeEntry{
  margin:0 !important;
}

/* Wordport Player 4.28 - exact 430px Final Tally button-row widths. */
#resultDialog.finalTallyResult .resultButtons,
#resultDialog.finalTallyResult #shareButtons{
  width:430px !important;
  min-width:430px !important;
  max-width:430px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  justify-self:center !important;
  align-self:end !important;
  box-sizing:border-box !important;
}

/* Wordport Player 4.29 - exact visible 430px Final Tally button rows. */
#resultDialog.finalTallyResult{
  overflow:visible !important;
}
#resultDialog.finalTallyResult .dialogCard{
  overflow:visible !important;
}
#resultDialog.finalTallyResult .resultButtons,
#resultDialog.finalTallyResult #shareButtons{
  display:grid !important;
  inline-size:430px !important;
  width:430px !important;
  min-inline-size:430px !important;
  min-width:430px !important;
  max-inline-size:430px !important;
  max-width:430px !important;
  flex:0 0 430px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding-left:0 !important;
  padding-right:0 !important;
  justify-self:center !important;
  box-sizing:border-box !important;
}
#resultDialog.finalTallyResult .resultButtons{
  grid-template-columns:430px !important;
}
#resultDialog.finalTallyResult #shareButtons{
  grid-template-columns:211px 211px !important;
  column-gap:8px !important;
}

/* Wordport Player 4.30 - Final Tally rows render at a true visible width of 430px. */
/* The Final Tally card is widened to 494px so its 26px side padding and 3px
   borders leave 430px of usable content width. This prevents the 430px rows
   from being constrained or clipped by the former 432px dialog width. */
#resultDialog.finalTallyResult{
  width:494px !important;
  min-width:494px !important;
  max-width:494px !important;
  overflow:visible !important;
}
#resultDialog.finalTallyResult .dialogCard{
  width:494px !important;
  min-width:494px !important;
  max-width:494px !important;
  box-sizing:border-box !important;
  overflow:visible !important;
}
#resultDialog.finalTallyResult .resultButtons,
#resultDialog.finalTallyResult #shareButtons{
  display:grid !important;
  width:430px !important;
  min-width:430px !important;
  max-width:430px !important;
  inline-size:430px !important;
  min-inline-size:430px !important;
  max-inline-size:430px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding:0 !important;
  box-sizing:border-box !important;
  justify-self:center !important;
}
#resultDialog.finalTallyResult .resultButtons{
  grid-template-columns:430px !important;
}
#resultDialog.finalTallyResult #shareButtons{
  grid-template-columns:211px 211px !important;
  column-gap:8px !important;
}

/* Wordport Player 4.31 - Final Tally geometry exactly mirrors gameplay geometry. */
/* Gameplay white window: #gameView.panel uses the shared reference width and
   44px horizontal padding. The Final Tally window and button rows now use the
   same rules, so their rendered dimensions match at every viewport width. */
#resultDialog.finalTallyResult{
  width:min(var(--reference-panel-width), calc(100vw - 32px)) !important;
  min-width:0 !important;
  max-width:var(--reference-panel-width) !important;
  padding:0 !important;
  border:0 !important;
  box-sizing:border-box !important;
  overflow:visible !important;
}
#resultDialog.finalTallyResult .dialogCard{
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  padding:24px 44px 23px !important;
  border:0 !important;
  box-sizing:border-box !important;
  overflow:visible !important;
}
#resultDialog.finalTallyResult .resultButtons,
#resultDialog.finalTallyResult #shareButtons{
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  inline-size:auto !important;
  min-inline-size:0 !important;
  max-inline-size:none !important;
  flex:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
  justify-self:stretch !important;
  align-self:stretch !important;
  box-sizing:border-box !important;
}
#resultDialog.finalTallyResult .resultButtons{
  grid-template-columns:minmax(0,1fr) !important;
}
#resultDialog.finalTallyResult #shareButtons{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
  column-gap:8px !important;
}


/* Wordport Player 4.35 - requested 4.34/4.35 behaviour without altering the 4.33 layout. */
.difficultyButton.selected{
  color:#cc5500 !important;
  -webkit-text-fill-color:#cc5500 !important;
}
.difficultyButton:not(.selected),
.difficultyBullet{
  color:#c1b5b5 !important;
  -webkit-text-fill-color:#c1b5b5 !important;
}
.routeStage #routeList .replayStickActions,
.routeStage .routeList .replayStickActions{
  display:flex !important;
  flex-wrap:wrap !important;
  justify-content:center !important;
  align-items:center !important;
  gap:10px !important;
  width:100% !important;
}
.routeStage #routeList .replayStickActions .routeEntry,
.routeStage .routeList .replayStickActions .routeEntry{
  margin:0 !important;
}
.routeStage #routeList .bestTodayShareAction,
.routeStage .routeList .bestTodayShareAction{
  background:#cc5500 !important;
  background-color:#cc5500 !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  white-space:nowrap !important;
}

/* Wordport Player 4.37 - replay-safe persistent best-today share action. */

/* Wordport Player 4.44 - Tricky share unlock key normalisation and persistence compatibility. */

/* Wordport Player 4.51 - selected level uses Share-pill orange; level-specific Share labels. */


/* Wordport Player 4.65 - Fiendish level selector only. */
.difficultySelector{gap:7px !important;}
#moderateModeBtn{order:1 !important;}
.difficultyBulletFirst{order:2 !important;color:#c1b5b5 !important;-webkit-text-fill-color:#c1b5b5 !important;}
#trickyModeBtn{order:3 !important;}
.difficultyBulletSecond{order:4 !important;color:#c1b5b5 !important;-webkit-text-fill-color:#c1b5b5 !important;}
#fiendishModeBtn{order:5 !important;font-weight:700 !important;}
.difficultyButton.selected{color:#cc5500 !important;-webkit-text-fill-color:#cc5500 !important;}
.difficultyBullet{color:#c1b5b5 !important;-webkit-text-fill-color:#c1b5b5 !important;}

/* Wordport Player 4.66 - single-line endpoint words through 11 letters; Fiendish controls match Tricky. */
.wordPair .startWordBox strong,
.wordPair .targetWordBox strong{
  max-width:100% !important;
  white-space:nowrap !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
  hyphens:none !important;
  font-size:clamp(20px,5.8vw,28px) !important;
}
@media (max-width:560px){
  .wordPair .startWordBox strong,
  .wordPair .targetWordBox strong{
    font-size:clamp(13px,4.05vw,18.6667px) !important;
    letter-spacing:-0.01em !important;
  }
}
.fiendishMode #hintBtn,
.fiendishMode #revealBtn,
.fiendishMode #hintConfirmBox,
.fiendishMode #revealConfirmBox{display:none !important;}
.fiendishMode .buttonRow{grid-template-columns:repeat(8,1fr) !important;grid-template-rows:auto auto !important;}
.fiendishMode #undoBtn{grid-column:1 / span 4 !important;grid-row:1 !important;width:100% !important;}
.fiendishMode #nextGameBtn{grid-column:5 / span 4 !important;grid-row:1 !important;width:100% !important;}
.fiendishMode #resultsArchiveBtn{grid-column:1 / span 4 !important;grid-row:2 !important;}
.fiendishMode #gameHowToPlayBtn{grid-column:5 / span 4 !important;grid-row:2 !important;}


/* Wordport Player 4.76 - Tricky has one Hint; Fiendish retains no Hint functionality. */
.trickyMode .buttonRow{grid-template-columns:repeat(12,1fr) !important;grid-template-rows:auto auto !important;}
.trickyMode #undoBtn{grid-column:1 / span 4 !important;grid-row:1 !important;width:100% !important;}
.trickyMode #nextGameBtn{grid-column:5 / span 4 !important;grid-row:1 !important;width:100% !important;}
.trickyMode #hintBtn{display:block !important;grid-column:9 / span 4 !important;grid-row:1 !important;width:100% !important;}
.trickyMode #hintConfirmBox:not(.hidden){display:flex !important;}
.trickyMode #revealBtn,.trickyMode #revealConfirmBox{display:none !important;}
.trickyMode #resultsArchiveBtn{grid-column:1 / span 6 !important;grid-row:2 !important;}
.trickyMode #gameHowToPlayBtn{grid-column:7 / span 6 !important;grid-row:2 !important;}
.fiendishMode #hintBtn,.fiendishMode #hintConfirmBox{display:none !important;}


/* Wordport Player 4.79 - Moderate 2-move action buttons are three equal columns. */
html.moderateTwoMove:not(.trickyMode):not(.fiendishMode) .buttonRow{grid-template-columns:repeat(12,1fr) !important;}
html.moderateTwoMove:not(.trickyMode):not(.fiendishMode) #undoBtn{grid-column:1 / span 4 !important;grid-row:1 !important;width:100% !important;}
html.moderateTwoMove:not(.trickyMode):not(.fiendishMode) #nextGameBtn{grid-column:5 / span 4 !important;grid-row:1 !important;width:100% !important;}
html.moderateTwoMove:not(.trickyMode):not(.fiendishMode) #revealBtn{grid-column:9 / span 4 !important;grid-row:1 !important;width:100% !important;}
html.moderateTwoMove:not(.trickyMode):not(.fiendishMode) #resultsArchiveBtn{grid-column:1 / span 6 !important;grid-row:2 !important;width:100% !important;}
html.moderateTwoMove:not(.trickyMode):not(.fiendishMode) #gameHowToPlayBtn{grid-column:7 / span 6 !important;grid-row:2 !important;width:100% !important;}

/* Wordport Player 4.81 - Moderate single-hint post-use action layout. */
html.moderateHintUsed:not(.moderateTwoMove):not(.trickyMode):not(.fiendishMode) .buttonRow{grid-template-columns:repeat(12,1fr) !important;}
html.moderateHintUsed:not(.moderateTwoMove):not(.trickyMode):not(.fiendishMode) #undoBtn{grid-column:1 / span 4 !important;grid-row:1 !important;width:100% !important;}
html.moderateHintUsed:not(.moderateTwoMove):not(.trickyMode):not(.fiendishMode) #nextGameBtn{grid-column:5 / span 4 !important;grid-row:1 !important;width:100% !important;}
html.moderateHintUsed:not(.moderateTwoMove):not(.trickyMode):not(.fiendishMode) #revealBtn{grid-column:9 / span 4 !important;grid-row:1 !important;width:100% !important;}
html.moderateHintUsed:not(.moderateTwoMove):not(.trickyMode):not(.fiendishMode) #resultsArchiveBtn{grid-column:1 / span 6 !important;grid-row:2 !important;width:100% !important;}
html.moderateHintUsed:not(.moderateTwoMove):not(.trickyMode):not(.fiendishMode) #gameHowToPlayBtn{grid-column:7 / span 6 !important;grid-row:2 !important;width:100% !important;}

/* Wordport Player 4.82 - full-width Reveal panel and matched Reveal-button typography. */
#revealConfirmBox{
  grid-column:1 / -1 !important;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  margin:0 !important;
  box-sizing:border-box !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
}
#revealConfirmBox .revealConfirmLine,
#revealConfirmBox .revealConfirmQuestion{
  width:100% !important;
  margin-left:auto !important;
  margin-right:auto !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
}
#revealBtn{
  font-weight:800 !important;
  letter-spacing:.12em !important;
}

/* Wordport Player 4.82 - Tricky post-hint full-width actions and immediate button taps. */
html.trickyMode.trickyHintUsed .buttonRow{grid-template-columns:repeat(12,1fr) !important;}
html.trickyMode.trickyHintUsed #undoBtn{grid-column:1 / span 6 !important;grid-row:1 !important;width:100% !important;}
html.trickyMode.trickyHintUsed #nextGameBtn{grid-column:7 / span 6 !important;grid-row:1 !important;width:100% !important;}
html.trickyMode.trickyHintUsed #resultsArchiveBtn{grid-column:1 / span 6 !important;grid-row:2 !important;width:100% !important;}
html.trickyMode.trickyHintUsed #gameHowToPlayBtn{grid-column:7 / span 6 !important;grid-row:2 !important;width:100% !important;}
#playerApp button,
button{
  touch-action:manipulation !important;
  -webkit-tap-highlight-color:transparent;
}


/* Wordport Player 4.84 - completed puzzles hide all puzzle controls until REPLAY. */
html.completedPuzzle #undoBtn,
html.completedPuzzle #nextGameBtn,
html.completedPuzzle #hintBtn,
html.completedPuzzle #revealBtn,
html.completedPuzzle #resultsArchiveBtn,
html.completedPuzzle #gameHowToPlayBtn{
  display:none !important;
}

/* Wordport Player 4.84 - immediate non-blocking WORDPORT processing sweep on button press. */
.difficultyWordport .wordportProcessingLetter{
  color:inherit;
}
.difficultyWordport .wordportProcessingLetter.processingWhite{
  color:#fff !important;
}


/* Wordport Player 4.87 - Replay/Next spacing matches Move Word pill X/Y spacing. */
.routeStage #routeList .replayStickActions,
.routeStage .routeList .replayStickActions{
  gap:6px !important;
  margin:0 !important;
}
.routeStage #routeList .replayStickActions .routeEntry,
.routeStage .routeList .replayStickActions .routeEntry{
  margin:0 !important;
}


/* Wordport Player 4.93 - level label, Fiendish anagram requirement, praise entrance. */
.difficultySelector{gap:7px !important;}
.difficultyLabel{order:1 !important;font-weight:400 !important;color:#cc5500 !important;-webkit-text-fill-color:#cc5500 !important;}
.difficultyBulletLabel{order:2 !important;}
#moderateModeBtn{order:3 !important;}
.difficultyBulletFirst{order:4 !important;}
#trickyModeBtn{order:5 !important;}
.difficultyBulletSecond{order:6 !important;}
#fiendishModeBtn{order:7 !important;}
.difficultyBullet,.difficultyBulletLabel{color:#cfcfcf !important;-webkit-text-fill-color:#cfcfcf !important;}
.difficultyButton{font-weight:800 !important;}
.routeStage #routeList .fiendishAnagramRequirement,
.routeStage .routeList .fiendishAnagramRequirement{
  flex:0 0 100% !important;width:100% !important;min-height:34px !important;height:34px !important;
  display:flex !important;align-items:center !important;justify-content:flex-start !important;padding:0 !important;margin:0 !important;
  color:#000 !important;-webkit-text-fill-color:#000 !important;font-size:calc(1em - 1pt) !important;font-weight:400 !important;
  line-height:1 !important;letter-spacing:0 !important;text-transform:none !important;
}
.routeStage #routeList .fiendishAnagramRequirement.warning,
.routeStage .routeList .fiendishAnagramRequirement.warning{animation:wp493AnagramFlash .7s steps(1,end) infinite;}
@keyframes wp493AnagramFlash{0%,49%{opacity:1}50%,100%{opacity:0}}
@keyframes wp493PraiseSlideIn{from{transform:translateX(calc(100vw + 100%));}to{transform:translateX(0);}}
.routeStage #routeList .completionPraiseRoute:not(.persistentCompletionPraise),
.routeStage .routeList .completionPraiseRoute:not(.persistentCompletionPraise){animation:wp493PraiseSlideIn 650ms cubic-bezier(.22,.8,.32,1) both;}
@media(max-width:768px){.routeStage #routeList .fiendishAnagramRequirement,.routeStage .routeList .fiendishAnagramRequirement{font-size:1em !important;}}


/* Wordport Player 4.94 - Tricky separator correction, manual next-puzzle prompt, Fiendish copy. */
html.trickyMode .difficultyBulletSecond{
  display:none !important;
}
.routeStage #routeList .fiendishAnagramRequirement,
.routeStage .routeList .fiendishAnagramRequirement{
  justify-content:center !important;
  text-align:center !important;
  color:#888888 !important;
  -webkit-text-fill-color:#888888 !important;
}
.routeStage #routeList .fiendishAnagramRequirement.warning,
.routeStage .routeList .fiendishAnagramRequirement.warning{
  color:#888888 !important;
  -webkit-text-fill-color:#888888 !important;
}
@keyframes wp494NextArrowPrompt{
  0%,100%{background-color:#ffffff;}
  50%{background-color:#F2F1E6;}
}
html.awaitingNextPuzzle #nextPuzzleBtn{
  animation:wp494NextArrowPrompt 1.35s ease-in-out infinite !important;
}
html.awaitingNextPuzzle #nextPuzzleBtn:hover,
html.awaitingNextPuzzle #nextPuzzleBtn:focus,
html.awaitingNextPuzzle #nextPuzzleBtn:focus-visible,
html.awaitingNextPuzzle #nextPuzzleBtn:active{
  animation:wp494NextArrowPrompt 1.35s ease-in-out infinite !important;
}

/* Wordport Player 4.95 - gold next-arrow prompt and hard Tricky separator rule. */
html.trickyMode .difficultyBulletSecond,
.difficultyBulletSecond[hidden]{
  display:none !important;
}
@keyframes wp495NextArrowPrompt{
  0%,100%{background-color:#ffffff;}
  50%{background-color:#EFBF04;}
}
html.awaitingNextPuzzle #nextPuzzleBtn,
html.awaitingNextPuzzle #nextPuzzleBtn:hover,
html.awaitingNextPuzzle #nextPuzzleBtn:focus,
html.awaitingNextPuzzle #nextPuzzleBtn:focus-visible,
html.awaitingNextPuzzle #nextPuzzleBtn:active{
  animation:wp495NextArrowPrompt 1.35s ease-in-out infinite !important;
}


/* Wordport Player 4.96 - guaranteed three level separators and visible gold next-arrow pulse. */
html.trickyMode .difficultyBulletSecond,
.difficultyBulletSecond[hidden],
.difficultyBullet[hidden]{
  display:inline !important;
}

/*
  Older Player rules intentionally pin the navigation button background to white
  with !important. Rather than fight that cascade, pulse a real gold layer inside
  the actual right-arrow button. The arrow itself remains above the layer.
*/
html.awaitingNextPuzzle #nextPuzzleBtn{
  position:relative !important;
  overflow:hidden !important;
  isolation:isolate !important;
  animation:none !important;
}
html.awaitingNextPuzzle #nextPuzzleBtn:hover,
html.awaitingNextPuzzle #nextPuzzleBtn:focus,
html.awaitingNextPuzzle #nextPuzzleBtn:focus-visible,
html.awaitingNextPuzzle #nextPuzzleBtn:active{
  animation:none !important;
}
html.awaitingNextPuzzle #nextPuzzleBtn::after{
  content:"";
  position:absolute;
  inset:0;
  background:#EFBF04;
  opacity:0;
  pointer-events:none;
  z-index:0;
  animation:wp496NextArrowGoldOverlay 1.35s ease-in-out infinite;
}
html.awaitingNextPuzzle #nextPuzzleBtn::before{
  z-index:1 !important;
}
@keyframes wp496NextArrowGoldOverlay{
  0%,100%{opacity:0;}
  50%{opacity:1;}
}


/* Wordport Player 4.97 - flash only the right-arrow glyph after Praise arrives. */
/* Remove all earlier box/background pulse layers. */
html.awaitingNextPuzzle #nextPuzzleBtn,
html.awaitingNextPuzzle #nextPuzzleBtn:hover,
html.awaitingNextPuzzle #nextPuzzleBtn:focus,
html.awaitingNextPuzzle #nextPuzzleBtn:focus-visible,
html.awaitingNextPuzzle #nextPuzzleBtn:active{
  animation:none !important;
  background:#fff !important;
}
html.awaitingNextPuzzle #nextPuzzleBtn::after{
  content:none !important;
  animation:none !important;
  display:none !important;
}
/* The existing ::before pseudo-element is the arrow glyph itself. */
html.awaitingNextPuzzle #nextPuzzleBtn::before{
  animation:wp497RightArrowFlash 1s steps(1,end) infinite !important;
}
@keyframes wp497RightArrowFlash{
  0%,49%{opacity:1;}
  50%,100%{opacity:0;}
}

/* Belt-and-braces level row: exactly one grey bullet between all four words. */
.difficultySelector .difficultyLabel{order:1 !important;display:inline !important;}
.difficultySelector .difficultyBulletLabel{order:2 !important;display:inline !important;color:#cfcfcf !important;-webkit-text-fill-color:#cfcfcf !important;}
.difficultySelector #moderateModeBtn{order:3 !important;display:inline-block !important;}
.difficultySelector .difficultyBulletFirst{order:4 !important;display:inline !important;color:#cfcfcf !important;-webkit-text-fill-color:#cfcfcf !important;}
.difficultySelector #trickyModeBtn{order:5 !important;display:inline-block !important;}
.difficultySelector .difficultyBulletSecond{order:6 !important;display:inline !important;color:#cfcfcf !important;-webkit-text-fill-color:#cfcfcf !important;}
.difficultySelector #fiendishModeBtn{order:7 !important;display:inline-block !important;}
html.trickyMode .difficultySelector .difficultyBullet,
html.trickyMode .difficultySelector .difficultyBullet[hidden]{
  display:inline !important;
}
\n\n/* Wordport Player 5.00 - completion navigation prompts and leaner action UI. */
/* NEXT pill is removed in JavaScript; keep any stale/historic next actions hidden. */
.bestTodayActions .nextAction,
.routeEntry.nextAction{display:none !important;}

/* Right Arrow glyph only: flash after Praise arrives; box stays unchanged. */
html.awaitingNextPuzzle #nextPuzzleBtn,
html.awaitingNextPuzzle #nextPuzzleBtn:hover,
html.awaitingNextPuzzle #nextPuzzleBtn:focus,
html.awaitingNextPuzzle #nextPuzzleBtn:focus-visible,
html.awaitingNextPuzzle #nextPuzzleBtn:active{
  animation:none !important;
  background:#fff !important;
}
html.awaitingNextPuzzle #nextPuzzleBtn::after{content:none !important;display:none !important;animation:none !important;}
html.awaitingNextPuzzle #nextPuzzleBtn::before{animation:wp500RightArrowFlash .9s steps(1,end) infinite !important;}
@keyframes wp500RightArrowFlash{0%,49%{opacity:1;}50%,100%{opacity:0;}}

/* Once all three puzzles are complete and the Share pill is visible, prompt
   the next level in sequence: Moderate -> Tricky -> Fiendish. */
.difficultyButton.nextLevelFlash{animation:wp500NextLevelFlash .9s steps(1,end) infinite !important;}
@keyframes wp500NextLevelFlash{0%,49%{opacity:1;}50%,100%{opacity:.08;}}
\n/* 5.00 performance: CSS-driven WORDPORT processing sweep; no 42ms JS DOM loop. */
.difficultyWordport .wordportProcessingLetter{position:relative;display:inline-block;}
.difficultyWordport .wordportProcessingLetter::after{
  content:attr(data-processing-char);
  position:absolute;
  inset:0;
  color:#fff;
  -webkit-text-fill-color:#fff;
  opacity:0;
  pointer-events:none;
}
.difficultyWordport.processingActive .wordportProcessingLetter::after{
  animation:wp500WordportSweep 336ms linear infinite;
}
.difficultyWordport.processingActive .wordportProcessingLetter:nth-child(1)::after{animation-delay:0ms;}
.difficultyWordport.processingActive .wordportProcessingLetter:nth-child(2)::after{animation-delay:42ms;}
.difficultyWordport.processingActive .wordportProcessingLetter:nth-child(3)::after{animation-delay:84ms;}
.difficultyWordport.processingActive .wordportProcessingLetter:nth-child(4)::after{animation-delay:126ms;}
.difficultyWordport.processingActive .wordportProcessingLetter:nth-child(5)::after{animation-delay:168ms;}
.difficultyWordport.processingActive .wordportProcessingLetter:nth-child(6)::after{animation-delay:210ms;}
.difficultyWordport.processingActive .wordportProcessingLetter:nth-child(7)::after{animation-delay:252ms;}
.difficultyWordport.processingActive .wordportProcessingLetter:nth-child(8)::after{animation-delay:294ms;}
@keyframes wp500WordportSweep{
  0%,12.4%{opacity:1;}
  12.5%,100%{opacity:0;}
}


/* Wordport Player 5.01 - requested prompt refinements. */
html.awaitingNextPuzzle #nextPuzzleBtn::before{
  animation:wp501RightArrowFlash 1.8s steps(1,end) infinite !important;
}
@keyframes wp501RightArrowFlash{0%,49%{opacity:1;}50%,100%{opacity:0;}}

/* 5.01: completed levels do not flash the next difficulty. */
.difficultyButton.nextLevelFlash{animation:none !important;opacity:1 !important;}

/* 5.01: remove the WORDPORT waiting/processing letter sweep entirely. */
.difficultyWordport.processingActive .wordportProcessingLetter::after,
.difficultyWordport .wordportProcessingLetter.processingWhite,
.difficultyWordport .wordportProcessingLetter::after{
  animation:none !important;
  content:none !important;
  display:none !important;
}


/* Wordport Player 5.02 - completion prompts. */
/* Right Arrow: only used while another puzzle in the current level is unfinished. */
html.awaitingNextPuzzle #nextPuzzleBtn::before{
  animation:wp502CompletionPromptFlash 1.8s steps(1,end) infinite !important;
}
/* Once all three puzzles are complete, prompt the next level at the same speed. */
.difficultyButton.nextLevelFlash{
  animation:wp502CompletionPromptFlash 1.8s steps(1,end) infinite !important;
}
@keyframes wp502CompletionPromptFlash{
  0%,49%{opacity:1;}
  50%,100%{opacity:0;}
}


/* Wordport Player 5.03 - Fiendish retry warning uses completion prompt pace. */
.fiendishAnagramRequirement.warning{
  animation:wp502CompletionPromptFlash 1.8s steps(1,end) infinite !important;
}


/* Wordport Player 5.04 correction - all Fiendish gameplay errors replace the anagram instruction line. */
.routeStage #routeList .fiendishAnagramRequirement.inlineError,
.routeStage .routeList .fiendishAnagramRequirement.inlineError{
  color:#8b0000 !important;
  -webkit-text-fill-color:#8b0000 !important;
  animation:none !important;
  white-space:pre-line !important;
}


/* Wordport Player 5.13 - four-line footer and daily alert activation link. */
.shell .footerLine.footerLinks,
.shell .footerLine.footerIntro,
.shell .footerLine.footerRegistration,
.shell .footerLine.copyright{
  width:100% !important;
  justify-content:center !important;
  text-align:center !important;
  white-space:nowrap !important;
  flex-wrap:nowrap !important;
  line-height:1.35 !important;
}
.shell .footerLine.footerLinks{margin:10px 0 0 !important;}
.shell .footerLine.footerIntro,
.shell .footerLine.footerRegistration,
.shell .footerLine.copyright{margin:3px 0 0 !important;}
.dailyAlertLink{
  display:inline !important;
  font-weight:700 !important;
}
.dailyAlertLink[disabled]{
  opacity:.65 !important;
  cursor:default !important;
}

/* Wordport Player 5.14 - daily alert guidance and footer weight refinement. */
.dailyAlertLink{
  font-weight:inherit !important;
}

/* Wordport Player 5.17 - vertically centre the complete Player shell in browser and standalone/Home Screen viewports. */
html{
  min-height:100%;
  background:#fff;
}
body{
  min-height:100vh;
  min-height:100dvh;
  display:flex;
  flex-direction:column;
  padding-top:env(safe-area-inset-top, 0px);
  padding-bottom:env(safe-area-inset-bottom, 0px);
}
.shell{
  top:0 !important;
  margin-top:auto !important;
  margin-bottom:auto !important;
}


/* Wordport Player 5.30 - Home Screen only.
   The real white panel grows 100px upward while its bottom stays fixed.
   The dedicated 100px spacer absorbs exactly the added panel depth, so the
   complete visible gameplay area above it moves as one rigid group and the
   control rows/footer remain at their existing coordinates. */
.wp530StandaloneSpacer{
  display:none;
}
@media (display-mode: standalone) and (max-width:560px){
  #gameView.panel{
    min-height:668px !important;
    margin-top:-100px !important;
  }
  .wp530StandaloneSpacer{
    display:block;
    flex:0 0 100px;
    width:100%;
    height:100px;
    min-height:100px;
    margin:0;
    padding:0;
    visibility:hidden;
    pointer-events:none;
  }
}


/* Wordport Player 5.31 - Browser Version only.
   Same rigid-group method as 5.30, using 60px.
   Home Screen / standalone 5.30 geometry remains unchanged. */
@media (display-mode: browser) and (max-width:560px){
  #gameView.panel{
    min-height:628px !important;
    margin-top:-60px !important;
  }
  .wp530StandaloneSpacer{
    display:block;
    flex:0 0 60px;
    width:100%;
    height:60px;
    min-height:60px;
    margin:0;
    padding:0;
    visibility:hidden;
    pointer-events:none;
  }
}


/* Wordport Player 5.37 - visible pulsing move prompt whenever a move can be added, without requiring input focus. */
#moveForm{position:relative;}
#moveForm.movePromptAvailable:not(:focus-within)::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:2px;
  height:20px;
  background:#4B4B4B;
  transform:translate(-50%,-50%);
  pointer-events:none;
  animation:wp537MovePromptPulse 1s steps(1,end) infinite;
}
@keyframes wp537MovePromptPulse{
  0%,49%{opacity:1;}
  50%,100%{opacity:0;}
}


/* Wordport Player 5.39 - move-entry guidance refinement only.
   Whenever a move can be added, TAP HERE TO ADD WORD remains visible until the
   player deliberately taps the input. It is 1pt larger than 5.38, uses the
   exact inactive-level grey, 15% letter spacing, and flashes 50% more slowly. */
#moveInput::placeholder{
  color:transparent !important;
  opacity:0 !important;
}
#moveForm.movePromptAvailable:not(:focus-within)::after{
  content:"TAP HERE TO ADD WORD" !important;
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  width:auto !important;
  height:auto !important;
  background:none !important;
  transform:translate(-50%,-50%) !important;
  pointer-events:none !important;
  white-space:nowrap !important;
  color:#c1b5b5 !important;
  -webkit-text-fill-color:#c1b5b5 !important;
  font-family:inherit !important;
  font-size:calc(16px - 2pt) !important;
  font-weight:400 !important;
  letter-spacing:.15em !important;
  line-height:1 !important;
  text-align:center !important;
  animation:wp539MovePromptFlash 1.5s steps(1,end) infinite !important;
}
@keyframes wp539MovePromptFlash{
  0%,49%{opacity:1;}
  50%,100%{opacity:0;}
}
#moveForm:focus-within::after{
  content:none !important;
  display:none !important;
  animation:none !important;
}

/* Wordport Player 5.40 - completion guidance only.
   Move prompt flashes another 50% more slowly. Completed puzzles expose no
   move-entry guidance until REPLAY. Completed levels stop the Right Arrow and
   alternate the next level between inactive grey and selected burnt orange at
   exactly the same 2.25s cycle as the move prompt. */
#moveForm.movePromptAvailable:not(:focus-within)::after{
  animation:wp540MovePromptFlash 2.25s steps(1,end) infinite !important;
}
@keyframes wp540MovePromptFlash{
  0%,49%{opacity:1;}
  50%,100%{opacity:0;}
}
html.completedPuzzle #moveForm::after,
html.completedPuzzle #moveForm.movePromptAvailable::after{
  content:none !important;
  display:none !important;
  animation:none !important;
}
/* Colour is toggled by JS so it can override the historic !important level
   colour declarations without changing any level typography or geometry. */
.difficultyButton.nextLevelFlash{
  opacity:1 !important;
  animation:none !important;
  color:#c1b5b5 !important;
  -webkit-text-fill-color:#c1b5b5 !important;
}
.difficultyButton.nextLevelFlash.nextLevelFlashOrange{
  color:#cc5500 !important;
  -webkit-text-fill-color:#cc5500 !important;
}

\n\n/* Wordport Player 5.41 - final level-completion message only.\n   Typography/colour deliberately match the existing "One anagram must be used."\n   instruction; the message is centred beneath the final route/action pill. */\n.routeStage #routeList .levelCompletionMessage,\n.routeStage .routeList .levelCompletionMessage{\n  flex:0 0 100% !important;\n  width:100% !important;\n  height:auto !important;\n  min-height:0 !important;\n  display:block !important;\n  padding:0 !important;\n  margin:1em 0 0 !important;\n  justify-content:center !important;\n  text-align:center !important;\n  color:#888888 !important;\n  -webkit-text-fill-color:#888888 !important;\n  font-size:calc(1em - 1pt) !important;\n  font-weight:400 !important;\n  line-height:1.35 !important;\n  letter-spacing:0 !important;\n  text-transform:none !important;\n}\n@media(max-width:768px){\n  .routeStage #routeList .levelCompletionMessage,\n  .routeStage .routeList .levelCompletionMessage{\n    font-size:1em !important;\n  }\n}\n

/* Wordport Player 5.42 - requested completion-message spacing only. */
.routeStage #routeList .levelCompletionMessage,
.routeStage .routeList .levelCompletionMessage{
  margin-top:30px !important;
  line-height:1.5 !important;
}


/* Wordport Player 5.46 - completion copy and isolated overlay positioning only.
   The message is absolutely positioned from the completed-level action row so
   it cannot change route-list height, player geometry, or alignment. */
.routeStage #routeList .replayStickActions,
.routeStage .routeList .replayStickActions{
  position:relative !important;
}
.routeStage #routeList .levelCompletionMessage,
.routeStage .routeList .levelCompletionMessage{
  position:absolute !important;
  top:calc(100% + 30px) !important;
  left:0 !important;
  right:0 !important;
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
  z-index:1 !important;
  line-height:2.025 !important;
  pointer-events:none !important;
}


/* Wordport Player 5.50 - completion-message colour only. */
.routeStage #routeList .levelCompletionMessage,
.routeStage .routeList .levelCompletionMessage{
  color:#cc5500 !important;
  -webkit-text-fill-color:#cc5500 !important;
}

/* Wordport Player 5.56 - completion choreography only.
   Existing Move Word pills glide to their final flex positions for 650ms.
   Gold Praise then enters from the right after a 250ms pause.
   REPLAY enters from the left 250ms after Praise stops.
   YOUR BEST [LEVEL] TODAY enters from the right 250ms after REPLAY stops.
   The two-line completion message fades only after YOUR BEST arrives. */
.routeStage #routeList .completionPraiseRoute:not(.persistentCompletionPraise),
.routeStage .routeList .completionPraiseRoute:not(.persistentCompletionPraise){
  animation:wp493PraiseSlideIn 650ms cubic-bezier(.22,.8,.32,1) 900ms both !important;
}
@keyframes wp556ReplaySlideIn{
  from{transform:translate3d(calc(-100vw - 100%),0,0);}
  to{transform:translate3d(0,0,0);}
}
.routeStage #routeList .replayStickActions > .bestTodayAction:not(.bestTodayShareAction),
.routeStage .routeList .replayStickActions > .bestTodayAction:not(.bestTodayShareAction){
  animation:wp556ReplaySlideIn 650ms cubic-bezier(.22,.8,.32,1) both;
  will-change:transform;
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
}
@keyframes wp556BestTodaySlideIn{
  from{transform:translateX(calc(100vw + 100%));}
  to{transform:translateX(0);}
}
.routeStage #routeList .bestTodayShareAction,
.routeStage .routeList .bestTodayShareAction{
  animation:wp556BestTodaySlideIn 650ms cubic-bezier(.22,.8,.32,1) 900ms both;
}
@keyframes wp556CompletionMessageFadeIn{
  from{opacity:0;}
  to{opacity:1;}
}
.routeStage #routeList .levelCompletionMessage,
.routeStage .routeList .levelCompletionMessage{
  animation:wp556CompletionMessageFadeIn 500ms ease 1550ms both;
}


/* Wordport Player 5.65 - Praise pill move count colour + explicit post-ellipsis space only. */
.routeStage #routeList .completionPraiseRoute .completionPraiseMoves,
.routeStage .routeList .completionPraiseRoute .completionPraiseMoves{
  color:#1c1c1c !important;
  -webkit-text-fill-color:#1c1c1c !important;
}
.routeStage #routeList .completionPraiseRoute .completionPraiseText,
.routeStage .routeList .completionPraiseRoute .completionPraiseText{
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
}

/* Wordport Player 5.71 - navigation arrow strokes 50% thicker only; boxes unchanged. */
.puzzleMoveNavigator .puzzleNavArrow::before{
  border-top-width:1.5px !important;
  border-right-width:1.5px !important;
}

/* Wordport Player 5.72 - controlled responsive scaling for narrow/short phones only.
   Normal-width geometry is unchanged. Tap targets remain at least 44px high/wide.
   This deliberately adjusts typography, gaps and padding rather than globally
   scaling the player, so iOS input/keyboard and hit areas retain integrity. */
@media (max-width:390px){
  .shell{
    padding-left:10px !important;
    padding-right:10px !important;
  }
  #gameView.panel{
    padding-left:14px !important;
    padding-right:14px !important;
  }

  .difficultySelector{
    gap:4px !important;
    max-width:100% !important;
    white-space:nowrap !important;
  }
  .difficultySelector .difficultyLabel,
  .difficultySelector .difficultyBullet,
  .difficultySelector .difficultyButton{
    font-size:clamp(10.5px,3.15vw,12px) !important;
    letter-spacing:0 !important;
  }
  #puzzleSummary{
    font-size:clamp(10.5px,3.15vw,11pt) !important;
    white-space:nowrap !important;
  }

  .buttonRow{
    gap:6px !important;
  }
  #undoBtn,
  #nextGameBtn,
  #hintBtn,
  #revealBtn,
  #resultsArchiveBtn,
  #gameHowToPlayBtn{
    min-width:0 !important;
    padding-left:4px !important;
    padding-right:4px !important;
    font-size:clamp(10px,3vw,12px) !important;
    letter-spacing:.06em !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:clip !important;
  }

  #moveForm.movePromptAvailable:not(:focus-within)::after{
    max-width:calc(100% - 8px) !important;
    font-size:clamp(9px,2.7vw,11px) !important;
    letter-spacing:.06em !important;
    white-space:nowrap !important;
  }
  #moveInput:not(:placeholder-shown){
    font-size:clamp(13px,4vw,16px) !important;
  }

  #routeList,
  .routeList{
    gap:5px !important;
  }
  .archiveRoute span,
  #routeList .routeEntry,
  .routeList .routeEntry{
    max-width:100% !important;
    padding-left:10px !important;
    padding-right:10px !important;
    font-size:clamp(11px,3.25vw,.84rem) !important;
    overflow:hidden !important;
    text-overflow:clip !important;
  }
  .routeStage #routeList .replayStickActions,
  .routeStage .routeList .replayStickActions{
    gap:6px !important;
  }
  .routeStage #routeList .replayStickActions .routeEntry,
  .routeStage .routeList .replayStickActions .routeEntry,
  .routeStage #routeList .completionPraiseRoute,
  .routeStage .routeList .completionPraiseRoute{
    font-size:clamp(10px,3vw,12px) !important;
    padding-left:9px !important;
    padding-right:9px !important;
  }

  .shell .footerLine,
  .shell .footerLine button{
    font-size:clamp(9px,2.8vw,11px) !important;
  }
}

@media (max-width:350px){
  .shell{
    padding-left:6px !important;
    padding-right:6px !important;
  }
  #gameView.panel{
    padding-left:10px !important;
    padding-right:10px !important;
  }

  .difficultySelector{
    gap:3px !important;
  }
  .difficultySelector .difficultyLabel,
  .difficultySelector .difficultyBullet,
  .difficultySelector .difficultyButton{
    font-size:10px !important;
  }
  #puzzleSummary{
    font-size:10px !important;
  }

  .buttonRow{
    gap:4px !important;
  }
  #undoBtn,
  #nextGameBtn,
  #hintBtn,
  #revealBtn,
  #resultsArchiveBtn,
  #gameHowToPlayBtn{
    padding-left:2px !important;
    padding-right:2px !important;
    font-size:9.5px !important;
    letter-spacing:.025em !important;
  }

  #moveForm.movePromptAvailable:not(:focus-within)::after{
    font-size:8.5px !important;
    letter-spacing:.025em !important;
  }

  .archiveRoute span,
  #routeList .routeEntry,
  .routeList .routeEntry,
  .routeStage #routeList .replayStickActions .routeEntry,
  .routeStage .routeList .replayStickActions .routeEntry,
  .routeStage #routeList .completionPraiseRoute,
  .routeStage .routeList .completionPraiseRoute{
    padding-left:8px !important;
    padding-right:8px !important;
    font-size:10px !important;
  }
}

/* Short iPhone viewports: tighten vertical whitespace without shrinking tap areas. */
@media (max-height:700px) and (max-width:560px){
  .gameMetaSummary{
    min-height:64px !important;
  }
  .wordPair{
    margin-top:8px !important;
    margin-bottom:8px !important;
  }
  #routeList,
  .routeList{
    padding-top:7px !important;
    padding-bottom:10px !important;
  }
  .challengeSpacer{
    min-height:0 !important;
  }
}


/* Wordport Player 5.73 - accessibility support. Normal presentation is unchanged. */
:where(button, input, a, [tabindex]):focus-visible {
  outline: 2px solid #6e6e6e !important;
  outline-offset: 2px !important;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

@media (prefers-contrast: more) {
  .difficultyButton:not(.selected),
  .difficultyBullet,
  .difficultyBulletLabel,
  .routeStage .levelCompletionMessage {
    color: #767676 !important;
    -webkit-text-fill-color: #767676 !important;
  }
  .difficultyButton.selected,
  .difficultyLabel {
    color: #a94400 !important;
    -webkit-text-fill-color: #a94400 !important;
  }
}


/* Wordport 5.73 R6 - Support matches Privacy exactly; mobile-safe footer tap. */
#supportDialog .rulesDialogCard{
  position:relative !important;
  display:flex !important;
  flex-direction:column !important;
  width:min(680px,calc(100vw - 32px)) !important;
  max-height:min(760px,calc(100dvh - 32px)) !important;
  box-sizing:border-box !important;
}
#supportDialog .dialogHeading{
  position:relative !important;
  flex:0 0 auto !important;
  padding-top:20px !important;
  align-items:center !important;
  justify-content:center !important;
  margin:0 0 12px !important;
}
#supportDialog .dialogHeading h2{
  width:100% !important;
  margin:0 !important;
  text-align:center !important;
}
#supportDialog #closeSupportBtn,
#supportDialog #closeSupportBtn:hover,
#supportDialog #closeSupportBtn:focus,
#supportDialog #closeSupportBtn:focus-visible,
#supportDialog #closeSupportBtn:active{
  position:absolute !important;
  top:20px !important;
  right:20px !important;
  left:auto !important;
  width:36px !important;
  height:36px !important;
  min-width:36px !important;
  min-height:36px !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  color:#4B4B4B !important;
  -webkit-text-fill-color:#4B4B4B !important;
  font:400 28px/36px Arial,sans-serif !important;
  text-align:center !important;
  cursor:pointer !important;
  outline:none !important;
  box-shadow:none !important;
  -webkit-tap-highlight-color:transparent !important;
  z-index:2 !important;
}
#supportDialog .privacyContent{
  flex:1 1 auto !important;
  min-height:0 !important;
  overflow-y:auto !important;
  -webkit-overflow-scrolling:touch !important;
  padding-right:6px !important;
  text-align:center !important;
}
#supportDialog .privacyContent p{
  margin:10px 0 !important;
  line-height:1.42 !important;
  text-align:center !important;
}
#supportDialog .privacyContent h3{
  margin:20px 0 8px !important;
  font-size:1em !important;
  font-weight:700 !important;
  text-align:center !important;
}
#supportDialog .privacyContent a{
  color:inherit !important;
  text-decoration:underline !important;
}
#supportBtn{
  position:relative !important;
  z-index:10 !important;
  pointer-events:auto !important;
  touch-action:manipulation !important;
  -webkit-tap-highlight-color:transparent !important;
}
@media (max-width:768px){
  #supportDialog .rulesDialogCard{
    width:calc(100vw - 20px) !important;
    max-height:calc(100dvh - 20px) !important;
    padding:20px !important;
  }
}

/* Wordport 5.73 R7 - Support reuses the proven Contact information dialog. */
.informationDialog .informationContent h3{
  text-align:center !important;
  margin:16px 0 6px !important;
}


/* Wordport 5.83 - evening browser updates rebuilt from clean 5.74 baseline. */
.routeMoveNumber{
  color:#D4AF37 !important;
  -webkit-text-fill-color:#D4AF37 !important;
}
html.moderatePuzzleOneClue .buttonRow{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  grid-template-rows:auto auto !important;
  gap:8px !important;
  position:relative !important;
}
html.moderatePuzzleOneClue #hintBtn{
  display:none !important;
}
html.moderatePuzzleOneClue #undoBtn{
  display:block !important;
  grid-column:5 / span 4 !important;
  grid-row:1 !important;
  width:100% !important;
  min-width:0 !important;
  box-sizing:border-box !important;
  opacity:1 !important;
  background:#F2F1E6 !important;
  border-color:#F2F1E6 !important;
}
html.moderatePuzzleOneClue #undoBtn:disabled{
  opacity:1 !important;
  color:rgba(75,75,75,.38) !important;
  -webkit-text-fill-color:rgba(75,75,75,.38) !important;
  cursor:not-allowed !important;
}
html.moderatePuzzleOneClue #undoBtn:not(:disabled){
  color:#4B4B4B !important;
  -webkit-text-fill-color:#4B4B4B !important;
}
html.moderatePuzzleOneClue #nextGameBtn{
  display:block !important;
  grid-column:1 / span 4 !important;
  grid-row:1 !important;
  width:100% !important;
  min-width:0 !important;
  box-sizing:border-box !important;
  opacity:1 !important;
  pointer-events:auto !important;
}
html.moderatePuzzleOneClue #revealBtn{
  display:block !important;
  grid-column:9 / span 4 !important;
  grid-row:1 !important;
  width:100% !important;
  min-width:0 !important;
  box-sizing:border-box !important;
}
html.moderatePuzzleOneClue #nextGameBtn,
html.moderatePuzzleOneClue #undoBtn,
html.moderatePuzzleOneClue #revealBtn{
  height:46px !important;
  min-height:46px !important;
  padding:8px !important;
  border:0 !important;
  background:#F2F1E6 !important;
  color:#4B4B4B !important;
  -webkit-text-fill-color:#4B4B4B !important;
  font-family:inherit !important;
  font-size:9px !important;
  line-height:1 !important;
  letter-spacing:.1em !important;
  text-transform:uppercase !important;
  font-weight:800 !important;
}
html.moderatePuzzleOneClue #resultsArchiveBtn{
  grid-column:1 !important;
  grid-row:2 !important;
  width:100% !important;
  min-width:0 !important;
  box-sizing:border-box !important;
}
html.moderatePuzzleOneClue #gameHowToPlayBtn{
  grid-column:2 !important;
  grid-row:2 !important;
  width:100% !important;
  min-width:0 !important;
  box-sizing:border-box !important;
}
html.moderatePuzzleOneClue #nextGameBtn .clueButtonText{
  display:inline-block !important;
  font-family:inherit !important;
  font-size:inherit !important;
  font-weight:inherit !important;
  line-height:inherit !important;
  letter-spacing:inherit !important;
  text-transform:inherit !important;
  color:#4B4B4B;
  -webkit-text-fill-color:#4B4B4B;
  opacity:1;
  animation:wp592ClueTextColourFlash 2.25s steps(1,end) infinite !important;
}
html.moderatePuzzleOneClue #nextGameBtn.clueUsed .clueButtonText{
  animation:none !important;
  color:#4B4B4B !important;
  -webkit-text-fill-color:#4B4B4B !important;
  opacity:1 !important;
}
@keyframes wp592ClueTextColourFlash{
  0%,49%{color:#4B4B4B;-webkit-text-fill-color:#4B4B4B;}
  50%,100%{color:#FFFFFF;-webkit-text-fill-color:#FFFFFF;}
}
.cluePanel{
  position:absolute !important;
  left:0 !important;
  right:0 !important;
  top:0 !important;
  width:auto !important;
  max-width:none !important;
  height:46px !important;
  min-height:46px !important;
  padding:8px 12px !important;
  margin:0 !important;
  border:0 !important;
  background:#ff91a4 !important;
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  box-sizing:border-box !important;
  font-family:inherit !important;
  font-size:10.3333px !important;
  line-height:1.15 !important;
  letter-spacing:.12em !important;
  text-transform:uppercase !important;
  font-weight:800 !important;
  white-space:normal !important;
  overflow:hidden !important;
  overflow-wrap:break-word !important;
  word-break:normal !important;
  text-align:center !important;
  z-index:3 !important;
}
.cluePanel.hidden{display:none !important;}
html.clueShowing #nextGameBtn,
html.clueShowing #undoBtn,
html.clueShowing #revealBtn{
  visibility:hidden !important;
  pointer-events:none !important;
}
@media (max-width:700px){
  html.moderatePuzzleOneClue #nextGameBtn,
  html.moderatePuzzleOneClue #revealBtn{font-size:11px !important;}
  .cluePanel{font-size:12.3333px !important;}
}


/* Wordport 5.86 - Moderate Puzzle 1 CLUE/REVEAL typography exactly matches YESTERDAY/HOW TO PLAY. */
html.moderatePuzzleOneClue #nextGameBtn,
html.moderatePuzzleOneClue #undoBtn,
html.moderatePuzzleOneClue #revealBtn,
html.moderatePuzzleOneClue #resultsArchiveBtn,
html.moderatePuzzleOneClue #gameHowToPlayBtn{
  font-size:calc(9px + 1pt) !important;
  font-weight:800 !important;
  line-height:1 !important;
  letter-spacing:.12em !important;
  text-transform:uppercase !important;
}
@media (max-width:700px){
  html.moderatePuzzleOneClue #nextGameBtn,
  html.moderatePuzzleOneClue #undoBtn,
  html.moderatePuzzleOneClue #revealBtn,
  html.moderatePuzzleOneClue #resultsArchiveBtn,
  html.moderatePuzzleOneClue #gameHowToPlayBtn{
    font-size:calc(11px + 1pt) !important;
  }
}
@media (max-width:390px){
  html.moderatePuzzleOneClue #nextGameBtn,
  html.moderatePuzzleOneClue #undoBtn,
  html.moderatePuzzleOneClue #revealBtn,
  html.moderatePuzzleOneClue #resultsArchiveBtn,
  html.moderatePuzzleOneClue #gameHowToPlayBtn{
    font-size:clamp(10px,3vw,12px) !important;
    letter-spacing:.06em !important;
  }
}
@media (max-width:350px){
  html.moderatePuzzleOneClue #nextGameBtn,
  html.moderatePuzzleOneClue #undoBtn,
  html.moderatePuzzleOneClue #revealBtn,
  html.moderatePuzzleOneClue #resultsArchiveBtn,
  html.moderatePuzzleOneClue #gameHowToPlayBtn{
    font-size:9.5px !important;
    letter-spacing:.025em !important;
  }
}


/* Wordport 5.88 - Moderate Puzzle 1 three-button top row: CLUE | UNDO | REVEAL. */
html.moderatePuzzleOneClue .buttonRow{
  grid-template-columns:repeat(12,minmax(0,1fr)) !important;
  grid-template-rows:auto auto !important;
  gap:8px !important;
  position:relative !important;
}
html.moderatePuzzleOneClue #nextGameBtn{grid-column:1 / span 4 !important;grid-row:1 !important;}
html.moderatePuzzleOneClue #undoBtn{grid-column:5 / span 4 !important;grid-row:1 !important;}
html.moderatePuzzleOneClue #revealBtn{grid-column:9 / span 4 !important;grid-row:1 !important;}
html.moderatePuzzleOneClue #resultsArchiveBtn{grid-column:1 / span 6 !important;grid-row:2 !important;}
html.moderatePuzzleOneClue #gameHowToPlayBtn{grid-column:7 / span 6 !important;grid-row:2 !important;}
html.moderatePuzzleOneClue #nextGameBtn,
html.moderatePuzzleOneClue #undoBtn,
html.moderatePuzzleOneClue #revealBtn{
  display:block !important;
  width:100% !important;
  min-width:0 !important;
  height:46px !important;
  min-height:46px !important;
  box-sizing:border-box !important;
  margin:0 !important;
}
html.moderatePuzzleOneClue #undoBtn:disabled{
  opacity:1 !important;
  color:rgba(75,75,75,.38) !important;
  -webkit-text-fill-color:rgba(75,75,75,.38) !important;
}
html.moderatePuzzleOneClue #undoBtn:not(:disabled){
  opacity:1 !important;
  color:#4B4B4B !important;
  -webkit-text-fill-color:#4B4B4B !important;
}


/* Wordport 5.89 - How to Play always opens at the heading/top of the content. */
#rulesDialog .rulesDialogCard{
  justify-content:flex-start !important;
}


/* Wordport Player 5.90 - navigation arrow glyph strokes 50% heavier only; boxes unchanged. */
.puzzleMoveNavigator .puzzleNavArrow::before{
  border-top-width:2.25px !important;
  border-right-width:2.25px !important;
}

/* Wordport 5.91 - Moderate Puzzle 1 CLUE button uses the existing REVEALED pill pink. */
html.moderatePuzzleOneClue #nextGameBtn{
  background:#ff91a4 !important;
  border-color:#ff91a4 !important;
}

/* Wordport Player 6.01 - colour-shade update only.
   Geometry, typography, spacing and animation are intentionally unchanged. */
.routeStage #routeList > .routeEntry:not(.completionPraiseRoute):not(.bestTodayAction):not(.invalid):not(.hint),
.routeStage .routeList > .routeEntry:not(.completionPraiseRoute):not(.bestTodayAction):not(.invalid):not(.hint){
  background:linear-gradient(to bottom,#5c6163 0%,#414647 28%,#2d3132 60%,#141818 100%) !important;
}
.routeStage #routeList .replayStickActions > .bestTodayAction:not(.bestTodayShareAction),
.routeStage .routeList .replayStickActions > .bestTodayAction:not(.bestTodayShareAction){
  background:linear-gradient(to bottom,#00a6b3 0%,#01909b 28%,#01747c 60%,#024447 100%) !important;
}
.routeStage #routeList .bestTodayShareAction,
.routeStage .routeList .bestTodayShareAction{
  background:linear-gradient(to bottom,#fd5904 0%,#eb4702 28%,#d13802 60%,#9d1e01 100%) !important;
}
.routeStage #routeList .completionPraiseRoute,
.routeStage .routeList .completionPraiseRoute{
  background:linear-gradient(to bottom,#ffd22c 0%,#fbc103 28%,#e9a403 60%,#c98403 100%) !important;
}

/* Wordport Player 6.02 - endpoint colour, REVEALED shading and slight pill-width increase only.
   Typography, pill heights, animations, layout gaps and gameplay behaviour are unchanged. */
.wordBox{
  background:#141818 !important;
  background-color:#141818 !important;
}
.routeStage #routeList .revealedLabel,
.routeStage .routeList .revealedLabel{
  background:linear-gradient(to bottom,#ff91a4 0%,#ef748c 28%,#d85870 60%,#a83e52 100%) !important;
}
.archiveRoute span,
#routeList .routeEntry,
.routeList .routeEntry{
  padding-left:14px !important;
  padding-right:14px !important;
}
@media (max-width:390px){
  .archiveRoute span,
  #routeList .routeEntry,
  .routeList .routeEntry{
    padding-left:12px !important;
    padding-right:12px !important;
  }
}
@media (max-width:350px){
  .archiveRoute span,
  #routeList .routeEntry,
  .routeList .routeEntry{
    padding-left:10px !important;
    padding-right:10px !important;
  }
}

/* Wordport Player 6.06 - retain approved move-number styling only. */
.routeStage #routeList .routeEntry .routeMoveNumber,
.routeStage .routeList .routeEntry .routeMoveNumber{
  color:#ffd22c !important;
  -webkit-text-fill-color:#ffd22c !important;
}
.routeStage #routeList .routeEntry .routeMoveNumberSpace,
.routeStage .routeList .routeEntry .routeMoveNumberSpace{
  display:inline !important;
  width:auto !important;
}
\n\n

/* Wordport Player 6.08 - iPhone allowable-transformations text view refinements. */
.transformHelpPanel{display:none;}
#previousPuzzleBtn.questionFlashOff{
  color:transparent !important;
  -webkit-text-fill-color:transparent !important;
}
@media (max-width:768px){
  .puzzleMoveNavigator #previousPuzzleBtn{
    color:#4B4B4B !important;
    -webkit-text-fill-color:#4B4B4B !important;
    font-size:20px !important;
    font-weight:400 !important;
    line-height:1 !important;
    text-indent:0 !important;
    transform:translateY(-18px) !important;
  }
  .puzzleMoveNavigator #previousPuzzleBtn::before{display:none !important;}
  html.transformHelpOpen .puzzleMoveNavigator{
    grid-template-columns:44px minmax(0,1fr) 44px !important;
  }
  html.transformHelpOpen .puzzleMoveNavigator #previousPuzzleBtn{
    border-color:transparent !important;
    background:transparent !important;
    color:#111 !important;
    -webkit-text-fill-color:#111 !important;
    font-size:20px !important;
    transform:none !important;
  }
  html.transformHelpOpen .puzzleMoveNavigator .moveControls,
  html.transformHelpOpen .puzzleMoveNavigator #nextPuzzleBtn{
    visibility:hidden !important;
    pointer-events:none !important;
  }
  .transformHelpPanel{
    position:absolute !important;
    display:none;
    z-index:20;
    margin:0 !important;
    padding:0 !important;
    background:transparent !important;
    pointer-events:none;
    border:0 !important;
    box-shadow:none !important;
    clip-path:none !important;
    -webkit-clip-path:none !important;
  }
  .transformHelpPanelInner{
    position:absolute;
    inset:0;
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
    clip-path:none !important;
    -webkit-clip-path:none !important;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0 18px;
    box-sizing:border-box;
  }
  .transformHelpText{
    width:100%;
    text-align:center;
    color:#111;
    -webkit-text-fill-color:#111;
    font-size:13px;
    line-height:1.25;
    font-weight:400;
  }
  .transformHelpText p{margin:0 0 7px;}
  .transformHelpText p:last-child{margin-bottom:0;}
  .transformHelpText strong{font-weight:700;}
  html.transformHelpOpen .transformHelpPanel{display:block !important;}
  html.transformHelpOpen .routeStage,
  html.transformHelpOpen .wp530StandaloneSpacer,
  html.transformHelpOpen .buttonRow{visibility:hidden !important;}
}

/* Wordport Player 6.09 - remove all keylines from contextual transformation view. */
@media (max-width:768px){
  html.transformHelpOpen .puzzleMoveNavigator #previousPuzzleBtn,
  html.transformHelpOpen .puzzleMoveNavigator #previousPuzzleBtn:hover,
  html.transformHelpOpen .puzzleMoveNavigator #previousPuzzleBtn:focus,
  html.transformHelpOpen .puzzleMoveNavigator #previousPuzzleBtn:focus-visible,
  html.transformHelpOpen .puzzleMoveNavigator #previousPuzzleBtn:active{
    border:none !important;
    outline:none !important;
    box-shadow:none !important;
    background:transparent !important;
  }
  html.transformHelpOpen .transformHelpPanel,
  html.transformHelpOpen .transformHelpPanelInner,
  html.transformHelpOpen .transformHelpText{
    border:none !important;
    outline:none !important;
    box-shadow:none !important;
    background:transparent !important;
  }
}


/* Wordport Player 6.10 - contextual help X alignment and text position only. */
@media (max-width:768px){
  html.transformHelpOpen .puzzleMoveNavigator #previousPuzzleBtn{
    transform:translateY(-18px) !important;
  }
  html.transformHelpOpen .transformHelpText{
    transform:translateY(-16px) !important;
  }
}
\n\n/* Wordport Player 6.11 - Beginner level only. */
#beginnerModeBtn{display:inline-block !important;}
html.beginnerMode #beginnerModeBtn{font-weight:700 !important;color:#d45500 !important;-webkit-text-fill-color:#d45500 !important;}
html.beginnerMode #moderateModeBtn{font-weight:400 !important;}
@media (max-width:700px){
  .difficultySelector{column-gap:5px !important;}
  .difficultySelector .difficultyButton{font-size:14px !important;}
}


/* Wordport Player 6.13 - Beginner completion/link corrections. */
.difficultySelector .difficultyButton{font-weight:700 !important;}
html.beginnerMode #moderateModeBtn{font-weight:700 !important;}
html.beginnerMode #beginnerModeBtn{font-weight:700 !important;}


/* Wordport Player 6.14 - Beginner YOUR BEST removal and reliable next-level link only. */
html.beginnerMode .bestTodayShareAction{display:none !important;}
.nextLevelCompletionLink{
  color:inherit !important;
  font:inherit !important;
  text-decoration:none !important;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}

/* Wordport Player 6.15 - Beginner YOUR BEST removal and next-level tap fix only. */
html.beginnerMode .bestTodayShareAction,
html.beginnerMode .replayStickActions .bestTodayShareAction{
  display:none !important;
  visibility:hidden !important;
}
.routeStage #routeList .levelCompletionMessage .nextLevelCompletionLink,
.routeStage .routeList .levelCompletionMessage .nextLevelCompletionLink{
  pointer-events:auto !important;
  cursor:pointer !important;
  touch-action:manipulation !important;
  -webkit-tap-highlight-color:transparent !important;
}


/* Wordport Player 6.19 - completion message line centring only. */
.routeStage #routeList .levelCompletionMessage,
.routeStage .routeList .levelCompletionMessage{
  display:block !important;
  text-align:center !important;
  width:100% !important;
}
.routeStage #routeList .levelCompletionMessage .levelCompletionLine,
.routeStage .routeList .levelCompletionMessage .levelCompletionLine{
  display:block !important;
  width:100% !important;
  text-align:center !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding-left:0 !important;
  padding-right:0 !important;
  white-space:normal !important;
}
.routeStage #routeList .levelCompletionMessage .levelCompletionLineFirst,
.routeStage .routeList .levelCompletionMessage .levelCompletionLineFirst{
  margin-bottom:1.35em !important;
}
.routeStage #routeList .levelCompletionMessage .nextLevelCompletionLink,
.routeStage .routeList .levelCompletionMessage .nextLevelCompletionLink{
  display:inline-block !important;
  text-align:center !important;
}


/* Wordport Player 6.22 - Examples level presentation only. */
html.beginnerMode #undoBtn,
html.beginnerMode #nextGameBtn,
html.beginnerMode #revealBtn,
html.beginnerMode #resultsArchiveBtn{
  display:none !important;
}
html.beginnerMode .buttonRow{
  grid-template-columns:1fr !important;
  grid-template-rows:auto !important;
}
html.beginnerMode #gameHowToPlayBtn{
  display:block !important;
  grid-column:1 / -1 !important;
  grid-row:1 !important;
  width:100% !important;
  min-width:100% !important;
  max-width:100% !important;
  justify-self:stretch !important;
  box-sizing:border-box !important;
}
html.beginnerMode .beginnerExampleInstruction{
  width:100% !important;
  text-align:center !important;
  margin-top:8px !important;
  margin-bottom:8px !important;
}
html.beginnerMode .beginnerExampleInstructionLine{
  display:block !important;
  width:100% !important;
  text-align:center !important;
}
html.beginnerMode .beginnerExampleInstructionLine + .beginnerExampleInstructionLine{
  margin-top:.2em !important;
}
html.beginnerMode .replayStickActions .levelCompletionMessage{
  top:calc(100% + 30px) !important;
  left:0 !important;
  right:0 !important;
  width:100% !important;
  transform:none !important;
}

/* Wordport Player 6.23 - Examples instruction line separation and HOW TO PLAY width only. */
html.beginnerMode .beginnerExampleInstruction{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  min-height:44px !important;
  height:auto !important;
  text-align:center !important;
}
html.beginnerMode .beginnerExampleInstructionLine{
  display:block !important;
  flex:0 0 auto !important;
  width:100% !important;
  text-align:center !important;
  margin-left:auto !important;
  margin-right:auto !important;
  white-space:normal !important;
}
html.beginnerMode .buttonRow{
  width:100% !important;
  min-width:100% !important;
  max-width:none !important;
  inline-size:100% !important;
  margin-left:0 !important;
  margin-right:0 !important;
  justify-self:stretch !important;
  box-sizing:border-box !important;
}
html.beginnerMode #gameHowToPlayBtn{
  width:100% !important;
  min-width:100% !important;
  max-width:none !important;
  inline-size:100% !important;
  justify-self:stretch !important;
  box-sizing:border-box !important;
}

/* Wordport Player 6.24 - Examples spacing, full-width HOW TO PLAY, and Beginner praise only. */
html.beginnerMode .beginnerExampleInstruction{
  margin-top:1.45em !important;
  margin-bottom:1.45em !important;
}
html.beginnerMode .beginnerExampleInstructionLine + .beginnerExampleInstructionLine{
  margin-top:.2em !important;
}
html.beginnerMode .buttonRow{
  display:block !important;
}
html.beginnerMode .buttonRow,
html.beginnerMode #gameHowToPlayBtn{
  width:100% !important;
  min-width:100% !important;
  max-width:100% !important;
  inline-size:100% !important;
  margin-left:0 !important;
  margin-right:0 !important;
  justify-self:stretch !important;
  box-sizing:border-box !important;
}
html.beginnerMode #gameHowToPlayBtn{
  grid-column:1 / -1 !important;
}
html.beginnerMode .completionPraiseRoute .completionPraiseText{
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
}

