// Arise Helix — Lab, Testimonials, Final CTA, Footer. /* ──────────────── The Arise Lab (Creator Lab equivalent) ──────────────── */ function HolographicSculpture() { // ECG / heartbeat trace — replaces the old rotating DNA sculpture. // One ECG cycle is 200 units wide; we tile horizontally and scroll left // via the `helixEcg` keyframe so the trace appears to flow continuously. const oneCycle = "M 0 150 L 38 150 Q 44 132 50 150 L 80 150 L 86 156 L 92 60 L 98 168 L 130 150 Q 138 128 146 150 L 200 150"; return (
{/* Ambient gold halo */}
{/* Monitor grid */}
{/* ECG SVG */} {/* Subtle baseline */} {/* Scrolling trace — 6 cycles tiled across, animated leftward */} {[0, 1, 2, 3, 4, 5].map((i) => ( ))} {/* Corner stats — gives the medical-monitor authenticity */}
ECG · LEAD II
72 BPM
SpO₂ 99% · BP 118/76
ARISE LAB · LIVE
); } function DNARing({ radius = 150, thickness = 1.5, opacity = 0.5, freq = 4, phaseOffset = 0 }) { // Render a horizontal helix-like band that wraps in a circle. const samples = 220; let pathA = ""; let pathB = ""; const rungs = []; for (let i = 0; i <= samples; i++) { const t = i / samples; const ang = t * Math.PI * 2; const wobble = Math.sin(t * freq * Math.PI * 2 + phaseOffset) * 20; const r1 = radius + wobble; const r2 = radius - wobble; const xa = Math.cos(ang) * r1; const ya = Math.sin(ang) * r1; const xb = Math.cos(ang) * r2; const yb = Math.sin(ang) * r2; pathA += (i === 0 ? "M " : "L ") + xa.toFixed(2) + " " + ya.toFixed(2) + " "; pathB += (i === 0 ? "M " : "L ") + xb.toFixed(2) + " " + yb.toFixed(2) + " "; if (i % 14 === 0) rungs.push({ x1: xa, y1: ya, x2: xb, y2: yb, t }); } const size = (radius + 30) * 2; return ( {rungs.map((r, i) => ( ))} ); } function LabSection() { return (
The Arise Lab
{/* Left — copy + floating UI panels */}

Inside the Arise Lab, every concept lives on a timeline — lectures, MCQs, mocks and mentor sessions stitched into one living curriculum that adapts as you do.

} t="Vitals dashboard" d="Track accuracy, recall and streaks across 19 subjects." delay={0.0} /> } t="Recall waveform" d="See your retention curve and the next interval to revisit." delay={0.1} /> } t="Adaptive drills" d="Daily MCQ sets tuned to your last 7 days of performance." delay={0.2} /> } t="Mentor pings" d="Get a 1:1 nudge when a topic plateau is detected." delay={0.3} />
{/* Right — holographic sculpture */}
{/* Timeline bar */}
6-month timeline · Regular Batch LIVE
); } function LabPanel({ icon, t, d, delay = 0 }) { return (
{icon}
{t}

{d}

); } function Timeline() { const phases = [ { label: "Foundation", from: 0, to: 0.55, color: "#B08D57" }, { label: "Application", from: 0.55, to: 0.85, color: "#D8C3A5" }, { label: "Revision", from: 0.85, to: 1, color: "#1F1F1F" }, ]; return (
{phases.map((p, i) => (
))}
{phases.map((p, i) => ( {p.label} ))}
); } /* ──────────────── Testimonials ──────────────── */ const TESTIMONIALS = [ { name: "Dr. Jithu Sakariya", role: "FMG Alumnus", quote: "Arise Medical Academy simplifies the 19 subjects in a way that truly boosts confidence. The support system, from faculty guidance to the 24/7 reading room, made my first-attempt pass possible.", image: "assets/group-four-south-asian-men-s-posed-business-meeting-cafe-indians-together-sign-important-documents-contract-study-work.jpg", }, { name: "Dr. Aarav Mehta", role: "Regular Batch · 6-month track", quote: "Mentors who actually re-explain until the concept lands. The 3-phase rhythm finally made revision feel structured.", }, { name: "Dr. Priya Nair", role: "Super Revision · 45-day sprint", quote: "Forty-five days of pure high-yield work. By exam day I'd seen every shape an MCQ could take.", }, { name: "Dr. Imran Sheikh", role: "Foundation Batch · in-university", quote: "Started in second year and never had to play catch-up. By the time FMGE arrived, it felt like home turf.", }, ]; function TestimonialsSection() { return (
Voices from the Arise World
); } function TestimonialCard({ t, i }) { const [hover, setHover] = React.useState(false); return (
setHover(true)} onMouseLeave={() => setHover(false)} className="helix-glass rounded-3xl p-5 sm:p-6 md:p-8 relative overflow-hidden w-full" style={{ maxWidth: 520, transform: hover ? "translateY(-3px)" : "translateY(0)", transition: "transform 0.45s cubic-bezier(0.16, 1, 0.3, 1)", }} > {/* Hover glow */}
{t.image ? ( {`${t.name} ) : (
)} {/* Subtle dark gradient at bottom for label legibility */}

"{t.quote}"

{t.name}
{t.role}
); } /* ──────────────── Final CTA ──────────────── */ function FinalCTASection() { return (
Ready to clear FMGE / NExT?

Join the next generation of clinicians — across Hyderabad, Chennai, Kerala, Delhi and Jaipur.

{/* Contact strip */}
} label="Phone" value={["+91 89779 41723", "+91 89779 42723"]} href="tel:+918977941723" /> } label="Email" value="info@arisemedicalacademy.com" href="mailto:info@arisemedicalacademy.com" /> } label="Website" value="www.arisemedicalacademy.com" href="https://www.arisemedicalacademy.com" className="sm:col-span-2" />
{["Hyderabad", "Chennai", "Kerala", "Delhi", "Jaipur"].map((c) => ( {c} ))}
{/* Footer */}
Arise Medical Academy

Bridging the gap for global medicos — across Hyderabad, Chennai, Kerala, Delhi and Jaipur.

© 2026 Arise Medical Academy.
); } function ApplyButton() { const ref = React.useRef(null); const [t, setT] = React.useState({ x: 0, y: 0 }); const [hover, setHover] = React.useState(false); const onMove = (e) => { const r = ref.current.getBoundingClientRect(); const cx = r.left + r.width / 2; const cy = r.top + r.height / 2; setT({ x: (e.clientX - cx) * 0.35, y: (e.clientY - cy) * 0.35 }); }; return ( ); } function ContactTile({ icon, label, value, href, className = "" }) { const [hover, setHover] = React.useState(false); const values = Array.isArray(value) ? value : [value]; const Wrapper = href ? "a" : "div"; const wrapperProps = href ? { href, target: href.startsWith("http") ? "_blank" : undefined, rel: href.startsWith("http") ? "noopener noreferrer" : undefined } : {}; return ( setHover(true)} onMouseLeave={() => setHover(false)} className={`helix-glass rounded-2xl px-5 py-4 text-left flex items-center justify-between gap-4 w-full ${className}`} style={{ transform: hover ? "translateY(-2px)" : "translateY(0)", transition: "transform 0.3s ease, border-color 0.35s ease, box-shadow 0.35s ease", textDecoration: "none", }} >
{icon}
{label}
{values.map((v, idx) => ( {v} ))}
); } Object.assign(window, { LabSection, TestimonialsSection, FinalCTASection });