  :root{
    --bg:#EEF1F4;
    --paper:#FFFFFF;
    --ink:#14213D;
    --ink-2:#52607A;
    --line:#C9D1DC;
    --signal:#FF4D1C;
    --signal-deep:#D63A0E;
    --radar:#14213D;
    --measure:68ch;
    --gutter:clamp(20px,5vw,48px);
  }
  *,*::before,*::after{box-sizing:border-box}
  html{-webkit-text-size-adjust:100%}
  body{
    margin:0;
    background:var(--bg);
    color:var(--ink);
    font-family:"Bricolage Grotesque",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
    font-size:17px;
    line-height:1.55;
    font-variation-settings:"opsz" 14,"wdth" 100;
  }
  a{color:inherit}
  :focus-visible{outline:3px solid var(--signal);outline-offset:3px}
  h1,h2,h3{margin:0;line-height:1.1;font-weight:700}
  h1{
    font-size:clamp(2.1rem,6vw,3.5rem);
    letter-spacing:-0.015em;
    font-variation-settings:"opsz" 96,"wdth" 85,"wght" 700;
    text-wrap:balance;
  }
  h2{font-size:clamp(1.5rem,3.4vw,2.1rem);letter-spacing:-0.01em;font-variation-settings:"opsz" 48,"wdth" 90,"wght" 650}
  h3{font-size:1.15rem;font-variation-settings:"opsz" 24,"wdth" 95,"wght" 650}
  p{margin:0}
  .wrap{max-width:1080px;margin:0 auto;padding:0 var(--gutter)}
  .lede{color:var(--ink-2);max-width:var(--measure)}

  /* header */
  .top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 0}
  .brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-weight:650;font-size:1.05rem}
  .brand svg{width:26px;height:26px}
  .top a.mail{font-size:.95rem;color:var(--ink-2);text-decoration:none;border-bottom:1px solid var(--line)}
  .top a.mail:hover{color:var(--ink);border-color:var(--ink)}

  /* hero */
  .hero{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(24px,5vw,64px);align-items:center;padding:clamp(24px,5vw,64px) 0 clamp(40px,7vw,88px)}
  .hero .copy{display:flex;flex-direction:column;gap:22px}
  .hero .lede{font-size:1.12rem}
  .cta-row{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
  .btn{
    display:inline-flex;align-items:center;justify-content:center;gap:10px;
    background:var(--signal);color:#fff;text-decoration:none;
    padding:15px 22px;border-radius:6px;font-weight:650;font-size:1.05rem;
    border:0;cursor:pointer;
  }
  .btn:hover{background:var(--signal-deep)}
  .btn.quiet{background:transparent;color:var(--ink);border:1.5px solid var(--ink)}
  .btn.quiet:hover{background:var(--ink);color:#fff}
  .fine{font-size:.92rem;color:var(--ink-2)}

  /* radar */
  .radar{width:min(100%,440px);margin:0 auto;aspect-ratio:1}
  .radar svg{width:100%;height:100%;overflow:visible;display:block}
  .ring{fill:none;stroke:var(--radar);stroke-opacity:.28;stroke-width:1}
  .ring.outer{stroke-opacity:.5}
  .axis{stroke:var(--radar);stroke-opacity:.16;stroke-width:1}
  .sweep{transform-origin:200px 200px;animation:spin 6s linear infinite}
  .blip{animation:ping 6s linear infinite}
  .blip circle{fill:var(--signal)}
  .blip text{
    font-size:12.5px;font-weight:600;fill:var(--ink);
    paint-order:stroke;stroke:var(--bg);stroke-width:4px;stroke-linejoin:round;
  }
  @keyframes spin{to{transform:rotate(360deg)}}
  @keyframes ping{
    0%{opacity:1}
    6%{opacity:1}
    40%{opacity:.28}
    100%{opacity:.28}
  }
  @media (prefers-reduced-motion:reduce){
    .sweep{animation:none}
    .blip{animation:none;opacity:1}
  }

  /* sections */
  .section{padding:clamp(40px,7vw,88px) 0;border-top:1px solid var(--line)}
  .section-head{display:flex;flex-direction:column;gap:12px;margin-bottom:clamp(24px,4vw,40px)}
  .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,40px);counter-reset:step}
  .step{display:flex;flex-direction:column;gap:10px;padding-top:14px;border-top:2px solid var(--ink)}
  .step h3::before{counter-increment:step;content:counter(step) ". "}
  .step p{color:var(--ink-2)}

  /* sample report */
  .sample{background:var(--paper);border:1px solid var(--line);border-radius:10px;overflow:hidden}
  .sample header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 20px;padding:18px 22px;border-bottom:1px solid var(--line);background:#F7F9FB}
  .sample header strong{font-weight:650}
  .sample header span{color:var(--ink-2);font-size:.95rem}
  .pain{list-style:none;margin:0;padding:0}
  .pain li{display:grid;grid-template-columns:2.4rem 1fr auto;gap:6px 16px;align-items:start;padding:18px 22px;border-bottom:1px solid var(--line)}
  .pain li:last-child{border-bottom:0}
  .pain .n{font-variation-settings:"opsz" 48,"wdth" 80,"wght" 700;font-size:1.5rem;line-height:1;color:var(--ink-2)}
  .pain h3{font-size:1.05rem}
  .pain p{color:var(--ink-2);font-size:.97rem;margin-top:4px}
  .meter{display:flex;flex-direction:column;align-items:flex-end;gap:6px;min-width:112px;font-size:.85rem;color:var(--ink-2);padding-top:4px}
  .meter i{display:block;width:112px;height:6px;background:var(--line);border-radius:3px;overflow:hidden}
  .meter i::after{content:"";display:block;height:100%;width:var(--v);background:var(--signal)}
  .sample footer{padding:16px 22px;background:#F7F9FB;border-top:1px solid var(--line);font-size:.92rem;color:var(--ink-2);display:flex;flex-wrap:wrap;gap:6px 18px;justify-content:space-between}
  .idea{padding:18px 22px;border-top:1px solid var(--line);background:#FFF8F5}
  .idea strong{color:var(--signal-deep)}

  /* pricing */
  .plans{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);background:var(--paper);border-radius:10px;overflow:hidden}
  .plan{padding:clamp(22px,3vw,36px);display:flex;flex-direction:column;gap:16px}
  .plan + .plan{border-left:1px solid var(--line)}
  .plan.pro{box-shadow:inset 0 4px 0 var(--signal)}
  .price{display:flex;align-items:baseline;gap:8px}
  .price b{font-size:2.6rem;line-height:1;font-variation-settings:"opsz" 96,"wdth" 85,"wght" 700;letter-spacing:-0.02em}
  .price span{color:var(--ink-2)}
  .plan ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:9px;color:var(--ink-2)}
  .plan li{padding-left:22px;position:relative}
  .plan li::before{content:"";position:absolute;left:0;top:.62em;width:11px;height:11px;border-radius:50%;background:var(--signal)}
  .plan .btn{margin-top:auto;align-self:flex-start}

  /* faq */
  .faq{max-width:var(--measure)}
  .faq details{border-top:1px solid var(--line);padding:4px 0}
  .faq details:last-child{border-bottom:1px solid var(--line)}
  .faq summary{cursor:pointer;padding:14px 0;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:16px}
  .faq summary::-webkit-details-marker{display:none}
  .faq summary::after{content:"+";color:var(--ink-2);font-weight:400;font-size:1.3rem;line-height:1}
  .faq details[open] summary::after{content:"–"}
  .faq details p{color:var(--ink-2);padding:0 0 16px}

  /* footer */
  .foot{padding:36px 0 48px;border-top:1px solid var(--line);color:var(--ink-2);font-size:.92rem;display:flex;flex-wrap:wrap;gap:10px 28px;justify-content:space-between}
  .foot a{text-decoration:none;border-bottom:1px solid var(--line)}

  @media (max-width:820px){
    .hero{grid-template-columns:1fr;gap:28px}
    .radar{width:min(100%,340px)}
    .steps{grid-template-columns:1fr}
    .plans{grid-template-columns:1fr}
    .plan + .plan{border-left:0;border-top:1px solid var(--line)}
  }
  @media (max-width:520px){
    body{font-size:16px}
    .pain li{grid-template-columns:2rem 1fr}
    .meter{grid-column:2;align-items:flex-start;flex-direction:row;gap:10px;align-items:center}
    .btn{width:100%}
  }
