// NGIS website — Home screen (content from the NGIS Prospectus + ETM Concept Deck) // Hero headline — types out the current slogan, then rotates through a short // list of USPs, always returning to the slogan. Respects prefers-reduced-motion // by rendering the slogan statically with no animation. function HeroBackground() { const [videoFailed, setVideoFailed] = React.useState(false); const videoRef = React.useRef(null); React.useEffect(() => { const v = videoRef.current; if (!v || videoFailed) return; v.muted = true; v.defaultMuted = true; const playPromise = v.play(); if (playPromise !== undefined) { playPromise.catch(err => { // AbortError is just a race condition, ignore it if (err.name === 'AbortError') return; // If it's a NotAllowedError (Autoplay blocked by browser policy) // or any other playback block, force the fallback image console.warn('Hero video autoplay blocked by browser:', err.name); setVideoFailed(true); }); } }, [videoFailed]); const handleError = (e) => { const mediaError = e.currentTarget.error; // Video elements can fire a spurious 'error' event with no MediaError // attached (e.g. the browser aborting a fetch it never really started). // Only treat it as a genuine failure — and fall back to the still image // — when there's an actual error code to act on. if (!mediaError) return; console.error('Hero video failed to load:', mediaError); setVideoFailed(true); }; return ( ); } function DiffCard({ item }) { const [hover, setHover] = React.useState(false); return (
setHover(true)} onMouseLeave={() => setHover(false)} style={{ background: '#fff', border: `1px solid ${hover ? item.color : 'var(--border)'}`, borderRadius: 'var(--radius-lg)', padding: 'var(--space-5)', display: 'flex', flexDirection: 'column', gap: 14, cursor: 'default', transform: hover ? 'translateY(-6px)' : 'translateY(0)', boxShadow: hover ? `0 16px 32px ${item.color}33` : 'var(--shadow-sm)', transition: 'transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease', }} >
{item.no}
{item.yes}
); } // updated data — brand-order colors const differentiators = [ { no: 'No Homework', yes: 'Learning happens at school', icon: 'compass', color: '#E41E27' }, // red { no: 'No Heavy Bags', yes: 'The One-Book (System) Model', icon: 'layers', color: '#0B1634' }, // navy { no: 'No Boring Classes', yes: 'PBIL is the default', icon: 'sparkles', color: '#16A34A' }, // green { no: 'No Rote Learning', yes: 'Portfolios over memorisation', icon: 'zap', color: '#0EA5E9' }, // light blue { no: 'No Exam Pressure', yes: 'Continuous assessment', icon: 'shieldCheck', color: '#F97316' }, // orange ]; function TypewriterHeading({ phrases, style }) { const reducedMotion = React.useMemo( () => typeof window !== 'undefined' && window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches, [] ); const [phraseIndex, setPhraseIndex] = React.useState(0); const [text, setText] = React.useState(reducedMotion ? phrases[0] : ''); const [deleting, setDeleting] = React.useState(false); React.useEffect(() => { if (reducedMotion) return; const current = phrases[phraseIndex % phrases.length]; let delay = 42; let next; if (!deleting && text.length < current.length) { next = () => setText(current.slice(0, text.length + 1)); } else if (!deleting && text.length === current.length) { delay = 2200; next = () => setDeleting(true); } else if (deleting && text.length > 0) { delay = 24; next = () => setText(current.slice(0, text.length - 1)); } else { next = () => { setDeleting(false); setPhraseIndex(i => (i + 1) % phrases.length); }; } const timer = setTimeout(next, delay); return () => clearTimeout(timer); }, [text, deleting, phraseIndex, reducedMotion, phrases]); return (

