/* Shared mobile usability fixes, loaded after each page's local styles. */
a,button{touch-action:manipulation}
.project-pins{overflow:hidden;overflow:clip}
#mailBtn{display:inline-flex;align-items:center;justify-content:center;gap:16px;min-height:62px;padding:17px 25px;border:1px solid #7d86ff;border-radius:9px;background:#5865f2;color:#fff;font-size:1.05rem;font-weight:600;line-height:1.4;text-decoration:none;box-shadow:0 5px 0 #3641a9,0 12px 30px #5865f22b;transition:transform .18s,background-color .18s,box-shadow .18s}
#mailBtn::before{content:"";flex:0 0 26px;width:26px;height:22px;background:currentColor;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 20'%3E%3Cpath d='M20.3 1.7A20 20 0 0 0 15.4.2l-.6 1.2a18 18 0 0 0-5.6 0L8.6.2a20 20 0 0 0-4.9 1.5C.6 6.3-.2 10.8.2 15.2a20 20 0 0 0 6 3l1.2-2a12 12 0 0 1-1.9-.9l.5-.4a15 15 0 0 0 12 0l.5.4-1.9.9 1.2 2a20 20 0 0 0 6-3c.5-5.1-.9-9.6-3.5-13.5ZM8 12.5c-1.1 0-2-1-2-2.3S6.9 8 8 8s2 1 2 2.2-.9 2.3-2 2.3Zm8 0c-1.1 0-2-1-2-2.3s.9-2.2 2-2.2 2 1 2 2.2-.9 2.3-2 2.3Z'/%3E%3C/svg%3E") center/contain no-repeat}
#mailBtn:hover{color:#fff;background:#4752c4;border-color:#9aa1ff;transform:translateY(-2px);box-shadow:0 7px 0 #303995,0 16px 36px #5865f240}
#mailBtn:active{transform:translateY(3px);box-shadow:0 2px 0 #3641a9}
#mailBtn:focus-visible{outline:3px solid var(--text);outline-offset:6px}
.k-close{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--text);font:inherit;font-size:23px;cursor:pointer}
.k-close:focus-visible{outline:2px solid var(--accent-ink);outline-offset:3px}
@media(max-width:600px){
  nav{padding:14px max(5vw,env(safe-area-inset-right)) 14px max(5vw,env(safe-area-inset-left));gap:10px}
  nav .logo{font-size:1.125rem;flex-shrink:0}
  nav .nav-tools{gap:4px;min-width:0}
  nav .tool,nav .tool.k-btn{display:inline-flex;align-items:center;justify-content:center;min-width:44px;width:44px;height:44px;padding:0;flex-shrink:0}
  nav .pill,nav .back{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;font-size:12px;padding:0 8px}
  nav .back span{display:none}
  .hero{padding-top:100px}
  .hero-top{gap:16px}
  .hero-kicker{font-size:22px}
  .hero-intro{font-size:14px;line-height:1.6;max-width:23ch}
  .availability{font-size:12px;min-height:44px;margin-top:6px}
  .hero-art{height:350px}
  .object-pin{font-size:10px;min-height:44px;display:inline-flex;align-items:center;padding:8px 6px}
  .hero-bottom{font-size:12px;flex-wrap:wrap;gap:6px;padding:12px 0}
  .hero-bottom>div{width:100%;justify-content:space-between;gap:12px}
  .hero-bottom a,.motion-toggle{display:inline-flex;align-items:center;min-height:44px;font-size:12px}
  .w-hint,.stage-description,.sv-head p,.sv-card p,.statement,.now p,.log-list p,.contact-brief{font-size:15px;line-height:1.7}
  .filters{gap:12px;flex-wrap:wrap}
  .filters button{min-width:44px;min-height:44px;font-size:13px;padding:8px 4px}
  .project-tabs{gap:0 16px}
  .project-tab{min-height:76px;gap:7px}
  .tab-name{font-size:17px;overflow-wrap:anywhere}
  .tab-name small{font-size:11px;line-height:1.5}
  .tab-number{font-size:10px}
  .tab-arrow{display:none}
  .stage-caption,.stage-stack{font-size:11px;line-height:1.6;overflow-wrap:anywhere}
  .stage-caption{flex-wrap:wrap}
  .stage-caption span:last-child{text-align:left}
  .stage-links{font-size:14px;gap:8px 16px}
  .stage-links>a{display:inline-flex;align-items:center;min-height:44px}
  .sv-card{display:block}
  .sv-card h3{margin-bottom:12px;font-size:21px}
  .sv-card ul{font-size:13px;line-height:1.6;margin-top:12px}
  .log-list time,.log-list em{font-size:12px;line-height:1.5}
  .log-more{display:inline-flex;align-items:center;min-height:44px;font-size:13px}
  .socials{font-size:13px;gap:8px 20px;flex-wrap:wrap}
  .socials a,footer a{display:inline-flex;align-items:center;min-height:44px}
  footer{font-size:12px;line-height:1.6;padding-bottom:max(18px,env(safe-area-inset-bottom))}
  #mailBtn{width:100%;max-width:420px;gap:12px;padding:16px 12px;font-size:16px;min-height:60px}
  #mailBtn span{flex-shrink:0}
  .contact-brief{margin-top:25px}
  .kmenu{padding:20px 12px max(16px,env(safe-area-inset-bottom))}
  .k-panel{max-height:calc(100dvh - 40px)}
  .k-top{gap:8px;padding:12px}
  .k-top input{font-size:16px;min-height:44px}
  .k-top kbd{display:none}
  .k-i{min-height:48px;font-size:14px}
  .k-i small{font-size:12px}
  .story p,.prose p,.side dd,.side li{font-size:16px;line-height:1.75}
  .side dt,.side h2,.eyebrow,.meta .pill,.preview-note,.chips span{font-size:12px;line-height:1.6}
  .meta{gap:12px}
  .btn,.pager a{min-height:44px;display:inline-flex;align-items:center;justify-content:center;font-size:14px}
  .gallery button{min-height:44px;min-width:44px}
  .lede{font-size:17px;line-height:1.65}
}
@media(min-width:601px) and (max-width:899px){
  nav .tool,nav .tool.k-btn{min-width:44px;min-height:44px}
  .hero-intro,.stage-description,.sv-head p,.sv-card p,.statement,.now p,.log-list p,.contact-brief{font-size:15px;line-height:1.7}
  .filters button,.motion-toggle{min-width:44px;min-height:44px;font-size:13px}
  .object-pin{min-height:44px;display:inline-flex;align-items:center;font-size:11px}
}
@media(prefers-reduced-motion:reduce){#mailBtn{transition:none}#mailBtn:hover{transform:none}}
