/* Core27 — Compact actions and stable score-first surfaces. UI only; server gates unchanged. */

/* Home copy shares the illustration's axis on both phones and wide screens. */
.hub .hub-intro,
body:has(.hub.screen) .hub-intro {
  text-align:center;
  align-items:center;
  justify-content:center;
}
.hub .hub-intro h1,
.hub .hub-intro p,
body:has(.hub.screen) .hub-intro h1,
body:has(.hub.screen) .hub-intro p {
  max-width:100%;
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}
.hub .hub-kicker {display:flex;justify-content:center;align-items:center;gap:8px}

/* Daily has one legible action; the trailing arrow has a protected lane. */
.screen #daily.cta,
.view #daily.action {
  position:relative;
  min-height:61px;
  height:auto;
  padding:10px 48px 10px 18px;
  box-sizing:border-box;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  text-align:center;
}
.screen #daily .pz27-cta-copy {
  width:100%;min-width:0;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:3px;
}
.screen #daily .cta-top,.view #daily .cta-top {
  display:block;max-width:100%;font-size:11px;line-height:1.15;
  font-weight:740;letter-spacing:.005em;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;opacity:.78;
}
.screen #daily .cta-main,.view #daily .cta-main {
  display:block;max-width:100%;font-size:clamp(13px,3.8vw,16px);font-weight:880;
  line-height:1.22;letter-spacing:-.025em;overflow-wrap:normal;
}
.screen #daily .pz27-cta-arrow,
.view #daily .cta-tail {
  position:absolute;top:50%;right:16px;transform:translateY(-50%);
  display:grid;place-items:center;min-width:23px;width:23px;height:23px;
  font-size:21px;line-height:1;flex:0 0 23px;
  pointer-events:none;
}
/* Final results' share action uses the same protected icon lane. */
.screen #share.cta{position:relative;padding-inline:42px;min-height:52px}
.screen #share .pz27-cta-copy{min-width:0;max-width:100%;text-align:center}
.screen #share .pz27-cta-arrow{position:absolute;right:15px;top:50%;transform:translateY(-50%);font-size:19px}

