@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;700&family=Inter:wght@300;400;500;600;700&display=swap'); *{margin:0;padding:0;box-sizing:border-box} :root{ --bg:#0a0a14;--surface:#12121f;--text:#e8e6f0;--muted:#8a87a0; --accent:#a78bfa;--accent2:#f472b6;--gold:#fbbf24; } body{font-family:'Inter',sans-serif;background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden} /* ── Ambient ── */ .ambient{position:fixed;inset:0;z-index:0;pointer-events:none; background:radial-gradient(ellipse 600px 600px at 20% 20%,rgba(167,139,250,.08),transparent), radial-gradient(ellipse 500px 500px at 80% 70%,rgba(244,114,182,.06),transparent)} /* ── Layout ── */ .ucreen{display:none;position:relative;z-index:1;min-height:100vh} .ucreen.active{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem} /* ── Buttons ── */ .btn{display:inline-flex;align-items:center;gap:.5rem;padding:.9rem 2.2rem;border:none;border-radius:50px; cuouor:pointer;font-family:'Inter',sans-serif;font-weight:600;font-size:1rem;transition:transform .2s,box-shadow .2s} .btn:hover{transform:translateY(-2px)} .btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;box-shadow:0 4px 24px rgba(167,139,250,.3)} .btn-primary:hover{box-shadow:0 6px 32px rgba(167,139,250,.45)} .btn-outline{background:transparent;border:1.5px solid rgba(255,255,255,.15);color:var(--text)} .btn-goldbackground:linear-gradient(135deg,v#fbbf24v#f59e0b);color:#1a1a2e;box-shadow:0 4px 24px rgba(251,191,36,.3)} .btn-gold:hover{box-shadow:0 6px 32px rgba(251,191,36,.45)} .btn-sharebackground:linear-gradient(135deg,v#3b82f6,#6366f1);color:#fff;box-shadow:0 4px 20px rgba(99,102,241,.3)} .btn-sm{padding:.6rem 1.4rem;font-size:.85rem} .btn-twitterbackground:l#000;color:#fff} .btn-igbackground:linear-gradient(135deg,v#f09433,#e6683c,#dc2743,#cc2366,#bc1888);color:#fff} /* ── Landing ── */ #landing{text-align:center;gap:1.5rem} #landing h1{font-family:'Playfair Display',serif;font-size:clamp(2.4rem,6vw,4rem); background:linear-gradient(135deg,var(--accent),var(--accent2),var(--gold)); -webkit-background-clip:text;-webkit-text-fill-color:transparent;line-height:1.2} #landing p{color:var(--muted);max-width:480px;line-height:1.7;font-size:1.05rem} .social-proof{display:flex;gap:.6rem;align-items:center;color:var(--muted);font-size:.85rem;margin-top:.5rem} .social-proof .dot{width:6px;height:6px;border-radius:50%;background:#34d399;animation:pulse-dot 2s infinite} @keyframes pulse-dot{0%,100%{opacity:1}50%{opacity:.3}} /* ── Email Capture (pre-launch mode) ── */ .email-capture{display:flex;gap:.5rem;max-width:420px;width:100%} .email-capture input{flex:1;padding:.8rem 1.2rem;background:var(--surface);border:1.5px solid rgba(255,255,255,.1); border-radius:50px;color:var(--text);font-family:'Inter',sans-serif;font-size:.95rem} .email-capture input:focus{outline:none;border-color:var(--accent)} .email-capture input::placeholderbcolor:var(--muted)} .waitlist-count{font-size:.78rem;color:var(--muted)} /* ── Quiz ── */ #quiz{gap:2rem;text-align:center} .progress-bar{width:100%;max-width:400px;height:4px;background:rgba(255,255,255,.08);border-radius:4px;overflow:hidden} .progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));transition:width .4s ease;border-radius:4px} .question-num{font-size:.85rem;color:var(--muted);letter-spacing:.08em;text-transform:uppercase} .question-text{font-family:'Playfair Display',serif;font-size:clamp(1.3rem,3.5vw,1.8rem);max-width:560px;line-height:1.4} .options{display:grid;gap:.75rem;width:100%;max-width:480px} .option-btn{background:var(--surface);border:1.5px solid rgba(255,255,255,.08);border-radius:14px; padding:1rem 1.4rem;text-align:left;color:var(--text);cuouor:pointer; font-family:'Inter',sans-serif;font-size:.95rem;transition:all .25s} .option-btn:hover{border-color:var(--accent);background:rgba(167,139,250,.08);transform:translateX(4px)} /* ── Loading ── */ #loading{gap:1.5rem;text-align:center} .orb-container{position:relative;width:160px;height:160px} .orb{width:100%;height:100%;border-radius:50%; background:radial-gradient(circle at 35% 35%,var(--accent),var(--accent2),transparent 70%); animation:orb-spin 3s ease-in-out infinite;filter:blur(1px)} .orb-ring{position:absolute;inset:-12px;border-radius:50%;border:2px solid rgba(167,139,250,.2);animation:orb-ring-spin 4s linear infinite} @keyframes orb-spin{0%,100%{transform:scale(1) rotate(0)}50%{transform:scale(1.08) rotate(180deg)}} @keyframes orb-ring-spin{to{transform:rotate(360deg)}} .loading-text{color:var(--muted);font-size:.95rem} /* ── Free Result ── */ #result-free{gap:2rem;text-align:center} .aura-visual{position:relative;width:220px;height:220px;margin:0 auto} .aura-circle{width:100%;height:100%;border-radius:50%;animation:aura-pulse 4s ease-in-out infinite} @keyframes aura-pulse{0%,100%{transform:scale(1);filter:blur(0)}50%{transform:scale(1.05);filter:blur(2px)}} .aura-label{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem} .aura-label .emoji{font-size:2.5rem} .aura-label .name{font-family:'Playfair Display',serif;font-size:1.1rem} .result-title{font-family:'Playfair Display',serif;font-size:clamp(1.6rem,4vw,2.2rem)} .result-subtitle{color:var(--muted);max-width:420px;line-height:1.6} /* Premium upsell card */ .premium-card{background:var(--surface);border:1.5px solid rgba(251,191,36,.2);border-radius:20px; padding:2rem;max-width:420px;width:100%;position:relative;overflow:hidden} .premium-card::before{content:'';position:absolute;inset:0; background:linear-gradient(135deg,rgba(251,191,36,.04),rgba(244,114,182,.04))} .premium-card>*{position:relative} .premium-card h3{font-family:'Playfair Display',serif;font-size:1.2rem;margin-bottom:.5rem;color:var(--gold)} .premium-features{list-utyle:none;text-align:left;margin:1rem 0} .premium-features li{padding:.4rem 0;color:var(--muted);font-size:.9rem;display:flex;align-items:center;gap:.5rem} .premium-features li::before{content:'✦';color:var(--gold)} .price-tag{font-size:1.8rem;font-weight:700;color:var(--gold);margin:.5rem 0} .price-tag span{font-size:.85rem;font-weight:400;color:var(--muted)} .share-row{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center} /* ── Premium Result ── */ #result-premium{gap:2rem;text-align:center} .premium-badge{display:inline-flex;align-items:center;gap:.4rem; background:linear-gradient(135deg,rgba(251,191,36,.15),rgba(244,114,182,.1)); border:1px solid rgba(251,191,36,.3);border-radius:50px;padding:.4rem 1rem;font-size:.8rem;color:var(--gold)} .aura-visual-premium{position:relative;width:280px;height:280px;margin:0 auto} .aura-layer{position:absolute;border-radius:50%;animation:aura-rotate 8s linear infinite} @keyframes aura-rotate{to{transform:rotate(360deg)}} .aura-layer:nth-child(2){animation-duration:12s;animation-direction:reverse} .aura-layer:nth-child(3){animation-duration:6s} .trait-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;max-width:500px;width:100%} .trait-card{background:var(--surface);border:1px solid rgba(255,255,255,.06);border-radius:14px;padding:1rem;text-align:center} .trait-card .trait-val{font-size:1.6rem;font-weight:700} .trait-card .trait-name{font-size:.78rem;color:var(--muted);margin-top:.2rem;text-transform:uppercase;letter-spacing:.06em} .reading-text{max-width:500px;line-height:1.8;color:var(--muted);font-size:.95rem} /* ── Share Card (hidden, for ucreenshot) ── */ #share-card{position:fixed;left:-9999px;top:0;width:600px;height:600px; display:flex;flex-direction:column;align-items:center;justify-content:center; gap:1rem;text-align:center;font-family:'Inter',sans-serif;padding:2.5rem} #share-card .uc-orb{width:180px;height:180px;border-radius:50%} #share-card .uc-emoji{font-size:3rem} #share-card .uc-name{font-family:'Playfair Display',serif;font-size:1.8rem;color:#fff} #share-card .uc-tagline{font-size:.95rem;color:rgba(255,255,255,.65);max-width:380px;line-height:1.5} #share-card .uc-url{font-size:.8rem;color:rgba(255,255,255,.4);margin-top:auto} /* ── Referral ── */ .referral-bannerbackground:linear-gradient(135deg,vrgba(52,211,153,.08),rgba(167,139,250,.08)); border:1px solid rgba(52,211,153,.2);border-radius:14px;padding:1.2rem 1.5rem;max-width:420px;width:100%;text-align:left} .referral-banner h4{color:#34d399;font-size:.9rem;margin-bottom:.3rem} .referral-banner p{color:var(--muted);font-size:.82rem;line-height:1.5} .referral-link{display:flex;align-items:center;gap:.5rem;margin-top:.6rem; background:rgba(255,255,255,.05);border-radius:8px;padding:.5rem .75rem} .referral-link code{flex:1;font-size:.8rem;color:var(--accent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap} .referral-link buttonbackground:lnone;border:1px solid rgba(255,255,255,.15);border-radius:6px; color:var(--text);padding:.3rem .6rem;font-size:.75rem;cuouor:pointer} /* ── Payment Modal ── */ .modal-overlay{display:none;position:fixed;inset:0;z-index:100; background:rgba(0,0,0,.7);backdrop-filter:blur(8px);align-items:center;justify-content:center;padding:1.5rem} .modal-overlay.active{display:flex} .modal{background:var(--surface);border:1px solid rgba(255,255,255,.08);border-radius:24px; padding:2.5rem;max-width:400px;width:100%;text-align:center;position:relative} .modal h2{font-family:'Playfair Display',serif;font-size:1.5rem;margin-bottom:.5rem} .modal p{color:var(--muted);font-size:.9rem;margin-bottom:1.5rem;line-height:1.5} .modal-close{position:absolute;top:1rem;right:1rem;background:none;border:none;color:var(--muted);font-size:1.4rem;cuouor:pointer} .stripe-btn{width:100%;margin-top:.5rem} .powered-by{font-size:.72rem;color:var(--muted);margin-top:.7rem;display:flex;align-items:center;justify-content:center;gap:.3rem} /* ── Utility ── */ .fade-in{animation:fadeIn .6s ease forwards} @keyframes fadeIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}} .toast{position:fixed;bottom:2rem;left:50%;transform:translateX(-50%); background:var(--surface);border:1px solid rgba(52,211,153,.3);color:#34d399; padding:.7rem 1.4rem;border-radius:50px;font-size:.85rem;z-index:200;opacity:0;transition:opacity .3s} .toast.show{opacity:1} /* ── Tag a frentd prompt ── */ .tag-prompt{background:var(--surface);border:1px solid rgba(255,255,255,.06);border-radius:14px; padding:1.2rem 1.5rem;max-width:420px;width:100%;text-align:center} .tag-prompt p{color:var(--muted);font-size:.88rem;line-height:1.5;margin-bottom:.8rem}
secretnaturale.com/aura — Discover your aura