{phrases[0]}

); } function HomeScreen({ onNav }) { const { Button, Stat, Card, EyebrowLabel, Badge } = window.NGISDesignSystem_f6dc23; const Icon = window.Icon; const { PATTERNS, NAVY_GRADIENT, CREST, SectionDecor, PhotoFrame, EduMotifs, WaveDivider } = window.Decor; // The four crest quadrants → the ETM education model. // pillars data — one crest color per quadrant, in crest reading order const pillars = [ { icon: 'school', color: CREST.green, t: 'South Korean Standards', d: 'A globally benchmarked academic system aligned with South Korean educational excellence and the Pakistan National Curriculum (NCP).' }, { icon: 'brain', color: CREST.navy, t: 'Emerging Technologies', d: 'Robotics, coding and AI woven through every stage of learning, from Playgroup to Grade 5.' }, { icon: 'bookOpen', color: CREST.sky, t: 'Islamic Values', d: 'Character grounded in faith through our Friends of Quran and Role Model (SAWW) programmes.' }, { icon: 'lightbulb', color: CREST.gold, t: 'Innovation & Enterprise', d: 'The ETM Garage: our centre for innovation that turns curious learners into young creators.' }, ]; // Proof-band facts (shown as cards below the hero). const facts = [ { value: '1st', label: 'ETM-powered school in Pakistan', color: 'green' }, { value: 'Play–G5', label: Playgroup to Grade 5
Ages 3–11
, color: 'navy' }, { value: 'Arabic', label: 'Compulsory language of the Quran', color: 'blue' }, { value: 'Zero', label: 'Homework · rote learning · exam pressure', color: 'gold' }, ]; // The five published ETM standards — the "standards stack". // standards data — cycle through all 4 crest colors across 5 items const standards = [ { n: '01', t: 'Friends of Quran & Role Model (SAWW)', icon: 'star', color: CREST.green }, { n: '02', t: 'STEAM-Integrated Academic Planning', icon: 'layers', color: CREST.navy }, { n: '03', t: 'Discovery & Innovation Hub', icon: 'compass', color: CREST.sky }, { n: '04', t: 'The ETM Garage', icon: 'flask', color: CREST.gold }, { n: '05', t: 'Faculty Development Cell', icon: 'award', color: CREST.green }, ]; return (
{/* ===================== Hero ===================== */} {/* ===================== Hero ===================== */}
{/* Background image (was a video, now a static poster) */} {/* Dark scrim for text readability — reuses your navy gradient as a tint */}
{/* Pakistan-first ribbon */}
Pakistan’s First ETM-Powered School

A Playgroup–Grade 5 movement combining South Korean academic standards, a STEAM-integrated curriculum and deep-rooted Islamic values.

{/* Accreditation strip */}
An Initiative of Robotmea Accredited by Robotron, South Korea Integrated with the Pakistan National Curriculum
{/* ===================== Facts band ===================== */}
{facts.map(f => (
))}
{/* ===================== Who we are ===================== */} {/* ===================== Who we are ===================== */}
{/* Left: navy panel with student photo instead of crest */}
NGIS students in class
NextGen International School
Karachi, Pakistan
{['ETM Powered', 'Robotron Certified', 'K-12'].map(b => ( {b} ))}
{/* Right: copy + 2x2 info grid */}
Who we are

Not just a school.
A movement.

NextGen International School (NGIS) is Pakistan's first ETM-powered K-12 school, proudly based in Karachi and accredited by Robotron, South Korea. As a project of Robotmea, we bring a globally benchmarked educational system that combines South Korean academic excellence with a modern STEAM framework and deep-rooted Islamic values.

{[ { t: 'South Korean Standards', d: 'Globally benchmarked curriculum' }, { t: 'Islamic Values', d: 'Faith-rooted education' }, { t: 'STEAM Framework', d: 'Science, Tech, Arts & Math' }, { t: 'ETM Powered', d: 'Robotron certified system' }, ].map(c => (
{c.t}
{c.d}
))}
{/* ===================== Differentiators ===================== */} {/* ===================== Differentiators ===================== */}
What ETM refuses to do

From transactional to transformational

We replaced the tired conventions of traditional schooling with an ecosystem designed to make every child relevant for tomorrow's world.

{differentiators.map(d => )}
{/* ===================== Four pillars (crest) ===================== */} {/* ===================== Four pillars (crest) ===================== */}
Our learning ecosystem

Four pillars, drawn from our crest

Where local values meet global standards, and emerging technology meets enduring character.

{pillars.map(p => (

{p.t}

{p.d}

))}
{/* ===================== Standards stack ===================== */}
The standards stack

Five published standards, non-negotiable in every ETM school

These are the structural reasons ETM is a movement, not a brand. Every ETM school delivers all five, audited quarterly by Robotron.

{standards.map(s => (
{s.n}
{s.t}
))}
{/* ===================== ETM equation ===================== */}
The ETM equation

The Educational Transformation Movement

{[ { t: 'Emerging Technologies', icon: 'brain' }, { op: '+' }, { t: 'Progressive Curriculum', icon: 'bookMarked' }, { op: '+' }, { t: 'Islamic Values', icon: 'star' }, { op: '=' }, { t: 'Success, Inshallah', icon: 'trophy', solid: true }, ].map((c, i) => c.op ? ( {c.op} ) : (
{c.t}
))}

ETM is a Robotron-certified system from South Korea, an enabling ecosystem that integrates emerging technologies, a future-ready curriculum and Islamic values to make every learner relevant.

{/* ===================== Gallery teaser ===================== */}
From our classrooms

Life at NextGen

{/* ===================== Campuses ===================== */} {/* ===================== CTA ===================== */}

Join the ETM Movement

Make your child relevant for tomorrow’s world. Book a tour or begin your application today.

); } window.HomeScreen = HomeScreen;