/* Mobile app pages (2026-10-22): hero, store badges, QR card, screenshot strip, install bar, mock host.
   Loaded by index, mobile and app only. Uses the tokens from site.css. No inline styles (CSP). */
a.sb{text-decoration:none;color:var(--fg);transition:border-color .2s,transform .2s}
a.sb:hover{border-color:var(--accent);transform:translateY(-2px)}
.sb.soon{opacity:.78;border-style:dashed}
.sb.soon small{color:var(--muted)}
.app-icon{width:88px;height:88px;border-radius:22px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);margin-bottom:18px;display:block}
.app-hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:48px;align-items:center}
.app-hero .store{margin-top:28px}
.qr-card{display:flex;gap:16px;align-items:center;margin-top:22px;border:1px solid var(--line);background:var(--card);border-radius:20px;padding:14px 18px;max-width:430px}
.qr-card img{width:104px;height:104px;flex:none;border-radius:8px;background:#fff;padding:4px}
.qr-card p{margin:0;font-size:14.5px;color:var(--muted)}.qr-card b{display:block;color:var(--fg);font-size:15.5px}
.os-android .qr-card,.os-ios .qr-card{display:none}
@media(hover:none) and (pointer:coarse){.qr-card{display:none}}
.shots3{display:flex;justify-content:center;align-items:flex-start;gap:14px;min-width:0}
.shot{margin:0;min-width:0}
.shot .fr{border-radius:30px;background:var(--board);padding:7px;box-shadow:var(--shadow);border:1px solid var(--board-line)}
.shot img{display:block;width:100%;height:auto;border-radius:23px;background:var(--bg2)}
.shot figcaption{margin-top:10px;font:600 14px var(--f-body);text-align:center;color:var(--muted)}
.shots3 .shot{flex:1 1 0;max-width:220px}
.shots3 .shot:nth-child(2){margin-top:34px}
.strip{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding:8px 2px 20px;margin-top:34px;-webkit-overflow-scrolling:touch}
.strip .shot{flex:0 0 min(230px,64vw);scroll-snap-align:start}
.am-host{display:block;min-height:840px;margin-top:30px}
.am-host.ready{min-height:0}
.no-js .am-host{display:none}
.steps3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:34px}
.steps3 .card{min-width:0}
.steps3 .n{font:500 12px var(--f-mono);letter-spacing:.1em;color:var(--accent-ink)}
.roles6{margin-top:40px}
.install-bar{position:fixed;left:0;right:0;bottom:0;z-index:79;display:flex;align-items:center;gap:12px;padding:10px max(14px,env(safe-area-inset-right,0px)) calc(10px + env(safe-area-inset-bottom,0px)) max(14px,env(safe-area-inset-left,0px));background:var(--card);border-top:1px solid var(--line);box-shadow:0 -12px 30px -20px rgba(0,0,0,.45)}
.install-bar img{border-radius:10px;border:1px solid var(--line);flex:none}
.ib-t{flex:1;min-width:0;line-height:1.25}.ib-t b{display:block;font-size:15px}.ib-t span{font-size:13px;color:var(--muted)}
.ib-x{border:0;background:none;color:var(--muted);font-size:26px;line-height:1;padding:4px 8px;cursor:pointer}
.has-installbar{padding-bottom:72px}
.has-installbar .chat-launcher{bottom:calc(84px + env(safe-area-inset-bottom,0px))}
@media(max-width:900px){.app-hero-grid{grid-template-columns:1fr;gap:34px}.steps3{grid-template-columns:1fr}.shots3{justify-content:flex-start}}
@media(max-width:600px){.shots3 .shot:nth-child(3){display:none}.shots3 .shot:nth-child(2){margin-top:22px}.app-icon{width:72px;height:72px;border-radius:18px}.qr-card{padding:12px}.store .sb{flex:1 1 200px}}
@media(prefers-reduced-motion:reduce){a.sb{transition:none}}
.strip:focus-visible{outline:3px solid var(--accent);outline-offset:4px;border-radius:12px}
.roles6{display:block;column-count:3;column-gap:14px}
.roles6 .role{break-inside:avoid;margin-bottom:14px}
@media(max-width:960px){.roles6{column-count:2}}
@media(max-width:620px){.roles6{column-count:1}}
