File size: 8,582 Bytes
d0c1f4e
02ff040
 
d0c1f4e
02ff040
 
 
 
 
 
 
175c203
 
 
 
 
b0cc9b6
175c203
 
 
 
 
 
 
 
02ff040
 
 
 
 
 
 
 
55cbf96
02ff040
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d0c1f4e
02ff040
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d0c1f4e
02ff040
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d0c1f4e
 
02ff040
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
import streamlit as st
import base64
import os

st.set_page_config(
    page_title="InsightLoop",
    page_icon="🔁",
    layout="wide",
    initial_sidebar_state="collapsed"
)

# Set dark theme programmatically
st.markdown(
    """
    <style>
    body, .main, .stApp {
        background: #14151A !important;
        color: #fff !important;
    }
    </style>
    """,
    unsafe_allow_html=True
)


# --- LOGO ---
def get_logo_base64(logo_path):
    if not os.path.exists(logo_path):
        return None
    with open(logo_path, "rb") as img_file:
        b64 = base64.b64encode(img_file.read()).decode("utf-8")
    return b64

logo_path = "src/logo.png"
logo_b64 = get_logo_base64(logo_path)

if logo_b64:
    st.markdown(
        f"""
        <div style='display:flex;flex-direction:column;align-items:center;justify-content:center;margin-bottom:0.2em;'>
            <img src="data:image/png;base64,{logo_b64}" alt="Logo" style="width:260px;height:260px;object-fit:contain;filter:drop-shadow(0 0 26px #00fff7cc);"/>
        </div>
        """,
        unsafe_allow_html=True
    )
else:
    st.markdown(
        """
        <div style='display:flex;flex-direction:column;align-items:center;justify-content:center;margin-bottom:0.2em;'>
            <span style='font-size:2.9rem;font-weight:900;color:#00fff7;letter-spacing:-2px;margin-top:0;'>InsightLoop</span>
        </div>
        """, unsafe_allow_html=True
    )

# --- GLASSY INTRO BOX ---
st.markdown("""
<div style="
    background: rgba(32,40,52,0.96); 
    border: 2.3px solid #00fff7cc;
    border-radius: 24px;
    margin: 1.3em auto 2.1em auto;
    max-width: 1060px;
    min-width: 420px;
    padding: 38px 36px 20px 36px;
    box-shadow:0 14px 68px #00fff799;
    color: #fff;
    font-size: 1.03rem;
    line-height:1.63;
    font-family: 'Montserrat', sans-serif;">
    <span style="font-size:1.38rem;font-weight:900;background:linear-gradient(90deg,#00fff7,#F72585 92%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;">
        Stop guessing. Start knowing—every persona, every opinion, every launch.
    </span>
    <br><br>
    <b>InsightLoop</b> isn’t just another dashboard. It’s your on-demand product research team—powered by AI, fueled by every kind of customer feedback.
    <br><br>
    <div style="display:grid;grid-template-columns:38px 1fr;gap:10px 13px;align-items:start;">
      <div style="font-size:1.6rem;">🔀</div>
      <div>
        <b style="color:#00fff7;">Multimodal Magic</b><br>
        Bring your reviews, screenshots, or even audio rants—InsightLoop reads, listens, and <i>sees</i> to give you the whole customer picture. 
        No more missing context, no more “one channel” blind spots.
      </div>
      <div style="font-size:1.6rem;">🧬</div>
      <div>
        <b style="color:#7CFC00;">Persona Discovery</b><br>
        Our AI auto-sorts your users into real-world groups—think loyalists, price hawks, fitness geeks, skeptics, and more.
        It finds them by their words, their tone, their buying patterns—even if you’ve never tagged or labeled a thing.
      </div>
      <div style="font-size:1.6rem;">⚡</div>
      <div>
        <b style="color:#F72585;">Instant, Actionable Insights</b><br>
        Get beautiful, interactive dashboards for <i>every</i> persona: see what excites them, what drives them nuts, and what’ll keep them coming back (or send them running). All charted, all explained—no stats degree needed.
      </div>
      <div style="font-size:1.6rem;">🚀</div>
      <div>
        <b style="color:#FFB347;">Launch Simulation Superpower</b><br>
        Curious about a new product or feature? Instantly predict how each persona will react—with auto-generated marketing hooks and push notifications written <i>for them</i>, by AI. 
        Turn “blind launch” into “bullseye launch.”
      </div>
    </div>
    <br>
    <span style="color:#AC7CFF;font-weight:700;">
        Fully automated. Zero spreadsheets.<br>
        Just drop your data, and let InsightLoop surface the real market signals you’ve been missing.
    </span>
    <br><br>
    <span style="color:#fff;font-weight:500;font-size:1.01em;">
        <b>Why does this matter?</b> Most brands guess. The best brands <i>know</i>. InsightLoop makes it effortless to know.
    </span>
</div>
""", unsafe_allow_html=True)