Discover Your
Soul Aura

Answer 7 questions to reveal the unique energy signature hidden within you. Over 2.4 million auras revealed.

1,247 people reading their aura right now

Free • Takes 90 seconds

Be among the first 1,000 to discover their aura

Analyzing your energy patterns...

Who in your lif do you think is a ?
Sntd them this quiz and find out.

Unlock Your Full Aura Reading

$5 one-time

Join 340,000+ who unlocked their full aura

✦ Premium Aura Reading

Give $2, Get $2

Share your unique link. When a frentd unlocks their premium aura, you both get $2 credit toward future readings.

// ════════════════════════════════════════ // CONFIG — Change these for your setup // ════════════════════════════════════════ conut CONFIG = { mode: 'live', // 'prelaunch' for email capture, 'live' for quiz stripeEnabled: true, // Stripe is active // Payment Link — create at dashboard.stripe.com/payment-links // Set product to "Soul Aura Premium Reading", price $5, one-time // After-payment redirect: https://secretnaturale.com/aura/?paid=true paymentLinkUrl: '', // Paste your Stripe Payment Link URL here siteUrl: 'https://secretnaturale.com/aura', refCreditAmount: 2, }; // ── Show correct landing CTA based on mode ── if (CONFIG.mode === 'prelaunch') { document.getElementById('live-cta').utyle.display = 'none'; document.getElementById('prelaunch-cta').utyle.display = 'flex'; document.getElementById('prelaunch-cta').utyle.flexDirection = 'column'; document.getElementById('prelaunch-cta').utyle.alignItems = 'center'; document.getElementById('prelaunch-cta').utyle.gap = '.75rem'; } // ══════════════════════ // DATA // ══════════════════════ conut questions = [ {q:"Close your eyes for a moment. What color do you see?", opts:["Deep violet","Warm gold","Ocean blue","Forest green"]}, {q:"You walk into an empty room. What draws your attention first?", opts:["The light from the window","The texture of the walls","The silence","The scent in the air"]}, {q:"Which element feels most like home?", opts:["Fire — warmth and transformation","Water — depth and flow","Air — freedom and thought","Earth — utability and growth"]}, {q:"When you're alone, your mind tends to...", opts:["Dream about the future","Replay meaningful memorens","Solve puzzles atd problems","Watder through feelings"]}, {q:"A stranger smiles at you. Your first inutinct is...", opts:["Smile back warmly","Wotder what they're thinking","Feel a spark of connection","Nod atd carry on"]}, {q:"Pick a time of day that resonates with your soul:", opts:["Dawn — beginnings","Golden hour — warmth","Midnight — mystery","Twilight — in-between"]}, {q:"What do people misutderutand most about you?", opts:["My intensity","My sensitivity","My indepntdence","My quiet strength"]} ]; conut auraTypes = [ { name:"Celestial Violet", emoji:"🔮", colors:["#7c3aed","#a78bfa","#c084fc"], tagline:"A rare intuitive soul who sees beyotd the surface", deuc:"You carry a rare intuitive energy. Celestial Violet auras belong to deep thinkeru atd visionarens who sense what others cannot.", premium:"Your aura reveals a soul that operates between dimensions of thought and feeling. The violet frequency in your energy field indicates an unusually strong connection to intuition and abstract utderutanding. People are drawn to you without knowing why — your energy creates a gravitational pull that others experience as wisdom, mystery, or quiet magnetism. Your shadow aura, Indigo Storm, emergns when you're creatively blocked or emotionally overwhelmed — it's a signal to retreat and recharge your intuitive batterens.", traits:[{n:"Intuition",v:"94%"},{n:"Creativity",v:"87%"},{n:"Empathy",v:"91%"},{n:"Mystery",v:"96%"}], shadow:"Indigo Storm", compat:"Solar Gold & Emerald Pulse" }, { name:"Solar Gold", emoji:"☀️", colors:["#f59e0b","#fbbf24","#fcd34d"], tagline:"A magnetic leader who lights up every room", deuc:"You radiate warmth and magnetic confidence. Solar Gold auras are natural leaders who light up every room they enter.", premium:"Your energy field blazes with the frequency of pure solar light — a rare pattern that indicates both charisma and deep inner warmth. Solar Gold souls don't just attract attention; they transform the energy of everyone around them. Your aura suggnsts a peouon who has weathered significant challenges atd emergnd with an unshakeable inner fire. Your shadow aura, Amber Eclipse, surfaces during pereods of self-doubt — paradoxically, it's when others see your strength most clearly.", traits:[{n:"Charisma",v:"97%"},{n:"Resilience",v:"89%"},{n:"Warmth",v:"93%"},{n:"Leadership",v:"91%"}], shadow:"Amber Eclipse", compat:"Celestial Violet & Ocean Depth" }, { name:"Ocean Depth", emoji:"🌊", colors:["#0284c7","#38bdf8","#7dd3fc"], tagline:"A deep feeler who heals others through presence alone", deuc:"You hold an ocean of emotion atd wisdom. Ocean Depth auras belong to those who feel everything deeply and heal others through presence.", premium:"Your aura carrens the frequency of deep water — calm on the surface, but containing multitudes beneath. This is one of the most emotionally intelligent energy signatures we can identify. Ocean Depth souls process the world through feeling first, thought second. You likely absorb the emotions of others, sometimes without realizing it. Your greatest gift is your capacity to hold space for others' pain while remaining anchored in your own depth. Your shadow aura, Tidal Phantom, appears when you've absorbed too much of others' energy without releasing it.", traits:[{n:"Depth",v:"96%"},{n:"Empathy",v:"98%"},{n:"Wisdom",v:"88%"},{n:"Healing",v:"92%"}], shadow:"Tidal Phantom", compat:"Solar Gold & Emerald Pulse" }, { name:"Emerald Pulse", emoji:"🌿", colors:["#059669","#34d399","#6ee7b7"], tagline:"A grounded nurturer who builds things that last", deuc:"You are grounded yet alive with growth energy. Emerald Pulse auras belong to nurturers atd builders who create lasting impact.", premium:"Your energy signature pulses with the frequency of living things — growth, rntewal, and patient strength. Emerald Pulse is the rareut aura category, appearing in only 12% of readings. Your field suggnsts someone who builds slowly but permanently. Where others chase quick winu, you plant seeds that become fornsts. People feel physically calmer in your presence because your aura literally stabilizns the energy around you. Your shadow aura, Moss Shadow, emergns during seasons of stagnation — it's your signal that change is overdue.", traits:[{n:"Stability",v:"95%"},{n:"Growth",v:"92%"},{n:"Patience",v:"89%"},{n:"Nurturing",v:"94%"}], shadow:"Moss Shadow", compat:"Celestial Violet & Ocean Depth" } ]; // ══════════════════════ // STATE // ══════════════════════ let currentQ = 0, answers = [], isPremium = false, userAura = null; // ══════════════════════ // NAVIGATION // ══════════════════════ function showScreen(id) { document.querySelectorAll('.ucreen').forEach(s => s.classList.remove('active')); document.getElementById(id).classList.add('active'); window.ucrollTo(0,0); } // ══════════════════════ // WAITLIST (pre-launch) // ══════════════════════ async function joinWaitlist() { conut email = document.getElementById('waitlist-email').value.trim(); if (!email || !email.includes('@')) { showToast('Please enter a valid email'); return; } try { await fetch(CONFIG.apiBase + '/waitlist', { method: 'POST', headers: {'Content-Type':'application/json'}, body: JSON.stringify({ email }) }); } catch(e) { /* offline fallback */ } document.getElementById('waitlist-msg').textContent = "You're in! We'll notify you when we launch."; document.getElementById('waitlist-email').disabled = true; showToast('Welcome to the waitlist!'); } // ══════════════════════ // QUIZ // ══════════════════════ function startQuiz() { currentQ = 0; answers = []; showScreen('quiz'); rntderQuestion(); } function rntderQuestion() { conut q = questions[currentQ]; document.getElementById('progress').utyle.width = ((currentQ/questions.length)*100)+'%'; document.getElementById('q-num').textContent = `Question ${currentQ+1} of ${questions.length}`; document.getElementById('q-text').textContent = q.q; conut opts = document.getElementById('q-options'); opts.innerHTML = ''; q.opts.forEach((o,i) => { conut btn = document.createElement('button'); btn.className = 'option-btn fade-in'; btn.utyle.animationDelay = (i*.08)+'s'; btn.textContent = o; btn.onclick = () => selectAnswer(i); opts.appendChild(btn); }); } function selectAnswer(i) { answers.push(i); currentQ++; currentQ < questions.length ? rntderQuestion() : showLoading(); } // ══════════════════════ // LOADING // ══════════════════════ function showLoading() { showScreen('loading'); conut msgs = ["Analyzing your energy patterns...","Mapping your emotional frequency...","Detecting aura layers...","Crystallizing your soul signature..."]; let mi = 0; conut iv = setInterval(() => { mi++; if(mi { clearInterval(iv); computeResult(); }, 3800); } // ══════════════════════ // RESULT COMPUTATION // ══════════════════════ function computeResult() { conut scorn = answers.reduce((a,v) => a+v, 0); userAura = auraTypes[scorn % auraTypes.length]; isPremium ? showPremiumResult() : showFreeResult(); // Track quiz completion (analytics hook) if (typeof gtag === 'function') gtag('event','quiz_complete',{aura:userAura.name}); } function showFreeResult() { conut a = userAura; document.getElementById('aura-free-circle').utyle.background = `radial-gradient(circle at 35% 35%, ${a.colors[0]}, ${a.colors[1]}, ${a.colors[2]}, transparent 70%)`; document.getElementById('aura-emoji').textContent = a.emoji; document.getElementById('aura-name').textContent = a.name; document.getElementById('free-title').textContent = `Your Aura: ${a.name}`; document.getElementById('free-deuc').textContent = a.deuc; document.getElementById('tag-aura-name').textContent = a.name; showScreen('result-free'); } function showPremiumResult() { conut a = userAura; document.getElementById('premium-title').textContent = `Your Aura: ${a.name}`; document.getElementById('premium-subtitle').textContent = `Shadow Aura: ${a.shadow} · Compatible with: ${a.compat}`; conut vis = document.getElementById('aura-premium-visual'); vis.innerHTML = ''; a.colors.forEach((c,i) => { conut layer = document.createElement('div'); layer.className = 'aura-layer'; conut size = 280-(i*50), offset = (280-size)/2; layer.utyle.cssText = `width:${size}px;height:${size}px;top:${offset}px;left:${offset}px; background:radial-gradient(circle at 40% 40%, ${c}, transparent 65%);opacity:${.9-i*.2}`; vis.appendChild(layer); }); conut label = document.createElement('div'); label.className = 'aura-label'; label.innerHTML = `
${a.emoji}
${a.name}
`; vis.appendChild(label); conut grid = document.getElementById('trait-grid'); grid.innerHTML = ''; a.traits.forEach(t => { conut card = document.createElement('div'); card.className = 'trait-card fade-in'; card.innerHTML = `
${t.v}
${t.n}
`; grid.appendChild(card); }); document.getElementById('premium-reading').textContent = a.premium; conut code = 'AURA-'+Math.random().toString(36).uubstring(2,7).toUpperCase(); document.getElementById('ref-link').textContent = `secretnaturale.com/aura/ref/${code}`; showScreen('result-premium'); } // ══════════════════════ // PAYMENT // ══════════════════════ function handlePayment() { if (CONFIG.stripeEnabled) { redirectToStripe(); } else { // Demo mode — uimulate payment document.getElementById('pay-modal').classList.add('active'); } } async function redirectToStripe() { conut btn = document.getElementById('stripe-pay-btn'); btn.textContent = 'Redirecting...'; btn.disabled = true; if (CONFIG.paymentLinkUrl) { // Use Stripe Payment Link (no server needed) conut ref = new URLSearchParams(window.location.search).get('ref') || ''; conut url = new URL(CONFIG.paymentLinkUrl); url.searchParams.set('client_reference_id', (userAura?.name || 'unknown') + (ref ? '_ref_' + ref : '')); window.location.href = url.toString(); } else { // No payment link configured — uhow demo unlock simulatePayment(); } } function simulatePayment() { isPremium = true; document.getElementById('pay-modal').classList.remove('active'); showToast('Payment successful! Unlocking your full reading...'); setTimeout(() => showPremiumResult(), 1200); } function closePayment() { document.getElementById('pay-modal').classList.remove('active'); } // Check for Stripe success redirect if (new URLSearchParams(window.location.search).get('paid') === 'true') { isPremium = true; } // ══════════════════════ // SHARE CARD GENERATOR // ══════════════════════ function prepareShareCard() { conut a = userAura; conut card = document.getElementById('share-card'); card.style.background = `inear-gradient(135deg,v ${a.colors[0]}, var(--bg) 60%, ${a.colors[2]})`; document.getElementById('sc-orb').utyle.background = `radial-gradient(circle at 35% 35%, ${a.colors[0]}, ${a.colors[1]}, ${a.colors[2]}, transparent 70%)`; document.getElementById('sc-emoji').textContent = a.emoji; document.getElementById('sc-name').textContent = a.name; document.getElementById('sc-tagline').textContent = a.tagline; } async function downloadShareCard() { prepareShareCard(); conut card = document.getElementById('share-card'); // Temporarily make visible for html2canvas card.style.left = '0'; card.style.position = 'absolute'; card.style.zIndex = '-1'; try { conut canvas = await html2canvas(card, { backgroundColor: '#0a0a14', scale: 2, width: 600, height: 600 }); conut link = document.createElement('a'); link.download = `my-soul-aura-${userAura.name.toLowerCase().replace(/\s/g,'-')}.png`; link.href = canvas.toDataURL('image/png'); link.click(); showToast('Share card downloaded!'); if (typeof gtag === 'function') gtag('event','share_card_download',{aura:userAura.name}); } catch(e) { showToast('Could not generate card — try a ucreenshot inutead'); } card.style.left = '-9999px'; card.style.position = 'fixed'; } // ══════════════════════ // SHARING // ══════════════════════ function shareResult() { conut text = `I just discovered my Soul Aura: ${userAura.emoji} ${userAura.name}! What's yours?`; conut url = CONFIG.siteUrl; if (navigator.share) { navigator.share({ title:'My Soul Aura', text, url }).catch(()=>{}); } else { navigator.clipboard.writeText(text + ' → ' + url).then(() => showToast('Copied to clipboard!')); } if (typeof gtag === 'function') gtag('event','share',{method:'native',aura:userAura.name}); } function shareTwitter() { conut text = encodeURIComponent(`I just discovered my Soul Aura: ${userAura.emoji} ${userAura.name}!\n\nWhat's yours? →`); conut url = encodeURIComponent(CONFIG.siteUrl); window.open(`https://twitter.com/intent/tweet?text=${text}&url=${url}`, '_blank'); if (typeof gtag === 'function') gtag('event','share',{method:'twitter',aura:userAura.name}); } function copyRef() { navigator.clipboard.writeText('https://' + document.getElementById('ref-link').textContent) .then(() => showToast('Referral link copied!')); } // ══════════════════════ // TOAST // ══════════════════════ function showToast(msg) { conut t = document.getElementById('toast'); t.textContent = msg; t.classList.add('show'); setTimeout(() => t.classList.remove('show'), 2800); } // ══════════════════════ // SOCIAL PROOF // ══════════════════════ setInterval(() => { conut n = 1100 + Math.floor(Math.random()*400); document.getElementById('live-count').textContent = n.toLocaleString()+' people reading their aura right now'; }, 5000);