posimai-store/index.html

616 lines
19 KiB
HTML
Raw Normal View History

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
<meta name="description" content="Posimai — 日々の暮らしに、静かに寄り添うアプリ">
<meta name="theme-color" content="#0D0D0D">
<meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
<link rel="manifest" href="/manifest.json">
<link rel="icon" type="image/png" href="/logo.png">
<link rel="apple-touch-icon" href="/logo.png">
<title>Posimai Store</title>
<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=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
<script src="https://unpkg.com/lucide@0.344.0/dist/umd/lucide.min.js" integrity="sha384-tTkFttkBclaU1cloKwOi9xk3pbao3VZxTjLNBt8iFABWDBQibbAbWpVmO28zMuxq" crossorigin="anonymous"></script>
<style>
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
--bg: #0D0D0D;
--surface: #161616;
--surface2: #1e1e1e;
--border: rgba(255,255,255,0.08);
--border2: rgba(255,255,255,0.04);
--text: #F3F4F6;
--text2: #9CA3AF;
--text3: #6B7280;
--accent: #6EE7B7;
--accent-dim: rgba(110,231,183,0.08);
--accent-border: rgba(110,231,183,0.2);
--radius: 16px;
--radius-sm: 10px;
}
html { scroll-behavior: smooth; }
body {
font-family: 'Geist', -apple-system, sans-serif;
background: var(--bg);
color: var(--text);
font-size: 15px;
line-height: 1.7;
-webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
button { cursor: pointer; border: none; background: none; font-family: inherit; }
/* ── Nav ── */
nav {
position: sticky;
top: 0;
z-index: 100;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 24px;
height: 56px;
background: rgba(13,13,13,0.85);
backdrop-filter: blur(16px);
border-bottom: 1px solid var(--border);
}
.nav-brand {
font-size: 15px;
font-weight: 600;
letter-spacing: -0.02em;
display: flex;
align-items: center;
gap: 8px;
}
.nav-brand span {
color: var(--accent);
}
.nav-links {
display: flex;
align-items: center;
gap: 24px;
}
.nav-links a {
font-size: 13px;
color: var(--text2);
transition: color 0.15s;
}
.nav-links a:hover { color: var(--text); }
/* ── Hero ── */
.hero {
max-width: 720px;
margin: 0 auto;
padding: 96px 24px 80px;
text-align: center;
}
.hero-eyebrow {
display: inline-flex;
align-items: center;
gap: 6px;
font-size: 11px;
font-weight: 600;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--accent);
background: var(--accent-dim);
border: 1px solid var(--accent-border);
padding: 5px 12px;
border-radius: 100px;
margin-bottom: 28px;
}
.hero h1 {
font-size: clamp(32px, 5vw, 52px);
font-weight: 400;
letter-spacing: -0.03em;
line-height: 1.15;
color: var(--text);
margin-bottom: 20px;
}
.hero h1 em {
font-style: italic;
color: var(--accent);
}
.hero p {
font-size: 16px;
color: var(--text2);
max-width: 480px;
margin: 0 auto 40px;
line-height: 1.75;
}
/* ── Section ── */
.section {
max-width: 960px;
margin: 0 auto;
padding: 0 24px 80px;
}
.section-label {
font-size: 11px;
font-weight: 600;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--text3);
margin-bottom: 32px;
padding-bottom: 12px;
border-bottom: 1px solid var(--border);
}
/* ── App Card ── */
.app-card {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 0;
background: var(--surface);
border: 1px solid var(--border);
border-radius: var(--radius);
overflow: hidden;
margin-bottom: 16px;
}
@media (max-width: 640px) {
.app-card { grid-template-columns: 1fr; }
}
.app-card-body {
padding: 40px;
display: flex;
flex-direction: column;
gap: 20px;
}
.app-card-meta {
display: flex;
align-items: center;
gap: 10px;
}
.app-icon {
width: 44px;
height: 44px;
border-radius: 12px;
background: var(--accent-dim);
border: 1px solid var(--accent-border);
display: flex;
align-items: center;
justify-content: center;
color: var(--accent);
flex-shrink: 0;
}
.app-name-group {
display: flex;
flex-direction: column;
gap: 2px;
}
.app-name {
font-size: 16px;
font-weight: 600;
letter-spacing: -0.02em;
}
.app-platform {
font-size: 11px;
color: var(--text3);
letter-spacing: 0.06em;
}
.app-desc {
font-size: 14px;
color: var(--text2);
line-height: 1.75;
flex: 1;
}
.app-features {
list-style: none;
display: flex;
flex-direction: column;
gap: 8px;
}
.app-features li {
font-size: 13px;
color: var(--text2);
display: flex;
align-items: center;
gap: 8px;
}
.app-features li svg {
color: var(--accent);
flex-shrink: 0;
}
.app-pricing {
display: flex;
flex-direction: column;
gap: 8px;
padding: 32px 40px;
background: var(--surface2);
justify-content: center;
border-left: 1px solid var(--border);
}
@media (max-width: 640px) {
.app-pricing { border-left: none; border-top: 1px solid var(--border); }
}
.tier {
display: flex;
flex-direction: column;
gap: 12px;
padding: 20px;
border-radius: var(--radius-sm);
border: 1px solid var(--border);
background: var(--surface);
}
.tier.featured {
border-color: var(--accent-border);
background: var(--accent-dim);
}
.tier-name {
font-size: 11px;
font-weight: 600;
letter-spacing: 0.1em;
text-transform: uppercase;
color: var(--text3);
}
.tier.featured .tier-name { color: var(--accent); }
.tier-price {
font-size: 28px;
font-weight: 400;
letter-spacing: -0.03em;
line-height: 1;
}
.tier-price sup {
font-size: 14px;
font-weight: 500;
vertical-align: super;
margin-right: 2px;
}
.tier-desc {
font-size: 12px;
color: var(--text3);
}
.btn {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 6px;
padding: 10px 18px;
border-radius: 8px;
font-size: 13px;
font-weight: 500;
transition: all 0.15s;
letter-spacing: -0.01em;
}
.btn-primary {
background: var(--accent);
color: #0D0D0D;
}
.btn-primary:hover { opacity: 0.88; }
.btn-ghost {
border: 1px solid var(--border);
color: var(--text2);
}
.btn-ghost:hover { border-color: rgba(255,255,255,0.2); color: var(--text); }
.coming-soon-badge {
display: inline-flex;
align-items: center;
gap: 5px;
font-size: 11px;
font-weight: 500;
color: var(--text3);
background: var(--surface2);
border: 1px solid var(--border);
padding: 4px 10px;
border-radius: 100px;
}
/* ── App grid (coming soon) ── */
.app-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
gap: 12px;
}
.app-mini-card {
padding: 24px;
background: var(--surface);
border: 1px solid var(--border);
border-radius: var(--radius-sm);
display: flex;
flex-direction: column;
gap: 12px;
}
.app-mini-card .app-icon {
width: 36px;
height: 36px;
}
.app-mini-name { font-size: 14px; font-weight: 500; }
.app-mini-desc { font-size: 12px; color: var(--text3); line-height: 1.6; }
/* ── Philosophy ── */
.philosophy {
max-width: 600px;
margin: 0 auto;
padding: 0 24px 96px;
text-align: center;
}
.philosophy p {
font-size: 18px;
font-weight: 400;
line-height: 1.9;
color: var(--text2);
letter-spacing: -0.01em;
}
.philosophy p em {
color: var(--text);
font-style: italic;
}
/* ── Footer ── */
footer {
border-top: 1px solid var(--border);
padding: 32px 24px;
}
.footer-inner {
max-width: 960px;
margin: 0 auto;
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
gap: 16px;
}
.footer-copy {
font-size: 12px;
color: var(--text3);
}
.footer-links {
display: flex;
gap: 20px;
}
.footer-links a {
font-size: 12px;
color: var(--text3);
transition: color 0.15s;
}
.footer-links a:hover { color: var(--text2); }
/* ── Divider ── */
.divider {
max-width: 960px;
margin: 0 auto 80px;
padding: 0 24px;
border-top: 1px solid var(--border);
}
</style>
</head>
<body>
<!-- Nav -->
<nav>
<div class="nav-brand">
Posimai <span>Store</span>
</div>
<div class="nav-links">
<a href="#apps">Apps</a>
<a href="https://posimai.soar-enrich.com" target="_blank" rel="noopener">Dashboard</a>
</div>
</nav>
<!-- Hero -->
<section class="hero">
<div class="hero-eyebrow">
<i data-lucide="sparkles" style="width:12px;height:12px;"></i>
Indie apps, thoughtfully made
</div>
<h1>日々の暮らしに、<br><em>静かに寄り添う</em>アプリ。</h1>
<p>広告なし。余計な機能なし。あなたのデータはあなたのもの。<br>使い込むほどに、自分だけの記録が積み重なっていく。</p>
</section>
<!-- Featured app -->
<section class="section">
<div class="section-label">Featured</div>
<div class="app-card">
<div class="app-card-body">
<div class="app-card-meta">
<div class="app-icon">
<i data-lucide="wine" style="width:20px;height:20px;"></i>
</div>
<div class="app-name-group">
<div class="app-name">Ponshu Room</div>
<div class="app-platform">iOS &amp; Android</div>
</div>
</div>
<p class="app-desc">
飲んだ日本酒を記録して、自分だけの酒帳を育てるアプリ。
AIが味のプロファイルを解析し、あなたの好みを学習する。
地図で産地を辿り、季節ごとの変化を楽しめる。
</p>
<ul class="app-features">
<li>
<i data-lucide="check" style="width:14px;height:14px;"></i>
飲んだ日本酒の記録・評価・メモ
</li>
<li>
<i data-lucide="check" style="width:14px;height:14px;"></i>
AI による味のレーダーチャート分析
</li>
<li>
<i data-lucide="check" style="width:14px;height:14px;"></i>
都道府県マップで産地を可視化
</li>
<li>
<i data-lucide="check" style="width:14px;height:14px;"></i>
広告なし・サブスク不要
</li>
</ul>
</div>
<div class="app-pricing">
<div class="tier">
<div class="tier-name">Free</div>
<div class="tier-price">¥0</div>
<div class="tier-desc">記録10件まで。機能を試すのに十分。</div>
<a href="#" class="btn btn-ghost" id="freeBtn">
<i data-lucide="download" style="width:14px;height:14px;"></i>
App Store で入手
</a>
</div>
<div class="tier featured">
<div class="tier-name">Full Access</div>
<div class="tier-price"><sup>¥</sup>500</div>
<div class="tier-desc">記録無制限・AI分析・全機能。買い切り。</div>
<a href="https://buy.stripe.com/test_9B67sEbN3fowfMW4jwenS00" class="btn btn-primary" id="buyBtn" target="_blank" rel="noopener">
<i data-lucide="credit-card" style="width:14px;height:14px;"></i>
購入する
</a>
</div>
</div>
</div>
</section>
<div class="divider"></div>
<!-- Coming soon -->
<section class="section">
<div class="section-label">Coming Soon</div>
<div class="app-grid">
<div class="app-mini-card">
<div class="app-icon">
<i data-lucide="brain" style="width:16px;height:16px;"></i>
</div>
<div class="app-mini-name">Posimai Brain</div>
<div class="app-mini-desc">AIが自動でキュレーションするパーソナル記事管理</div>
<span class="coming-soon-badge">
<i data-lucide="clock" style="width:10px;height:10px;"></i>
準備中
</span>
</div>
<div class="app-mini-card">
<div class="app-icon">
<i data-lucide="check-square" style="width:16px;height:16px;"></i>
</div>
<div class="app-mini-name">Posimai Habit</div>
<div class="app-mini-desc">シンプルな習慣トラッカー。続けることに集中できる設計</div>
<span class="coming-soon-badge">
<i data-lucide="clock" style="width:10px;height:10px;"></i>
準備中
</span>
</div>
<div class="app-mini-card">
<div class="app-icon">
<i data-lucide="activity" style="width:16px;height:16px;"></i>
</div>
<div class="app-mini-name">Posimai Pulse</div>
<div class="app-mini-desc">気分・エネルギー・集中度を毎日記録して傾向を把握</div>
<span class="coming-soon-badge">
<i data-lucide="clock" style="width:10px;height:10px;"></i>
準備中
</span>
</div>
</div>
</section>
<div class="divider"></div>
<!-- Philosophy -->
<section class="philosophy">
<p>
Posimaiのアプリは、<em>余計なものを足さない</em>ことを設計の起点にしています。<br>
通知でユーザーを呼び戻す仕掛けも、データを収益化する仕組みも、持ちません。<br>
ただ、使いたいときに使えて、記録が残る。それだけを。
</p>
</section>
<!-- Footer -->
<footer>
<div class="footer-inner">
<div class="footer-copy">
&copy; 2026 Posimai
</div>
<div class="footer-links">
<a href="https://posimai.soar-enrich.com/legal/privacy" target="_blank" rel="noopener">プライバシーポリシー</a>
<a href="https://posimai.soar-enrich.com/legal/terms" target="_blank" rel="noopener">利用規約</a>
<a href="https://posimai.soar-enrich.com/legal/tokusho" target="_blank" rel="noopener">特定商取引法</a>
</div>
</div>
</footer>
<script>
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/sw.js').catch(() => {});
}
if (window.lucide) lucide.createIcons();
</script>
<!-- Dev toggle — visible only when ?dev=1 -->
<script>
(function(){
if(!location.search.includes('dev=1')) return;
const wrap = document.createElement('div');
wrap.style.cssText = 'position:fixed;bottom:20px;right:20px;z-index:9999;display:flex;gap:6px;';
['A:/', 'B:/index-b.html', 'C:/index-c.html'].forEach(function(s){
const [label, href] = s.split(':');
const a = document.createElement('a');
a.href = href + '?dev=1';
a.textContent = label;
const isCurrent = label === 'A';
a.style.cssText = 'font-family:monospace;font-size:11px;padding:6px 12px;border-radius:6px;text-decoration:none;transition:all 0.15s;' + (isCurrent ? 'background:rgba(0,0,0,0.85);color:#6EE7B7;border:1px solid #6EE7B7;backdrop-filter:blur(8px);' : 'background:rgba(0,0,0,0.6);color:#9CA3AF;border:1px solid rgba(156,163,175,0.4);backdrop-filter:blur(8px);');
wrap.appendChild(a);
});
document.body.appendChild(wrap);
})();
</script>
</body>
</html>