.dv{--g:clamp(16px,2.2vw,40px);max-width:min(3200px,92vw);margin-inline:auto;padding-block:clamp(32px,5vw,96px)}
.dv h1{font-size:clamp(32px,4.2vw,88px);line-height:1.05;margin:0 0 .4em;overflow-wrap:anywhere}
.dv .lede{font-size:clamp(17px,1.3vw,28px);max-width:60ch}
.dv-grid{display:grid;gap:var(--g);grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));margin-block:var(--g)}
.dv-card{display:flex;flex-direction:column;gap:.6em;padding:clamp(16px,1.6vw,32px);border:1px solid color-mix(in srgb,currentColor 18%,transparent);border-radius:18px;min-width:0}
.dv-card h2,.dv-card h3{margin:0;font-size:clamp(19px,1.4vw,30px)}
.dv-card svg{width:clamp(36px,3vw,64px);height:auto}
.dl-btn{display:inline-flex;align-items:center;gap:.5em;min-height:44px;padding:.6em 1.1em;border-radius:999px;background:#ff5a1f;color:#fff;text-decoration:none;font-weight:600;max-width:100%;flex-wrap:wrap}
.dl-btn.is-soon{background:transparent;color:inherit;border:1px dashed currentColor;opacity:.75}
.dl-btn small{font-weight:400}
.dl-btn:focus-visible,.dv a:focus-visible,.ally-w button:focus-visible{outline:3px solid #ff5a1f;outline-offset:3px}
.steps{counter-reset:s;list-style:none;padding:0;display:grid;gap:var(--g);grid-template-columns:repeat(auto-fit,minmax(min(100%,max(340px,18vw)),1fr))}
.steps li{counter-increment:s;display:flex;flex-direction:column;gap:.75em;min-width:0}
.steps li::before{content:counter(s);font-weight:700;font-size:clamp(20px,1.6vw,34px);color:#ff5a1f}
.shot{aspect-ratio:16/9;display:grid;place-items:center;text-align:center;padding:1em;border:2px dashed color-mix(in srgb,currentColor 30%,transparent);border-radius:14px;font-size:.9em;opacity:.8}
.shot.phone{aspect-ratio:9/16;max-width:320px}
.shot b{display:block;font-size:.75em;letter-spacing:.08em;text-transform:uppercase}
.code{font:700 clamp(28px,3vw,64px)/1 ui-monospace,monospace;letter-spacing:.12em}
.qr{width:clamp(160px,14vw,320px);aspect-ratio:1;border:2px dashed currentColor;display:grid;place-items:center;border-radius:12px;text-align:center;padding:.5em}
.faq details{border-top:1px solid color-mix(in srgb,currentColor 18%,transparent);padding-block:1em}
.faq summary{cursor:pointer;font-weight:600;min-height:44px;display:flex;align-items:center}
.ally-w{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:50;max-width:calc(100vw - 32px)}
.ally-w>button{min-height:48px;padding:0 1.2em;border-radius:999px;border:0;background:#ff5a1f;color:#fff;font-weight:600;cursor:pointer}
.ally-p{width:min(380px,calc(100vw - 32px));max-height:min(70vh,560px);display:flex;flex-direction:column;background:Canvas;color:CanvasText;border-radius:18px;box-shadow:0 12px 40px rgba(0,0,0,.35);margin-bottom:10px;overflow:hidden}
.ally-p[hidden]{display:none}
.ally-log{flex:1;overflow:auto;padding:14px;display:grid;gap:10px;align-content:start}
.ally-log p{margin:0;overflow-wrap:anywhere}
.ally-p form{display:flex;gap:8px;padding:10px;border-top:1px solid color-mix(in srgb,CanvasText 15%,transparent)}
.ally-p input{flex:1;min-width:0;min-height:44px;font:inherit;padding:0 .8em;border-radius:10px;border:1px solid color-mix(in srgb,CanvasText 30%,transparent)}
@media (min-width:2560px){html{font-size:125%}}
@media (min-width:3840px){html{font-size:160%}}
@media (min-width:7680px){html{font-size:300%}}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
