Compare commits

...

16 Commits

Author SHA1 Message Date
dqj
b1218c317b Improved contents 2026-01-08 18:54:28 +09:00
dqj
9fe9839fdb Words fix 2026-01-03 20:39:01 +09:00
dqj
0948443936 Updated CW hero title and fido2 tool video 2026-01-02 20:47:43 +09:00
dqj
517e37fa69 Updated top msg 2025-12-31 19:09:33 +09:00
dqj
25d77a0f8a Merge branch 'main' of https://git.amipro.me/dqj/amipro-home 2025-12-29 18:49:18 +09:00
dqj
5e6f86ca16 Updated tokushoho and i18n 2025-12-29 18:48:44 +09:00
qingjie.du
cc772f1552 Edge store install btn 2025-12-26 20:29:17 +09:00
dqj
f081b8bf6e Comments about open src 2025-12-26 10:06:17 +09:00
qingjie.du
735d0084eb i18n for fido2 and index 2025-12-25 21:59:44 +09:00
qingjie.du
253b37b0ed Added tokushoho 2025-12-09 22:21:03 +09:00
qingjie.du
94bb9f56c6 Added install from store button 2025-11-26 16:19:59 +09:00
qingjie.du
d08551b18b Update cw top 2025-11-24 14:00:46 +09:00
qingjie.du
dae572b842 Update 04 image 2025-11-24 13:56:27 +09:00
qingjie.du
4977ff34cc Fix unzip folder name 2025-11-24 13:47:00 +09:00
dqj
c934abbfc5 Merge pull request 'ContextWizard landing page done' (#1) from feature/update-total into main
Reviewed-on: #1
2025-11-23 16:09:00 +09:00
qingjie.du
e0fe7b8c09 ContextWizard landing page done 2025-11-23 16:08:21 +09:00
16 changed files with 1386 additions and 125 deletions

3
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,3 @@
{
"liveServer.settings.port": 5501
}

415
contextwizard_install.html Normal file
View File

@@ -0,0 +1,415 @@
<!DOCTYPE html>
<html lang="en-US" class="light-style">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Install ContextWizard - amiPro, LLC</title>
<meta
name="description"
content="Step-by-step instructions to install the ContextWizard browser extension in Chrome, Edge, and other Chromium-based browsers."
/>
<link rel="icon" type="image/x-icon" href="files/favicon.ico" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Public+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&display=swap"
rel="stylesheet"
/>
<link rel="stylesheet" href="files/boxicons.css?v=20230405" />
<link rel="stylesheet" href="files/core.css" class="template-customizer-core-css" />
<link rel="stylesheet" href="files/theme-default.css" class="template-customizer-theme-css" />
<link rel="stylesheet" href="files/demo.css" />
<link rel="stylesheet" href="files/modern.css" />
<link rel="stylesheet" href="files/perfect-scrollbar.css" />
<script src="files/helpers.js"></script>
<script src="files/config.js"></script>
<script src="files/jquery.js"></script>
<script src="files/popper.js"></script>
<script src="files/bootstrap.js"></script>
<script src="files/perfect-scrollbar.js"></script>
<script src="files/menu.js"></script>
<script src="files/main.js"></script>
<script src="files/ua-parser.js"></script>
<script src="files/amipro_utils.js?v=20230401402"></script>
<style>
body {
color: #0f172a;
background: linear-gradient(180deg, #f8fbff 0%, #ffffff 40%, #f5f7fb 100%);
}
.hero__title {
font-size: clamp(2rem, 3.25vw, 3rem);
}
.hero__lead {
max-width: 620px;
color: #475569;
}
.nav-brand-logo {
height: 48px;
width: auto;
}
.step-card {
border: none;
border-radius: 1.25rem;
box-shadow: 0 18px 48px rgba(15, 23, 42, 0.08);
}
.step-number {
width: 32px;
height: 32px;
border-radius: 999px;
display: inline-flex;
align-items: center;
justify-content: center;
background: #eff6ff;
color: #1d4ed8;
font-weight: 600;
margin-right: 0.5rem;
}
.browser-pill {
display: inline-flex;
align-items: center;
padding: 0.25rem 0.75rem;
border-radius: 999px;
background: #eff6ff;
color: #1e293b;
font-size: 0.875rem;
margin-right: 0.5rem;
margin-bottom: 0.25rem;
}
.browser-pill i {
font-size: 1rem;
margin-right: 0.25rem;
}
.hero-chip {
display: inline-flex;
align-items: center;
padding: 0.35rem 0.9rem;
border-radius: 999px;
background: #eff6ff;
color: #1e293b;
font-size: 0.9rem;
margin-right: 0.5rem;
margin-bottom: 0.25rem;
}
@media (max-width: 767px) {
.hero__actions {
flex-direction: column;
align-items: stretch;
}
}
</style>
<script>
window.onload = function () {
if (typeof initRevealAnimations === 'function') {
initRevealAnimations();
} else {
// Fallback: ensure content is visible even if animations aren't loaded
document.querySelectorAll('.reveal [data-animate]').forEach(function (el) {
el.style.opacity = '1';
el.style.transform = 'none';
});
}
};
</script>
</head>
<body>
<div class="layout-wrapper layout-content-navbar">
<div class="layout-container">
<div class="layout-page">
<nav
class="layout-navbar container-xxl navbar navbar-expand-xl navbar-detached align-items-center bg-navbar-theme"
id="layout-navbar"
>
<div class="navbar-nav-right d-flex align-items-center w-100" id="navbar-collapse">
<div class="navbar-nav align-items-center">
<div class="nav-item d-flex align-items-center">
<img
src="files/favicon.ico"
alt="amiPro"
width="64"
height="64"
class="nav-brand-logo"
style="margin-right: 16px;"
/>
<div>
<div style="font-weight: 700; font-size: 1.25rem; color: #0f172a;">amiPro, LLC</div>
<small style="color: #64748b;">Privacy-first identity &amp; AI products</small>
</div>
</div>
</div>
<a href="contextwizard_top.html" class="btn btn-link ms-auto me-3">Back to ContextWizard</a>
<a
href="mailto:sales@amipro.me?subject=ContextWizard%20support"
class="btn btn-outline-primary"
>Contact support</a>
</div>
</nav>
<div class="content-wrapper">
<div class="container-xxl" style="padding: 32px 24px 72px;">
<section class="hero reveal">
<div class="hero__text" data-animate>
<span class="hero__eyebrow">ContextWizard</span>
<h1 class="hero__title">Install ContextWizard in your browser</h1>
<p class="hero__lead">
Follow this guide to install the unpackaged ContextWizard extension in Chrome, Microsoft Edge,
Brave, or any Chromium-based browser that supports developer mode extensions.
</p>
<div style="margin-top: 1.5rem;" class="hero__chips">
<span class="hero-chip">Works offline on your machine</span>
<span class="hero-chip">No account required</span>
</div>
<div
class="hero__actions"
style="margin-top: 2rem; display: flex; flex-wrap: wrap; gap: 1rem;"
>
<a
href="https://amipro.me/contextwizard-files/ContextWizard-crx-latest.zip"
class="btn btn-primary"
style="flex: 1 0 220px;"
>Download ContextWizard ZIP</a>
<a
href="contextwizard_privacy_policy.html"
class="btn btn-outline-secondary"
style="flex: 1 0 220px;"
>Read privacy policy</a>
</div>
</div>
</section>
<section class="reveal" data-animate style="margin-top: 48px;">
<div class="row g-4 align-items-start">
<div class="col-lg-7">
<article class="card step-card">
<div class="card-body">
<h2 style="font-weight: 600; color: #0f172a; margin-bottom: 1rem;">
Step-by-step installation
</h2>
<ol class="list-unstyled" style="margin: 0; padding: 0;">
<li style="margin-bottom: 1.5rem;">
<div style="display: flex; align-items: flex-start;">
<div class="step-number">1</div>
<div>
<h3 style="font-size: 1.05rem; margin-bottom: 0.35rem;">Download the ZIP file</h3>
<p style="margin-bottom: 0.5rem; color: #475569;">
Click <strong>Download ContextWizard ZIP</strong> above and save the file to a
location you can find, such as your <em>Downloads</em> folder.
</p>
<p style="margin-bottom: 0; color: #64748b; font-size: 0.9rem;">
The ZIP contains the full extension source so your browser can run it in
developer mode.
</p>
</div>
</div>
</li>
<li style="margin-bottom: 1.5rem;">
<div style="display: flex; align-items: flex-start;">
<div class="step-number">2</div>
<div>
<h3 style="font-size: 1.05rem; margin-bottom: 0.35rem;">Unzip the archive</h3>
<p style="margin-bottom: 0.5rem; color: #475569;">
Locate the downloaded ZIP file, then unzip it:
</p>
<ul style="padding-left: 1.1rem; margin-bottom: 0.5rem; color: #475569;">
<li>On macOS: double-click the ZIP file in Finder.</li>
<li>On Windows: right-click the ZIP and choose <em>Extract All…</em>.</li>
</ul>
<p style="margin-bottom: 0; color: #64748b; font-size: 0.9rem;">
You should end up with a folder named something like
<code>ContextWizard-crx-latest</code>. Keep this folder in a permanent location
(not inside your browser cache or trash).
</p>
</div>
</div>
</li>
<li style="margin-bottom: 1.5rem;">
<div style="display: flex; align-items: flex-start;">
<div class="step-number">3</div>
<div style="width: 100%;">
<h3 style="font-size: 1.05rem; margin-bottom: 0.35rem;">Open the extensions page</h3>
<p style="margin-bottom: 0.5rem; color: #475569;">
In Chrome, open <code>chrome://extensions</code> in the address bar. In Edge, use
<code>edge://extensions</code>. You will see the extensions management screen.
</p>
<div style="margin: 0.5rem 0 0.75rem;">
<img
src="files/01-ChromeExtension-nonDev.png"
alt="Chrome extensions page highlighting chrome://extensions in the address bar"
style="max-width: 100%; border-radius: 0.75rem; box-shadow: 0 10px 30px rgba(15, 23, 42, 0.12);"
/>
</div>
<p style="margin-bottom: 0; color: #64748b; font-size: 0.9rem;">
This is where you manage, enable, and remove extensions in your browser.
</p>
</div>
</div>
</li>
<li style="margin-bottom: 1.5rem;">
<div style="display: flex; align-items: flex-start;">
<div class="step-number">4</div>
<div style="width: 100%;">
<h3 style="font-size: 1.05rem; margin-bottom: 0.35rem;">Enable developer mode</h3>
<p style="margin-bottom: 0.5rem; color: #475569;">
Turn on <strong>Developer mode</strong> using the toggle in the top-right corner of
the extensions page.
</p>
<div style="margin: 0.5rem 0 0.75rem;">
<img
src="files/02-ChromeExtension-enabledDev.png"
alt="Chrome extensions page with Developer mode toggle turned on and Load unpacked button visible"
style="max-width: 100%; border-radius: 0.75rem; box-shadow: 0 10px 30px rgba(15, 23, 42, 0.12);"
/>
</div>
<p style="margin-bottom: 0; color: #64748b; font-size: 0.9rem;">
When Developer mode is on, you should see a <strong>Load unpacked</strong> button
near the top of the page.
</p>
</div>
</div>
</li>
<li style="margin-bottom: 1.5rem;">
<div style="display: flex; align-items: flex-start;">
<div class="step-number">5</div>
<div style="width: 100%;">
<h3 style="font-size: 1.05rem; margin-bottom: 0.35rem;">Load the unpacked extension</h3>
<p style="margin-bottom: 0.5rem; color: #475569;">
Click <strong>Load unpacked</strong> and choose the folder you unzipped in Step 2.
</p>
<div style="margin: 0.5rem 0 0.75rem;">
<img
src="files/03-ChromeExtension-select-unpackaged-folder.png"
alt="Chrome extensions page with Load unpacked button highlighted and ContextWizard folder selected in Finder"
style="max-width: 100%; border-radius: 0.75rem; box-shadow: 0 10px 30px rgba(15, 23, 42, 0.12);"
/>
</div>
<p style="margin-bottom: 0.25rem; color: #475569; font-size: 0.9rem;">
In the file picker, select the <strong>folder</strong> (for example,
<code>ContextWizard-crx-latest</code>), not the ZIP file.
</p>
<p style="margin-bottom: 0; color: #64748b; font-size: 0.9rem;">
After loading, your browser will add ContextWizard to the list of installed
extensions.
</p>
</div>
</div>
</li>
<li>
<div style="display: flex; align-items: flex-start;">
<div class="step-number">6</div>
<div>
<h3 style="font-size: 1.05rem; margin-bottom: 0.35rem;">Pin and open ContextWizard</h3>
<p style="margin-bottom: 0.5rem; color: #475569;">
Pin the extension so it is easy to reach, then open it in a new tab.
</p>
<div style="margin: 0.5rem 0 0.75rem;">
<img
src="files/04-ChromeExtension-installed.png"
alt="Chrome extensions page showing ContextWizard installed in the All Extensions list"
style="max-width: 100%; border-radius: 0.75rem; box-shadow: 0 10px 30px rgba(15, 23, 42, 0.12);"
/>
</div>
<ul style="padding-left: 1.1rem; margin-bottom: 0.5rem; color: #475569;">
<li>Click the puzzle icon (Chrome/Edge), then pin <strong>ContextWizard</strong>.</li>
<li>Click the ContextWizard icon or open the extension's page to start using it.</li>
</ul>
<p style="margin-bottom: 0; color: #64748b; font-size: 0.9rem;">
Your conversations stay local on your machine. You can remove the unpacked
extension at any time from the extensions page.
</p>
</div>
</div>
</li>
</ol>
</div>
</article>
</div>
<div class="col-lg-5">
<article
class="card h-100"
style="border-radius: 1.25rem; box-shadow: 0 16px 50px rgba(15, 23, 42, 0.08);"
>
<div class="card-body">
<h3 style="font-size: 1.15rem; margin-bottom: 0.75rem;">Supported browsers</h3>
<p style="color: #475569;">
ContextWizard works in most Chromium-based desktop browsers that support loading
unpacked extensions:
</p>
<div style="margin-bottom: 0.75rem;">
<span class="browser-pill"><i class="bx bxl-chrome"></i>Chrome (latest)</span>
<span class="browser-pill"><i class="bx bxl-microsoft"></i>Microsoft Edge</span>
<span class="browser-pill"><i class="bx bxs-ship"></i>Brave / Vivaldi / Opera</span>
</div>
<p style="color: #64748b; font-size: 0.9rem;">
Mobile browsers and Safari do not support this unpacked extension flow.
</p>
<hr />
<h3 style="font-size: 1.05rem; margin-bottom: 0.5rem;">If something doesnt work</h3>
<ul style="padding-left: 1.1rem; color: #475569;">
<li>Make sure <strong>Developer mode</strong> is enabled on the extensions page.</li>
<li>Confirm you selected the <strong>uncompressed folder</strong>, not the ZIP file.</li>
<li>Try restarting the browser after loading the extension.</li>
</ul>
<p style="color: #64748b; font-size: 0.9rem; margin-bottom: 0.75rem;">
If you are still stuck, reach out and well help you get set up.
</p>
<a href="mailto:support@amipro.me?subject=ContextWizard%20installation%20help" class="btn btn-sm btn-outline-primary">
Email support
</a>
</div>
</article>
</div>
</div>
</section>
</div>
<footer class="content-footer footer bg-footer-theme">
<div class="container-xxl d-flex flex-wrap justify-content-between py-2 flex-md-row flex-column">
<div class="mb-2 mb-md-0">
&copy;
<script>
document.write(new Date().getFullYear());
</script>
<a href="https://www.amipro.me" target="_blank" class="footer-link fw-bolder">amiPro, LLC</a>
</div>
<div>
<a href="contextwizard_top.html" class="footer-link me-4">ContextWizard overview</a>
<a href="contextwizard_privacy_policy.html" class="footer-link">Privacy policy</a>
</div>
</div>
</footer>
<div class="content-backdrop fade"></div>
</div>
</div>
</div>
<div class="layout-overlay layout-menu-toggle"></div>
</div>
<script async defer src="https://buttons.github.io/buttons.js"></script>
</body>
</html>

View File

@@ -0,0 +1,359 @@
<!DOCTYPE html>
<html
lang="ja"
class="light-style"
>
<head>
<meta charset="utf-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1.0"
/>
<title>特定商取引法に基づく表記 - ContextWizard - amiPro</title>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-850DCHX9EJ"></script>
<script>
globalThis.dataLayer = globalThis.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-850DCHX9EJ');
</script>
<meta name="description" content="ContextWizard Chrome拡張機能の特定商取引法に基づく表記通信販売に関する表示事項" />
<!-- Favicon -->
<link rel="icon" type="image/x-icon" href="files/favicon.ico" />
<!-- Fonts -->
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Public+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&display=swap"
rel="stylesheet"
/>
<!-- Icons. Uncomment required icon fonts -->
<link rel="stylesheet" href="files/boxicons.css?v=20230405" />
<!-- Core CSS -->
<link rel="stylesheet" href="files/core.css" class="template-customizer-core-css" />
<link rel="stylesheet" href="files/theme-default.css" class="template-customizer-theme-css" />
<link rel="stylesheet" href="files/demo.css" />
<link rel="stylesheet" href="files/modern.css" />
<!-- Vendors CSS -->
<link rel="stylesheet" href="files/perfect-scrollbar.css" />
<!-- Page CSS -->
<!-- Helpers -->
<script src="files/helpers.js"></script>
<style>
body {
color: #1f2a37;
background-color: #f5f7fb;
}
.tokushoho-content .card {
border: none;
border-radius: 1rem;
box-shadow: 0 12px 30px rgba(15, 23, 42, 0.08);
background-color: #ffffff;
}
.tokushoho-content .card-header {
background: transparent;
border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}
.tokushoho-content .card-title {
color: #0f172a;
font-weight: 600;
}
.tokushoho-content .card-body,
.tokushoho-content .card-body p,
.tokushoho-content .card-body li,
.tokushoho-content .card-body td,
.tokushoho-content .card-body th {
color: #1f2937;
font-size: 1rem;
line-height: 1.7;
}
.tokushoho-content .card-body ul {
padding-left: 1.25rem;
}
.tokushoho-content table {
border-color: rgba(15, 23, 42, 0.1);
}
.tokushoho-content table th {
background-color: #f8fafc;
font-weight: 600;
white-space: nowrap;
width: 200px;
}
.hero__text,
.hero__text .hero__title,
.hero__text p,
.hero__eyebrow,
.hero__chips .hero-chip {
color: #f8fafc;
}
.hero__text .hero__title {
text-shadow: 0 4px 24px rgba(15, 23, 42, 0.35);
}
.hero__chips .hero-chip {
background: rgba(255, 255, 255, 0.12);
border-color: rgba(255, 255, 255, 0.2);
}
.hero__device h4,
.hero__device p {
color: #e2e8f0;
}
</style>
<!--! Template customizer & Theme config files MUST be included after core stylesheets and helpers.js in the <head> section -->
<!--? Config: Mandatory theme config file contain global vars & default theme options, Set your preferred theme option in this file. -->
<script src="files/config.js"></script>
<script src="files/jquery.js"></script>
<script src="files/popper.js"></script>
<script src="files/bootstrap.js"></script>
<script src="files/perfect-scrollbar.js"></script>
<script src="files/menu.js"></script>
<script src="files/main.js"></script>
<script src="files/ua-parser.js"></script>
<script src="files/amipro_utils.js?v=20230401402"></script>
<script>
window.onload = async function() {
initRevealAnimations();
}
</script>
</head>
<body>
<!-- Layout wrapper -->
<div class="layout-wrapper layout-content-navbar">
<div class="layout-container">
<!-- Layout container -->
<div class="layout-page">
<!-- Navbar -->
<!-- / Navbar -->
<!-- Content wrapper -->
<div class="content-wrapper">
<!-- Content -->
<div style="margin: 24px;">
<section class="hero reveal">
<div class="hero__text" data-animate>
<span class="hero__eyebrow">ContextWizard · 法的情報</span>
<h1 class="hero__title">特定商取引法に基づく表記</h1>
<p class="hero__lead">
ContextWizard Chrome拡張機能の有料アップグレードに関する、
特定商取引法に基づく販売業者情報および取引条件の表示です。
</p>
<div class="hero__chips">
<span class="hero-chip">日本国内向け</span>
<span class="hero-chip">安全なカード決済</span>
<span class="hero-chip">買い切りプラン</span>
</div>
</div>
<div class="hero__media" data-animate>
<div class="hero__orb"></div>
<div class="hero__device">
<h4>通信販売に関する表示事項</h4>
<p>
お客様に安心してお取引いただくため、販売条件・返品ポリシー等を明記しています。
</p>
<div class="hero__chips" style="margin-top: 1.5rem;">
<span class="hero-chip">明瞭な価格表示</span>
<span class="hero-chip">即時利用可能</span>
<span class="hero-chip">安心サポート</span>
</div>
</div>
</div>
</section>
<div class="alert alert-info d-flex align-items-center" role="alert" style="margin-top: 24px;">
<i class="bx bx-calendar bx-sm me-2"></i>
<div>
<strong>最終更新日:</strong>2025年12月29日
</div>
</div>
<article class="tokushoho-content" style="margin-top: 24px;">
<section class="card mb-4 reveal" data-animate>
<div class="card-header">
<h2 class="card-title" style="margin: 0;">販売業者情報</h2>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-bordered">
<tbody>
<tr>
<th>販売業者</th>
<td>amiPro合同会社 (法 人 番 号 1 0 1 1 0 0 3 0 1 6 4 0 3)</td>
</tr>
<tr>
<th>運営責任者</th>
<td>杜 慶捷</td>
</tr>
<tr>
<th>所在地</th>
<td>〒150-0001<br>東京都渋谷区神宮前六丁目23番4号桑野ビル2階</td>
</tr>
<tr>
<th>電話番号</th>
<td>03-6869-2796<br><small class="text-muted">(受付時間:平日 10:00〜18:00</small></td>
</tr>
<tr>
<th>メールアドレス</th>
<td><a href="mailto:support@amipro.me">support@amipro.me</a></td>
</tr>
</tbody>
</table>
</div>
</div>
</section>
<section class="card mb-4 reveal" data-animate>
<div class="card-header">
<h2 class="card-title" style="margin: 0;">商品・料金について</h2>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-bordered">
<tbody>
<tr>
<th>商品名</th>
<td>ContextWizard Pro アップグレード</td>
</tr>
<tr>
<th>販売価格</th>
<td>500円税込、買い切り型</td>
</tr>
<tr>
<th>商品代金以外の必要料金</th>
<td>なし</td>
</tr>
</tbody>
</table>
</div>
</div>
</section>
<section class="card mb-4 reveal" data-animate>
<div class="card-header">
<h2 class="card-title" style="margin: 0;">お支払いについて</h2>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-bordered">
<tbody>
<tr>
<th>支払方法</th>
<td>クレジットカードVisa / Mastercard / JCB / American Express</td>
</tr>
<tr>
<th>支払時期</th>
<td>購入時即時決済</td>
</tr>
</tbody>
</table>
</div>
</div>
</section>
<section class="card mb-4 reveal" data-animate>
<div class="card-header">
<h2 class="card-title" style="margin: 0;">商品の引渡しについて</h2>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-bordered">
<tbody>
<tr>
<th>引渡時期</th>
<td>決済完了後即時拡張機能内でPro機能が自動有効化</td>
</tr>
<tr>
<th>引渡方法</th>
<td>オンラインによるデジタル提供(物理配送なし)</td>
</tr>
</tbody>
</table>
</div>
</div>
</section>
<section class="card mb-4 reveal" data-animate>
<div class="card-header">
<h2 class="card-title" style="margin: 0;">返品・キャンセルについて</h2>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-bordered">
<tbody>
<tr>
<th>返品・キャンセル</th>
<td>本商品はデジタルコンテンツの性質上、原則として購入後の返品・キャンセル・返金はお受けできません。ただし、技術的な問題により正常に動作しない場合、サポート(<a href="mailto:support@amipro.me">support@amipro.me</a>)までお問い合わせください。個別に対応いたします。</td>
</tr>
</tbody>
</table>
</div>
</div>
</section>
<section class="card mb-5 reveal" data-animate>
<div class="card-header">
<h2 class="card-title" style="margin: 0;">動作環境</h2>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-bordered">
<tbody>
<tr>
<th>動作環境</th>
<td>Google Chrome最新版Windows / macOS / Linux対応</td>
</tr>
</tbody>
</table>
</div>
</div>
</section>
</article>
</div>
<!-- / Content -->
<div class="content-backdrop fade"></div>
</div>
<!-- Content wrapper -->
</div>
<!-- / Layout page -->
</div>
<!-- / Layout container -->
</div>
<!-- / Layout wrapper -->
<!-- Overlay -->
<div class="layout-overlay layout-menu-toggle"></div>
</body>
</html>

View File

@@ -23,7 +23,7 @@
gtag('config', 'G-850DCHX9EJ'); gtag('config', 'G-850DCHX9EJ');
</script> </script>
<meta name="description" content="ContextWizard keeps every AI conversation searchable, private, and under your control" /> <meta name="description" content="The universal context indexer for your AI chats. Extract, search, and transfer knowledge across platforms." />
<!-- Favicon --> <!-- Favicon -->
<link rel="icon" type="image/x-icon" href="files/favicon.ico" /> <link rel="icon" type="image/x-icon" href="files/favicon.ico" />
@@ -236,15 +236,39 @@
<section class="hero reveal"> <section class="hero reveal">
<div class="hero__text" data-animate> <div class="hero__text" data-animate>
<span class="hero__badge"><i class="bx bx-bot"></i> ContextWizard</span> <span class="hero__badge"><i class="bx bx-bot"></i> ContextWizard</span>
<h1 class="hero__title">Never lose an AI conversation again.</h1> <h1 class="hero__title">The universal context indexer for your AI chats. Extract, search, and transfer knowledge across platforms.</h1>
<p class="hero__lead"> <p class="hero__lead">
Harness each assistant's strengths, one-click backup or migrate every thread, and start immediately with zero configuration. Harness each assistant's strengths, one-click backup or migrate every thread, and start immediately with zero configuration.
</p> </p>
<ul class="checklist" style="margin-top: 1.25rem;"> <ul class="checklist" style="margin-top: 1.25rem;">
<li><i class="bx bx-check-circle"></i>All your data never leaves your PC</li> <li><i class="bx bx-check-circle"></i>All your data never leaves your PC</li>
<li><i class="bx bx-check-circle"></i>No API keys required</li>
<li><i class="bx bx-check-circle"></i>Automatic capture across your favorite AI chat platforms</li> <li><i class="bx bx-check-circle"></i>Automatic capture across your favorite AI chat platforms</li>
<li><i class="bx bx-check-circle"></i>Search, filter, and relaunch chats instantly</li> <li><i class="bx bx-check-circle"></i>Search, filter, and relaunch chats instantly</li>
</ul> </ul>
<div style="margin-top: 2rem; display: flex; flex-wrap: wrap; gap: 1rem;">
<a
href="https://chromewebstore.google.com/detail/contextwizard/lmhnmmedgmnfggecdalkancllnekofnb"
class="btn btn-success"
style="min-width: 200px;"
target="_blank"
rel="noopener"
>
<i class="bx bxl-chrome me-1"></i>Install from Chrome Store
</a>
<a
href="https://microsoftedge.microsoft.com/addons/detail/contextwizard/nknoacgaapoeboehlgelolgbifgcimli"
class="btn btn-primary"
style="min-width: 200px;"
target="_blank"
rel="noopener"
>
<i class="bx bx-download me-1"></i>Install from Edge store
</a>
<a href="https://www.youtube.com/watch?v=UDKbb1h-NMA" class="btn btn-outline-primary" style="min-width: 200px;" target="_blank">
<i class="bx bx-play-circle me-1"></i>Watch Video
</a>
</div>
</div> </div>
<div class="hero__media" data-animate> <div class="hero__media" data-animate>
<div class="hero__orb"></div> <div class="hero__orb"></div>
@@ -340,19 +364,7 @@
</article> </article>
</div> </div>
<section class="card mb-4 mt-5 reveal" data-animate> <hr class="my-1" />
<div class="card-body">
<h3 class="card-title" style="margin-bottom: 1rem;">How capturing works</h3>
<p>
ContextWizard watches the DOM of supported AI chat pages with lightweight MutationObservers, extracts each assistant/user message via platform-optimized selectors, and stores condensed transcripts in Chrome storage. Debouncing keeps your archive tidy, while the overlay indicator shows when a session is recording.
</p>
<ul class="checklist" style="margin-top: 1rem;">
<li><i class="bx bx-check-circle"></i>Works with tabs you actively view—no background scraping.</li>
<li><i class="bx bx-check-circle"></i>Landing pages (e.g., Gemini /app) are skipped until a unique conversation URL appears.</li>
<li><i class="bx bx-check-circle"></i>All saved data lives in <code>chrome.storage.local</code> unless you export it.</li>
</ul>
</div>
</section>
<section class="card mb-4 reveal" data-animate> <section class="card mb-4 reveal" data-animate>
<div class="row g-0 align-items-center"> <div class="row g-0 align-items-center">
@@ -408,9 +420,49 @@
</div> </div>
</div> </div>
</section> </section>
<section class="card mb-5 reveal" data-animate>
<div class="card-body">
<h3 class="card-title" style="margin-bottom: 1.5rem;">Frequently Asked Questions</h3>
<div style="margin-bottom: 1.5rem;">
<h4 style="font-size: 1.1rem; margin-bottom: 0.5rem; color: #1e293b;">How to copy a long ChatGPT thread into Claude without formatting issues?</h4>
<p style="margin-bottom: 0;">
ContextWizard extracts only the core conversation text, making it perfect for context transfer.
</p>
</div>
<div style="margin-bottom: 1.5rem;">
<h4 style="font-size: 1.1rem; margin-bottom: 0.5rem; color: #1e293b;">Best way to search through multiple AI platform histories at once?</h4>
<p style="margin-bottom: 0;">
Use a local indexer like ContextWizard that supports 10+ platforms including Grok and Perplexity.
</p>
</div>
<div style="margin-bottom: 0;">
<h4 style="font-size: 1.1rem; margin-bottom: 0.5rem; color: #1e293b;">How to build a local knowledge base from AI chats?</h4>
<p style="margin-bottom: 0;">
ContextWizard turns your browsing history into a clean, searchable text database.
</p>
</div>
</div>
</section>
</div> </div>
<!-- / Content --> <!-- / Content -->
<!-- Footer -->
<footer class="reveal" data-animate style="padding: 2rem 24px; border-top: 1px solid rgba(248, 250, 252, 0.1);">
<div class="d-flex flex-wrap justify-content-center gap-4" style="font-size: 0.9rem;">
<a href="contextwizard_privacy_policy.html" style="color: rgba(248, 250, 252, 0.7); text-decoration: none;">Privacy Policy</a>
<a href="contextwizard_tokushoho.html" style="color: rgba(248, 250, 252, 0.7); text-decoration: none;">特定商取引法に基づく表記</a>
<a href="mailto:support@amipro.me" style="color: rgba(248, 250, 252, 0.7); text-decoration: none;">Contact</a>
</div>
<p class="text-center mt-3" style="color: rgba(248, 250, 252, 0.5); font-size: 0.85rem; margin-bottom: 0;">
© 2025 amiPro, LLC. All rights reserved.
</p>
</footer>
<!-- / Footer -->
<div class="content-backdrop fade"></div> <div class="content-backdrop fade"></div>
</div> </div>
<!-- Content wrapper --> <!-- Content wrapper -->

View File

@@ -155,7 +155,7 @@
lang_map = new Map(); lang_map = new Map();
lang_map.set("en-US", "amiPro's core is completely open source, thus providing complete verifiability and security.<br>Not only the FIDO2 server, but also the iOS/Android SDK for App development are completely open source."); lang_map.set("en-US", "amiPro's core is completely open source, thus providing complete verifiability and security.<br>Not only the FIDO2 server, but also the iOS/Android SDK for App development are completely open source.");
lang_map.set("zh-CN", "amiPro的核心完全永久开源从而提供完全的可验证性和安全性。<br>不仅FIDO2服务器App开发用iOS/Android SDK也完全开源。"); lang_map.set("zh-CN", "amiPro的核心完全永久开源从而提供完全的可验证性和安全性。<br>不仅FIDO2服务器App开发用iOS/Android SDK也完全开源。");
lang_map.set("ja", "amiPro のコアは完全にオープンソースであり、完全な検証性とセキュリティを提供します。<br>FIDO2 サーバーだけでなく、アプリ開発用の iOS / Android SDK 完全にオープンソースです。"); lang_map.set("ja", "amiPro のコアは完全な検証性とセキュリティを提供します。<br>Web開発用JS SDKやアプリ開発用の iOS / Android SDK 完全にオープンソースです。");
i18n_messages.set("info_open_src", lang_map); i18n_messages.set("info_open_src", lang_map);
lang_map = new Map(); lang_map = new Map();
@@ -195,9 +195,9 @@
i18n_messages.set("info_howmuch", lang_map); i18n_messages.set("info_howmuch", lang_map);
lang_map = new Map(); lang_map = new Map();
lang_map.set("en-US", "One month free trial<br>(After free registration of the management portal, all functions are free to try for one month)"); lang_map.set("en-US", "Three month free trial<br>(After free registration of the management portal, all functions are free to try for three months)<br>No credit card required.");
lang_map.set("zh-CN", "个月免费试用<br>(免费注册管理门户后,所有功能免费试用个月)"); lang_map.set("zh-CN", "个月免费试用<br>(免费注册管理门户后,所有功能免费试用个月)<br> 无需信用卡");
lang_map.set("ja", "1ヶ月間の無料トライアル<br>(管理ポータルの無料登録後、すべての機能を1ヶ月間無料でお試しいただけます)"); lang_map.set("ja", "3ヶ月間の無料トライアル<br>(管理ポータルの無料登録後、すべての機能を3ヶ月間無料でお試しいただけます)<br> クレジットカードは不要です。");
i18n_messages.set("btn_portal", lang_map); i18n_messages.set("btn_portal", lang_map);
lang_map = new Map(); lang_map = new Map();
@@ -231,6 +231,141 @@
lang_map.set("ja", "FIDO2: 2024年の188.2億米ドルから2032年には603.4億米ドルへ"); lang_map.set("ja", "FIDO2: 2024年の188.2億米ドルから2032年には603.4億米ドルへ");
i18n_messages.set("top_msg", lang_map); i18n_messages.set("top_msg", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Passkey cloud platform");
lang_map.set("ja", "パスキー・クラウド・プラットフォーム");
i18n_messages.set("hero_eyebrow", lang_map);
lang_map = new Map();
lang_map.set("en-US", "FIDO2 journeys people want to finish");
lang_map.set("ja", "最後までスムーズに完了できるFIDO2体験");
i18n_messages.set("hero_title", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Launch delightful, phishing-proof login experiences with a fully managed Passkey\nbackbone, open-source SDKs that drop into any stack in minutes.");
lang_map.set("ja", "フルマネージドなPasskey基盤と、どんなスタックにも数分で組み込める\nオープンソースSDKで、心地よくフィッシング耐性のあるログイン体験を提供します。");
i18n_messages.set("hero_lead", lang_map);
lang_map = new Map();
lang_map.set("en-US", "FIDO2 certified");
lang_map.set("ja", "FIDO2認証済み");
i18n_messages.set("hero_chip_1", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Core server + Open source SDK");
lang_map.set("ja", "コアサーバーオープンソースSDK");
i18n_messages.set("hero_chip_2", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Device recovery flows");
lang_map.set("ja", "デバイス復旧フロー");
i18n_messages.set("hero_chip_3", lang_map);
lang_map = new Map();
lang_map.set("en-US", "FIDO certified");
lang_map.set("ja", "FIDO認証");
i18n_messages.set("stat_label_1", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Fast onboarding");
lang_map.set("ja", "迅速な導入");
i18n_messages.set("stat_label_2", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Platforms");
lang_map.set("ja", "対応プラットフォーム");
i18n_messages.set("stat_label_3", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Passkey Ready");
lang_map.set("ja", "Passkey対応");
i18n_messages.set("device_title", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Secure, phishing-resistant, privacy-first verification that works on every device.");
lang_map.set("ja", "あらゆるデバイスで動作する、フィッシング耐性・プライバシー重視の安全な検証。");
i18n_messages.set("device_desc", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Face / Touch");
lang_map.set("ja", "Face / Touch");
i18n_messages.set("device_chip_1", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Security keys");
lang_map.set("ja", "セキュリティキー");
i18n_messages.set("device_chip_2", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Recovery links");
lang_map.set("ja", "復旧リンク");
i18n_messages.set("device_chip_3", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Instant integration");
lang_map.set("ja", "すぐに導入");
i18n_messages.set("panel_title_1", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Add FIDO2 login with a few lines of JavaScript. No backend rewrites or new auth servers required.");
lang_map.set("ja", "数行のJavaScriptでFIDO2ログインを追加。バックエンド改修や新しい認証サーバーは不要です。");
i18n_messages.set("panel_desc_1", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Device lifecycle");
lang_map.set("ja", "デバイス管理");
i18n_messages.set("panel_title_2", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Allow users to add, revoke, or recover devices with guided flows powered by amiPro APIs.");
lang_map.set("ja", "amiPro APIで、デバイスの追加・無効化・復旧をガイド付きフローで提供できます。");
i18n_messages.set("panel_desc_2", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Operational visibility");
lang_map.set("ja", "運用の可視化");
i18n_messages.set("panel_title_3", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Get analytics on adoption, fraud attempts, and top devices directly from the management portal.");
lang_map.set("ja", "管理ポータルから、利用状況・不正兆候・主要デバイスを確認できます。");
i18n_messages.set("panel_desc_3", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Ready to launch your Passkey experience?");
lang_map.set("ja", "Passkey体験を始めませんか");
i18n_messages.set("cta_title", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Spin up the portal, invite your team, and go live in days.");
lang_map.set("ja", "ポータルを用意し、チームを招待して、数日で公開できます。");
i18n_messages.set("cta_desc", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Open portal");
lang_map.set("ja", "ポータルを開く");
i18n_messages.set("cta_btn_portal", lang_map);
lang_map = new Map();
lang_map.set("en-US", "See integration guide");
lang_map.set("ja", "導入ガイドを見る");
i18n_messages.set("cta_btn_integration", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Company");
lang_map.set("ja", "会社名");
i18n_messages.set("tbl_company", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Founded");
lang_map.set("ja", "設立");
i18n_messages.set("tbl_founded", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Address");
lang_map.set("ja", "所在地");
i18n_messages.set("tbl_address", lang_map);
window.onload = async function() { window.onload = async function() {
setI18NText(i18n_messages) setI18NText(i18n_messages)
@@ -276,47 +411,46 @@
<!-- Content --> <!-- Content -->
<section class="hero reveal"> <section class="hero reveal">
<div class="hero__text" data-animate> <div class="hero__text" data-animate>
<span class="hero__eyebrow">Passkey cloud platform</span> <span class="hero__eyebrow" id="hero_eyebrow">Passkey cloud platform</span>
<div class="ticker" style="margin: 1rem 0;"> <div class="ticker" style="margin: 1rem 0;">
<span class="ticker__dot"></span>
<span id="top_msg">Top message</span> <span id="top_msg">Top message</span>
</div> </div>
<h1 class="hero__title">FIDO2 journeys people want to finish</h1> <h1 class="hero__title" id="hero_title">FIDO2 journeys people want to finish</h1>
<p class="hero__lead"> <p class="hero__lead" id="hero_lead">
Launch delightful, phishing-proof login experiences with a fully managed Passkey Launch delightful, phishing-proof login experiences with a fully managed Passkey
backbone, open-source core, and SDKs that drop into any stack in minutes. backbone, open-source SDKs that drop into any stack in minutes.
</p> </p>
<div class="hero__chips"> <div class="hero__chips">
<span class="hero-chip">FIDO2 certified</span> <span class="hero-chip" id="hero_chip_1">FIDO2 certified</span>
<span class="hero-chip">Open source server + SDK</span> <span class="hero-chip" id="hero_chip_2">Open source server + SDK</span>
<span class="hero-chip">Device recovery flows</span> <span class="hero-chip" id="hero_chip_3">Device recovery flows</span>
</div> </div>
<div class="hero__stats" style="margin-top: 2rem;"> <div class="hero__stats" style="margin-top: 2rem;">
<div class="stat-card"> <div class="stat-card">
<strong>100%</strong> <strong>100%</strong>
<span>FIDO certified</span> <span id="stat_label_1">FIDO certified</span>
</div> </div>
<div class="stat-card"> <div class="stat-card">
<strong>60%</strong> <strong>30 minutes</strong>
<span>Faster onboarding</span> <span id="stat_label_2">Fast onboarding</span>
</div> </div>
<div class="stat-card"> <div class="stat-card">
<strong>75%</strong> <strong>All</strong>
<span>Support cost cut</span> <span id="stat_label_3">Platforms</span>
</div> </div>
</div> </div>
</div> </div>
<div class="hero__media" data-animate> <div class="hero__media" data-animate>
<div class="hero__orb"></div> <div class="hero__orb"></div>
<div class="hero__device"> <div class="hero__device">
<h4>Passkey Ready</h4> <h4 id="device_title">Passkey Ready</h4>
<p> <p id="device_desc">
Secure, phishing-resistant, privacy-first verification that works on every device. Secure, phishing-resistant, privacy-first verification that works on every device.
</p> </p>
<div class="hero__chips" style="margin-top: 1.5rem;"> <div class="hero__chips" style="margin-top: 1.5rem;">
<span class="hero-chip">Face / Touch</span> <span class="hero-chip" id="device_chip_1">Face / Touch</span>
<span class="hero-chip">Security keys</span> <span class="hero-chip" id="device_chip_2">Security keys</span>
<span class="hero-chip">Recovery links</span> <span class="hero-chip" id="device_chip_3">Recovery links</span>
</div> </div>
<div style="margin-top: 1.5rem; display: flex; gap: 0.8rem; flex-wrap: wrap;"> <div style="margin-top: 1.5rem; display: flex; gap: 0.8rem; flex-wrap: wrap;">
<a href="https://portal.amipro.me" target="_blank" class="btn btn-primary" id="btn_portal" style="flex: 1 0 160px;">Portal</a> <a href="https://portal.amipro.me" target="_blank" class="btn btn-primary" id="btn_portal" style="flex: 1 0 160px;">Portal</a>
@@ -359,7 +493,7 @@
<p class="card-text" id="info_amipro_fido"> <p class="card-text" id="info_amipro_fido">
amiPro FIDO amiPro FIDO
</p><br> </p><br>
<a href="files/FIDO-Conformance-Tools-v1.7.27.1.mp4" target="_blank" class="btn btn-primary" id="label_fido_video">FIDO Video</a> <a href="https://youtu.be/N23eTcWQE5w" target="_blank" class="btn btn-primary" id="label_fido_video">FIDO Video</a>
</div> </div>
</div> </div>
</div> </div>
@@ -371,7 +505,7 @@
<p class="card-text" id="info_open_src"> <p class="card-text" id="info_open_src">
Open src Open src
</p><br> </p><br>
<a href="https://github.com/dqj1998/fido2-node" target="_blank" class="btn btn-primary" id="label_open_src">Open src</a> <a href="https://github.com/dqj1998/dFido2Lib-ios" target="_blank" class="btn btn-primary" id="label_open_src">Open src</a>
</div> </div>
</div> </div>
</div> </div>
@@ -402,20 +536,20 @@
<div class="info-panels" style="margin: 3rem 12px;"> <div class="info-panels" style="margin: 3rem 12px;">
<article class="info-panel" data-animate> <article class="info-panel" data-animate>
<strong>Instant integration</strong> <strong id="panel_title_1">Instant integration</strong>
<p style="margin-top: 0.5rem;"> <p style="margin-top: 0.5rem;" id="panel_desc_1">
Add FIDO2 login with a few lines of JavaScript. No backend rewrites or new auth servers required. Add FIDO2 login with a few lines of JavaScript. No backend rewrites or new auth servers required.
</p> </p>
</article> </article>
<article class="info-panel" data-animate> <article class="info-panel" data-animate>
<strong>Device lifecycle</strong> <strong id="panel_title_2">Device lifecycle</strong>
<p style="margin-top: 0.5rem;"> <p style="margin-top: 0.5rem;" id="panel_desc_2">
Allow users to add, revoke, or recover devices with guided flows powered by amiPro APIs. Allow users to add, revoke, or recover devices with guided flows powered by amiPro APIs.
</p> </p>
</article> </article>
<article class="info-panel" data-animate> <article class="info-panel" data-animate>
<strong>Operational visibility</strong> <strong id="panel_title_3">Operational visibility</strong>
<p style="margin-top: 0.5rem;"> <p style="margin-top: 0.5rem;" id="panel_desc_3">
Get analytics on adoption, fraud attempts, and top devices directly from the management portal. Get analytics on adoption, fraud attempts, and top devices directly from the management portal.
</p> </p>
</article> </article>
@@ -423,27 +557,27 @@
<div class="cta-banner" data-animate> <div class="cta-banner" data-animate>
<div> <div>
<h4>Ready to launch your Passkey experience?</h4> <h4 id="cta_title">Ready to launch your Passkey experience?</h4>
<p style="margin: 0; color: var(--text-muted);">Spin up the portal, invite your team, and go live in days.</p> <p style="margin: 0; color: var(--text-muted);" id="cta_desc">Spin up the portal, invite your team, and go live in days.</p>
</div> </div>
<div style="display: flex; gap: 0.8rem;"> <div style="display: flex; gap: 0.8rem;">
<a href="https://portal.amipro.me" target="_blank" class="btn btn-primary">Open portal</a> <a href="https://portal.amipro.me" target="_blank" class="btn btn-primary" id="cta_btn_portal">Open portal</a>
<a href="integration.html" class="btn btn-outline-info">See integration guide</a> <a href="integration.html" class="btn btn-outline-info" id="cta_btn_integration">See integration guide</a>
</div> </div>
</div> </div>
<table class="table-modern" style="margin-top: 3rem;"> <table class="table-modern" style="margin-top: 3rem;">
<tbody> <tbody>
<tr> <tr>
<th scope="row">Company</th> <th scope="row" id="tbl_company">Company</th>
<td id="company_name">amiPro合同会社</td> <td id="company_name">amiPro合同会社</td>
</tr> </tr>
<tr> <tr>
<th scope="row">Founded</th> <th scope="row" id="tbl_founded">Founded</th>
<td id="company_open">2023年3月3日設立</td> <td id="company_open">2023年3月3日設立</td>
</tr> </tr>
<tr> <tr>
<th scope="row">Address</th> <th scope="row" id="tbl_address">Address</th>
<td id="company_addr">〒150- 東京都渋谷区神宮前六丁目23番4号 桑野ビル2階</td> <td id="company_addr">〒150- 東京都渋谷区神宮前六丁目23番4号 桑野ビル2階</td>
</tr> </tr>
</tbody> </tbody>

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 307 KiB

View File

@@ -13,6 +13,7 @@ function setI18NText(i18n_map){
var msg = null var msg = null
if(elem){ if(elem){
msg = elem.get(lang) msg = elem.get(lang)
if(!msg && lang && lang.indexOf('-') > -1) msg = elem.get(lang.split('-')[0]);
if(!msg) msg = elem.get('en-US'); if(!msg) msg = elem.get('en-US');
} }
if(!msg)msg = key+"-"+lang if(!msg)msg = key+"-"+lang
@@ -28,6 +29,7 @@ function getI18NText(i18n_map, key){
var msg = null var msg = null
if(elem){ if(elem){
msg = elem.get(lang) msg = elem.get(lang)
if(!msg && lang && lang.indexOf('-') > -1) msg = elem.get(lang.split('-')[0]);
if(!msg) msg = elem.get('en-US'); if(!msg) msg = elem.get('en-US');
} }
if(!msg)msg = key+"-"+lang if(!msg)msg = key+"-"+lang

BIN
files/portal_conf_en.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 KiB

BIN
files/portal_reg_en.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

View File

@@ -120,7 +120,202 @@
</style> </style>
<script> <script>
const i18n_messages = new Map();
let lang_map = new Map();
lang_map.set('en-US', 'Privacy-first identity & AI products');
lang_map.set('ja', 'プライバシー重視のID基盤AIプロダクト');
i18n_messages.set('nav_tagline', lang_map);
lang_map = new Map();
lang_map.set('en-US', 'Contact sales');
lang_map.set('ja', 'お問い合わせ');
i18n_messages.set('nav_contact_sales', lang_map);
lang_map = new Map();
lang_map.set('en-US', 'amiPro, LLC');
lang_map.set('ja', 'amiPro, LLC');
i18n_messages.set('hero_eyebrow', lang_map);
lang_map = new Map();
lang_map.set('en-US', 'Secure passkey journeys and privacy tooling for modern teams.');
lang_map.set('ja', '現代のチームのための、安全なパスキー体験とプライバシー基盤。');
i18n_messages.set('hero_title', lang_map);
lang_map = new Map();
lang_map.set('en-US', 'We build production-ready products that make passwordless authentication effortless and\nensure every AI conversation stays under your control.');
lang_map.set('ja', 'パスワードレス認証を手軽に導入でき、AI会話のデータも手元で管理できる――\n実運用に耐えるプロダクトを提供します。');
i18n_messages.set('hero_lead', lang_map);
lang_map = new Map();
lang_map.set('en-US', 'FIDO2 certified');
lang_map.set('ja', 'FIDO2認証');
i18n_messages.set('hero_chip_1', lang_map);
lang_map = new Map();
lang_map.set('en-US', 'Open source SDKs');
lang_map.set('ja', 'SDKはオープンソース');
i18n_messages.set('hero_chip_2', lang_map);
lang_map = new Map();
lang_map.set('en-US', 'Local-first privacy');
lang_map.set('ja', 'ローカルファースト・プライバシー');
i18n_messages.set('hero_chip_3', lang_map);
lang_map = new Map();
lang_map.set('en-US', 'Explore Passkey Platform');
lang_map.set('ja', 'Passkeyプラットフォームを見る');
i18n_messages.set('hero_btn_passkey', lang_map);
lang_map = new Map();
lang_map.set('en-US', 'Discover ContextWizard');
lang_map.set('ja', 'ContextWizardを見る');
i18n_messages.set('hero_btn_contextwizard', lang_map);
lang_map = new Map();
lang_map.set('en-US', 'Built in Tokyo · Shipping globally');
lang_map.set('ja', 'Tokyo発 · 世界へ');
i18n_messages.set('hero_device_title', lang_map);
lang_map = new Map();
lang_map.set('en-US', 'Founded in 2023, amiPro delivers reliable identity infrastructure, open SDKs, and\nprivacy-first extensions that enterprises can audit and trust.');
lang_map.set('ja', '2023年設立。企業が監査でき、信頼して使えるID基盤・オープンSDK・\nプライバシー重視の拡張機能を提供します。');
i18n_messages.set('hero_device_desc', lang_map);
lang_map = new Map();
lang_map.set('en-US', 'FIDO2 server + SDKs (open source)');
lang_map.set('ja', 'FIDO2サーバーSDKオープンソース');
i18n_messages.set('hero_device_li_1', lang_map);
lang_map = new Map();
lang_map.set('en-US', 'Device lifecycle tooling');
lang_map.set('ja', 'デバイス管理ツール');
i18n_messages.set('hero_device_li_2', lang_map);
lang_map = new Map();
lang_map.set('en-US', 'Local-first AI knowledge capture');
lang_map.set('ja', 'ローカルでAIナレッジを蓄積');
i18n_messages.set('hero_device_li_3', lang_map);
lang_map = new Map();
lang_map.set('en-US', 'What we build');
lang_map.set('ja', '提供プロダクト');
i18n_messages.set('section_build_title', lang_map);
lang_map = new Map();
lang_map.set('en-US', 'Two flagship products solve the hardest trust problems teams face today—passwordless authentication\nand safe AI adoption.');
lang_map.set('ja', '2つの主力プロダクトで、パスワードレス認証と安全なAI活用という\n「信頼」の課題を解決します。');
i18n_messages.set('section_build_desc', lang_map);
lang_map = new Map();
lang_map.set('en-US', 'Enterprise Passkeys');
lang_map.set('ja', 'エンタープライズPasskeys');
i18n_messages.set('badge_passkeys', lang_map);
lang_map = new Map();
lang_map.set('en-US', 'amiPro Passkey Cloud');
lang_map.set('ja', 'amiPro Passkey Cloud');
i18n_messages.set('product_passkey_title', lang_map);
lang_map = new Map();
lang_map.set('en-US', 'Launch phishing-resistant login backed by our FIDO2-certified cloud, open server, and drop-in SDKs.\nManage registration, recovery, and analytics from one portal.');
lang_map.set('ja', 'FIDO2認証済みクラウド、オープンサーバー、導入しやすいSDKで\nフィッシング耐性のあるログインを提供。登録・復旧・分析を1つのポータルで管理できます。');
i18n_messages.set('product_passkey_desc', lang_map);
lang_map = new Map();
lang_map.set('en-US', 'Go to Passkey hub →');
lang_map.set('ja', 'Passkeyの詳細へ →');
i18n_messages.set('product_passkey_link', lang_map);
lang_map = new Map();
lang_map.set('en-US', 'AI Conversation OS');
lang_map.set('ja', 'AI会話のOS');
i18n_messages.set('badge_ai', lang_map);
lang_map = new Map();
lang_map.set('en-US', 'ContextWizard');
lang_map.set('ja', 'ContextWizard');
i18n_messages.set('product_cw_title', lang_map);
lang_map = new Map();
lang_map.set('en-US', 'Keep every AI conversation searchable, portable, and private. Automatically capture threads across assistants\nwith encryption that never leaves your machine.');
lang_map.set('ja', 'AI会話を検索可能・持ち運び可能・プライベートに。\n端末外に出ない暗号化で、複数アシスタントのスレッドを自動収集します。');
i18n_messages.set('product_cw_desc', lang_map);
lang_map = new Map();
lang_map.set('en-US', 'See ContextWizard →');
lang_map.set('ja', 'ContextWizardの詳細へ →');
i18n_messages.set('product_cw_link', lang_map);
lang_map = new Map();
lang_map.set('en-US', 'Built on verifiable foundations');
lang_map.set('ja', '検証できる基盤の上に');
i18n_messages.set('section_foundation_title', lang_map);
lang_map = new Map();
lang_map.set('en-US', 'Open standards, published code, and transparent pricing keep vendors accountable. amiPro blends\nJapanese craftsmanship with global security best practices so you can ship faster without compromising trust.');
lang_map.set('ja', 'オープン標準、公開されたコード、透明な価格。ベンダーの説明責任を支えます。\namiProは日本の丁寧なものづくりと世界のセキュリティベストプラクティスを融合し、\n信頼を損なわずにスピーディーな提供を実現します。');
i18n_messages.set('section_foundation_desc', lang_map);
lang_map = new Map();
lang_map.set('en-US', 'FIDO2 Certified Stack');
lang_map.set('ja', 'FIDO2認証スタック');
i18n_messages.set('value_1', lang_map);
lang_map = new Map();
lang_map.set('en-US', 'Open Source SDKs');
lang_map.set('ja', 'SDKはオープンソース');
i18n_messages.set('value_2', lang_map);
lang_map = new Map();
lang_map.set('en-US', 'Local-first Privacy');
lang_map.set('ja', 'ローカルファースト・プライバシー');
i18n_messages.set('value_3', lang_map);
lang_map = new Map();
lang_map.set('en-US', 'Enterprise Support');
lang_map.set('ja', 'エンタープライズサポート');
i18n_messages.set('value_4', lang_map);
lang_map = new Map();
lang_map.set('en-US', 'Company quick facts');
lang_map.set('ja', '会社概要');
i18n_messages.set('company_facts_title', lang_map);
lang_map = new Map();
lang_map.set('en-US', '<strong>Founded:</strong> March 3, 2023');
lang_map.set('ja', '<strong>設立:</strong> 2023年3月3日');
i18n_messages.set('fact_founded', lang_map);
lang_map = new Map();
lang_map.set('en-US', '<strong>Location:</strong> 2F Kuwano Building, 6-23-4 Jingumae, Shibuya-ku, Tokyo 150-0001');
lang_map.set('ja', '<strong>所在地:</strong> 〒150-0001 東京都渋谷区神宮前6-23-4 桑野ビル2F');
i18n_messages.set('fact_location', lang_map);
lang_map = new Map();
lang_map.set('en-US', '<strong>Focus:</strong> FIDO2 Infrastructure · AI Privacy Tooling');
lang_map.set('ja', '<strong>事業:</strong> FIDO2基盤 · AIプライバシーツール');
i18n_messages.set('fact_focus', lang_map);
lang_map = new Map();
lang_map.set('en-US', '<strong>Contact:</strong> <a href="mailto:sales@amipro.me">sales@amipro.me</a>');
lang_map.set('ja', '<strong>連絡先:</strong> <a href="mailto:sales@amipro.me">sales@amipro.me</a>');
i18n_messages.set('fact_contact', lang_map);
lang_map = new Map();
lang_map.set('en-US', 'FIDO2 Platform');
lang_map.set('ja', 'FIDO2プラットフォーム');
i18n_messages.set('footer_fido2', lang_map);
lang_map = new Map();
lang_map.set('en-US', 'ContextWizard');
lang_map.set('ja', 'ContextWizard');
i18n_messages.set('footer_cw', lang_map);
window.onload = function() { window.onload = function() {
if (typeof setI18NText === 'function') {
setI18NText(i18n_messages);
}
if (typeof initRevealAnimations === 'function') { if (typeof initRevealAnimations === 'function') {
initRevealAnimations(); initRevealAnimations();
} }
@@ -149,11 +344,11 @@
/> />
<div> <div>
<div style="font-weight: 700; font-size: 1.25rem; color: #0f172a;">amiPro, LLC</div> <div style="font-weight: 700; font-size: 1.25rem; color: #0f172a;">amiPro, LLC</div>
<small style="color: #64748b;">Privacy-first identity & AI products</small> <small style="color: #64748b;" id="nav_tagline">Privacy-first identity & AI products</small>
</div> </div>
</div> </div>
</div> </div>
<a href="mailto:sales@amipro.me?subject=Contact%20amiPro" class="btn btn-outline-primary ms-auto">Contact sales</a> <a href="mailto:sales@amipro.me?subject=Contact%20amiPro" class="btn btn-outline-primary ms-auto" id="nav_contact_sales">Contact sales</a>
</div> </div>
</nav> </nav>
@@ -161,44 +356,44 @@
<div class="container-xxl" style="padding: 32px 24px 72px;"> <div class="container-xxl" style="padding: 32px 24px 72px;">
<section class="hero reveal"> <section class="hero reveal">
<div class="hero__text" data-animate> <div class="hero__text" data-animate>
<span class="hero__eyebrow">amiPro, LLC</span> <span class="hero__eyebrow" id="hero_eyebrow">amiPro, LLC</span>
<h1 class="hero__title"> <h1 class="hero__title">
Secure passkey journeys and privacy tooling for modern teams. <span id="hero_title">Secure passkey journeys and privacy tooling for modern teams.</span>
</h1> </h1>
<p class="hero__lead"> <p class="hero__lead" id="hero_lead">
We build production-ready products that make passwordless authentication effortless and We build production-ready products that make passwordless authentication effortless and
ensure every AI conversation stays under your control. ensure every AI conversation stays under your control.
</p> </p>
<div class="hero__chips" style="margin-top: 1.5rem;"> <div class="hero__chips" style="margin-top: 1.5rem;">
<span class="hero-chip">FIDO2 certified</span> <span class="hero-chip" id="hero_chip_1">FIDO2 certified</span>
<span class="hero-chip">Open source core</span> <span class="hero-chip" id="hero_chip_2">Open source core</span>
<span class="hero-chip">Local-first privacy</span> <span class="hero-chip" id="hero_chip_3">Local-first privacy</span>
</div> </div>
<div style="margin-top: 2rem; display: flex; flex-wrap: wrap; gap: 1rem;"> <div style="margin-top: 2rem; display: flex; flex-wrap: wrap; gap: 1rem;">
<a href="fido2_top.html" class="btn btn-primary" style="flex: 1 0 220px;">Explore Passkey Platform</a> <a href="fido2_top.html" class="btn btn-primary" style="flex: 1 0 220px;" id="hero_btn_passkey">Explore Passkey Platform</a>
<a href="contextwizard_top.html" class="btn btn-outline-info" style="flex: 1 0 220px;">Discover ContextWizard</a> <a href="contextwizard_top.html" class="btn btn-outline-info" style="flex: 1 0 220px;" id="hero_btn_contextwizard">Discover ContextWizard</a>
</div> </div>
</div> </div>
<div class="hero__media" data-animate> <div class="hero__media" data-animate>
<div class="hero__orb"></div> <div class="hero__orb"></div>
<div class="hero__device"> <div class="hero__device">
<h4>Built in Tokyo · Shipping globally</h4> <h4 id="hero_device_title">Built in Tokyo · Shipping globally</h4>
<p> <p id="hero_device_desc">
Founded in 2023, amiPro delivers reliable identity infrastructure, open SDKs, and Founded in 2023, amiPro delivers reliable identity infrastructure, open SDKs, and
privacy-first extensions that enterprises can audit and trust. privacy-first extensions that enterprises can audit and trust.
</p> </p>
<ul class="list-unstyled" style="margin-top: 1rem; color: #0f172a;"> <ul class="list-unstyled" style="margin-top: 1rem; color: #0f172a;">
<li><i class="bx bx-check-circle me-1"></i>FIDO2 server + SDKs (open source)</li> <li><i class="bx bx-check-circle me-1"></i><span id="hero_device_li_1">FIDO2 server + SDKs (open source)</span></li>
<li><i class="bx bx-check-circle me-1"></i>Device lifecycle tooling</li> <li><i class="bx bx-check-circle me-1"></i><span id="hero_device_li_2">Device lifecycle tooling</span></li>
<li><i class="bx bx-check-circle me-1"></i>Local-first AI knowledge capture</li> <li><i class="bx bx-check-circle me-1"></i><span id="hero_device_li_3">Local-first AI knowledge capture</span></li>
</ul> </ul>
</div> </div>
</div> </div>
</section> </section>
<section class="reveal" data-animate style="margin-top: 56px;"> <section class="reveal" data-animate style="margin-top: 56px;">
<h2 style="font-weight: 600; color: #0f172a;">What we build</h2> <h2 style="font-weight: 600; color: #0f172a;" id="section_build_title">What we build</h2>
<p style="color: #475569; max-width: 720px;"> <p style="color: #475569; max-width: 720px;" id="section_build_desc">
Two flagship products solve the hardest trust problems teams face today—passwordless authentication Two flagship products solve the hardest trust problems teams face today—passwordless authentication
and safe AI adoption. and safe AI adoption.
</p> </p>
@@ -209,14 +404,14 @@
<div class="card-body"> <div class="card-body">
<div class="d-flex align-items-center mb-3"> <div class="d-flex align-items-center mb-3">
<i class="bx bx-shield me-2"></i> <i class="bx bx-shield me-2"></i>
<span class="badge bg-label-primary">Enterprise Passkeys</span> <span class="badge bg-label-primary" id="badge_passkeys">Enterprise Passkeys</span>
</div> </div>
<h3 style="font-size: 1.5rem;">amiPro Passkey Cloud</h3> <h3 style="font-size: 1.5rem;" id="product_passkey_title">amiPro Passkey Cloud</h3>
<p> <p id="product_passkey_desc">
Launch phishing-resistant login backed by our FIDO2-certified cloud, open server, and drop-in SDKs. Launch phishing-resistant login backed by our FIDO2-certified cloud, open server, and drop-in SDKs.
Manage registration, recovery, and analytics from one portal. Manage registration, recovery, and analytics from one portal.
</p> </p>
<a href="fido2_top.html" class="btn btn-link px-0">Go to Passkey hub →</a> <a href="fido2_top.html" class="btn btn-link px-0" id="product_passkey_link">Go to Passkey hub →</a>
</div> </div>
</article> </article>
</div> </div>
@@ -225,14 +420,14 @@
<div class="card-body"> <div class="card-body">
<div class="d-flex align-items-center mb-3"> <div class="d-flex align-items-center mb-3">
<i class="bx bx-archive me-2"></i> <i class="bx bx-archive me-2"></i>
<span class="badge bg-label-info">AI Conversation OS</span> <span class="badge bg-label-info" id="badge_ai">AI Conversation OS</span>
</div> </div>
<h3 style="font-size: 1.5rem;">ContextWizard</h3> <h3 style="font-size: 1.5rem;" id="product_cw_title">ContextWizard</h3>
<p> <p id="product_cw_desc">
Keep every AI conversation searchable, portable, and private. Automatically capture threads across assistants Keep every AI conversation searchable, portable, and private. Automatically capture threads across assistants
with encryption that never leaves your machine. with encryption that never leaves your machine.
</p> </p>
<a href="contextwizard_top.html" class="btn btn-link px-0">See ContextWizard →</a> <a href="contextwizard_top.html" class="btn btn-link px-0" id="product_cw_link">See ContextWizard →</a>
</div> </div>
</article> </article>
</div> </div>
@@ -242,27 +437,27 @@
<section class="reveal" data-animate style="margin-top: 56px;"> <section class="reveal" data-animate style="margin-top: 56px;">
<div class="row g-4 align-items-center"> <div class="row g-4 align-items-center">
<div class="col-lg-6"> <div class="col-lg-6">
<h2 style="font-weight: 600; color: #0f172a;">Built on verifiable foundations</h2> <h2 style="font-weight: 600; color: #0f172a;" id="section_foundation_title">Built on verifiable foundations</h2>
<p style="color: #475569;"> <p style="color: #475569;" id="section_foundation_desc">
Open standards, published code, and transparent pricing keep vendors accountable. amiPro blends Open standards, published code, and transparent pricing keep vendors accountable. amiPro blends
Japanese craftsmanship with global security best practices so you can ship faster without compromising trust. Japanese craftsmanship with global security best practices so you can ship faster without compromising trust.
</p> </p>
<div class="values-grid" style="margin-top: 1.5rem;"> <div class="values-grid" style="margin-top: 1.5rem;">
<div class="value-pill">FIDO2 Certified Stack</div> <div class="value-pill" id="value_1">FIDO2 Certified Stack</div>
<div class="value-pill">Open Source Core</div> <div class="value-pill" id="value_2">Open Source Core</div>
<div class="value-pill">Local-first Privacy</div> <div class="value-pill" id="value_3">Local-first Privacy</div>
<div class="value-pill">Enterprise Support</div> <div class="value-pill" id="value_4">Enterprise Support</div>
</div> </div>
</div> </div>
<div class="col-lg-6"> <div class="col-lg-6">
<article class="card h-100" style="border-radius: 1.25rem; box-shadow: 0 16px 50px rgba(15, 23, 42, 0.08);"> <article class="card h-100" style="border-radius: 1.25rem; box-shadow: 0 16px 50px rgba(15, 23, 42, 0.08);">
<div class="card-body"> <div class="card-body">
<h3 style="font-size: 1.25rem; margin-bottom: 1rem;">Company quick facts</h3> <h3 style="font-size: 1.25rem; margin-bottom: 1rem;" id="company_facts_title">Company quick facts</h3>
<ul class="list-unstyled" style="color: #0f172a;"> <ul class="list-unstyled" style="color: #0f172a;">
<li><strong>Founded:</strong> March 3, 2023</li> <li id="fact_founded"><strong>Founded:</strong> March 3, 2023</li>
<li><strong>Location:</strong> 2F Kuwano Building, 6-23-4 Jingumae, Shibuya-ku, Tokyo 150-0001</li> <li id="fact_location"><strong>Location:</strong> 2F Kuwano Building, 6-23-4 Jingumae, Shibuya-ku, Tokyo 150-0001</li>
<li><strong>Focus:</strong> FIDO2 Infrastructure · AI Privacy Tooling</li> <li id="fact_focus"><strong>Focus:</strong> FIDO2 Infrastructure · AI Privacy Tooling</li>
<li><strong>Contact:</strong> <a href="mailto:sales@amipro.me">sales@amipro.me</a></li> <li id="fact_contact"><strong>Contact:</strong> <a href="mailto:sales@amipro.me">sales@amipro.me</a></li>
</ul> </ul>
</div> </div>
</article> </article>
@@ -281,8 +476,8 @@
<a href="https://www.amipro.me" target="_blank" class="footer-link fw-bolder">amiPro, LLC</a> <a href="https://www.amipro.me" target="_blank" class="footer-link fw-bolder">amiPro, LLC</a>
</div> </div>
<div> <div>
<a href="fido2_top.html" class="footer-link me-4">FIDO2 Platform</a> <a href="fido2_top.html" class="footer-link me-4" id="footer_fido2">FIDO2 Platform</a>
<a href="contextwizard_top.html" class="footer-link">ContextWizard</a> <a href="contextwizard_top.html" class="footer-link" id="footer_cw">ContextWizard</a>
</div> </div>
</div> </div>
</footer> </footer>

View File

@@ -75,7 +75,7 @@
const i18n_messages = new Map(); const i18n_messages = new Map();
var lang_map = new Map(); var lang_map = new Map();
lang_map.set("en-US", "amiPro - the easiest to integrate Passkeys cloud service"); lang_map.set("en-US", "amiPro - The easiest-to-integrate Passkey cloud service");
lang_map.set("zh-CN", "amiPro - 最易集成的Passkey云服务"); lang_map.set("zh-CN", "amiPro - 最易集成的Passkey云服务");
lang_map.set("ja", "amiPro - 最も簡単に統合できるパスキー・クラウド・サービス"); lang_map.set("ja", "amiPro - 最も簡単に統合できるパスキー・クラウド・サービス");
i18n_messages.set("label_welcome", lang_map); i18n_messages.set("label_welcome", lang_map);
@@ -99,9 +99,9 @@
i18n_messages.set("title_contact_cta", lang_map); i18n_messages.set("title_contact_cta", lang_map);
lang_map = new Map(); lang_map = new Map();
lang_map.set("en-US", "One month free trial<br>(After free registration of the management portal, all functions are free to try for one month)"); lang_map.set("en-US", "Three month free trial<br>(After free registration of the management portal, all functions are free to try for three months)<br>No credit card required.");
lang_map.set("zh-CN", "个月免费试用<br>(免费注册管理门户后,所有功能免费试用个月)"); lang_map.set("zh-CN", "个月免费试用<br>(免费注册管理门户后,所有功能免费试用个月)<br> 无需信用卡");
lang_map.set("ja", "1ヶ月間の無料トライアル<br>(管理ポータルの無料登録後、すべての機能を1ヶ月間無料でお試しいただけます)"); lang_map.set("ja", "3ヶ月間の無料トライアル<br>(管理ポータルの無料登録後、すべての機能を3ヶ月間無料でお試しいただけます)<br> クレジットカードは不要です。");
i18n_messages.set("btn_portal", lang_map); i18n_messages.set("btn_portal", lang_map);
lang_map = new Map(); lang_map = new Map();
@@ -130,11 +130,11 @@
lang_map = new Map(); lang_map = new Map();
lang_map.set("en-US", "Use the amiPro JavaScript SDK to add passkey sign-in to your website's login page. <br>1. Download the amiPro SDK. <br><a href='https://sample.amipro.me/files/dfido2-lib.js' target='_blank'>dfido2-lib.js</a><br><a href='https://sample.amipro.me/files/amipro_utils.js' target='_blank'>amipro_utils.js</a><br>"+ lang_map.set("en-US", "Use the amiPro JavaScript SDK to add passkey sign-in to your website's login page. <br>1. Download the amiPro SDK. <br><a href='https://sample.amipro.me/files/dfido2-lib.js' target='_blank'>dfido2-lib.js</a><br><a href='https://sample.amipro.me/files/amipro_utils.js' target='_blank'>amipro_utils.js</a><br>"+
"2. In the <head> section, import the SDK with script tags specifying src.<br>3. Refer to the window.onload code in the sample site's <head> and add passkey login to your website's login page.<br><a href='https://sample.amipro.me/login.html' target='_blank'>https://sample.amipro.me/login.html</a>"); "2. In the head section, import the SDK with script tags specifying src.<br>3. Refer to the window.onload code in the sample site's head and add passkey login to your website's login page.<br><a href='https://sample.amipro.me/login.html' target='_blank'>https://sample.amipro.me/login.html</a>");
lang_map.set("zh-CN", "使用 amiPro JavaScript SDK 为网站登录页面集成 Passkey 登录。<br>1. 下载 amiPro SDK。<br><a href='https://sample.amipro.me/files/dfido2-lib.js' target='_blank'>dfido2-lib.js</a><br><a href='https://sample.amipro.me/files/amipro_utils.js' target='_blank'>amipro_utils.js</a><br>"+ lang_map.set("zh-CN", "使用 amiPro JavaScript SDK 为网站登录页面集成 Passkey 登录。<br>1. 下载 amiPro SDK。<br><a href='https://sample.amipro.me/files/dfido2-lib.js' target='_blank'>dfido2-lib.js</a><br><a href='https://sample.amipro.me/files/amipro_utils.js' target='_blank'>amipro_utils.js</a><br>"+
"2. 在<head>部分使用带 src 的 script 标签引入 SDK。<br>3. 参考示例站点<head>中 window.onload 周边的代码,将 Passkey 登录集成到网站的登录页面。<br><a href='https://sample.amipro.me/login.html' target='_blank'>https://sample.amipro.me/login.html</a>"); "2. 在head部分使用带 src 的 script 标签引入 SDK。<br>3. 参考示例站点head中 window.onload 周边的代码,将 Passkey 登录集成到网站的登录页面。<br><a href='https://sample.amipro.me/login.html' target='_blank'>https://sample.amipro.me/login.html</a>");
lang_map.set("ja", "amiPro JavaScript SDK を使用して、Web サイトのログインページにパスキー ログインを追加します。<br>1. amiPro SDK をダウンロードします。<br><a href='https://sample.amipro.me/files/dfido2-lib.js' target='_blank'>dfido2-lib.js</a><br><a href='https://sample.amipro.me/files/amipro_utils.js' target='_blank'>amipro_utils.js</a><br>"+ lang_map.set("ja", "amiPro JavaScript SDK を使用して、Web サイトのログインページにパスキー ログインを追加します。<br>1. amiPro SDK をダウンロードします。<br><a href='https://sample.amipro.me/files/dfido2-lib.js' target='_blank'>dfido2-lib.js</a><br><a href='https://sample.amipro.me/files/amipro_utils.js' target='_blank'>amipro_utils.js</a><br>"+
"2. <head> セクションで src を指定した script タグで SDK を読み込みます。<br>3. サンプルサイトの <head> にある window.onload 周辺のコードを参照し、ログインページにパスキーログインを追加してください。<br><a href='https://sample.amipro.me/login.html' target='_blank'>https://sample.amipro.me/login.html</a>"); "2. headセクションで src を指定した script タグで SDK を読み込みます。<br>3. サンプルサイトのheadにある window.onload 周辺のコードを参照し、ログインページにパスキーログインを追加してください。<br><a href='https://sample.amipro.me/login.html' target='_blank'>https://sample.amipro.me/login.html</a>");
i18n_messages.set("info_top_step2", lang_map); i18n_messages.set("info_top_step2", lang_map);
lang_map = new Map(); lang_map = new Map();
@@ -158,7 +158,7 @@
lang_map = new Map(); lang_map = new Map();
lang_map.set("en-US", "There are two methods of session management:<br>Method 1. Use amiPro's validSession API to manage sessions. Refer to the setSessionStatus function in <a href='https://sample.amipro.me/devices.html' target='_blank'>https://sample.amipro.me/devices.html</a>. <br>Method 2: Use your website's original session management, just call amiPro's logoutFido2UserSession function in your website's original session timeout processing."); lang_map.set("en-US", "There are two methods of session management:<br>Method 1. Use amiPro's validSession API to manage sessions. Refer to the setSessionStatus function in <a href='https://sample.amipro.me/devices.html' target='_blank'>https://sample.amipro.me/devices.html</a>. <br>Method 2: Use your website's original session management, just call amiPro's logoutFido2UserSession function in your website's original session timeout processing.");
lang_map.set("zh-CN", "会话管理有两种方式:<br>方式1、使用amiPro的validSession API 管理会话。参考<a href='https://sample.amipro.me/devices.html' target='_blank'>https://sample.amipro.me/devices.html</a>中的setSessionStatus函数。<br>方式2、使用您的网站原有的会话管理只需在您的网站原有的会话超时的处理中调用amiPro的logoutFido2UserSession函数。"); lang_map.set("zh-CN", "会话管理有两种方式:<br>方式1、使用amiPro的validSession API 管理会话。参考<a href='https://sample.amipro.me/devices.html' target='_blank'>https://sample.amipro.me/devices.html</a>中的setSessionStatus函数。<br>方式2、使用您的网站原有的会话管理只需在您的网站原有的会话超时的处理中调用amiPro的logoutFido2UserSession函数。");
lang_map.set("ja", "セッション管理は2つ方法があります:<br>方法 1: amiPro の validSession API を使用してセッションを管理します。<a href='https://sample.amipro.me/devices.html' target='_blank'>https://sample.amipro.me/devices.html</a>にあるsetSessionStatus関数を参考してください。 <br>方法 2: Web サイトの既存のセッション管理を使用します。Web サイトの既存のセッションのタイムアウト処理、 amiPro の logoutFido2UserSession 関数を呼び出すだけで管理出来ます。"); lang_map.set("ja", "セッション管理は2つ方法があります:<br>方法 1: amiPro の validSession API を使用してセッションを管理します。<a href='https://sample.amipro.me/devices.html' target='_blank'>https://sample.amipro.me/devices.html</a>にあるsetSessionStatus関数を参考してください。 <br>方法 2: Web サイトの既存のセッション管理を使用します。Web サイトの既存のセッションのタイムアウト処理の中に、 amiPro の logoutFido2UserSession 関数を呼び出すだけで管理出来ます。");
i18n_messages.set("info_top_step4", lang_map); i18n_messages.set("info_top_step4", lang_map);
lang_map = new Map(); lang_map = new Map();
@@ -168,7 +168,7 @@
i18n_messages.set("btn_step5", lang_map); i18n_messages.set("btn_step5", lang_map);
lang_map = new Map(); lang_map = new Map();
lang_map.set("en-US", "Use your email address to register amiPro management portal for free:<br>1. Please use the PC and other devices you plan to manage amiPro and open the following link with your browser. <br><a href='https://portal.amipro.me/'>https://portal.amipro.me</a><br>2. In the management portal, enter your email address and click the [Create a new account or add a new device] link. <br>3. Use the same browser to open the link in the email you received and add the device<br>4. Click [Go to top page] and use the added device [Passkey Login].<br><img src='files/portal_reg_jp.jpg' width=50%>"); lang_map.set("en-US", "Use your email address to register amiPro management portal for free:<br>1. Please use the PC and other devices you plan to manage amiPro and open the following link with your browser. <br><a href='https://portal.amipro.me/'>https://portal.amipro.me</a><br>2. In the management portal, enter your email address and click the [Create Account/Add new device] link. <br>3. Use the same browser to open the link in the email you received and add the device<br>4. Click [Go to top page] and use the added device [Passkey Login].<br><img src='files/portal_reg_en.jpg' width=50%>");
lang_map.set("zh-CN", "使用您的邮件地址免费注册amiPro管理门户: <br>1、请用您准备管理amiPro的PC等设备及其浏览器打开以下链接。<br><a href='https://portal.amipro.me/'>https://portal.amipro.me</a><br>2、在管理门户中输入您的邮件地址并点击【创建新账号或添加新设备】链接。<br>3、使用相同的浏览器打开您收到的邮件中的链接并添加设备<br>4、点击【去首页】使用添加的设备【Passkey登录】进入管理门户。<br><img src='files/portal_reg_jp.jpg' width=50%>"); lang_map.set("zh-CN", "使用您的邮件地址免费注册amiPro管理门户: <br>1、请用您准备管理amiPro的PC等设备及其浏览器打开以下链接。<br><a href='https://portal.amipro.me/'>https://portal.amipro.me</a><br>2、在管理门户中输入您的邮件地址并点击【创建新账号或添加新设备】链接。<br>3、使用相同的浏览器打开您收到的邮件中的链接并添加设备<br>4、点击【去首页】使用添加的设备【Passkey登录】进入管理门户。<br><img src='files/portal_reg_jp.jpg' width=50%>");
lang_map.set("ja", "電子メール アドレスを使用して、amiPro 管理ポータルに無料でサインアップします: <br>1. amiPro を管理する予定の PC およびその他のデバイスを使用し、ブラウザで次のリンクを開いてください。 <br><a href='https://portal.amipro.me/'>https://portal.amipro.me</a><br>2. 管理ポータルで、電子メール アドレスを入力し、[アカウントを作成・新しいデバイスを追加] リンクをクリックしてください。 <br>3. 受信した電子メールにあるURLを同じブラウザで開いてデバイスを追加してください。<br>4. [トップページへ] をクリックして、登録したデバイスで[パスキーでログイン]でログインして、トップページへ。<br><img src='files/portal_reg_jp.jpg' width=50%>"); lang_map.set("ja", "電子メール アドレスを使用して、amiPro 管理ポータルに無料でサインアップします: <br>1. amiPro を管理する予定の PC およびその他のデバイスを使用し、ブラウザで次のリンクを開いてください。 <br><a href='https://portal.amipro.me/'>https://portal.amipro.me</a><br>2. 管理ポータルで、電子メール アドレスを入力し、[アカウントを作成・新しいデバイスを追加] リンクをクリックしてください。 <br>3. 受信した電子メールにあるURLを同じブラウザで開いてデバイスを追加してください。<br>4. [トップページへ] をクリックして、登録したデバイスで[パスキーでログイン]でログインして、トップページへ。<br><img src='files/portal_reg_jp.jpg' width=50%>");
i18n_messages.set("info_top_step5", lang_map); i18n_messages.set("info_top_step5", lang_map);
@@ -180,11 +180,41 @@
i18n_messages.set("btn_step6", lang_map); i18n_messages.set("btn_step6", lang_map);
lang_map = new Map(); lang_map = new Map();
lang_map.set("en-US", "Click [Settings] on the Portal left menu, and then click [Add] on the right page. Enter your website domain name (the port number cannot be included), and note that your website needs to use the HTTPS protocol. <br>【Device registration page】is the link to the device management page built by step 3.<br>Click [Submit] to complete the settings.<br><img src='files/portal_conf_jp.jpg' width=80%>"); lang_map.set("en-US", "Click [Settings] on the Portal left menu, and then click [Add] on the right page. Enter your website domain name (the port number cannot be included), and note that your website needs to use the HTTPS protocol. <br>【Device registration page】is the link to the device management page built by step 3.<br>Click [Submit] to complete the settings.<br><img src='files/portal_conf_en.jpg' width=80%>");
lang_map.set("zh-CN", "点击管理门户左侧菜单中的【设定】之后点击右侧页面中的【添加】。输入您的网站域名不能包含端口号注意您的网站需要使用HTTPS协议。<br>【设备注册页面】为步骤3构建的设备管理页面的链接。<br>最后需要点击【提 交】完成设定。<br><img src='files/portal_conf_jp.jpg' width=80%>"); lang_map.set("zh-CN", "点击管理门户左侧菜单中的【设定】之后点击右侧页面中的【添加】。输入您的网站域名不能包含端口号注意您的网站需要使用HTTPS协议。<br>【设备注册页面】为步骤3构建的设备管理页面的链接。<br>最后需要点击【提 交】完成设定。<br><img src='files/portal_conf_jp.jpg' width=80%>");
lang_map.set("ja", "管理ポータル左メニューの[設定]をクリックし、右ページの[追加]をクリックしてください。 Web サイトのドメイン名を入力します (ポート番号は含めることはできません)。Web サイトでは HTTPS プロトコルを使用する必要があることに注意してください。 <br>【デバイス登録ページ】は手順3で作成したデバイス管理ページへのリンクです。<br>最後は送信をクリックして設定完了<br><img src='files/portal_conf_jp.jpg' width=80%>"); lang_map.set("ja", "管理ポータル左メニューの[設定]をクリックし、右ページの[追加]をクリックしてください。 Web サイトのドメイン名を入力します (ポート番号は含めることはできません)。Web サイトでは HTTPS プロトコルを使用する必要があることに注意してください。 <br>【デバイス登録ページ】は手順3で作成したデバイス管理ページへのリンクです。<br>最後は送信をクリックして設定完了<br><img src='files/portal_conf_jp.jpg' width=80%>");
i18n_messages.set("info_top_step6", lang_map); i18n_messages.set("info_top_step6", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Ship Passkeys in 30 Minutes");
lang_map.set("zh-CN", "在30分钟内部署Passkey");
lang_map.set("ja", "30分でパスキーを導入");
i18n_messages.set("hero_title", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Follow the production-proven playbook: explore the sample site, drop in the JavaScript SDK, fine-tune device management, and configure the amiPro portal for your domains.");
lang_map.set("zh-CN", "遵循已在生产中验证的流程:查看示例站点,嵌入 JavaScript SDK微调设备管理并为您的域配置 amiPro 门户。");
lang_map.set("ja", "本番で実績のある手順に従ってください: サンプルサイトを確認し、JavaScript SDK を導入し、デバイス管理を調整し、amiPro ポータルをドメインに対して設定します。");
i18n_messages.set("hero_lead", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Browser + App SDK");
lang_map.set("zh-CN", "浏览器 + 应用 SDK");
lang_map.set("ja", "ブラウザ + アプリ SDK");
i18n_messages.set("hero_chip_1", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Recovery-ready");
lang_map.set("zh-CN", "支持恢复");
lang_map.set("ja", "リカバリ対応");
i18n_messages.set("hero_chip_2", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Session control");
lang_map.set("zh-CN", "会话控制");
lang_map.set("ja", "セッション制御");
i18n_messages.set("hero_chip_3", lang_map);
window.onload = async function() { window.onload = async function() {
setI18NText(i18n_messages) setI18NText(i18n_messages)
initRevealAnimations() initRevealAnimations()
@@ -229,15 +259,15 @@
<section class="hero reveal" style="margin: 24px;"> <section class="hero reveal" style="margin: 24px;">
<div class="hero__text" data-animate> <div class="hero__text" data-animate>
<span class="hero__eyebrow" id="label_integartion_title">Integration</span> <span class="hero__eyebrow" id="label_integartion_title">Integration</span>
<h1 class="hero__title">Launch Passkey journeys in six guided steps</h1> <h1 class="hero__title" id="hero_title">Launch Passkey journeys in six guided steps</h1>
<p class="hero__lead"> <p class="hero__lead" id="hero_lead">
Follow the production-proven playbook: explore the sample site, drop in the JavaScript SDK, Follow the production-proven playbook: explore the sample site, drop in the JavaScript SDK,
fine-tune device management, and configure the amiPro portal for your domains. fine-tune device management, and configure the amiPro portal for your domains.
</p> </p>
<div class="hero__chips"> <div class="hero__chips">
<span class="hero-chip">Browser + App SDK</span> <span class="hero-chip" id="hero_chip_1">Browser + App SDK</span>
<span class="hero-chip">Recovery-ready</span> <span class="hero-chip" id="hero_chip_2">Recovery-ready</span>
<span class="hero-chip">Session control</span> <span class="hero-chip" id="hero_chip_3">Session control</span>
</div> </div>
<div style="margin-top: 2rem; display: flex; gap: 0.8rem; flex-wrap: wrap;"> <div style="margin-top: 2rem; display: flex; gap: 0.8rem; flex-wrap: wrap;">
<a href="https://portal.amipro.me" target="_blank" class="btn btn-primary" id="btn_portal">Portal</a> <a href="https://portal.amipro.me" target="_blank" class="btn btn-primary" id="btn_portal">Portal</a>

View File

@@ -75,7 +75,7 @@
const i18n_messages = new Map(); const i18n_messages = new Map();
var lang_map = new Map(); var lang_map = new Map();
lang_map.set("en-US", "amiPro - the easiest to integrate Passkeys cloud service"); lang_map.set("en-US", "amiPro - The easiest-to-integrate Passkey cloud service");
lang_map.set("zh-CN", "amiPro - 最易集成的Passkey云服务"); lang_map.set("zh-CN", "amiPro - 最易集成的Passkey云服务");
lang_map.set("ja", "amiPro - 最も簡単に統合できるパスキー・クラウド・サービス"); lang_map.set("ja", "amiPro - 最も簡単に統合できるパスキー・クラウド・サービス");
i18n_messages.set("label_welcome", lang_map); i18n_messages.set("label_welcome", lang_map);
@@ -167,6 +167,42 @@
lang_map.set("ja", "業界大手のリサーチより、パスキーは:<br>* フィッシングや認証情報の盗難の減少:<b>99.9</b>%<br>* 3 年後のROI:<b>203</b>%<br>* 3 年目のヘルプデスク チケットの削減:<b>75</b>%"); lang_map.set("ja", "業界大手のリサーチより、パスキーは:<br>* フィッシングや認証情報の盗難の減少:<b>99.9</b>%<br>* 3 年後のROI:<b>203</b>%<br>* 3 年目のヘルプデスク チケットの削減:<b>75</b>%");
i18n_messages.set("info_4", lang_map); i18n_messages.set("info_4", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Passkey impact");
lang_map.set("zh-CN", "Passkey 影响");
lang_map.set("ja", "Passkey の影響");
i18n_messages.set("hero_eyebrow", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Security your customers can feel");
lang_map.set("zh-CN", "客户能感受到的安全性");
lang_map.set("ja", "顧客が実感できるセキュリティ");
i18n_messages.set("hero_title", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Reduce phishing to near zero, lift conversion, and slash support load with amiPro's enterprise-grade Passkey platform.");
lang_map.set("zh-CN", "将钓鱼攻击降至接近零,提高转化率,并通过 amiPro 企业级 Passkey 平台大幅减少支持负担。");
lang_map.set("ja", "amiPro のエンタープライズ向けパスキープラットフォームでフィッシングをほぼゼロに抑え、コンバージョンを高め、サポート負荷を削減します。");
i18n_messages.set("hero_lead", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Higher trust");
lang_map.set("zh-CN", "更高的信任");
lang_map.set("ja", "より高い信頼");
i18n_messages.set("hero_chip_1", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Happier customers");
lang_map.set("zh-CN", "更满意的客户");
lang_map.set("ja", "顧客満足度の向上");
i18n_messages.set("hero_chip_2", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Lower costs");
lang_map.set("zh-CN", "更低的成本");
lang_map.set("ja", "コスト削減");
i18n_messages.set("hero_chip_3", lang_map);
window.onload = async function() { window.onload = async function() {
setI18NText(i18n_messages) setI18NText(i18n_messages)
@@ -214,19 +250,19 @@
<div style="margin: 24px;"> <div style="margin: 24px;">
<section class="hero reveal"> <section class="hero reveal">
<div class="hero__text" data-animate> <div class="hero__text" data-animate>
<span class="hero__eyebrow">Passkey impact</span> <span class="hero__eyebrow" id="hero_eyebrow">Passkey impact</span>
<h1 class="hero__title">Security your customers can feel</h1> <h1 class="hero__title" id="hero_title">Security your customers can feel</h1>
<p class="hero__lead"> <p class="hero__lead" id="hero_lead">
Reduce phishing to near zero, lift conversion, and slash support load with amiPro's Reduce phishing to near zero, lift conversion, and slash support load with amiPro's
enterprise-grade Passkey platform. enterprise-grade Passkey platform.
</p> </p>
<div class="hero__chips"> <div class="hero__chips">
<span class="hero-chip">Higher trust</span> <span class="hero-chip" id="hero_chip_1">Higher trust</span>
<span class="hero-chip">Happier customers</span> <span class="hero-chip" id="hero_chip_2">Happier customers</span>
<span class="hero-chip">Lower costs</span> <span class="hero-chip" id="hero_chip_3">Lower costs</span>
</div> </div>
<div style="margin-top: 2rem; display: flex; gap: 0.8rem; flex-wrap: wrap;"> <div style="margin-top: 2rem; display: flex; gap: 0.8rem; flex-wrap: wrap;">
<a href="https://portal.amipro.me" target="_blank" class="btn btn-primary">Portal</a> <a href="https://portal.amipro.me" target="_blank" class="btn btn-primary" id="btn_portal">Portal</a>
<a href="mailto:sales@amipro.me?subject=passkey%20benefits" class="btn btn-outline-info" id="title_contact_cta">Contact</a> <a href="mailto:sales@amipro.me?subject=passkey%20benefits" class="btn btn-outline-info" id="title_contact_cta">Contact</a>
</div> </div>
</div> </div>

View File

@@ -75,7 +75,7 @@
const i18n_messages = new Map(); const i18n_messages = new Map();
var lang_map = new Map(); var lang_map = new Map();
lang_map.set("en-US", "amiPro - the easiest to integrate Passkeys cloud service"); lang_map.set("en-US", "amiPro - The easiest-to-integrate Passkey cloud service");
lang_map.set("zh-CN", "amiPro - 最易集成的Passkey云服务"); lang_map.set("zh-CN", "amiPro - 最易集成的Passkey云服务");
lang_map.set("ja", "amiPro - 最も簡単に統合できるパスキー・クラウド・サービス"); lang_map.set("ja", "amiPro - 最も簡単に統合できるパスキー・クラウド・サービス");
i18n_messages.set("label_welcome", lang_map); i18n_messages.set("label_welcome", lang_map);
@@ -146,6 +146,42 @@
lang_map.set("ja", "A:モバイルデバイスブラウザ<br>B:コンピュータブラウザ<br>C:モバイルデバイスアプリ(AppにamiPro SDKを埋め込む)<br>D:あなたのウェブサイト E:amiProクラウド・サービス<br><br>1、ブラウザはあなたのウェブサイトからamiPro JavaScript SDKをダウンロードします(Appはこのステップは必要ありません)<br>2、ブラウザとアプリはSDKを介してamiProクラウド・サービスを呼び出して認証します<br>3、amiProは認証結果をあなたのサーバーに返します<br><img src='files/amipro_sys.jpg' style='width: 80%;'>"); lang_map.set("ja", "A:モバイルデバイスブラウザ<br>B:コンピュータブラウザ<br>C:モバイルデバイスアプリ(AppにamiPro SDKを埋め込む)<br>D:あなたのウェブサイト E:amiProクラウド・サービス<br><br>1、ブラウザはあなたのウェブサイトからamiPro JavaScript SDKをダウンロードします(Appはこのステップは必要ありません)<br>2、ブラウザとアプリはSDKを介してamiProクラウド・サービスを呼び出して認証します<br>3、amiProは認証結果をあなたのサーバーに返します<br><img src='files/amipro_sys.jpg' style='width: 80%;'>");
i18n_messages.set("info_4", lang_map); i18n_messages.set("info_4", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Passkey essentials");
lang_map.set("zh-CN", "Passkey essentials");
lang_map.set("ja", "Passkey essentials");
i18n_messages.set("hero_eyebrow", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Everything teams need to understand Passkeys");
lang_map.set("zh-CN", "团队理解 Passkey 所需的一切");
lang_map.set("ja", "チームがパスキーを理解するために必要なすべて");
i18n_messages.set("hero_title", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Share the fundamentals with product, security, and CX partners using this at-a-glance passkey briefing powered by amiPro research.");
lang_map.set("zh-CN", "使用由 amiPro 研究提供的一览式 Passkey 简报,与产品、安全和客户体验伙伴共享基础知识。");
lang_map.set("ja", "amiPro のリサーチによる一目でわかるパスキー解説を使用して、プロダクト、セキュリティ、CX のパートナーと基礎を共有します。");
i18n_messages.set("hero_lead", lang_map);
lang_map = new Map();
lang_map.set("en-US", "FIDO2 ready");
lang_map.set("zh-CN", "FIDO2 准备就绪");
lang_map.set("ja", "FIDO2 対応");
i18n_messages.set("hero_chip_1", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Phishing resistant");
lang_map.set("zh-CN", "抵御钓鱼");
lang_map.set("ja", "フィッシング耐性");
i18n_messages.set("hero_chip_2", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Device agnostic");
lang_map.set("zh-CN", "设备无关");
lang_map.set("ja", "デバイス非依存");
i18n_messages.set("hero_chip_3", lang_map);
window.onload = async function() { window.onload = async function() {
setI18NText(i18n_messages) setI18NText(i18n_messages)
initRevealAnimations() initRevealAnimations()
@@ -190,19 +226,19 @@
<div style="margin: 24px;"> <div style="margin: 24px;">
<section class="hero reveal"> <section class="hero reveal">
<div class="hero__text" data-animate> <div class="hero__text" data-animate>
<span class="hero__eyebrow">Passkey essentials</span> <span class="hero__eyebrow" id="hero_eyebrow">Passkey essentials</span>
<h1 class="hero__title">Everything teams need to understand Passkeys</h1> <h1 class="hero__title" id="hero_title">Everything teams need to understand Passkeys</h1>
<p class="hero__lead"> <p class="hero__lead" id="hero_lead">
Share the fundamentals with product, security, and CX partners using this at-a-glance passkey Share the fundamentals with product, security, and CX partners using this at-a-glance passkey
briefing powered by amiPro research. briefing powered by amiPro research.
</p> </p>
<div class="hero__chips"> <div class="hero__chips">
<span class="hero-chip">FIDO2 ready</span> <span class="hero-chip" id="hero_chip_1">FIDO2 ready</span>
<span class="hero-chip">Phishing resistant</span> <span class="hero-chip" id="hero_chip_2">Phishing resistant</span>
<span class="hero-chip">Device agnostic</span> <span class="hero-chip" id="hero_chip_3">Device agnostic</span>
</div> </div>
<div style="margin-top: 2rem; display: flex; gap: 0.8rem; flex-wrap: wrap;"> <div style="margin-top: 2rem; display: flex; gap: 0.8rem; flex-wrap: wrap;">
<a href="merits.html" class="btn btn-outline-info">See benefits</a> <a href="merits.html" class="btn btn-outline-info" id="label_merits">See benefits</a>
<a href="mailto:sales@amipro.me?subject=Passkey%20questions" class="btn btn-primary" id="title_contact_cta">Contact</a> <a href="mailto:sales@amipro.me?subject=Passkey%20questions" class="btn btn-primary" id="title_contact_cta">Contact</a>
</div> </div>
</div> </div>
@@ -231,7 +267,6 @@
<section class="info-panel" data-animate style="margin-top: 3rem;"> <section class="info-panel" data-animate style="margin-top: 3rem;">
<h4 id="info_title_4">define</h4> <h4 id="info_title_4">define</h4>
<p id="info_4">define</p> <p id="info_4">define</p>
<img src="files/amipro_sys.jpg" alt="amiPro architecture" style="width: 100%; border-radius: 18px; margin-top: 1rem;">
</section> </section>
</div> </div>
<!-- / Content --> <!-- / Content -->