*{box-sizing:border-box}
body{margin:0;background:#fff;color:#0b1b34;font-family:"DM Sans",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;line-height:1.65;-webkit-font-smoothing:antialiased}
a{color:#2563eb}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}
header.nav{border-bottom:1px solid #e8eef7;background:#fff;position:sticky;top:0;z-index:10}
header.nav .wrap{display:flex;align-items:center;gap:12px;height:64px}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:19px;color:#0b1b34;text-decoration:none}
.mark{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,#2563eb,#0d9488);display:grid;place-items:center;flex:none}
header.nav nav{margin-left:auto;display:flex;gap:18px;align-items:center;font-size:15px;font-weight:600}
header.nav nav a{color:#41506b;text-decoration:none}
header.nav nav a:hover{color:#2563eb}
.hero{padding:clamp(44px,7vw,72px) 0 clamp(32px,4.5vw,48px);background:radial-gradient(820px 380px at 8% -10%,#dbe7ff 0,rgba(219,231,255,0) 62%),radial-gradient(700px 340px at 94% 0,#d4f5ee 0,rgba(212,245,238,0) 64%),linear-gradient(180deg,#f7faff 0,#fff 100%);border-bottom:1px solid #eef3fa}
.crumb{font-size:13.5px;color:#64748b;margin:0 0 16px}
.crumb a{color:#64748b;text-decoration:none}
.pill{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid #dde5f1;border-radius:999px;padding:6px 14px;font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#334155;margin:0 0 16px}
.pill::before{content:"";width:7px;height:7px;border-radius:50%;background:#10b981;box-shadow:0 0 0 3px rgba(16,185,129,.18)}
h1{font-size:clamp(29px,4.8vw,45px);line-height:1.09;letter-spacing:-.03em;margin:0 0 18px;font-weight:800;text-wrap:balance}
h1 em{font-style:normal;background:linear-gradient(90deg,#2563eb,#0d9488);-webkit-background-clip:text;background-clip:text;color:transparent}
.lede{font-size:17.5px;color:#41506b;max-width:760px;margin:0 0 14px}
.lede strong{color:#0b1b34}
h2{font-size:clamp(23px,3.2vw,31px);line-height:1.16;letter-spacing:-.02em;margin:0 0 20px;font-weight:800;text-wrap:balance}
section{padding:clamp(38px,5.5vw,60px) 0;border-bottom:1px solid #eef3fa}
.btn{display:inline-block;background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;text-decoration:none;font-weight:700;font-size:15.5px;padding:14px 26px;border-radius:12px;box-shadow:0 10px 26px rgba(37,99,235,.3);transition:transform .18s,filter .18s}
.btn:hover{transform:translateY(-2px);filter:brightness(1.08)}
.btn.ghost{background:#fff;color:#2563eb;border:1px solid #cfdcf2;box-shadow:none}
.cta-row{display:flex;gap:13px;flex-wrap:wrap;align-items:center;margin-top:26px}
.note{font-size:14px;color:#64748b}
code{background:#eef2f8;border:1px solid #e2e8f0;border-radius:6px;padding:2px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}
.card{background:#fff;border:1px solid #e6ecf6;border-radius:16px;padding:22px;box-shadow:0 1px 2px rgba(11,27,52,.04)}
.card h3{font-size:17px;font-weight:700;margin:0 0 8px;letter-spacing:-.015em}
.card p{margin:0;font-size:14.5px;color:#51607a;line-height:1.6}
.ico{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-size:20px;background:rgba(37,99,235,.09);border:1px solid rgba(37,99,235,.18);margin-bottom:13px}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(232px,1fr));gap:16px;counter-reset:s}
.step{position:relative;background:#fff;border:1px solid #e6ecf6;border-radius:14px;padding:22px 20px;box-shadow:0 1px 2px rgba(11,27,52,.04)}
.step::before{counter-increment:s;content:counter(s);position:absolute;top:16px;right:18px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;font-weight:700;color:#9db0cc}
.step h3{font-size:16.5px;font-weight:700;margin:0 0 7px;letter-spacing:-.012em;padding-right:26px}
.step p{margin:0;font-size:14.5px;color:#51607a;line-height:1.58}
.faq{border:1px solid #e6ecf6;border-radius:14px;overflow:hidden;background:#fff}
.faq details{border-bottom:1px solid #eef3fa}
.faq details:last-child{border-bottom:0}
.faq summary{cursor:pointer;padding:16px 20px;font-weight:700;font-size:15.5px;list-style:none;display:flex;justify-content:space-between;gap:14px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:#2563eb;font-weight:800;font-size:20px;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq .a{padding:0 20px 17px;color:#51607a;font-size:14.5px;margin:0}
.demo-box{background:linear-gradient(180deg,#f7faff,#fff);border:1px solid #dbe6f7;border-radius:18px;padding:clamp(24px,4vw,36px)}
footer{padding:36px 0;color:#64748b;font-size:14.5px}
footer a{color:#41506b;text-decoration:none}

figure.shot{margin:26px 0 0;padding:0}
figure.shot picture,figure.shot img{display:block;width:100%;height:auto;border:1px solid #dbe3ef;border-radius:12px;box-shadow:0 10px 30px rgba(11,27,52,.10);background:#fff}
figure.shot figcaption{margin-top:10px;font-size:13.5px;color:#64748b;line-height:1.5}
.shotgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin-top:26px}
.shotgrid figure.shot{margin:0}
.shotgrid.narrow{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