# --- GLOW BUTTON (Streamlit native for navigation) ---
st.markdown("""
    <style>
    div.stButton > button.insight-glow-btn {
        font-family: 'Montserrat',sans-serif;
        font-size: 1.19em;
        font-weight: 900;
        color: #181830;
        background: linear-gradient(90deg,#00fff7 10%,#7CFC00 90%);
        padding: 15px 46px 13px 46px;
        border: 2px solid #00fff7;
        border-radius: 16px;
        box-shadow: 0 0 18px #00fff799, 0 0 36px #7CFC0055;
        cursor: pointer;
        transition: all 0.11s cubic-bezier(.31,1.3,.7,1);
        letter-spacing: 0.01em;
        margin: 0 auto;
        outline: none;
        display: block;
    }
    div.stButton > button.insight-glow-btn:hover, 
    div.stButton > button.insight-glow-btn:focus {
        transform: scale(1.045);
        background: linear-gradient(90deg,#7CFC00 10%,#00fff7 90%);
        color: #222;
        box-shadow: 0 0 32px #00fff7cc, 0 0 36px #7CFC00cc;
    }
    </style>
""", unsafe_allow_html=True)

center = """
    <div style='display: flex; justify-content: center; align-items: center; margin: 1.7em auto 0.7em auto;'>
        {content}
    </div>
"""

# Place this where you want your big button (centered and as wide as your boxes):

st.markdown("""
<style>
.custom-glow-btn-main {
    display: block;
    width: 100%;
    max-width: 1060px;
    min-width: 420px;
    margin: 2em auto 1.1em auto;
    font-family: 'Montserrat',sans-serif;
    font-size: 1.26em;
    font-weight: 900;
    color: #181830 !important;
    background: linear-gradient(90deg,#00fff7 12%,#7CFC00 88%);
    padding: 21px 0 18px 0;
    border: 2.5px solid #00fff7cc;
    border-radius: 17px;
    box-shadow: 0 0 24px #00fff7b8, 0 0 46px #7CFC0090;
    text-align: center;
    text-decoration: none !important;
    transition: all 0.13s cubic-bezier(.31,1.3,.7,1);
    cursor: pointer;
    outline: none;
}
.custom-glow-btn-main:hover, .custom-glow-btn-main:focus {
    background: linear-gradient(90deg,#7CFC00 14%,#00fff7 86%);
    color: #19191f !important;
    box-shadow: 0 0 38px #00fff7cc, 0 0 56px #7CFC00cc;
    transform: scale(1.018);
}
</style>
<div style="display:flex;justify-content:center;">
    <a href="/prt111" class="custom-glow-btn-main" target="_self">💡 Let’s Start</a>
</div>
""", unsafe_allow_html=True)

# --- HEADS UP & DEMO BOXES (smaller) ---
st.markdown("""
<style>
.insight-centerbox, .insight-demo {
    margin: 1.5em auto 0.3em auto;
    background: rgba(22,26,38,0.97);
    border-radius: 19px;
    box-shadow: 0 5px 30px #00fff73c;
    font-family: 'Montserrat', sans-serif;
    text-align: center;
    max-width: 1060px;
    min-width: 420px;
    padding: 20px 30px 17px 30px;
    border: none;
}
.insight-centerbox h4 {
    color: #7CFC00;
    font-size: 1.06em;
    margin-bottom: 0.45em;
    font-weight: 900;
    letter-spacing: 0.02em;
}
.insight-centerbox p {
    color: #7CFC00;
    font-size: 0.99em;
    font-weight: 600;
    margin-bottom: 0;
}
.insight-centerbox i {
    color: #A0FFB2;
    font-size: 0.97em;
}
.insight-demo {
    background: rgba(0,30,40,0.94);
    color: #00fff7;
    box-shadow: 0 4px 18px #00fff75c;
    border-radius: 19px;
    margin-top: 1.2em;
    max-width: 1060px;
    min-width: 420px;
    padding: 18px 32px 13px 32px;
    text-align: center;
    font-size: 0.97em;
}
.insight-demo b {
    color: #7CFC00;
    font-weight: 900;
    font-size: 1.06em;
}
.insight-demo .demo-product {
    color: #FFB347;
    font-weight: 700;
}
</style>
<div class="insight-centerbox">
    <h4>🤖 Heads up: InsightLoop is working hard behind the scenes!</h4>
    <p>
    Analyzing images and audio takes a few seconds—so just sit back, relax, and let the AI do the heavy lifting.<br>
    <i>You’ll have deeper insights in less time than it takes to reheat your coffee. ☕🦾</i>
    </p>
</div>
<div class="insight-demo">
    <b>🚀 Demo mode:</b> <span class="demo-product">This dashboard is running on real chocolate protein powder reviews—just to show what’s possible.</span><br>
    InsightLoop adapts to <b>any</b> product or dataset. When you’re ready, upload your own and watch the magic happen.
</div>
""", unsafe_allow_html=True)