/* ===== hero-viz: shared ===== */
.hv-split{display:block}
@media (min-width:1024px){
  .hv-split{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:48px;align-items:center}
  .hv-split h1{font-size:clamp(28px,2.4vw,34px)!important}
  .hv-split br.hv-br{display:inline!important}
}
.hv{display:none;position:relative;font-family:"Noto Sans JP",sans-serif}
@media (min-width:1024px){.hv{display:block}}
.hv-window{position:relative;background:#fff;border:1px solid rgba(40,96,147,.12);border-radius:18px;
  box-shadow:0 30px 60px -30px rgba(23,41,61,.35),0 8px 20px -12px rgba(48,113,183,.18);padding:18px 18px 20px;overflow:hidden}
.hv-bar{display:flex;gap:6px;margin-bottom:14px}
.hv-bar span{width:9px;height:9px;border-radius:50%;background:#E3E8EF}
.hv-title{display:flex;align-items:center;justify-content:space-between;gap:10px;font:500 13px/1.2 "Noto Sans JP",sans-serif;color:#17293D;margin:0 2px 14px}
.hv-line{display:block;height:7px;border-radius:4px;background:#EEF2F7}
.hv-body{transition:opacity .4s}
.hv.hv-out .hv-body{opacity:0}
.hv-chip{position:absolute;z-index:2;font:500 11px/1 "Jost","Noto Sans JP",sans-serif;letter-spacing:.04em;color:#17293D;background:#fff;
  border:1px solid rgba(40,96,147,.14);border-radius:999px;padding:7px 12px;box-shadow:0 10px 24px -14px rgba(23,41,61,.35);
  animation:hvFloat 6s ease-in-out infinite;white-space:nowrap}
.hv-chip::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:6px;vertical-align:1px;background:var(--c)}
.hv-chip.c1{top:-14px;right:24px;--c:#3071B7}
.hv-chip.c2{top:-14px;left:28px;--c:#E84A2A;animation-delay:-1.5s}
.hv-chip.c3{bottom:-14px;right:24px;--c:#8b7cf6;animation-delay:-3s}
.hv-chip.c4{bottom:-14px;left:28px;--c:#3dd9b8;animation-delay:-4.5s}
@keyframes hvFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes hvBlink{50%{opacity:0}}
@keyframes hvPulse{0%,100%{box-shadow:0 0 0 0 rgba(48,113,183,.35)}50%{box-shadow:0 0 0 8px rgba(48,113,183,0)}}
.hv.hv-static *{transition:none!important}
@media (prefers-reduced-motion:reduce){
  .hv *{animation:none!important;transition:none!important}
}

/* ===== SEO: search → results → AI answer → citation ===== */
.hv-seo .sv-search{display:flex;align-items:center;gap:10px;border:1px solid rgba(40,96,147,.18);border-radius:999px;padding:10px 16px;
  font:500 14px/1 "Noto Sans JP",sans-serif;color:#17293D;min-height:42px}
.hv-seo .sv-search svg{flex:none;color:#3071B7}
.hv-seo .sv-caret{display:inline-block;width:1.5px;height:16px;background:#3071B7;margin-left:1px;animation:hvBlink 1s steps(1) infinite}
.hv-seo .sv-tabs{display:flex;gap:18px;margin:14px 4px 10px;font:500 12px/1 "Noto Sans JP",sans-serif;color:#8a94a3;border-bottom:1px solid #EEF2F7}
.hv-seo .sv-tabs span{padding-bottom:9px;border-bottom:2px solid transparent;transition:color .3s,border-color .3s}
.hv-seo .sv-tabs .t1,.hv-seo.hv-ai .sv-tabs .t2{color:#3071B7;border-color:#3071B7}
.hv-seo.hv-ai .sv-tabs .t1{color:#8a94a3;border-color:transparent}
.hv-seo .sv-pane{position:relative;min-height:212px}
.hv-seo .sv-results,.hv-seo .sv-ai{position:absolute;inset:0;transition:opacity .45s ease}
.hv-seo .sv-ai{opacity:0}
.hv-seo.hv-ai .sv-results{opacity:0}
.hv-seo.hv-ai .sv-ai{opacity:1}
.hv-seo .sv-row{display:flex;gap:12px;padding:11px 8px;border-radius:12px;opacity:0;transform:translateY(10px);
  transition:opacity .45s ease,transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .4s}
.hv-seo.hv-results .sv-row{opacity:1;transform:none}
.hv-seo.hv-results .sv-row:nth-child(2){transition-delay:.12s}
.hv-seo.hv-results .sv-row:nth-child(3){transition-delay:.24s}
.hv-seo .sv-row.me{background:linear-gradient(90deg,rgba(232,74,42,.07),rgba(232,74,42,0))}
.hv-seo.hv-results .sv-row.me{box-shadow:inset 3px 0 0 #E84A2A}
.hv-seo .sv-fav{flex:none;width:22px;height:22px;border-radius:6px;background:#EEF2F7}
.hv-seo .sv-row.me .sv-fav{background:linear-gradient(135deg,#3071B7,#E84A2A)}
.hv-seo .sv-txt{flex:1;min-width:0}
.hv-seo .sv-txt b{display:block;font:500 13px/1.3 "Noto Sans JP",sans-serif;color:#17293D}
.hv-seo .sv-txt i{display:block;font:400 11px/1.4 "Jost",sans-serif;color:#2E8B57;font-style:normal;margin:2px 0 6px}
.hv-seo .sv-txt .hv-line{margin-top:6px}
.hv-seo .sv-ai-head{display:flex;align-items:center;gap:8px;font:500 12px/1 "Noto Sans JP",sans-serif;color:#3071B7;margin:6px 4px 12px}
.hv-seo .sv-spark{display:inline-flex;width:20px;height:20px;border-radius:6px;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#3071B7,#8b7cf6);color:#fff;font-size:11px}
.hv-seo .sv-ai .hv-line{margin:9px 4px 0;width:0;transition:width .7s cubic-bezier(.2,.8,.2,1)}
.hv-seo.hv-ai .sv-ai .hv-line{width:var(--w)}
.hv-seo.hv-ai .sv-ai .hv-line:nth-of-type(2){transition-delay:.15s}
.hv-seo.hv-ai .sv-ai .hv-line:nth-of-type(3){transition-delay:.3s}
.hv-seo.hv-ai .sv-ai .hv-line:nth-of-type(4){transition-delay:.9s}
.hv-seo .sv-cite{display:inline-flex;align-items:center;gap:8px;margin:14px 4px 0;padding:7px 12px 7px 8px;border-radius:999px;
  border:1px solid rgba(40,96,147,.18);font:500 12px/1 "Jost","Noto Sans JP",sans-serif;color:#17293D;
  opacity:0;transform:scale(.9);transition:opacity .4s,transform .4s cubic-bezier(.2,.8,.2,1),border-color .4s,box-shadow .4s}
.hv-seo .sv-cite .n{display:inline-flex;width:18px;height:18px;border-radius:50%;align-items:center;justify-content:center;
  background:#EEF2F7;color:#3071B7;font-size:10px;transition:background .4s,color .4s}
.hv-seo.hv-cite .sv-cite{opacity:1;transform:none;border-color:rgba(232,74,42,.55);box-shadow:0 0 0 6px rgba(232,74,42,.08)}
.hv-seo.hv-cite .sv-cite .n{background:#E84A2A;color:#fff}

/* ===== ADS: budget donut rebalanced by AI ===== */
.hv-ads .ad-badge{font:500 11px/1 "Jost","Noto Sans JP",sans-serif;color:#fff;background:linear-gradient(135deg,#3071B7,#8b7cf6);
  border-radius:999px;padding:6px 10px;opacity:0;transform:scale(.9);transition:opacity .4s,transform .4s}
.hv-ads.hv-opt .ad-badge{opacity:1;transform:none;animation:hvPulse 1.6s ease-in-out infinite}
.hv-ads .ad-grid{display:grid;grid-template-columns:150px minmax(0,1fr);gap:22px;align-items:center;padding:4px 2px}
.hv-ads .ad-donut{position:relative;width:150px;height:150px}
.hv-ads .ad-donut svg{width:100%;height:100%;transform:rotate(-90deg)}
.hv-ads .ad-donut circle{fill:none;stroke-width:16;stroke-dasharray:0 100;stroke-dashoffset:0;
  transition:stroke-dasharray .9s cubic-bezier(.2,.8,.2,1),stroke-dashoffset .9s cubic-bezier(.2,.8,.2,1)}
.hv-ads .ad-donut .bg{stroke:#EEF2F7;stroke-dasharray:100 0}
.hv-ads .ad-donut .g{stroke:#3071B7}.hv-ads .ad-donut .m{stroke:#E84A2A}.hv-ads .ad-donut .l{stroke:#3dd9b8}.hv-ads .ad-donut .t{stroke:#17293D}
.hv-ads.hv-draw .ad-donut .g{stroke-dasharray:29.2 100;stroke-dashoffset:0}
.hv-ads.hv-draw .ad-donut .m{stroke-dasharray:24.2 100;stroke-dashoffset:-30}
.hv-ads.hv-draw .ad-donut .l{stroke-dasharray:24.2 100;stroke-dashoffset:-55}
.hv-ads.hv-draw .ad-donut .t{stroke-dasharray:19.2 100;stroke-dashoffset:-80}
.hv-ads.hv-opt .ad-donut .g{stroke-dasharray:39.2 100;stroke-dashoffset:0}
.hv-ads.hv-opt .ad-donut .m{stroke-dasharray:29.2 100;stroke-dashoffset:-40}
.hv-ads.hv-opt .ad-donut .l{stroke-dasharray:17.2 100;stroke-dashoffset:-70}
.hv-ads.hv-opt .ad-donut .t{stroke-dasharray:11.2 100;stroke-dashoffset:-88}
.hv-ads .ad-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  font:500 11px/1.4 "Noto Sans JP",sans-serif;color:#8a94a3;text-align:center}
.hv-ads .ad-center b{font:500 13px/1.3 "Noto Sans JP",sans-serif;color:#17293D}
.hv-ads .ad-row{display:grid;grid-template-columns:8px 78px minmax(0,1fr);gap:8px;align-items:center;font:500 12px/1 "Noto Sans JP",sans-serif;
  color:#17293D;padding:9px 8px;border-radius:10px;transition:background .4s,box-shadow .4s}
.hv-ads .ad-row .dot{width:8px;height:8px;border-radius:50%;background:var(--c)}
.hv-ads .ad-track{height:6px;background:#EEF2F7;border-radius:3px;overflow:hidden}
.hv-ads .ad-fill{height:100%;width:0;border-radius:3px;background:var(--c);transition:width .9s cubic-bezier(.2,.8,.2,1)}
.hv-ads.hv-draw .ad-fill{width:var(--a)}
.hv-ads.hv-opt .ad-fill{width:var(--b)}
.hv-ads.hv-best .ad-row.top{background:rgba(48,113,183,.07);box-shadow:inset 3px 0 0 #3071B7}
.hv-ads .ad-note{display:flex;align-items:center;gap:8px;margin:14px 4px 0;padding-top:12px;border-top:1px solid #EEF2F7;
  font:500 12px/1.4 "Noto Sans JP",sans-serif;color:#3071B7;opacity:0;transform:translateY(6px);transition:opacity .4s,transform .4s}
.hv-ads.hv-best .ad-note{opacity:1;transform:none}

/* ===== INFLUENCER: product → KOC ring → word of mouth ===== */
.hv-inf .inf-stage{position:relative;aspect-ratio:1/1;max-height:400px;margin:0 auto}
.hv-inf .inf-orbit{position:absolute;left:14%;top:14%;width:72%;height:72%;border:1.5px dashed rgba(48,113,183,.22);border-radius:50%}
.hv-inf svg.inf-links{position:absolute;inset:0;width:100%;height:100%}
.hv-inf .inf-links line{stroke:rgba(232,74,42,.45);stroke-width:1.5;stroke-dasharray:1;stroke-dashoffset:1;vector-effect:non-scaling-stroke;
  transition:stroke-dashoffset .6s ease}
.hv-inf.hv-on .inf-links line{stroke-dashoffset:0}
.hv-inf .inf-center{position:absolute;left:50%;top:50%;width:76px;height:76px;margin:-38px 0 0 -38px;border-radius:22px;z-index:2;
  background:linear-gradient(135deg,#E84A2A,#C93F28);display:flex;align-items:center;justify-content:center;color:#fff;
  box-shadow:0 16px 30px -14px rgba(201,63,40,.6)}
.hv-inf .inf-ripple{position:absolute;left:50%;top:50%;width:76px;height:76px;margin:-38px 0 0 -38px;border-radius:50%;
  border:2px solid rgba(232,74,42,.45);opacity:0}
.hv-inf.hv-buzz .inf-ripple{animation:hvRipple 2.4s ease-out infinite}
.hv-inf.hv-buzz .inf-ripple.r2{animation-delay:1.2s}
@keyframes hvRipple{0%{transform:scale(1);opacity:.7}100%{transform:scale(3.6);opacity:0}}
.hv-inf .inf-av{position:absolute;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;z-index:2;border:3px solid #fff;
  box-shadow:0 8px 18px -10px rgba(23,41,61,.5);display:flex;align-items:flex-end;justify-content:center;overflow:hidden;
  transform:scale(0);transition:transform .45s cubic-bezier(.3,1.4,.5,1)}
.hv-inf .inf-av svg{width:70%;height:70%;color:rgba(255,255,255,.95)}
.hv-inf.hv-on .inf-av{transform:scale(1)}
.hv-inf.hv-on .inf-av:nth-of-type(2){transition-delay:.08s}.hv-inf.hv-on .inf-av:nth-of-type(3){transition-delay:.16s}
.hv-inf.hv-on .inf-av:nth-of-type(4){transition-delay:.24s}.hv-inf.hv-on .inf-av:nth-of-type(5){transition-delay:.32s}
.hv-inf.hv-on .inf-av:nth-of-type(6){transition-delay:.4s}
.hv-inf .inf-bub{position:absolute;z-index:3;font:500 12px/1 "Noto Sans JP",sans-serif;color:#17293D;background:#fff;
  border:1px solid rgba(232,74,42,.3);border-radius:12px;padding:8px 11px;box-shadow:0 10px 22px -14px rgba(23,41,61,.45);
  opacity:0;transform:scale(.6);transition:opacity .35s,transform .4s cubic-bezier(.3,1.4,.5,1);white-space:nowrap}
.hv-inf.hv-buzz .inf-bub{opacity:1;transform:none}
.hv-inf.hv-buzz .inf-bub.b2{transition-delay:.35s}.hv-inf.hv-buzz .inf-bub.b3{transition-delay:.7s}
.hv-inf .inf-heart{position:absolute;z-index:3;color:#E84A2A;font-size:14px;opacity:0}
.hv-inf.hv-love .inf-heart{animation:hvHeart 1.8s ease-out infinite}
.hv-inf.hv-love .inf-heart.h2{animation-delay:.6s}.hv-inf.hv-love .inf-heart.h3{animation-delay:1.2s}
@keyframes hvHeart{0%{opacity:0;transform:translateY(0) scale(.6)}20%{opacity:1;transform:translateY(-6px) scale(1)}100%{opacity:0;transform:translateY(-34px) scale(.9)}}
.hv-inf .inf-note{text-align:center;font:500 12px/1.4 "Noto Sans JP",sans-serif;color:#C93F28;margin-top:2px;opacity:0;transition:opacity .4s}
.hv-inf.hv-love .inf-note{opacity:1}

/* ===== LINKEDIN × EDM: lead flow ===== */
.hv-edm .edm-steps{position:relative;padding-left:38px}
.hv-edm .edm-line{position:absolute;left:14px;top:22px;bottom:22px;width:2px;background:#EEF2F7;border-radius:1px}
.hv-edm .edm-line i{display:block;width:100%;height:0;border-radius:1px;background:linear-gradient(#3071B7,#E84A2A);transition:height .8s ease}
.hv-edm.hv-s2 .edm-line i{height:33.3%}.hv-edm.hv-s3 .edm-line i{height:66.6%}.hv-edm.hv-s4 .edm-line i{height:100%}
.hv-edm .edm-row{position:relative;display:flex;align-items:center;gap:12px;padding:11px 12px;margin-bottom:10px;border:1px solid #EEF2F7;
  border-radius:12px;opacity:.35;transform:translateX(6px);transition:opacity .45s,transform .45s,border-color .45s,box-shadow .45s}
.hv-edm .edm-row:last-child{margin-bottom:0}
.hv-edm .edm-node{position:absolute;left:-31px;top:50%;width:16px;height:16px;margin-top:-8px;border-radius:50%;background:#fff;
  border:2px solid #D7DEE8;transition:background .4s,border-color .4s,box-shadow .4s}
.hv-edm .edm-ic{flex:none;width:30px;height:30px;border-radius:9px;background:#EEF2F7;color:#3071B7;display:flex;align-items:center;justify-content:center;
  font:600 12px/1 "Jost",sans-serif;transition:background .4s,color .4s}
.hv-edm .edm-txt{flex:1;min-width:0}
.hv-edm .edm-txt b{display:block;font:500 13px/1.3 "Noto Sans JP",sans-serif;color:#17293D}
.hv-edm .edm-txt .hv-line{margin-top:7px}
.hv-edm .edm-tag{font:500 11px/1 "Noto Sans JP",sans-serif;color:#fff;background:#E84A2A;border-radius:999px;padding:6px 10px;
  opacity:0;transform:scale(.8);transition:opacity .35s,transform .35s cubic-bezier(.3,1.4,.5,1)}
.hv-edm.hv-s1 .edm-row:nth-child(2),.hv-edm.hv-s2 .edm-row:nth-child(3),.hv-edm.hv-s3 .edm-row:nth-child(4),.hv-edm.hv-s4 .edm-row:nth-child(5){
  opacity:1;transform:none;border-color:rgba(48,113,183,.22)}
.hv-edm.hv-s1 .edm-row:nth-child(2) .edm-node,.hv-edm.hv-s2 .edm-row:nth-child(3) .edm-node,
.hv-edm.hv-s3 .edm-row:nth-child(4) .edm-node{background:#3071B7;border-color:#3071B7;box-shadow:0 0 0 4px rgba(48,113,183,.15)}
.hv-edm.hv-s1 .edm-row:nth-child(2) .edm-ic,.hv-edm.hv-s2 .edm-row:nth-child(3) .edm-ic,.hv-edm.hv-s3 .edm-row:nth-child(4) .edm-ic{background:#3071B7;color:#fff}
.hv-edm.hv-s4 .edm-row:nth-child(5){border-color:rgba(232,74,42,.5);box-shadow:0 10px 24px -16px rgba(232,74,42,.6)}
.hv-edm.hv-s4 .edm-row:nth-child(5) .edm-node{background:#E84A2A;border-color:#E84A2A;box-shadow:0 0 0 4px rgba(232,74,42,.15)}
.hv-edm.hv-s4 .edm-row:nth-child(5) .edm-ic{background:#E84A2A;color:#fff}
.hv-edm.hv-s4 .edm-tag{opacity:1;transform:none}

/* ===== WEB DESIGN: multilingual LP ===== */
.hv-web .web-top{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.hv-web .web-url{flex:1;min-width:0;font:400 11px/1 "Jost",sans-serif;color:#8a94a3;background:#F3F6FA;border-radius:999px;padding:8px 12px}
.hv-web .web-tabs{display:flex;gap:4px;background:#F3F6FA;border-radius:999px;padding:3px}
.hv-web .web-tabs span{font:500 11px/1 "Noto Sans JP",sans-serif;color:#8a94a3;border-radius:999px;padding:6px 9px;transition:background .35s,color .35s}
.hv-web .web-tabs .jp{background:#fff;color:#17293D;box-shadow:0 2px 6px -3px rgba(23,41,61,.3)}
.hv-web.hv-tw .web-tabs .jp{background:none;color:#8a94a3;box-shadow:none}
.hv-web.hv-tw .web-tabs .tw{background:#fff;color:#17293D;box-shadow:0 2px 6px -3px rgba(23,41,61,.3)}
.hv-web.hv-en .web-tabs .tw{background:none;color:#8a94a3;box-shadow:none}
.hv-web.hv-en .web-tabs .en{background:#fff;color:#17293D;box-shadow:0 2px 6px -3px rgba(23,41,61,.3)}
.hv-web .web-hero{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:14px;align-items:center;
  background:linear-gradient(135deg,rgba(48,113,183,.08),rgba(243,246,250,.6));border-radius:12px;padding:16px}
.hv-web .web-h{position:relative;height:46px;font:500 15px/1.45 "Noto Sans JP",sans-serif;color:#17293D}
.hv-web .web-h span{position:absolute;inset:0;opacity:0;transform:translateY(8px);transition:opacity .45s,transform .45s}
.hv-web .web-h .jp{opacity:1;transform:none}
.hv-web.hv-tw .web-h .jp{opacity:0;transform:translateY(-8px)}
.hv-web.hv-tw .web-h .tw{opacity:1;transform:none}
.hv-web.hv-en .web-h .tw{opacity:0;transform:translateY(-8px)}
.hv-web.hv-en .web-h .en{opacity:1;transform:none}
.hv-web .web-hero .hv-line{margin-top:7px}
.hv-web .web-cta{display:inline-block;width:72px;height:22px;border-radius:999px;margin-top:12px;background:linear-gradient(90deg,#E84A2A,#C93F28)}
.hv-web .web-img{aspect-ratio:4/3;border-radius:10px;background:linear-gradient(135deg,#3071B7,#8b7cf6);opacity:.85}
.hv-web .web-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}
.hv-web .web-cards div{height:58px;border-radius:10px;border:1px solid #EEF2F7;padding:10px}
.hv-web .web-cards .hv-line{height:6px;margin-top:6px}
.hv-web .web-phone{position:absolute;z-index:3;right:-18px;bottom:-30px;width:96px;height:178px;border-radius:18px;background:#fff;
  border:5px solid #17293D;box-shadow:0 20px 40px -20px rgba(23,41,61,.6);padding:12px 8px;overflow:hidden}
.hv-web .web-phone .web-h{height:44px;font-size:10px;line-height:1.45}
.hv-web .web-phone .ph-img{height:44px;border-radius:6px;background:linear-gradient(135deg,#3071B7,#8b7cf6);opacity:.85;margin:6px 0}
.hv-web .web-phone .hv-line{height:5px;margin-top:5px}

/* ===== MATCHING: Japanese company ↔ overseas buyers ===== */
.hv-match .mt-stage{position:relative;aspect-ratio:420/280}
.hv-match svg.mt-links{position:absolute;inset:0;width:100%;height:100%}
.hv-match .mt-links path{fill:none;stroke:#C9D3E0;stroke-width:2;stroke-dasharray:1;stroke-dashoffset:1;vector-effect:non-scaling-stroke;
  transition:stroke-dashoffset .7s ease,stroke .4s,stroke-width .4s}
.hv-match.hv-lines .mt-links path{stroke-dashoffset:0}
.hv-match.hv-lines .mt-links path:nth-child(2){transition-delay:.25s,0s,0s}
.hv-match.hv-lines .mt-links path:nth-child(3){transition-delay:.5s,0s,0s}
.hv-match.hv-match-on .mt-links path.win{stroke:#E84A2A;stroke-width:3}
.hv-match .mt-card{position:absolute;display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #E3E8EF;border-radius:12px;
  padding:0 12px;box-shadow:0 10px 22px -16px rgba(23,41,61,.45);transition:border-color .4s,box-shadow .4s}
.hv-match .mt-card b{display:block;font:500 12px/1.3 "Noto Sans JP",sans-serif;color:#17293D}
.hv-match .mt-card small{display:block;font:400 10px/1.3 "Noto Sans JP",sans-serif;color:#8a94a3}
.hv-match .mt-ic{flex:none;width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;color:#fff}
.hv-match .mt-me{left:4%;top:36%;width:32%;height:28%}
.hv-match .mt-me .mt-ic{background:linear-gradient(135deg,#3071B7,#286093)}
.hv-match .mt-buyer{left:64%;width:32%;height:20%}
.hv-match .mt-buyer .mt-ic{background:#F3F6FA;color:#3071B7}
.hv-match .bu1{top:9%}.hv-match .bu2{top:40%}.hv-match .bu3{top:71%}
.hv-match.hv-match-on .mt-buyer.win{border-color:rgba(232,74,42,.6);box-shadow:0 0 0 5px rgba(232,74,42,.08)}
.hv-match.hv-match-on .mt-buyer.win .mt-ic{background:#E84A2A;color:#fff}
.hv-match .mt-deal{position:absolute;left:50%;top:34%;z-index:3;transform:translate(-50%,-50%) scale(.6);opacity:0;
  display:flex;align-items:center;gap:6px;font:500 11px/1 "Noto Sans JP",sans-serif;color:#fff;background:#E84A2A;border-radius:999px;
  padding:7px 11px;box-shadow:0 10px 22px -10px rgba(232,74,42,.7);transition:opacity .35s,transform .4s cubic-bezier(.3,1.4,.5,1);white-space:nowrap}
.hv-match.hv-match-on .mt-deal{opacity:1;transform:translate(-50%,-50%) scale(1)}

/* ===== EVENTS: venue floor plan → visitors flow → booth sales ===== */
.hv-evt .ev-badge{display:inline-flex;align-items:center;gap:6px;font:500 11px/1 "Noto Sans JP",sans-serif;color:#3071B7;background:rgba(48,113,183,.08);
  border-radius:999px;padding:6px 10px;opacity:0;transition:opacity .4s}
.hv-evt.hv-flow .ev-badge{opacity:1;animation:hvPulse 1.6s ease-in-out infinite}
.hv-evt .ev-stage{position:relative;aspect-ratio:420/270;border-radius:12px;background:#F7F9FC;border:1px dashed #D7DEE8;overflow:hidden}
.hv-evt .ev-booth{position:absolute;width:22%;height:26%;border-radius:8px;background:#fff;border:1px solid #E3E8EF;padding:8px;
  opacity:0;transform:scale(.9);transition:opacity .4s,transform .4s,border-color .4s,box-shadow .4s}
.hv-evt .ev-booth .hv-line{height:5px;margin-top:5px}
.hv-evt.hv-venue .ev-booth{opacity:1;transform:none}
.hv-evt.hv-venue .ev-booth:nth-child(2){transition-delay:.06s}.hv-evt.hv-venue .ev-booth:nth-child(3){transition-delay:.12s}
.hv-evt.hv-venue .ev-booth:nth-child(4){transition-delay:.18s}.hv-evt.hv-venue .ev-booth:nth-child(5){transition-delay:.24s}
.hv-evt.hv-venue .ev-booth:nth-child(6){transition-delay:.3s}
.hv-evt .ev-booth.me{border:1.5px solid rgba(232,74,42,.55);background:linear-gradient(135deg,#fff,#FDEEEA);display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:4px;font:500 11px/1.2 "Noto Sans JP",sans-serif;color:#C93F28;text-align:center}
.hv-evt .ev-booth.me svg{color:#E84A2A}
.hv-evt.hv-sale .ev-booth.me{box-shadow:0 0 0 6px rgba(232,74,42,.12),0 12px 24px -12px rgba(232,74,42,.6)}
.hv-evt .ev-gate{position:absolute;left:3%;bottom:5%;font:600 9px/1 "Jost",sans-serif;letter-spacing:.18em;color:#8a94a3}
.hv-evt .ev-dot{position:absolute;width:9px;height:9px;margin:-4.5px 0 0 -4.5px;border-radius:50%;background:#3071B7;left:6%;top:88%;opacity:0}
.hv-evt .ev-dot:nth-of-type(even){background:#E84A2A}
.hv-evt.hv-flow .ev-dot{animation:hvWalk 2.6s ease-in-out infinite}
.hv-evt.hv-flow .ev-dot.d2{animation-delay:.45s}.hv-evt.hv-flow .ev-dot.d3{animation-delay:.9s}
.hv-evt.hv-flow .ev-dot.d4{animation-delay:1.35s}.hv-evt.hv-flow .ev-dot.d5{animation-delay:1.8s}
@keyframes hvWalk{0%{left:6%;top:88%;opacity:0}10%{opacity:1}45%{left:66%;top:88%}75%{left:66%;top:40%}90%{left:78%;top:37%;opacity:1}100%{left:80%;top:30%;opacity:0}}
.hv-evt .ev-tag{position:absolute;right:3%;top:2%;z-index:2;display:flex;align-items:center;gap:5px;font:500 11px/1 "Noto Sans JP",sans-serif;color:#fff;
  background:#E84A2A;border-radius:999px;padding:6px 10px;opacity:0;transform:translateY(6px) scale(.85);transition:opacity .35s,transform .4s cubic-bezier(.3,1.4,.5,1)}
.hv-evt.hv-sale .ev-tag{opacity:1;transform:none}
.hv-evt .ev-note{display:flex;align-items:center;gap:8px;margin:14px 4px 0;font:500 12px/1.4 "Noto Sans JP",sans-serif;color:#3071B7;opacity:0;transition:opacity .4s}
.hv-evt.hv-sale .ev-note{opacity:1}

/* ===== GEO TOOL: animate existing 5-engine card ===== */
.hv.hv-geo{display:block;font-family:inherit}
.hv-geo .g-row{position:relative;overflow:hidden;border:1px solid transparent;transition:border-color .4s}
.hv-geo .g-row::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);transform:translateX(-100%)}
.hv-geo.hv-scan .g-row::after{animation:hvSweep .9s ease forwards}
.hv-geo.hv-scan .g-row{border-color:rgba(255,255,255,.28)}
.hv-geo.hv-scan .g-row:nth-child(2)::after{animation-delay:.35s}.hv-geo.hv-scan .g-row:nth-child(2){transition-delay:.35s}
.hv-geo.hv-scan .g-row:nth-child(3)::after{animation-delay:.7s}.hv-geo.hv-scan .g-row:nth-child(3){transition-delay:.7s}
.hv-geo.hv-scan .g-row:nth-child(4)::after{animation-delay:1.05s}.hv-geo.hv-scan .g-row:nth-child(4){transition-delay:1.05s}
.hv-geo.hv-scan .g-row:nth-child(5)::after{animation-delay:1.4s}.hv-geo.hv-scan .g-row:nth-child(5){transition-delay:1.4s}
@keyframes hvSweep{to{transform:translateX(100%)}}
.hv-geo .g-st{display:inline-block;font:500 11px/1 "Noto Sans JP",sans-serif;padding:5px 9px;border-radius:999px;margin-left:10px;
  opacity:0;transform:scale(.8);transition:opacity .35s,transform .35s cubic-bezier(.3,1.4,.5,1)}
.hv-geo .g-st.ok{background:#fff;color:#2b4a9e}
.hv-geo .g-st.mid{background:rgba(255,255,255,.25);color:#fff}
.hv-geo .g-st.no{border:1px solid rgba(255,255,255,.5);color:rgba(255,255,255,.85)}
.hv-geo.hv-res .g-st{opacity:1;transform:none}
.hv-geo.hv-res .g-row:nth-child(2) .g-st{transition-delay:.1s}.hv-geo.hv-res .g-row:nth-child(3) .g-st{transition-delay:.2s}
.hv-geo.hv-res .g-row:nth-child(4) .g-st{transition-delay:.3s}.hv-geo.hv-res .g-row:nth-child(5) .g-st{transition-delay:.4s}
.hv-geo .g-foot{display:flex;align-items:center;gap:8px;margin-top:18px;font:500 12px/1.4 "Noto Sans JP",sans-serif;opacity:.9}
.hv-geo .g-live{width:8px;height:8px;border-radius:50%;background:#7CFFB2;animation:hvLive 1.6s ease-in-out infinite}
@keyframes hvLive{0%,100%{box-shadow:0 0 0 0 rgba(124,255,178,.6)}50%{box-shadow:0 0 0 6px rgba(124,255,178,0)}}