/* Sprint Race: one text hierarchy, one arrow, no competing status chip. */
.pz-ranked-entry.pz-sprint-primary {
  display:flex!important;align-items:center!important;justify-content:space-between!important;
  min-height:69px!important;padding:12px 51px 12px 17px!important;
  border-radius:17px!important;gap:0!important;position:relative!important;
  background:linear-gradient(115deg,#173d37,#1b3439 55%,#1a2938)!important;
  border:1px solid rgba(168,246,219,.36)!important;
  box-shadow:inset 0 1px rgba(255,255,255,.07),0 8px 22px rgba(0,0,0,.12)!important;
  text-align:left!important;
}
.pz-sprint-primary .pz-sprint-copy {
  display:flex!important;flex-direction:column!important;gap:4px!important;
  flex:1 1 auto!important;min-width:0!important;text-align:left!important;
}
.pz-sprint-primary .pz-sprint-copy strong {
  display:block!important;color:#e9fff5!important;font-size:clamp(14px,3.8vw,16px)!important;
  line-height:1.13!important;letter-spacing:-.027em!important;font-weight:840!important;
}
.pz-sprint-primary .pz-sprint-copy small {
  display:block!important;color:#b2d3ca!important;font-size:clamp(10px,2.65vw,11px)!important;
  font-weight:520!important;line-height:1.25!important;text-align:left!important;
  white-space:nowrap!important;max-width:100%!important;
  overflow:hidden!important;text-overflow:ellipsis!important;
}
.pz-sprint-primary .pz-sprint-chip{display:none!important}
.pz-sprint-primary .pz-sprint-arrow {
  position:absolute!important;right:17px!important;top:50%!important;
  transform:translateY(-50%)!important;display:grid!important;place-items:center!important;
  width:22px!important;height:22px!important;min-width:22px!important;
  color:#d4ffeb!important;font-size:22px!important;line-height:1!important;
  pointer-events:none;
}
.pz-sprint-primary:focus-visible{outline:2px solid #baf3dc;outline-offset:3px}

/* Bottom notes: never wrap onto a second row or shift the main actions. */
.screen .pz27-game-foot,.view .pz27-game-foot{
  display:flex;align-items:center;justify-content:center;gap:7px;
  width:100%;min-height:19px!important;line-height:1.1!important;
  font-size:10px!important;letter-spacing:.07em;font-weight:780!important;
  color:#9dabbc!important;text-align:center;
  white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis;
  flex:0 0 19px;
}
.view .pz27-game-foot>span {white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.screen .pz27-game-foot>span{flex:0 0 auto}

/* Scores are read before decoration: rank, player + rounds, result on one line. */
.pz21-leaderboard .pz21-personal {
  width:min(100%,315px);max-width:315px;
  margin:12px auto 3px;padding:11px 13px;
  min-height:64px;gap:11px;border-radius:14px;
}
.pz21-personal-block {gap:4px}
.pz21-personal-label {font-size:9px;letter-spacing:.08em}
.pz21-personal strong {font-size:20px;line-height:1.1}
.pz21-personal-score {font-size:19px;line-height:1.1;white-space:nowrap}
.pz21-personal-score small {font-size:9px}
.pz21-rank,.pz21-leaderboard .pz21-rank {
  grid-template-columns:32px minmax(0,1fr) auto;gap:10px;
  min-height:47px;padding:8px 0;
}
.pz21-rank.is-leader,.pz21-leaderboard .pz21-rank.is-leader {
  padding:9px 12px;min-height:53px;margin:6px 0 0;
  border-radius:12px;
}
.pz21-player,.pz21-handle{min-width:0}
.pz21-leaderboard .pz21-handle{
  display:flex;flex-direction:row;align-items:baseline;gap:8px;
  min-width:0;white-space:nowrap;
}
.pz21-leaderboard .pz21-handle strong{
  display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap;flex:0 1 auto;font-size:13px;line-height:1.25;
}
.pz21-leaderboard .pz21-handle small {
  display:block;flex:0 0 auto;font-size:9px;line-height:1.2;
  letter-spacing:0;color:#8194a8;white-space:nowrap;
}
.pz21-leaderboard .pz21-value {min-width:56px;gap:0;justify-content:center}
.pz21-leaderboard .pz21-value strong {font-size:clamp(16px,4.7vw,19px);line-height:1.15}
.pz21-leaderboard .pz21-rank.is-leader .pz21-pos {font-size:19px}
@media(max-width:350px){
  .pz21-rank,.pz21-leaderboard .pz21-rank{grid-template-columns:28px minmax(0,1fr) auto;gap:7px}
  .pz21-leaderboard .pz21-handle{gap:6px}
  .pz21-leaderboard .pz21-handle strong{font-size:12px}
  .pz21-leaderboard .pz21-handle small{font-size:8px}
  .pz21-leaderboard .pz21-rank.is-leader{padding-inline:8px}
}

/* Profile: one clear sign-in action, compact automatic-save indication. */
.pz-account-panel .pz-account-footer {gap:8px;flex-shrink:0}
.pz-account-panel .pz-account-google {
  width:100%;min-height:68px;height:auto!important;padding:11px 15px!important;
  gap:12px;border-radius:15px!important;justify-content:flex-start;
}
.pz-account-panel .pz-google-chip {
  flex:0 0 39px;width:39px;height:39px;border-radius:12px;
  background:#d9473c!important;color:#fff!important;
  font-family:Arial,sans-serif;font-size:24px;font-weight:770;
  box-shadow:inset 0 1px rgba(255,255,255,.24),0 3px 10px rgba(155,55,48,.20);
}
.pz-account-panel .pz-google-copy {min-width:0;flex:1;gap:4px}
.pz-account-panel .pz-google-copy strong {font-size:14px}
.pz-account-panel .pz-google-copy small {font-size:10px;white-space:normal}
.pz-account-panel .pz-account-auto{font-size:10px;line-height:1.35;padding:9px 12px;border:0;background:transparent;color:#99b0be}
.pz-account-panel .pz-account-footer.is-auth{gap:2px}
.pz-account-panel .pz-account-footer.is-auth .pz-account-secondary {
  height:40px;min-height:40px;max-width:140px;align-self:flex-end;
  padding:8px 14px;font-size:11px;
}
/* The profile may scroll on short phones; gameplay headers must never scroll out. */
.pz-account-overlay {overscroll-behavior:contain}

/* Result screen: reserve bottom actions; compress illustration, not tap targets. */
.screen:has(.compare) {min-height:0}
.screen:has(.compare) > .bottom {margin-top:auto;flex:0 0 auto}
.view:has(.final-actions) {min-height:0;overflow-y:auto;scrollbar-width:none;overscroll-behavior:contain}
.view:has(.final-actions)::-webkit-scrollbar{display:none}
.view:has(.final-actions)>div:has(.final-actions){
  width:100%;flex:1 0 auto;min-height:100%;
  display:flex;flex-direction:column;gap:10px;
}
.view:has(.final-actions) .final-score{margin-top:0;flex:1 1 auto;min-height:105px}
.view:has(.final-actions) .final-stats{flex:0 0 auto}
.view:has(.final-actions) .final-actions{margin-top:auto;flex:0 0 auto;padding-top:3px}
.view:has(.final-actions) .result-swatches{flex:0 0 auto}
@media(max-height:700px){
  .view:has(.final-actions)>div:has(.final-actions){gap:6px}
  .view:has(.final-actions) .final-score{min-height:80px}
  .view:has(.final-actions) .final-actions{gap:6px}
  .screen #daily.cta,.view #daily.action{min-height:55px;padding-block:7px}
  .pz-ranked-entry.pz-sprint-primary{min-height:60px!important;padding-block:9px!important}
}
@media(max-width:340px){
  .screen #daily.cta,.view #daily.action{padding-left:11px;padding-right:41px}
  .screen #daily .cta-top,.view #daily .cta-top{font-size:10px}
  .screen #daily .cta-main,.view #daily .cta-main{font-size:13px}
  .pz-sprint-primary .pz-sprint-copy small{font-size:9px!important}
}
@media(prefers-reduced-motion:reduce){.pz-ranked-entry.pz-sprint-primary{transition:none!important}}
/* Consistent arrow capsule across the four game surfaces. */
.screen #daily .pz27-cta-arrow,
.view #daily .cta-tail {
  width:25px;height:25px;min-width:25px;min-height:25px;
  border-radius:50%;background:rgba(18,33,49,.08);
  border:1px solid rgba(20,43,56,.18);
  font-size:17px;
}
.pz-sprint-primary .pz-sprint-arrow {
  border:1px solid rgba(204,255,225,.26);
  border-radius:9px;background:rgba(185,251,213,.075);
  width:29px!important;height:29px!important;
  right:14px!important;min-width:29px!important;font-size:19px!important;
}
/* Reserve the same brand width before/after the account session reveals ranking.
   Hidden ranked icon never causes the wordmark to grow and then jump smaller. */
@media(max-width:480px){
  .nav .switcher,.app-header #brand-box{
    flex:0 1 clamp(144px,45vw,176px)!important;
    width:clamp(144px,45vw,176px)!important;
    max-width:176px!important;
  }
  .nav .nav-right,.app-header .header-actions{margin-left:auto}
}


/* Core28 — one-line actions; compact rankings; no extra menu headings. */
/* The arrow is never allowed to overlap the copy. */
.screen #daily.cta,.view #daily.action{
  min-height:56px;height:56px;max-height:56px;
  display:flex;flex-direction:row;align-items:center;justify-content:center;
  padding:0 47px 0 16px;white-space:nowrap;overflow:hidden;
}
.screen #daily .pz27-cta-copy{
  display:block;width:100%;min-width:0;overflow:hidden;white-space:nowrap;
  text-align:center;
}
.screen #daily .cta-main,.view #daily .cta-main{
  display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  line-height:1.2;font-size:clamp(11.5px,3.45vw,15px);font-weight:850;
  max-width:100%;letter-spacing:-.035em;
}
.screen #daily .pz27-cta-arrow,.view #daily .cta-tail{
  position:absolute;right:13px;top:50%;transform:translateY(-50%);
  flex:0 0 27px;min-width:27px;width:27px;height:27px;
}
/* Spectrum uses the same single-line copy width, with independent existing animation. */
.view #daily.action{gap:0}
.view #daily .cta-main{min-width:0;max-width:100%}
/* A single prominent race action rather than a title with an informational subtitle. */
.pz-ranked-entry.pz-sprint-primary{
  height:57px!important;min-height:57px!important;max-height:57px!important;
  padding:0 51px 0 18px!important;align-items:center!important;
}
.pz-sprint-primary .pz-sprint-copy{
  flex-direction:row!important;align-items:center!important;justify-content:center!important;
  gap:0!important;width:100%;overflow:hidden!important;
}
.pz-sprint-primary .pz-sprint-copy strong{
  display:block!important;max-width:100%!important;min-width:0!important;
  text-align:center!important;white-space:nowrap!important;overflow:hidden!important;
  text-overflow:ellipsis!important;font-size:clamp(13px,3.6vw,15px)!important;
}
.pz-sprint-primary .pz-sprint-arrow{right:13px!important}
/* A single quiet status line, never a second paragraph. */
.screen .pz27-game-foot,.view .pz27-game-foot{
  height:18px!important;min-height:18px!important;max-height:18px!important;
  font-size:10px!important;letter-spacing:.04em!important;white-space:nowrap!important;
  flex:0 0 18px!important;overflow:hidden!important;
}
/* Remove redundant top line across both dropdown implementations. */
.nav .drop{padding-top:7px}
.app-header .brand-menu{padding-top:7px}
/* Actual narrower leader rows; first place remains distinguished but not oversized. */
.pz21-leaderboard .pz21-ranks{max-width:340px;margin:6px auto 0}
.pz21-leaderboard .pz21-rank{
  width:100%;min-height:40px!important;height:auto;
  padding:7px 5px!important;margin:0!important;
  grid-template-columns:25px minmax(0,1fr) auto;gap:8px;
}
.pz21-leaderboard .pz21-rank.is-leader{
  min-height:43px!important;padding:8px 10px!important;border-radius:10px;
}
.pz21-leaderboard .pz21-rank .pz21-pos{font-size:12px!important}
.pz21-leaderboard .pz21-rank.is-leader .pz21-pos{font-size:16px!important}
.pz21-leaderboard .pz21-handle{gap:7px}
.pz21-leaderboard .pz21-handle strong{font-size:12.5px;line-height:1.2}
.pz21-leaderboard .pz21-handle small{font-size:9px;line-height:1.2}
.pz21-leaderboard .pz21-value{min-width:50px}
.pz21-leaderboard .pz21-value strong{font-size:16px;letter-spacing:-.035em}
.pz21-leaderboard .pz21-personal{
  display:flex;justify-content:space-between;align-items:center;
  width:min(100%,255px);max-width:255px;min-height:45px!important;
  padding:9px 13px!important;margin:9px auto 2px!important;gap:12px;
  border-radius:11px;
}
.pz28-personal-rank{display:inline-flex;align-items:baseline;gap:7px;white-space:nowrap;
  color:#a9e4cb;font-size:10px;letter-spacing:.055em;font-weight:780}
.pz28-personal-rank strong{color:#e1fff1;font-size:17px;letter-spacing:-.02em}
.pz28-personal-score{color:#e7fff3;font-size:18px;font-weight:860;font-variant-numeric:tabular-nums}
/* A status hint and sign-out are peers on one quiet row. */
.pz-account-panel .pz-account-footer.is-auth{
  display:flex!important;flex-direction:row!important;align-items:center!important;
  justify-content:space-between!important;gap:7px!important;min-width:0;
}
.pz-account-panel .pz-account-footer.is-auth .pz-account-auto{
  flex:1 1 auto;min-width:0;padding:0!important;margin:0!important;
  background:none!important;border:0!important;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;font-size:clamp(9px,2.6vw,11px)!important;
  line-height:1.3;color:#a9b9c7;
}
.pz-account-panel .pz-account-footer.is-auth .pz-account-secondary{
  flex:0 0 auto!important;max-width:none!important;align-self:auto!important;
  width:auto!important;height:35px!important;min-height:35px!important;
  border-radius:9px;padding:7px 11px!important;font-size:10px!important;
}
/* Viewport-specific safety: no collisions at 320px and no extra layouts/requests. */
@media(max-width:350px){
 .pz21-leaderboard .pz21-ranks{max-width:100%}
 .pz21-leaderboard .pz21-handle{gap:5px}
 .pz21-leaderboard .pz21-handle strong{font-size:11.5px}
 .pz21-leaderboard .pz21-handle small{font-size:8px}
 .view #daily .cta-main,.screen #daily .cta-main{font-size:11.5px}
 .pz-account-panel .pz-account-footer.is-auth .pz-account-auto{font-size:9px!important}
}
@media(max-height:700px){
 .screen #daily.cta,.view #daily.action{height:52px;min-height:52px}
 .pz-ranked-entry.pz-sprint-primary{height:53px!important;min-height:53px!important;max-height:53px!important}
}


/* Core29 – one surface system / no additional stylesheet request. */
/* Google identity: product-dark canvas, restrained Google color perimeter and red mark. */
.pz-account-panel .pz-account-footer .pz-account-google{
  position:relative;isolation:isolate;box-sizing:border-box;
  width:100%;min-height:65px;height:65px!important;
  background:linear-gradient(145deg,#202b3a,#151e2b 88%) padding-box,
    linear-gradient(112deg,#e96c60 0%,#edbe65 32%,#6ec6a2 64%,#85a8ed 100%) border-box!important;
  border:1px solid transparent!important;border-radius:15px!important;
  box-shadow:inset 0 1px rgba(255,255,255,.07),0 5px 22px rgba(0,0,0,.18)!important;
  color:#edf4fb!important;padding:10px 13px!important;gap:12px;
}
.pz-account-panel .pz-account-google .pz-google-chip{
  background:#d94a44!important;color:#fff!important;width:36px;height:36px;flex:0 0 36px;
  border-radius:11px;box-shadow:inset 0 1px rgba(255,255,255,.19)!important;
}
.pz-account-panel .pz-account-google .pz-google-copy strong{color:#f1f7fd;font-size:13px;font-weight:790}
.pz-account-panel .pz-account-google .pz-google-copy small{color:#aabccf;font-size:10px;line-height:1.3}
.pz-account-panel .pz-account-google>span:last-child{color:#c5d5e7;font-size:17px;flex:0 0 auto}
.pz-account-panel .pz-account-google:focus-visible{outline:2px solid #b5edd5;outline-offset:3px}
/* Equal-width, equal-height mode choices; strict reserved arrow lane. */
.screen .bottom:has(#daily), .view .bottom-action:has(#daily){gap:7px!important}
.screen #daily.cta,.view #daily.action,.screen .pz-ranked-entry.pz-sprint-primary,.view .pz-ranked-entry.pz-sprint-primary{
  width:100%!important;min-width:0;box-sizing:border-box;
  height:56px!important;min-height:56px!important;max-height:56px!important;
  flex:0 0 56px!important;margin-top:0!important;
  border-radius:16px!important;overflow:hidden;
}
.screen #daily.cta,.view #daily.action{padding-inline:13px 49px!important}
.screen .pz-ranked-entry.pz-sprint-primary,.view .pz-ranked-entry.pz-sprint-primary{padding-inline:13px 49px!important}
/* One consistent arrow capsule in both Daily and Sprint. */
.screen #daily .pz27-cta-arrow,.view #daily .cta-tail,.pz-sprint-primary .pz-sprint-arrow{
  position:absolute!important;top:50%!important;right:13px!important;
  transform:translateY(-50%)!important;
  display:grid!important;place-items:center!important;
  width:29px!important;min-width:29px!important;height:29px!important;min-height:29px!important;
  flex:0 0 29px!important;border-radius:9px!important;
  background:rgba(34,47,56,.10)!important;border:1px solid rgba(42,64,69,.23)!important;
  font-size:19px!important;line-height:1!important;color:inherit!important;
  pointer-events:none!important;
}
.pz-sprint-primary .pz-sprint-arrow{color:#d5ffea!important;background:rgba(185,251,213,.075)!important;border-color:rgba(204,255,225,.26)!important}
.screen #daily .cta-main,.view #daily .cta-main,.pz-sprint-primary .pz-sprint-copy strong{
  text-overflow:ellipsis;overflow:hidden;white-space:nowrap;
}
/* Editorial leader strip, equal card width, vertically centered results. */
.pz21-leaderboard .pz21-ranks,.pz21-leaderboard .pz21-personal{
  width:min(100%,308px)!important;max-width:308px!important;margin-left:auto!important;margin-right:auto!important;
}
.pz21-leaderboard .pz21-rank{
  box-sizing:border-box;align-items:center!important;
  min-height:35px!important;height:35px!important;padding:0 6px!important;margin:0!important;
  grid-template-columns:24px minmax(0,1fr) auto;gap:7px;
}
.pz21-leaderboard .pz21-rank.is-leader{
  min-height:39px!important;height:39px!important;padding:0 9px!important;margin-top:4px!important;
}
.pz21-leaderboard .pz21-rank .pz21-pos,.pz21-leaderboard .pz21-handle,.pz21-leaderboard .pz21-value{
  align-self:center!important;line-height:1!important;
}
.pz21-leaderboard .pz21-handle{align-items:center!important}
.pz21-leaderboard .pz21-handle strong,.pz21-leaderboard .pz21-handle small,
.pz21-leaderboard .pz21-value strong{line-height:1.05!important}
.pz21-leaderboard .pz21-personal{height:39px!important;min-height:39px!important;padding:0 11px!important;margin-top:8px!important;margin-bottom:3px!important;align-items:center!important}
/* Daily footer: difficulty left and unbolded daily best right, both on one line. */
.screen .pz27-game-foot,.view .pz27-game-foot{
  display:flex!important;align-items:center!important;justify-content:space-between!important;
  gap:8px!important;min-width:0!important;width:100%!important;
  font-size:10px!important;font-weight:450!important;letter-spacing:0!important;
  color:#a4b2c3!important;text-transform:none!important;
}
.pz27-game-foot .pz29-mode{flex:0 0 auto;font-weight:480!important;color:#b4c5d4;white-space:nowrap}
.pz27-game-foot .pz29-record{flex:0 1 auto;min-width:0;max-width:75%;text-align:right;
  font-weight:480!important;color:#a7bacb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Daily memory: four paired micro-lanes are an eight-level meter in one calm strip. */
.hub .passport-v12.pz29-memory-strip, body:has(.hub.screen) .passport-v12.pz29-memory-strip{
  width:calc(100% - 10px);max-width:100%;align-self:center;box-sizing:border-box;
  display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:space-between!important;
  gap:12px!important;min-height:43px!important;height:43px!important;max-height:43px!important;
  flex:0 0 43px!important;padding:7px 12px!important;margin:0 auto!important;
  border-radius:13px!important;background:linear-gradient(105deg,#1a2a30,#202536 86%)!important;
  border:1px solid rgba(180,214,231,.18)!important;
  box-shadow:inset 0 1px rgba(255,255,255,.055)!important;
}
.pz29-memory-label{font-size:10px;font-weight:720;color:#cbdcd9;letter-spacing:.015em;white-space:nowrap;flex:0 0 auto}
.pz29-memory-track{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;flex:1 1 auto;max-width:168px;min-width:45px}
.pz29-memory-pair{display:flex;gap:3px;min-width:0}
.pz29-memory-pair i{flex:1 1 0;min-width:0;height:5px;border-radius:20px;background:#58647866;transition:background .18s ease}
.pz29-memory-pair i.on{background:var(--step-accent)}
.pz29-memory-value{display:flex;align-items:baseline;gap:1px;font-size:18px;line-height:1;font-weight:790;font-variant-numeric:tabular-nums;color:#ebfaf6;letter-spacing:-.04em;white-space:nowrap}
.pz29-memory-value small{font-size:10px;font-weight:500;color:#879aad;letter-spacing:0}
@media(max-width:350px){
 .pz29-memory-track{gap:4px}.hub .passport-v12.pz29-memory-strip{gap:8px!important;padding-inline:9px!important}
 .pz29-memory-label{font-size:9px}
 .pz21-leaderboard .pz21-ranks,.pz21-leaderboard .pz21-personal{width:min(100%,292px)!important}
}
@media(max-height:570px){.hub .passport-v12.pz29-memory-strip{min-height:39px!important;height:39px!important;max-height:39px!important;flex-basis:39px!important}}
@media(prefers-reduced-motion:reduce){.pz29-memory-pair i{transition:none}}
/* Preserve deliberately hidden memory strip on extremely short viewports. */
@media(max-height:510px){body:has(.hub.screen) .passport-v12.pz29-memory-strip{display:none!important}}
@media(min-width:850px) and (min-height:460px) and (max-height:639px){body:has(.hub.screen) .passport-v12.pz29-memory-strip{display:none!important}}


/* Core30: Spectrum final layout, aligned with Time / Shape / Sound. */
.view:has(.final-actions)>div{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;max-height:100%;gap:clamp(5px,.95dvh,9px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}
.view:has(.final-actions)>div::-webkit-scrollbar{display:none}
.view:has(.final-actions) .eyeline{min-height:24px;flex:0 0 auto}
.view:has(.final-actions) .final-score{margin:0!important;padding:0!important;flex:1 1 auto;min-height:64px;gap:3px}
.view:has(.final-actions) .final-score h1{font-size:clamp(48px,12dvh,76px)!important;line-height:1.05;letter-spacing:-.055em}
.view:has(.final-actions) .final-score p{font-size:12px;line-height:1.35;margin:0}
.view:has(.final-actions) .result-swatches{margin:0!important;min-height:43px;max-height:48px;gap:5px;flex:0 0 auto}
.view:has(.final-actions) .result-swatches span{min-height:43px;max-height:48px}
.view:has(.final-actions) .pz21-spectrum-caption{margin:2px 0 0;font-size:9px}
.view:has(.final-actions) .final-stats{margin:0!important;padding:7px 0!important;gap:7px;min-height:55px;flex:0 0 auto}
.view:has(.final-actions) .stat-box{padding:5px 4px;min-height:44px}
.view:has(.final-actions) .stat-box b{font-size:16px!important}
.view:has(.final-actions) .stat-box small{margin-top:3px;font-size:9px}
.view:has(.final-actions) .final-actions{position:sticky;bottom:0;z-index:2;margin-top:auto!important;flex:0 0 auto;gap:6px!important;padding:8px 0 0;background:linear-gradient(0deg,#0e121c 88%,#0e121c00);}
.view:has(.final-actions) .final-actions .pz-ranked-result-link{margin:0!important;min-height:40px;padding:9px 12px;font-size:12px}
.view:has(.final-actions) .final-actions .action{height:43px!important;min-height:43px!important;margin:0}
.view:has(.final-actions) .share-row{gap:8px}
@media(max-height:690px){.view:has(.final-actions)>div{gap:4px}.view:has(.final-actions) .final-score{min-height:52px}.view:has(.final-actions) .final-score h1{font-size:clamp(42px,9dvh,62px)!important}.view:has(.final-actions) .final-score p{font-size:11px}.view:has(.final-actions) .result-swatches,.view:has(.final-actions) .result-swatches span{min-height:36px;max-height:41px}.view:has(.final-actions) .final-stats{min-height:46px;padding:4px 0!important}.view:has(.final-actions) .final-actions{padding-top:4px;gap:5px!important}.view:has(.final-actions) .final-actions .action{height:39px!important;min-height:39px!important}}

/* Core31 — leaderboard uses one responsive full-width rail, even on narrow phones. */
.pz21-leaderboard .pz21-ranks,.pz21-leaderboard .pz21-personal{width:100%!important;max-width:none!important;box-sizing:border-box!important;margin-inline:0!important}
.pz21-leaderboard .pz21-personal{margin-bottom:12px!important}
.pz21-leaderboard .pz21-ranks{border-top:1px solid rgba(205,221,242,.20)!important;padding-top:9px!important}
@media(max-width:350px){.pz21-leaderboard .pz21-ranks,.pz21-leaderboard .pz21-personal{width:100%!important;max-width:none!important}}

/* Core32 — one terminal layout contract for Arena and the Logic portal.
   The last stylesheet wins over earlier versioned surfaces; no extra CSS request. */
.hub .pz32-logic-link,
body:has(.hub.screen) .pz32-logic-link {
  position:relative;display:flex;align-items:center;justify-content:center;
  min-height:49px;padding:9px 40px!important;box-sizing:border-box;gap:0;
}
.pz32-logic-link .pz32-logic-lockup {
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  min-width:0;max-width:100%;white-space:nowrap;
}
.pz32-logic-link .pz32-logic-name {font-size:12px;font-weight:800;letter-spacing:-.015em;flex:0 0 auto}
.pz32-logic-link .logic-mini {width:21px;height:21px;flex:0 0 21px}
.pz32-logic-link .logic-desc {font-size:10px;flex:0 1 auto;min-width:0;max-width:135px;margin:0!important}
.pz32-logic-link .logic-arrow {
  position:absolute;right:16px;top:50%;transform:translateY(-50%);
  margin:0;line-height:1;pointer-events:none;
}
@media(max-width:350px){.pz32-logic-link .logic-desc{display:none}}

/* Vertical rhythm: an editorial heading, a quick filter, then actual rankings. */
.pz21-leaderboard{padding-bottom:28px!important}
.pz21-leaderboard .pz21-lb-toolbar{min-height:46px}
.pz21-leaderboard .pz21-lb-head{padding:17px 0 18px;align-items:center}
.pz21-leaderboard .pz21-title-block h1{margin:4px 0 5px;line-height:1.1;font-size:clamp(29px,7.8vw,36px)}
.pz21-leaderboard .pz21-title-block p{line-height:1.45;font-size:11.5px}
.pz21-leaderboard .pz21-trophy{width:51px;min-width:51px;border-radius:15px}
.pz21-leaderboard .pz21-trophy svg{width:32px;height:37px}
.pz21-leaderboard .pz21-game-tabs{gap:5px}
.pz21-leaderboard .pz21-game-tabs button{min-height:47px;border-radius:10px;gap:3px}
.pz21-leaderboard .pz21-game-tabs button[aria-pressed=true]{background:#23313a;border-color:#b9d7d745;color:#f0fff9}
.pz21-leaderboard .pz21-game-tabs button:focus-visible,
.pz21-leaderboard .pz21-difficulty button:focus-visible{outline:2px solid #b9f5da;outline-offset:2px}
.pz21-leaderboard .pz21-board{margin-top:15px}
.pz21-leaderboard .pz21-board-head{padding-bottom:12px;align-items:center}
.pz21-leaderboard .pz21-board-head h2{font-size:clamp(22px,6vw,27px);margin-top:5px}
.pz21-leaderboard .pz21-board-unit{font-weight:680;font-size:10px;letter-spacing:.11em;color:#91b9ae}

/* Your rank: one restrained line, same exact rail as the table. */
.pz21-leaderboard .pz21-personal{
  width:100%!important;max-width:none!important;box-sizing:border-box;
  height:48px!important;min-height:48px!important;
  margin:12px 0 12px!important;padding:0 16px!important;
  border-radius:12px!important;background:linear-gradient(105deg,#1d34336b,#162c3450);
  border:1px solid #9cd9c65b!important;
  display:flex!important;align-items:center!important;justify-content:space-between!important;
  gap:10px!important;
}
.pz21-leaderboard .pz21-personal[hidden]{display:none!important}
.pz21-leaderboard .pz28-personal-rank{display:flex;align-items:baseline;gap:7px;font-size:10px;letter-spacing:.065em;line-height:1}
.pz21-leaderboard .pz28-personal-rank strong{font-size:20px;font-variant-numeric:tabular-nums;font-weight:820;line-height:1}
.pz21-leaderboard .pz28-personal-score{font-size:21px;line-height:1;font-weight:820;letter-spacing:-.035em}

/* 3-column rank grid. No fake avatar, no second line, no dangling baseline. */
.pz21-leaderboard .pz21-rows{border-top:1px solid #c6d7df2c;margin-top:5px}
.pz21-leaderboard .pz21-ranks{
  width:100%!important;max-width:none!important;margin:0!important;
  padding:6px 0 0!important;border-top:0!important;
}
.pz21-leaderboard .pz21-rank,
.pz21-leaderboard .pz21-rank.is-leader{
  position:relative;box-sizing:border-box;width:100%;max-width:none;
  min-height:46px!important;height:46px!important;
  margin:0!important;padding:0 11px!important;
  display:grid;grid-template-columns:29px minmax(0,1fr) auto;gap:10px;
  align-items:center!important;align-content:center!important;
  border:0!important;border-bottom:1px solid #cbd7df1b!important;
  border-radius:0!important;background:none!important;box-shadow:none!important;
  transform:none!important;
}
.pz21-leaderboard .pz21-rank.is-leader{
  height:54px!important;min-height:54px!important;
  background:linear-gradient(95deg,#cfb78312,transparent 74%)!important;
  border-bottom-color:#cfb78335!important;
}
.pz21-leaderboard .pz21-rank:last-child{border-bottom:0!important}
.pz21-leaderboard .pz21-pos{align-self:center!important;font-size:12px!important;line-height:1!important;font-weight:740!important;color:#9dabbc}
.pz21-leaderboard .pz21-rank.is-leader .pz21-pos{font-size:19px!important;color:#f0d4a5!important}
.pz21-leaderboard .pz21-player,.pz21-leaderboard .pz21-handle{
  display:flex!important;flex-direction:row!important;align-items:center!important;
  justify-content:flex-start!important;min-width:0;gap:9px!important;
  height:100%;line-height:1!important;
}
.pz21-leaderboard .pz21-handle strong{
  font-size:13px!important;line-height:1.1!important;font-weight:730!important;
  min-width:0;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.pz21-leaderboard .pz21-handle small{
  flex:0 0 auto;display:inline!important;font-size:9px!important;font-weight:540!important;
  line-height:1!important;letter-spacing:0!important;color:#8fa5b6;
  white-space:nowrap;margin:0;
}
.pz21-leaderboard .pz21-value{
  align-self:center!important;display:flex;align-items:center;justify-content:flex-end;
  min-width:51px;line-height:1!important;margin:0;padding:0;
}
.pz21-leaderboard .pz21-value strong{
  font-size:17px!important;font-weight:810!important;line-height:1!important;
  font-variant-numeric:tabular-nums;letter-spacing:-.03em;
}
.pz21-leaderboard .pz21-rank.is-leader .pz21-value strong{font-size:19px!important;color:#f5d7a6}
.pz21-leaderboard .pz21-footnote{padding-top:14px}
@media(max-width:365px){
  .pz21-leaderboard .pz21-rank,.pz21-leaderboard .pz21-rank.is-leader{padding:0 7px!important;grid-template-columns:25px minmax(0,1fr) auto;gap:7px}
  .pz21-leaderboard .pz21-handle{gap:6px!important}
  .pz21-leaderboard .pz21-handle strong{font-size:11.5px!important}
  .pz21-leaderboard .pz21-handle small{font-size:8px!important}
  .pz21-leaderboard .pz21-value strong{font-size:15px!important}
  .pz21-leaderboard .pz21-rank.is-leader .pz21-value strong{font-size:17px!important}
  .pz21-leaderboard .pz28-personal-score{font-size:19px}
}
@media(prefers-reduced-motion:reduce){.pz21-leaderboard .pz21-rank,.pz21-leaderboard .pz21-personal{transition:none!important}}

/* Core33 — one end-of-round action contract across all four worlds */
.screen:has(.pz33-final-actions){min-height:0;display:flex;flex-direction:column;overflow:hidden}
.screen:has(.pz33-final-actions) .results-panel{flex:1 1 auto;min-height:0;margin-block:2px;gap:clamp(5px,1.2dvh,12px)}
.screen:has(.pz33-final-actions) .result-bars{flex:0 0 auto;max-height:86px}
.screen:has(.pz33-final-actions) .compare{flex:0 0 auto;margin:0}
.screen .pz33-final-actions{margin-top:auto!important;flex:0 0 auto;display:flex;flex-direction:column;gap:7px!important;padding-top:8px;padding-bottom:max(8px,env(safe-area-inset-bottom,0px));width:100%;position:sticky;bottom:0;z-index:2;background:linear-gradient(0deg,#0c121e 90%,#0c121ee0);box-sizing:border-box}
.screen .pz33-final-actions .pz-ranked-result-link{display:grid;place-items:center;min-height:42px!important;padding:8px 12px!important;margin:0!important;font-size:12px}
.screen .pz33-final-actions #share{min-height:46px!important;height:46px!important;padding-block:5px!important;margin:0}
.screen .pz33-final-actions .share-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px!important;margin:0}
.screen .pz33-final-actions .share-row button{width:100%;height:43px!important;min-height:43px!important;margin:0;padding:8px 4px;font-size:12px}
.view .pz33-final-actions{padding-bottom:max(7px,env(safe-area-inset-bottom,0px))}
@media(max-height:690px){.screen:has(.pz33-final-actions) .results-panel .feedback-sub{display:none}.screen:has(.pz33-final-actions) .result-bars{gap:3px}.screen:has(.pz33-final-actions) .result-bars .bar-shell{height:46px}.screen:has(.pz33-final-actions) .compare{padding-block:5px}}
/* Profile DNA: verified Sprint records, compact grid; no fake cloud Daily scores. */
.pz-account-panel .pz33-dna,.pz-account-panel .pz33-badges{margin-top:14px;display:flex;flex-direction:column;gap:9px}
.pz-account-panel .pz33-label-row{display:flex;align-items:baseline;justify-content:space-between;gap:6px}
.pz-account-panel .pz33-label-row small{color:#91a8bb;font-size:10px;white-space:nowrap}
.pz-account-panel .pz33-dna-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.pz-account-panel .pz33-dna-item{display:grid;grid-template-columns:1fr auto;row-gap:5px;padding:10px 11px;border-radius:12px;background:#ffffff06;border:1px solid #ffffff14;min-width:0}
.pz-account-panel .pz33-dna-item>b{grid-column:span 2;font-size:12px;color:#e4ebf5}
.pz-account-panel .pz33-dna-item>span{grid-column:span 2;display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#a7bacb}
.pz-account-panel .pz33-dna-item strong{font-variant-numeric:tabular-nums;color:#c3f5e0;font-size:12px}
.pz-account-panel .pz33-badge-list{display:flex;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding:1px 1px 4px;scrollbar-width:thin}
.pz-account-panel .pz33-badge{scroll-snap-align:start;display:grid;grid-template-rows:26px auto auto;justify-items:center;gap:3px;flex:0 0 96px;min-width:96px;padding:9px 7px;min-height:84px;border-radius:13px;border:1px solid #f4d99c44!important;background:linear-gradient(140deg,#3b3440,#1c2637 80%);color:#f8e8c5;cursor:pointer}
.pz-account-panel .pz33-badge-2{border-color:#c7deea50!important;color:#daebfa}
.pz-account-panel .pz33-badge-3{border-color:#e4ae8e50!important;color:#f1c8a8}
.pz-account-panel .pz33-medal{font-size:23px;line-height:1}
.pz-account-panel .pz33-badge b{font-size:11px}
.pz-account-panel .pz33-badge small{font-size:9px;color:#aab8c9;white-space:nowrap}
.pz-account-panel .pz33-badge-empty{font-size:11px;line-height:1.4;color:#99adbe;margin:0;padding:12px;border-radius:11px;background:#ffffff06;border:1px solid #ffffff12}
.pz33-badge-overlay{position:fixed;inset:0;z-index:10050;background:#030713ba;display:flex;align-items:flex-end;justify-content:center;padding:14px;box-sizing:border-box;backdrop-filter:blur(8px)}
.pz33-badge-sheet{width:min(100%,430px);border:1px solid #d8bb8152;background:linear-gradient(155deg,#26354a,#101a2a);border-radius:23px 23px 18px 18px;padding:23px 21px max(22px,env(safe-area-inset-bottom,0px));box-sizing:border-box;color:#f2f6fc;box-shadow:0 24px 60px #0009;text-align:center}
.pz33-badge-detail-icon{font-size:48px;color:#f3d596;display:block;margin-bottom:12px}
.pz33-badge-sheet h3{font-size:20px;margin:9px 0;letter-spacing:-.025em}
.pz33-badge-sheet p{font-size:13px;line-height:1.6;color:#b6c8dc;margin:12px 0 20px}
.pz33-badge-close{background:linear-gradient(110deg,#b5e9d5,#c4c9fa);color:#17253a;border:0;border-radius:13px;width:100%;min-height:49px;font-size:13px;font-weight:800}
.pz33-badge:focus-visible,.pz33-badge-close:focus-visible{outline:2px solid #c5f6e2;outline-offset:3px}
/* Time: deliberate pulse language, tactile response, hold never overlaps secondary actions. */
.time-signal-button{touch-action:none;user-select:none;-webkit-user-select:none;min-width:165px;min-height:165px}
.time-signal-button .time-guess-copy{width:76%;max-width:76%;padding:12px 9px;box-sizing:border-box;gap:5px}
.time-signal-button .time-guess-copy b{font-size:clamp(13px,3.3vw,16px);letter-spacing:.045em}
.time-signal-button .time-guess-copy small{font-size:10px;line-height:1.35;max-width:145px}
.pz33-time-status{font-size:11px!important;line-height:1.35;text-align:center;min-height:16px;margin:0!important;color:#b5c7d9}
.time-signal-shell .time-signal-help{font-size:11px;line-height:1.3;white-space:normal;max-width:260px}
.time-signal-shell .time-signal-caption{letter-spacing:.085em;font-size:11px}
@media(max-height:680px){.time-signal-button{width:clamp(165px,25vh,205px);height:clamp(165px,25vh,205px)}.time-signal-shell .time-signal-field{width:clamp(112px,21vh,170px);height:clamp(112px,21vh,170px)}}
@media(prefers-reduced-motion:reduce){.pz33-badge-overlay{backdrop-filter:none}.time-signal-button{transition:none}}

/* Core33 — consistently compact result rail with three equivalent stat cells. */
.screen .pz33-final-stats{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding:0;margin:0}
.screen .pz33-final-stats>div{min-width:0;min-height:49px;padding:8px 5px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;border:1px solid #ffffff20;border-radius:12px;background:#ffffff08;text-align:center}
.screen .pz33-final-stats small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;font-size:9px;letter-spacing:.025em;color:#a5b7ca}
.screen .pz33-final-stats b{font-size:15px;color:#ebf4ff;line-height:1.1;font-variant-numeric:tabular-nums}
.screen:has(.pz33-final-actions) .result-bars{width:100%;max-width:100%;min-width:0;gap:clamp(3px,1.4vw,8px);overflow:hidden}
.screen:has(.pz33-final-actions) .result-bars>div{width:clamp(22px,calc((100vw - 92px) / 8),40px);min-width:0}
.view .pz33-final-actions .action{height:46px!important;min-height:46px!important}
.view .pz33-final-actions .share-row .action{height:43px!important;min-height:43px!important}
@media(max-height:650px){.screen .pz33-final-stats>div{min-height:40px;padding:5px 4px;gap:3px}.screen .pz33-final-stats b{font-size:13px}}
/* Core33: results are an open editorial canvas, not a tall empty card. */
.screen:has(.pz33-final-actions) .results-panel{background:transparent!important;border:0!important;box-shadow:none!important;padding:6px 0!important;justify-content:center}
/* Core37 shared competitive sign-in gate — theme native, single small modal. */

/* Core38 — gentle 3-pulse attention cue on the EXISTING Google sign-in control. */
.pz-account-panel .pz-account-google.pz38-google-focus{
  border-color:#b5f4dc88!important;
  outline:1px solid #b4f4d64a;
  outline-offset:2px;
  animation:pz38-signin-cue 1.05s ease-in-out 3;
}
@keyframes pz38-signin-cue{
  0%,100%{box-shadow:0 0 0 0 #b7f5dd00,0 3px 15px #0002}
  50%{box-shadow:0 0 0 5px #b7f5dd17,0 0 25px #8bdcb72d}
}
@media(prefers-reduced-motion:reduce){.pz-account-panel .pz-account-google.pz38-google-focus{animation:none;outline:2px solid #b4f4d6}}

/* Practice reuses existing secondary action styling and the game's sound/visual engine. */
.pz-practice-entry{min-height:38px!important;height:38px!important;font-size:12px!important;margin:0!important;padding:6px 12px!important}
@media(max-height:700px){.pz-practice-entry{min-height:34px!important;height:34px!important}}
