/* PWA / iOS shell polish */
html{height:100%;overscroll-behavior:none}
body{
  min-height:100%;min-height:100dvh;
  padding-top:env(safe-area-inset-top);
  padding-right:env(safe-area-inset-right);
  padding-bottom:env(safe-area-inset-bottom);
  padding-left:env(safe-area-inset-left);
  overscroll-behavior-y:none;
  -webkit-tap-highlight-color:transparent;
}
.wrap{padding:2.25rem max(1.25rem, env(safe-area-inset-right)) max(4.5rem, calc(2rem + env(safe-area-inset-bottom))) max(1.25rem, env(safe-area-inset-left))}
#play,#stop,#readToday,#startChallenge,.cta{min-height:44px;min-width:44px;padding:0.75rem 1.1rem}
.pick{min-height:44px;padding:0.85rem 0.95rem}
input[type=range]{height:44px;min-width:9.5rem}
details.paste-box summary{min-height:44px;display:flex;align-items:center}
@media(max-width:390px){
  .stage{min-height:9.5rem;padding:1.5rem 1rem}
  #word{font-size:clamp(2rem,9vw,3.2rem)}
  .mast{flex-direction:column;gap:0.65rem}
  .mast-meta{text-align:left;max-width:none}
}
@media(display-mode:standalone){body.standalone .install-hint{display:none!important}}
body.standalone .install-hint{display:none!important}
.install-hint{
  position:fixed;left:max(0.75rem,env(safe-area-inset-left));right:max(0.75rem,env(safe-area-inset-right));
  bottom:max(0.75rem,env(safe-area-inset-bottom));
  z-index:40;max-width:22rem;margin:0 auto;
  background:#faf7f0;border:1px solid var(--rule);border-left:3px solid var(--ink);
  padding:0.7rem 0.85rem;font-size:0.82rem;color:var(--ink-soft);
  box-shadow:0 8px 24px rgba(28,25,21,0.08);display:none;
}
.install-hint.show{display:block}
.install-hint strong{color:var(--ink);font-weight:600}
.install-hint .ih-row{display:flex;align-items:flex-start;gap:0.65rem}
.install-hint button{
  appearance:none;border:0;background:transparent;color:var(--ink-soft);
  font:inherit;font-weight:600;font-size:0.78rem;cursor:pointer;
  min-height:44px;min-width:44px;padding:0.25rem 0.35rem;margin:-0.25rem -0.35rem 0 auto;flex-shrink:0;
}
.install-hint button:hover{color:var(--ink)}
