kalei/initial mockups/screens/onboarding/09-welcome-complete.html

314 lines
13 KiB
HTML
Raw Normal View History

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=390, initial-scale=1">
<title>Kalei — You're Ready</title>
<link rel="stylesheet" href="../../assets/design-system.css">
<style>
.screen-content.centered {
padding: var(--space-8) var(--space-6);
position: relative;
overflow: hidden;
}
.bg-shards {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
z-index: 0;
}
.kalei-pattern {
position: relative;
width: 180px;
height: 180px;
display: flex;
align-items: center;
justify-content: center;
margin-bottom: var(--space-8);
z-index: 1;
}
.pattern-aura {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 300px;
height: 300px;
border-radius: 50%;
background: radial-gradient(circle, rgba(139,92,246,0.18) 0%, rgba(59,130,246,0.07) 40%, rgba(16,185,129,0.04) 60%, transparent 70%);
filter: blur(55px);
animation: breathing 6s ease-in-out infinite;
pointer-events: none;
z-index: 0;
}
.pattern-svg {
position: relative;
z-index: 1;
}
/* Burst rings */
.burst-container {
position: absolute;
top: 42%;
left: 50%;
pointer-events: none;
z-index: 0;
}
.burst-ring {
position: absolute;
border-radius: 50%;
border: 1px solid;
transform: translate(-50%, -50%);
animation: burstExpand 2.4s ease-out forwards;
}
.burst-ring:nth-child(1) { border-color: rgba(139,92,246,0.4); animation-delay: 0s; }
.burst-ring:nth-child(2) { border-color: rgba(59,130,246,0.3); animation-delay: 0.35s; }
.burst-ring:nth-child(3) { border-color: rgba(16,185,129,0.2); animation-delay: 0.7s; }
@keyframes burstExpand {
0% { width: 40px; height: 40px; opacity: 1; }
100% { width: 280px; height: 280px; opacity: 0; }
}
.setup-stats {
display: flex;
gap: var(--space-3);
margin-bottom: var(--space-10);
z-index: 1;
width: 100%;
}
.setup-stat {
flex: 1;
background: rgba(139,92,246,0.08);
border: 1px solid rgba(139,92,246,0.2);
border-radius: var(--radius-lg);
padding: var(--space-3);
text-align: center;
}
.setup-stat-icon {
display: flex;
justify-content: center;
margin-bottom: var(--space-1);
}
.cta-area {
width: 100%;
z-index: 1;
}
.btn-enter {
display: flex;
align-items: center;
justify-content: center;
gap: var(--space-3);
height: 56px;
width: 100%;
background: var(--amethyst);
color: var(--pure-light);
font-family: var(--font-primary);
font-size: 17px;
font-weight: 700;
border-radius: var(--radius-xl);
text-decoration: none;
box-shadow: 0 0 24px rgba(139,92,246,0.4);
transition: all 0.2s ease-out;
animation: breathing 6s ease-in-out infinite;
}
.btn-enter:hover {
background: var(--amethyst-light);
box-shadow: 0 0 40px rgba(139,92,246,0.6);
}
</style>
</head>
<body>
<div class="device-frame">
<div class="status-bar">
<span class="time">9:41</span>
<div class="icons">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="7" width="2.5" height="5" rx="0.5" fill="#E2E8F0" opacity="0.4"/><rect x="4.5" y="5" width="2.5" height="7" rx="0.5" fill="#E2E8F0" opacity="0.6"/><rect x="8" y="3" width="2.5" height="9" rx="0.5" fill="#E2E8F0" opacity="0.8"/><rect x="11.5" y="1" width="2.5" height="11" rx="0.5" fill="#E2E8F0"/></svg>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M 2,8 C 4,4 12,4 14,8" stroke="#E2E8F0" stroke-width="1.2" fill="none" stroke-linecap="round"/><path d="M 4,10 C 6,7 10,7 12,10" stroke="#E2E8F0" stroke-width="1" fill="none" opacity="0.8" stroke-linecap="round"/><circle cx="8" cy="12" r="1.2" fill="#E2E8F0"/></svg>
<svg width="24" height="12" viewBox="0 0 24 12" fill="none"><rect x="0.5" y="0.5" width="21" height="11" rx="2.5" stroke="#E2E8F0" stroke-width="1" opacity="0.5"/><rect x="22" y="3" width="2" height="6" rx="1" fill="#E2E8F0" opacity="0.3"/><rect x="2" y="2" width="16" height="8" rx="1.5" fill="#10B981" opacity="0.9"/></svg>
</div>
</div>
<div class="screen-content centered">
<!--
Background floating shards — extracted from decorative-shards.svg → Floating Shards section
6 shaped shard paths repositioned across 390×730 screen, prismatic all-jewel colors
-->
<svg class="bg-shards" viewBox="0 0 390 730" fill="none" preserveAspectRatio="xMidYMid slice">
<defs>
<filter id="s09-glowSm" x="-50%" y="-50%" width="200%" height="200%">
<feGaussianBlur stdDeviation="1.5" result="b"/>
<feMerge><feMergeNode in="b"/><feMergeNode in="SourceGraphic"/></feMerge>
</filter>
</defs>
<!-- Amethyst shard upper-left -->
<g transform="translate(40,85)" filter="url(#s09-glowSm)" opacity="0.55">
<path d="M 0,-18 L 10,-4 L 2,16 L -8,6 Z" fill="#C4B5FD" transform="rotate(15)">
<animate attributeName="opacity" values="0.4;0.65;0.4" dur="5s" repeatCount="indefinite"/>
<animateTransform attributeName="transform" type="translate" values="0,0;2,-3;0,0" dur="5s" repeatCount="indefinite" additive="sum"/>
</path>
</g>
<!-- Sapphire shard upper-right -->
<g transform="translate(348,65)" filter="url(#s09-glowSm)" opacity="0.5">
<path d="M 0,-14 L 8,0 L 0,14 L -8,0 Z" fill="#93C5FD" transform="rotate(-25)">
<animate attributeName="opacity" values="0.35;0.6;0.35" dur="7s" repeatCount="indefinite"/>
<animateTransform attributeName="transform" type="translate" values="0,0;-2,2;0,0" dur="7s" repeatCount="indefinite" additive="sum"/>
</path>
</g>
<!-- Emerald shard mid-left -->
<g transform="translate(25,380)" filter="url(#s09-glowSm)" opacity="0.45">
<path d="M 0,-22 L 6,-5 L 0,22 L -6,-5 Z" fill="#6EE7B7" transform="rotate(12)">
<animate attributeName="opacity" values="0.3;0.55;0.3" dur="9s" repeatCount="indefinite"/>
<animateTransform attributeName="transform" type="translate" values="0,0;3,5;0,0" dur="9s" repeatCount="indefinite" additive="sum"/>
</path>
</g>
<!-- Amber shard mid-right -->
<g transform="translate(360,330)" filter="url(#s09-glowSm)" opacity="0.45">
<path d="M 0,-12 L 8,4 L -2,12 L -8,-2 Z" fill="#FDE68A" transform="rotate(-18)">
<animate attributeName="opacity" values="0.3;0.55;0.3" dur="6s" repeatCount="indefinite"/>
<animateTransform attributeName="transform" type="translate" values="0,0;-3,-2;0,0" dur="6s" repeatCount="indefinite" additive="sum"/>
</path>
</g>
<!-- Rose shard lower-left -->
<g transform="translate(55,570)" filter="url(#s09-glowSm)" opacity="0.4">
<path d="M 0,-16 L 10,0 L 2,16 L -10,4 Z" fill="#F9A8D4" transform="rotate(30)">
<animate attributeName="opacity" values="0.25;0.5;0.25" dur="8s" repeatCount="indefinite"/>
<animateTransform attributeName="transform" type="translate" values="0,0;2,5;0,0" dur="8s" repeatCount="indefinite" additive="sum"/>
</path>
</g>
<!-- Indigo shard lower-right -->
<g transform="translate(335,510)" filter="url(#s09-glowSm)" opacity="0.4">
<path d="M 0,-10 L 6,0 L 0,10 L -6,0 Z" fill="#818CF8" transform="rotate(-8)">
<animate attributeName="opacity" values="0.25;0.5;0.25" dur="4.5s" repeatCount="indefinite"/>
<animateTransform attributeName="transform" type="translate" values="0,0;-1,-3;0,0" dur="4.5s" repeatCount="indefinite" additive="sum"/>
</path>
</g>
</svg>
<!-- Burst rings -->
<div class="burst-container">
<div class="burst-ring"></div>
<div class="burst-ring"></div>
<div class="burst-ring"></div>
</div>
<!--
Hero Kaleidoscope — extracted from patterns-kaleidoscope.svg → Complex 6-blade Prismatic variant
Blades: M 0,0 L 6,-2 L -4,75 L -6,1 Z × 6 at 60° intervals, 6 jewel colors
animateTransform rotate from 0 to 360, dur 90s (Hero pace)
Centred at 80,80 in 160×160 viewport, circClip radius 70
All IDs prefixed s09-k
-->
<div class="kalei-pattern">
<div class="pattern-aura"></div>
<img src="../../assets/kalei-logo.svg" width="100" height="100" alt="Kalei" class="pattern-svg" style="filter: drop-shadow(0 0 12px rgba(139,92,246,0.3));">
</div>
<h1 class="display-lg text-pure" style="margin-bottom: var(--space-4); z-index:1;">Welcome, Alex</h1>
<p class="body text-dim" style="margin-bottom: var(--space-8); z-index:1; max-width: 280px;">Your kaleidoscope is calibrated. The same thoughts you've always had — now seen from angles you haven't tried yet.</p>
<!--
Setup stat icons — extracted from fragment-icons.svg → SM size (radius 8)
Centred at 0,0 in 18×18 viewport (translate 9,9), canonical diamond path
Gradient IDs prefixed s09-
-->
<div class="setup-stats">
<div class="setup-stat">
<div class="setup-stat-icon">
<svg width="18" height="18" viewBox="0 0 18 18">
<defs>
<linearGradient id="s09-statAmethyst" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#C4B5FD"/>
<stop offset="100%" stop-color="#7C3AED"/>
</linearGradient>
</defs>
<g transform="translate(9,9)">
<path d="M 0,-8 L 8,0 L 0,8 L -8,0 Z" fill="url(#s09-statAmethyst)" opacity="0.9"/>
<path d="M 0,-8 L 8,0 L 0,0 Z" fill="#fff" opacity="0.18"/>
<circle cx="-2" cy="-2" r="1" fill="#fff" opacity="0.3"/>
</g>
</svg>
</div>
<div class="body-sm text-dim">Style chosen</div>
</div>
<div class="setup-stat">
<div class="setup-stat-icon">
<svg width="18" height="18" viewBox="0 0 18 18">
<defs>
<linearGradient id="s09-statEmerald" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#6EE7B7"/>
<stop offset="100%" stop-color="#047857"/>
</linearGradient>
</defs>
<g transform="translate(9,9)">
<path d="M 0,-8 L 8,0 L 0,8 L -8,0 Z" fill="url(#s09-statEmerald)" opacity="0.9"/>
<path d="M 0,-8 L 8,0 L 0,0 Z" fill="#fff" opacity="0.18"/>
<circle cx="-2" cy="-2" r="1" fill="#fff" opacity="0.3"/>
</g>
</svg>
</div>
<div class="body-sm text-dim">Account ready</div>
</div>
<div class="setup-stat">
<div class="setup-stat-icon">
<svg width="18" height="18" viewBox="0 0 18 18">
<defs>
<linearGradient id="s09-statAmber" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#FDE68A"/>
<stop offset="100%" stop-color="#D97706"/>
</linearGradient>
</defs>
<g transform="translate(9,9)">
<path d="M 0,-8 L 8,0 L 0,8 L -8,0 Z" fill="url(#s09-statAmber)" opacity="0.9"/>
<path d="M 0,-8 L 8,0 L 0,0 Z" fill="#fff" opacity="0.18"/>
<circle cx="-2" cy="-2" r="1" fill="#fff" opacity="0.3"/>
</g>
</svg>
</div>
<div class="body-sm text-dim">First Turn logged</div>
</div>
</div>
<div class="cta-area">
<a href="../turn/10-turn-home.html" class="btn-enter">
<!--
Button icon — extracted from fragment-icons.svg → Amethyst SM (radius 8)
White fill on coloured button background
-->
<svg width="20" height="20" viewBox="0 0 20 20">
<g transform="translate(10,10)">
<path d="M 0,-8 L 8,0 L 0,8 L -8,0 Z" fill="white" opacity="0.35"/>
<path d="M 0,-8 L 8,0 L 0,0 Z" fill="white" opacity="0.2"/>
<line x1="0" y1="-8" x2="0" y2="8" stroke="#fff" stroke-width="0.5" opacity="0.3"/>
<circle cx="-2" cy="-2" r="1" fill="#fff" opacity="0.5"/>
</g>
</svg>
Enter Kalei
</a>
</div>
</div>
</div>
</body>
</html>