/* Responsive and touch-input hardening */
html,body{overflow-x:hidden}
body{min-width:280px}
nav a{display:flex;align-items:center;min-height:44px}
.ghost,.coach button{min-height:44px}
select,input{min-height:48px}
.chip input{position:absolute;width:1px;height:1px;min-height:0;margin:0;padding:0;opacity:0;pointer-events:none;clip-path:inset(50%)}
.lengths label{display:flex;align-items:center;min-height:44px;cursor:pointer}
.lengths input{display:inline;width:18px;height:18px;min-height:18px;margin:0 .35rem 0 0;padding:0}
.sources a{display:flex;align-items:center;min-height:44px}

@media(max-width:850px){
  .hero h1{font-size:clamp(2.75rem,15vw,3.7rem)}
  .occasion-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .form-row{grid-template-columns:minmax(0,1fr)}
  .sources{gap:.25rem}
  footer .brand{min-height:44px}
}

@media(max-width:380px){
  .topbar{gap:.6rem}
  .brand small{display:none}
  .brand-mark{width:38px;height:38px}
  .topbar .ghost{margin-left:auto;padding:.45rem .65rem}
  .hero-copy{padding:3.2rem 1rem}
  .builder-section{padding:3.5rem .5rem}
  .panel,.result{padding:1rem}
  .occasion{min-width:0;padding:.75rem .45rem}
  .occasion span{font-size:.78rem}
  .lengths{flex-wrap:wrap;gap:.35rem .75rem}
  .lengths>span{width:100%}
  .practice,.about{padding:3.5rem 1rem}
  .practice li{grid-template-columns:1fr;gap:.35rem}
  .speech{right:5%;left:5%;padding:1.2rem}
  .shanyrak{left:12%}
}
