Skip to content
return7521-ui edited this page Jan 2, 2026 · 1 revision
<script src="https://cdn.jsdelivr.net/particles.js/2.0.0/particles.min.js"></script>
<!-- Enhanced SEO Meta Tags -->
<meta name="keywords" content="percentage calculator, CGPA calculator, GPA calculator, ISC calculator, CBSE calculator, JEE calculator, NDA calculator, student tools India, free calculator, age calculator, BMI calculator, grade calculator, study tools">
<meta name="author" content="Shashank Kushwaha">
<meta name="robots" content="index, follow">
<link rel="canonical" href="https://return7521-ui.github.io/studytools-india/">

<!-- === SECTION 1: PWA & MANIFEST === -->
<link rel="manifest" href="manifest.json">
<meta name="theme-color" content="#4CAF50">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
<meta name="apple-mobile-web-app-title" content="StudyTools India">

<!-- === SECTION 2: OPEN GRAPH TAGS FOR SOCIAL MEDIA === -->
<meta property="og:type" content="website">
<meta property="og:url" content="https://return7521-ui.github.io/studytools-india/">
<meta property="og:title" content="StudyTools India - Free Online Calculators for Students">
<meta property="og:description" content="Free online calculators for students - 30+ tools including Percentage, CGPA, Age, BMI, Grade calculators. Study tools for JEE, NDA, ISC, CBSE students.">
<meta property="og:image" content="https://return7521-ui.github.io/studytools-india/og-image.jpg">
<meta property="og:site_name" content="StudyTools India">
<meta property="og:locale" content="en_IN">

<!-- === SECTION 3: TWITTER CARD TAGS === -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:url" content="https://return7521-ui.github.io/studytools-india/">
<meta name="twitter:title" content="StudyTools India - Free Online Calculators for Students">
<meta name="twitter:description" content="Free online calculators for students - 30+ tools including Percentage, CGPA, Age, BMI, Grade calculators.">
<meta name="twitter:image" content="https://return7521-ui.github.io/studytools-india/twitter-card.jpg">
  
<!-- === SECTION 4: SCHEMA.ORG STRUCTURED DATA (JSON-LD) === -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "name": "StudyTools India",
  "url": "https://return7521-ui.github.io/studytools-india/",
  "description": "Free online calculators for students - Percentage, CGPA, Age, BMI, Grade calculators",
  "potentialAction": {
    "@type": "SearchAction",
    "target": "https://return7521-ui.github.io/studytools-india/?q={search_term_string}",
    "query-input": "required name=search_term_string"
  },
  "publisher": {
    "@type": "Organization",
    "name": "StudyTools India",
    "logo": {
      "@type": "ImageObject",
      "url": "https://return7521-ui.github.io/studytools-india/logo.png"
    }
  },
  "inLanguage": "en-IN",
  "educationalUse": "Self-Directed Learning",
  "audience": {
    "@type": "EducationalAudience",
    "educationalRole": "student"
  }
}
</script>

<!-- === SECTION 5: ADDITIONAL SEO META TAGS === -->
<meta name="rating" content="General">
<meta name="distribution" content="global">
<meta name="language" content="English">
<meta name="revisit-after" content="7 days">
<meta name="classification" content="Education">
<meta name="category" content="Education, Calculators, Study Tools">
<meta name="coverage" content="Worldwide">
<meta name="target" content="Students, Teachers, Educational Institutions">
<meta name="subject" content="Online Calculators for Students">
<meta name="topic" content="Education Tools">
<meta name="summary" content="Free online calculators and study tools for students">
<meta name="designer" content="Shashank Kushwaha">
<meta name="reply-to" content="support@studytools.india">
<meta name="owner" content="StudyTools India">
<meta name="url" content="https://return7521-ui.github.io/studytools-india/">
<meta name="identifier-URL" content="https://return7521-ui.github.io/studytools-india/">
<meta name="directory" content="submission">
<meta name="pagename" content="StudyTools India - Home">
<meta name="Category" content="Education">
<meta name="coverage" content="Worldwide">

<!-- === SECTION 6: GEO LOCATION TAGS === -->
<meta name="geo.region" content="IN">
<meta name="geo.placename" content="India">
<meta name="geo.position" content="20.5937;78.9629">
<meta name="ICBM" content="20.5937, 78.9629">

<!-- === SECTION 7: PRELOAD & PERFORMANCE OPTIMIZATION === -->
<link rel="dns-prefetch" href="//fonts.googleapis.com">
<link rel="dns-prefetch" href="//fonts.gstatic.com">
<link rel="dns-prefetch" href="//cdn.jsdelivr.net">
<link rel="preconnect" href="https://fonts.googleapis.com" crossorigin>
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>

<!-- === SECTION 8: FAVICON & APP ICONS === -->
<link rel="icon" type="image/x-icon" href="favicon.ico">
<link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="favicon-16x16.png">
  
<!-- ENHANCED STYLES FOR MOBILE & DYNAMIC BACKGROUND -->
<style>
    /* Override body background with dynamic colorful gradient */
    body {
        background: linear-gradient(135deg, 
            #667eea 0%, 
            #764ba2 15%, 
            #f093fb 30%, 
            #4facfe 45%, #FF9933 0%, /* Indian Saffron */
        #FFFFFF 20%, /* White */
        #138808 40%, /* Indian Green */
        #4A90E2 60%, /* Sky Blue */
        #9B59B6 80%, /* Purple */
        #FF9933 100%); /* Back to Saffron */
    background-size: 400% 400% !important;
    animation: dynamicBackgroundShift 20s ease infinite !important;
    min-height: 100vh !important;
    position: relative !important;
    overflow-x: hidden !important;n !important;
    }
    
    /* Add animated geometric shapes in background */
    body::before {
        content: '';
        position: fixed;
        top: -50%;
        left: -50%;
        width: 200%;
        height: 200%;
        background: 
            radial-gradient(circle at 20% 50%, rgba(255, 153, 51, 0.1) 0%, transparent 50%),
            radial-gradient(circle at 80% 80%, rgba(19, 136, 8, 0.1) 0%, transparent 50%),
            radial-gradient(circle at 40% 20%, rgba(255, 255, 255, 0.05) 0%, transparent 50%);
        animation: backgroundShapes 30s ease-in-out infinite;
        z-index: 0;
        pointer-events: none;
    }
    
    /* Ensure content stays above background */
    .container, header, .logo, h1, .search-box, .tools-grid, footer, .developer-section {
        position: relative;
        z-index: 1;
    }
    
    /* Dynamic background animation */
    @keyframes dynamicBackgroundShift {
        0% { background-position: 0% 50%; }
        25% { background-position: 50% 100%; }
        50% { background-position: 100% 50%; }
        75% { background-position: 50% 0%; }
        100% { background-position: 0% 50%; }
    }
    
    @keyframes backgroundShapes {
        0%, 100% { transform: translate(0, 0) rotate(0deg); }
        33% { transform: translate(30px, -30px) rotate(120deg); }
        66% { transform: translate(-20px, 20px) rotate(240deg); }
    }
    
    /* Title animations */
    @keyframes titlePulse {
        0%, 100% { transform: scale(1); }
        50% { transform: scale(1.05); }
    }
    
    @keyframes titleFloat {
        0%, 100% { transform: translateY(0px); }
        50% { transform: translateY(-10px); }
    }
    
    @keyframes letterBounce {
        0%, 100% { transform: translateY(0px); }
        50% { transform: translateY(-5px); }
    }

          @keyframes gentlePulse {
        0%, 100% { transform: scale(1); opacity: 1; }
        50% { transform: scale(1.02); opacity: 0.95; }
    }
    
    /* Reduce calculator card motion/animations */
    .tool-card {
        transition: transform 0.2s ease, box-shadow 0.2s ease !important;
    }
    .tool-card:hover {
        transform: translateY(-3px) !important; /* Reduced from larger values */
        box-shadow: 0 4px 15px rgba(0,0,0,0.15) !important;
    }

          /* ===== DARK MODE STYLES ===== */
body.dark-mode {
    background: linear-gradient(135deg, 
        #2C1B47 0%,     /* Deep Purple */
        #1E3A5F 20%,    /* Dark Blue */
        #2D5F5D 40%,    /* Dark Teal */
        #4A1942 60%,    /* Dark Magenta */
        #2C1B47 80%,    /* Back to Deep Purple */
        #1E3A5F 100%    /* Dark Blue */
    ) !important;
    background-size: 400% 400% !important;
    animation: dynamicBackgroundShift 20s ease infinite !important;        color: #ffffff !important;
    transition: all 0.5s ease;
}

body.dark-mode h1, 
body.dark-mode h2, 
body.dark-mode h3, 
body.dark-mode p {
    color: #ffffff !important;
}

body.dark-mode .tool-card {
    background: rgba(30, 30, 50, 0.9) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3) !important;
}

body.dark-mode .tool-card:hover {
    background: rgba(40, 40, 60, 0.95) !important;
    border-color: rgba(138, 43, 226, 0.5) !important;
    transform: translateY(-5px);
}

body.dark-mode input, 
body.dark-mode select, 
body.dark-mode button {
    background: rgba(40, 40, 60, 0.8) !important;
    color: #ffffff !important;
    border: 1px solid rgba(255, 255, 255, 0.2) !important;
}

body.dark-mode .search-box {
    background: rgba(30, 30, 50, 0.9) !important;
    color: #ffffff !important;
}

body.dark-mode .developer-section {
    background: rgba(30, 30, 50, 0.8) !important;
}

body.dark-mode footer {
    background: rgba(20, 20, 40, 0.9) !important;
}
    
    /* MOBILE RESPONSIVENESS IMPROVEMENTS */
    @media screen and (max-width: 768px) {
        /* Title responsive sizing */
        h1 {
            font-size: clamp(2rem, 10vw, 3.5rem) !important;
            letter-spacing: clamp(1px, 0.3vw, 4px) !important;
            padding: 10px !important;
            margin: 15px 0 !important;
        }
        
        /* Logo responsive sizing */
        .logo {
            width: clamp(60px, 15vw, 100px) !important;
            height: clamp(60px, 15vw, 100px) !important;
        }
        
        /* Search box mobile optimization */
        .search-box {
            width: 95% !important;
            max-width: 100% !important;
            margin: 15px auto !important;
            padding: 12px 20px !important;
        }
        
        /* Calculator cards mobile grid */
        .tools-grid {
            grid-template-columns: 1fr !important;
            gap: 15px !important;
            padding: 15px !important;
        }
        
        /* Tool cards mobile sizing */
        .tool-card {
            padding: 20px 15px !important;
            margin: 0 !important;
        }
        
        /* Input fields mobile */
        input, select, button {
            font-size: 16px !important; /* Prevents zoom on iOS */
            padding: 12px !important;
            min-height: 44px !important; /* Touch target size */
        }
        
        /* Button mobile optimization */
        button {
            min-width: 120px !important;
            padding: 12px 20px !important;
        }
        
        /* Footer mobile layout */
        footer {
            padding: 20px 10px !important;
        }
        
        /* Social buttons mobile */
        .social-share a {
            padding: 10px 15px !important;
            font-size: 14px !important;
            margin: 5px !important;
        }
        
        /* Developer section mobile */
        .developer-section {
            padding: 30px 15px !important;
            margin-top: 30px !important;
        }
        
        /* Container padding mobile */
        .container {
            padding: 10px !important;
        }
    }
    
    /* Tablet responsiveness */
    @media screen and (min-width: 769px) and (max-width: 1024px) {
        h1 {
            font-size: clamp(3rem, 6vw, 4.5rem) !important;
        }
        
        .tools-grid {
            grid-template-columns: repeat(2, 1fr) !important;
            gap: 20px !important;
        }
    }
    
    /* Small mobile devices */
    @media screen and (max-width: 480px) {
        h1 {
            font-size: clamp(1.8rem, 12vw, 2.5rem) !important;
            line-height: 1.3 !important;
        }

          /* Comprehensive text wrapping for all elements */
p, span, div, h1, h2, h3, h4, h5, h6 {
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    word-break: break-word !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/* Developer section specific text wrapping */
.developer-section, .developer-section * {
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    max-width: 100% !important;
}

.developer-section p {
    font-size: 0.85rem !important;
    line-height: 1.4 !important;
    padding: 0 10px !important;
}

          /* Container and card text wrapping */
.container, .tool-card, .tool-card * {
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    max-width: 100% !important;
}

.tool-card h3, .tool-card p {
    font-size: 0.9rem !important;
    padding: 5px !important;
}
        
        .logo {
            width: 70px !important;
            height: 70px !important;
        }
        
        .tool-card {
            padding: 15px 10px !important;
        }
        
        input, select {
            padding: 10px !important;
        }
    }
    
    /* Landscape mobile orientation */
    @media screen and (max-height: 500px) and (orientation: landscape) {
        h1 {
            font-size: 2rem !important;
            margin: 10px 0 !important;
        }
        
        .logo {
            width: 60px !important;
            height: 60px !important;
        }
    }
    
    /* High contrast for better visibility */
    @media (prefers-contrast: high) {
        body {
            background: linear-gradient(135deg, #000080, #4B0082, #8B008B) !important;
        }
    }
    
    /* Reduced motion for accessibility */
    @media (prefers-reduced-motion: reduce) {
        *, *::before, *::after {
            animation-duration: 0.01ms !important;
            animation-iteration-count: 1 !important;
            transition-duration: 0.01ms !important;
        }
    }
<
  
  /* Extra small devices (phones, 320px and below) */

@media screen and (max-width: 320px) { /* Aggressive text wrapping for very small screens */ body, p, span, div, h1, h2, h3, h4, h5, h6 { word-wrap: break-word !important; overflow-wrap: break-word !important; word-break: break-word !important; hyphens: auto !important; }

h1 {
    font-size: clamp(1.5rem, 10vw, 2.2rem) !important;
    padding: 5px !important;
}

.developer-section p {
    font-size: 0.75rem !important;
    line-height: 1.3 !important;
    padding: 5px !important;
}

.tool-card {
    padding: 10px !important;
    margin: 10px 5px !important;
}

.tool-card h3 {
    font-size: 0.85rem !important;
}

.tool-card p {
    font-size: 0.75rem !important;
}

.container {
    padding: 5px !important;
}

}/style>

<!-- Open Graph / Facebook Meta Tags -->
<meta property="og:type" content="website">
<meta property="og:url" content="https://return7521-ui.github.io/studytools-india/">
<meta property="og:title" content="StudyTools India - 30+ Free Calculators for ISC, CBSE, JEE & NDA Students">
<meta property="og:description" content="Free online calculators for students - Percentage, CGPA, Age, BMI, Grade calculators. Study tools for JEE, NDA, ISC, CBSE students.">
<meta property="og:image" content="https://return7521-ui.github.io/studytools-india/og-image.png">

<!-- Twitter Card Meta Tags -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:url" content="https://return7521-ui.github.io/studytools-india/">
<meta name="twitter:title" content="StudyTools India - 30+ Free Calculators">
<meta name="twitter:description" content="Free online calculators for students - Percentage, CGPA, Age, BMI, Grade calculators.">
<meta name="twitter:image" content="https://return7521-ui.github.io/studytools-india/og-image.png">

<!-- Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
  gtag('config', 'G-XXXXXXXXXX');
</script>

<!-- Favicon -->
<link rel="icon" type="image/png" href=data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><defs><linearGradient id='grad1' x1='0%' y1='0%' x2='0%' y2='100%'><stop offset='0%' style='stop-color:%23FF9933'/><stop offset='50%' style='stop-color:%23FFFFFF'/><stop offset='100%' style='stop-color:%23138808'/></linearGradient></defs><rect width='100' height='100' fill='url(%23grad1)' rx='20'/><text x='50' y='65' font-family='Arial, sans-serif' font-size='48' font-weight='bold' text-anchor='middle' fill='%234A90E2'>ST</text></svg>" viewBox="0 0 100 100"><text y=".9em" font-size="90">๐Ÿ“š</text></svg>">
<title>StudyTools India - 30+ Free Calculators & Tools for Students</title>
<title>StudyTools India - 30+ Free Calculators & Tools for Students</title> <style> *{margin:0;padding:0;box-sizing:border-box} /* Enhanced Root Variables */ :root { --primary-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 50%, #f093fb 100%); --secondary-gradient: linear-gradient(135deg, #fa709a 0%, #fee140 100%); --accent-color: #764ba2; --text-glow: 0 0 10px rgba(118, 75, 162, 0.5); }

/* Particle Background Container */ #particles-js { position: fixed; width: 100%; height: 100%; top: 0; left: 0; z-index: -1; opacity: 0.6; } body{font-family:'Poppins','Segoe UI',Tahoma,Geneva,Verdana,sans-serif;background:linear-gradient(135deg,#667eea 0%,#764ba2 50%,#f093fb 100%);min-height:100vh;transition:background 0.5s ease;overflow-x:hidden;animation:gradientShift 15s ease infinite;background-size:400% 400%}body.dark-mode{background:linear-gradient(135deg,#1a1a2e 0%,#16213e 50%,#0f3460 100%)} .container{max-width:1200px;margin:0 auto;padding:20px} header{text-align:center;padding:40px 20px;animation:fadeInDown 0.8s ease} .logo{font-size:3em;animation:bounce 2s infinite} h1{color:#fff;font-size:2.5em;margin:10px 0;text-shadow:2px 2px 4px rgba(0,0,0,0.3);animation:fadeInUp 0.8s ease} .tagline{color:#f0f0f0;font-size:1.2em;margin:10px 0} .search-container{max-width:600px;margin:30px auto;position:relative;animation:slideInUp 0.8s ease} .search-box{width:100%;padding:15px 50px 15px 20px;border:none;border-radius:50px;font-size:1em;box-shadow:0 10px 30px rgba(0,0,0,0.2);transition:all 0.3s ease}

/* Custom Logo Styles */ .custom-logo { filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.2)); transition: all 0.4s ease; }

.custom-logo:hover { transform: scale(1.1) rotate(5deg); filter: drop-shadow(0 8px 16px rgba(118, 75, 162, 0.4)); } .search-box:focus{box-shadow:0 15px 40px rgba(0,0,0,0.3);transform:translateY(-2px);outline:none} .search-icon{position:absolute;right:20px;top:50%;transform:translateY(-50%);font-size:1.3em;color:#764ba2} .dark-mode-toggle{position:fixed;top:20px;right:20px;background:rgba(255,255,255,0.2);border:none;border-radius:50%;width:50px;height:50px;cursor:pointer;font-size:1.5em;transition:all 0.3s ease;z-index:1000;backdrop-filter:blur(10px)} .dark-mode-toggle:hover{background:rgba(255,255,255,0.3);transform:rotate(180deg)} .tools-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:30px;padding:20px 0;animation:fadeIn 1s ease} .tool-card{background:rgba(255,255,255,0.95);border-radius:20px;padding:30px;box-shadow:0 10px 30px rgba(0,0,0,0.1);transition:all 0.3s ease;animation:slideInUp 0.8s ease} .tool-card:hover{transform:translateY(-10px);box-shadow:0 20px 40px rgba(0,0,0,0.2)} .tool-icon{font-size:3em;margin-bottom:15px} .tool-card h3{color:#764ba2;margin:15px 0;font-size:1.5em} .tool-card p{color:#666;margin-bottom:20px} .input-group{margin:15px 0} .input-group label{display:block;margin-bottom:5px;color:#666;font-size:0.9em} .input-group input,.input-group select{width:100%;padding:12px;border:2px solid #e0e0e0;border-radius:10px;font-size:1em;transition:all 0.3s ease} .input-group input:focus,.input-group select:focus{border-color:#764ba2;outline:none;box-shadow:0 0 10px rgba(118,75,162,0.2)} .calc-btn{width:100%;padding:15px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:10px;font-size:1.1em;cursor:pointer;transition:all 0.3s ease;margin-top:15px} .calc-btn:hover{transform:scale(1.02);box-shadow:0 5px 15px rgba(118,75,162,0.4)} .calc-btn:active{transform:scale(0.98)} .result{margin-top:20px;padding:20px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:15px;color:#fff;text-align:center;font-size:1.2em;opacity:0;transform:translateY(20px);transition:all 0.5s ease} .result.show{opacity:1;transform:translateY(0)} .stats{display:flex;justify-content:space-around;margin:50px 0;padding:40px;background:rgba(255,255,255,0.95);border-radius:20px;box-shadow:0 10px 30px rgba(0,0,0,0.1)} .stat-item{text-align:center} .stat-number{font-size:3em;color:#764ba2;font-weight:bold} .stat-label{color:#666;font-size:1.1em;margin-top:10px} footer{background:rgba(255,255,255,0.95);padding:40px;border-radius:20px;text-align:center;margin-top:50px;box-shadow:0 10px 30px rgba(0,0,0,0.1)} footer p{margin:10px 0;color:#666} footer a{color:#764ba2;text-decoration:none;margin:0 15px;transition:color 0.3s ease} footer a:hover{color:#667eea} @keyframes fadeInDown{from{opacity:0;transform:translateY(-50px)}to{opacity:1;transform:translateY(0)}} @keyframes fadeInUp{from{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}} @keyframes slideInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}} @keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-20px)}} @keyframes fadeIn{from{opacity:0}to{opacity:1}} @media(max-width:768px){.tools-grid{grid-template-columns:1fr}.stats{flex-direction:column;gap:30px}h1{font-size:2em}.logo{font-size:2em}} </style>

๐ŸŒ™
๐Ÿงฎ

StudyTools India

<!-- Outer Circle with Indian Flag Gradient -->
<circle cx="50" cy="50" r="48" fill="url(#logoGrad)" opacity="0.3"/>

<!-- Calculator Body -->
<rect x="25" y="20" width="50" height="60" rx="5" fill="url(#calcGrad)" stroke="#fff" stroke-width="2"/>

<!-- Calculator Display -->
<rect x="30" y="26" width="40" height="12" rx="2" fill="#fff" opacity="0.9"/>
<text x="50" y="35" font-family="Arial, sans-serif" font-size="8" font-weight="bold" fill="#667eea" text-anchor="middle">123</text>

<!-- Calculator Buttons (3x4 Grid) -->
<circle cx="37" cy="46" r="3" fill="#fff" opacity="0.8"/>
<circle cx="50" cy="46" r="3" fill="#fff" opacity="0.8"/>
<circle cx="63" cy="46" r="3" fill="#fff" opacity="0.8"/>

<circle cx="37" cy="54" r="3" fill="#fff" opacity="0.8"/>
<circle cx="50" cy="54" r="3" fill="#fff" opacity="0.8"/>
<circle cx="63" cy="54" r="3" fill="#fff" opacity="0.8"/>

<circle cx="37" cy="62" r="3" fill="#fff" opacity="0.8"/>
<circle cx="50" cy="62" r="3" fill="#fff" opacity="0.8"/>
<circle cx="63" cy="62" r="3" fill="#fff" opacity="0.8"/>

<rect x="35" y="68" width="30" height="6" rx="2" fill="#FFD700" opacity="0.9"/>

<!-- Graduation Cap -->
<polygon points="50,12 38,18 50,24 62,18" fill="#FFD700" stroke="#fff" stroke-width="1"/>
<rect x="49" y="18" width="2" height="8" fill="#FFD700"/>
<circle cx="50" cy="27" r="2" fill="#FFD700"/>

<!-- Sparkle Effects -->
<circle cx="18" cy="25" r="2" fill="#FFD700" opacity="0.8">
  <animate attributeName="opacity" values="0.8;0.3;0.8" dur="2s" repeatCount="indefinite"/>
</circle>
<circle cx="82" cy="35" r="2" fill="#FFD700" opacity="0.8">
  <animate attributeName="opacity" values="0.3;0.8;0.3" dur="2s" repeatCount="indefinite"/>
</circle>
<circle cx="20" cy="75" r="2" fill="#FFD700" opacity="0.8">
  <animate attributeName="opacity" values="0.8;0.3;0.8" dur="2.5s" repeatCount="indefinite"/>
</circle>
๐Ÿ”
๐Ÿ“ˆ

Percentage Calculator

Calculate percentage, increase, decrease

Value
Total
Calculate
๐ŸŽ“

CGPA to Percentage

Convert CGPA to Percentage (ISC/CBSE)

Enter CGPA
CGPA Scale Out of 10 Out of 4
Convert
๐ŸŽ‚

Age Calculator

Calculate your exact age

Date of Birth
Calculate Age
โฐ

JEE/NDA Countdown

Days remaining for your exam

Exam Date
Count Days
โš–๏ธ

BMI Calculator

Calculate Body Mass Index

Height (cm)
Weight (kg)
Calculate BMI
๐Ÿ“

Grade Calculator

ISC/CBSE Grade Calculator

Marks Obtained
Total Marks
Get Grade
๐ŸŽฏ

GPA Calculator

Calculate your GPA

Enter grades (comma-separated): A,B+,A-
Calculate GPA
๐Ÿ”„

Percentage to CGPA

Convert Percentage to CGPA

Enter Percentage
CGPA Scale Out of 10 Out of 4
Convert
๐Ÿ“Š

Attendance Calculator

Calculate attendance percentage

Classes Attended
Total Classes
Calculate
๐Ÿงฎ

Average Calculator

Calculate mean/average of numbers

Enter numbers (comma-separated)
Calculate Average
๐Ÿ’ต

Simple Interest

Calculate Simple Interest

Principal (โ‚น)
Rate (%)
Time (years)
Calculate
๐Ÿ’ฐ

Compound Interest

Calculate Compound Interest

Principal (โ‚น)
Rate (%)
Time (years)
Compound Frequency Annually Semi-annually Quarterly Monthly
Calculate
โˆš

Square Root Calculator

Find square root of a number

Enter Number
Calculate
๐Ÿ”บ

Power Calculator

Calculate a^b (exponentiation)

Base (a)
Exponent (b)
Calculate
๐Ÿ”ข

LCM Calculator

Least Common Multiple

Enter numbers (comma-separated)
Calculate LCM
๐Ÿ”ก

HCF/GCD Calculator

Highest Common Factor

Enter numbers (comma-separated)
Calculate HCF
๐Ÿ”

Prime Number Checker

Check if a number is prime

Enter Number
Check
โ€ผ๏ธ

Factorial Calculator

Calculate n!

Enter Number
Calculate
๐Ÿ“Š

Quadratic Equation Solver

Solve axยฒ+bx+c=0

a
b
c
Solve
๐Ÿ“

Pythagorean Theorem

Find hypotenuse or side

Side a
Side b
Calculate
๐ŸŸฆ

Area Calculator

Calculate area of shapes

Shape Circle Rectangle Triangle Square
Radius/Side
Calculate Area
๐Ÿ“ฆ

Volume Calculator

Calculate volume of 3D shapes

Shape Sphere Cube Cylinder Cone
Radius/Side
Calculate Volume
๐ŸŒก๏ธ

Temperature Converter

Convert between C, F, K

Temperature
From Celsius Fahrenheit Kelvin
To Fahrenheit Celsius Kelvin
Convert
๐Ÿ“

Length Converter

Convert between units

Length
From Meter Kilometer Centimeter Feet Inch Mile
To Feet Meter Kilometer Centimeter Inch Mile
Convert
โš–๏ธ

Weight Converter

Convert between units

Weight
From Kilogram Gram Pound Ounce
To Pound Kilogram Gram Ounce
Convert
๐Ÿš€

Speed Calculator

Calculate Speed/Distance/Time

Distance (km)
Time (hours)
Calculate Speed
๐Ÿ’ป

Number System Converter

Binary/Decimal/Hexadecimal

Enter Number
From Decimal Binary Hexadecimal
Convert
๐Ÿ›๏ธ

Roman Numeral Converter

Arabic โ†” Roman

Enter Number/Roman
Convert
๐Ÿท๏ธ

Discount Calculator

Calculate final price after discount

Original Price (โ‚น)
Discount (%)
Calculate
๐Ÿด

Tip Calculator

Calculate restaurant tip

Bill Amount (โ‚น)
Tip (%)
Calculate
โฑ๏ธ

Time Duration Calculator

Calculate time difference

Start Time
End Time
Calculate
๐Ÿ“Š

Statistics Calculator

Mean, Median, Mode, Range

Enter numbers (comma-separated)
Calculate
โž—

Fraction Calculator

Add/Subtract Fractions

Fraction 1 (e.g., 1/2)
Operation Add Subtract Multiply Divide
Fraction 2 (e.g., 3/4)
Calculate
500K+

Students Helped

30+

Free Tools

100%

Free Forever

    <!-- CREATIVE DEVELOPER SECTION WITH MADE IN INDIA BRANDING -->
    <div class="developer-section" style="margin-top:60px;padding:60px 20px;background:linear-gradient(135deg, #667eea 0%, #764ba2 25%, #f093fb 50%, #4facfe 75%, #00f2fe 100%);background-size:400% 400%;animation:gradientShift 15s ease infinite;border-radius:30px;box-shadow:0 20px 60px rgba(0,0,0,0.3);position:relative;overflow:hidden;">
        
        <!-- Animated Background Particles -->
        <div style="position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;opacity:0.1;">
            <div style="position:absolute;width:300px;height:300px;background:white;border-radius:50%;top:-150px;left:-150px;animation:float 8s ease-in-out infinite;"></div>
            <div style="position:absolute;width:200px;height:200px;background:white;border-radius:50%;bottom:-100px;right:-100px;animation:float 6s ease-in-out infinite reverse;"></div>
            <div style="position:absolute;width:150px;height:150px;background:white;border-radius:50%;top:50%;left:50%;animation:float 10s ease-in-out infinite;"></div>
        </div>
        
        <!-- Made in India Badge -->
        <div style="text-align:center;margin-bottom:40px;position:relative;z-index:2;">
            <div style="display:inline-block;background:linear-gradient(90deg, #FF9933 33.33%, #FFFFFF 33.33%, #FFFFFF 66.66%, #138808 66.66%);padding:4px;border-radius:50px;box-shadow:0 10px 30px rgba(0,0,0,0.3);animation:pulse 2s ease-in-out infinite;">
                <div style="background:rgba(255,255,255,0.95);padding:15px 35px;border-radius:50px;backdrop-filter:blur(10px);">
                    <span style="font-size:28px;font-weight:800;background:linear-gradient(90deg, #FF9933, #138808);-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-shadow:2px 2px 4px rgba(0,0,0,0.1);letter-spacing:2px;font-family:'Poppins',sans-serif;">๐Ÿ‡ฎ๐Ÿ‡ณ PROUDLY MADE IN INDIA ๐Ÿ‡ฎ๐Ÿ‡ณ</span>
                </div>
            </div>
            <p style="margin-top:15px;font-size:16px;color:white;font-weight:600;text-shadow:2px 2px 8px rgba(0,0,0,0.3);font-family:'Raleway',sans-serif;letter-spacing:1px;">โœจ Designed, Developed & Crafted with Love in Bharat โœจ</p>
        </div>
        
        <!-- Developer Profile Card -->
        <div style="background:rgba(255,255,255,0.15);backdrop-filter:blur(20px);border-radius:25px;padding:40px;max-width:800px;margin:0 auto;border:2px solid rgba(255,255,255,0.3);box-shadow:0 15px 40px rgba(0,0,0,0.2);position:relative;z-index:2;">
            
            <!-- Developer Header -->
            <div style="text-align:center;margin-bottom:30px;">
                <div style="width:120px;height:120px;margin:0 auto 20px;background:linear-gradient(135deg, #667eea, #764ba2);border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px rgba(0,0,0,0.3);animation:rotate 20s linear infinite;border:5px solid rgba(255,255,255,0.5);">
                    <span style="font-size:60px;">๐Ÿ‘จโ€๐Ÿ’ป</span>
                </div>
                <h2 style="font-size:36px;font-weight:900;color:white;margin:0;text-shadow:3px 3px 10px rgba(0,0,0,0.4);font-family:'Montserrat',sans-serif;letter-spacing:3px;animation:textGlow 2s ease-in-out infinite alternate;">SHASHANK KUSHWAHA</h2>
                <p style="font-size:22px;color:#FFD700;margin:10px 0 5px;font-weight:700;text-shadow:2px 2px 6px rgba(0,0,0,0.3);font-family:'Raleway',sans-serif;letter-spacing:2px;">๐ŸŽ“ Class 11 ISC Student | Future Engineer</p>
                <p style="font-size:18px;color:rgba(255,255,255,0.9);margin:5px 0;font-weight:600;font-style:italic;text-shadow:1px 1px 4px rgba(0,0,0,0.3);font-family:'Lato',sans-serif;">โœˆ๏ธ AI Developer & Future Innovator Officer | ๐Ÿš€ Web Developer</p>
            </div>
            
            <!-- Developer Description -->
            <div style="background:rgba(255,255,255,0.1);border-radius:20px;padding:25px;margin:25px 0;border-left:6px solid #FFD700;">
                <p style="font-size:18px;line-height:1.8;color:white;margin:0;text-align:center;font-weight:500;text-shadow:1px 1px 3px rgba(0,0,0,0.3);font-family:'Roboto',sans-serif;">
                    <span style="font-size:24px;color:#FFD700;">โค๏ธ</span> <strong style="color:#FFD700;font-size:20px;font-family:'Pacifico',cursive;">Crafted with Passion</strong> to help fellow Indian students ace their JEE, NDA & Board exams! <span style="font-size:24px;">๐Ÿ“š</span><br>
                    <span style="font-size:16px;color:rgba(255,255,255,0.85);font-style:italic;margin-top:10px;display:inline-block;">"Empowering 500,000+ Students Across India with Free Study Tools" ๐ŸŒŸ</span>
                </p>
            </div>
            
            <!-- Contact Information -->
            <div style="display:flex;flex-wrap:wrap;justify-content:center;gap:15px;margin:30px 0;">
                <a href="mailto:return7521@gmail.com" style="background:linear-gradient(135deg, #EA4335, #FBBC04);color:white;padding:15px 30px;border-radius:50px;text-decoration:none;font-weight:700;font-size:16px;box-shadow:0 8px 20px rgba(234,67,53,0.4);transition:all 0.3s ease;display:inline-flex;align-items:center;gap:10px;font-family:'Open Sans',sans-serif;" onmouseover="this.style.transform='scale(1.1) rotate(2deg)';this.style.boxShadow='0 12px 30px rgba(234,67,53,0.6)';" onmouseout="this.style.transform='scale(1) rotate(0deg)';this.style.boxShadow='0 8px 20px rgba(234,67,53,0.4)';">
                    ๐Ÿ“ง return7521@gmail.com
                </a>
                <a href="https://instagram.com/shashank_404_" target="_blank" style="background:linear-gradient(135deg, #E4405F, #C13584, #833AB4);color:white;padding:15px 30px;border-radius:50px;text-decoration:none;font-weight:700;font-size:16px;box-shadow:0 8px 20px rgba(228,64,95,0.4);transition:all 0.3s ease;display:inline-flex;align-items:center;gap:10px;font-family:'Open Sans',sans-serif;" onmouseover="this.style.transform='scale(1.1) rotate(-2deg)';this.style.boxShadow='0 12px 30px rgba(228,64,95,0.6)';" onmouseout="this.style.transform='scale(1) rotate(0deg)';this.style.boxShadow='0 8px 20px rgba(228,64,95,0.4)';">
                    ๐Ÿ“ธ @shashank_404_
                </a>
            </div>
            
            <!-- Tech Stack Badges -->
            <div style="text-align:center;margin-top:30px;">
                <p style="color:rgba(255,255,255,0.9);font-size:16px;font-weight:600;margin-bottom:15px;text-shadow:1px 1px 3px rgba(0,0,0,0.3);font-family:'Ubuntu',sans-serif;letter-spacing:1px;">โšก BUILT WITH โšก</p>
                <div style="display:flex;flex-wrap:wrap;justify-content:center;gap:12px;">
                    <span style="background:rgba(255,255,255,0.25);padding:10px 20px;border-radius:25px;font-size:14px;color:white;font-weight:700;border:2px solid rgba(255,255,255,0.4);font-family:'Fira Code',monospace;text-shadow:1px 1px 2px rgba(0,0,0,0.3);">๐Ÿ’ป HTML5</span>
                    <span style="background:rgba(255,255,255,0.25);padding:10px 20px;border-radius:25px;font-size:14px;color:white;font-weight:700;border:2px solid rgba(255,255,255,0.4);font-family:'Fira Code',monospace;text-shadow:1px 1px 2px rgba(0,0,0,0.3);">๐ŸŽจ CSS3</span>
                    <span style="background:rgba(255,255,255,0.25);padding:10px 20px;border-radius:25px;font-size:14px;color:white;font-weight:700;border:2px solid rgba(255,255,255,0.4);font-family:'Fira Code',monospace;text-shadow:1px 1px 2px rgba(0,0,0,0.3);">โšก JavaScript</span>
                    <span style="background:rgba(255,255,255,0.25);padding:10px 20px;border-radius:25px;font-size:14px;color:white;font-weight:700;border:2px solid rgba(255,255,255,0.4);font-family:'Fira Code',monospace;text-shadow:1px 1px 2px rgba(0,0,0,0.3);">โค๏ธ Dedication</span>
                    <span style="background:rgba(255,255,255,0.25);padding:10px 20px;border-radius:25px;font-size:14px;color:white;font-weight:700;border:2px solid rgba(255,255,255,0.4);font-family:'Fira Code',monospace;text-shadow:1px 1px 2px rgba(0,0,0,0.3);">๐Ÿ‡ฎ๐Ÿ‡ณ Indian Innovation</span>
                </div>
            </div>
        </div>
        
        <!-- Footer Copyright -->
        <div style="text-align:center;margin-top:40px;position:relative;z-index:2;">
            <p style="color:white;font-size:18px;font-weight:600;margin:10px 0;text-shadow:2px 2px 6px rgba(0,0,0,0.4);font-family:'Nunito',sans-serif;">ยฉ 2025 StudyTools India | All Calculators are 100% Free Forever ๐ŸŽ‰</p>
            <p style="color:rgba(255,255,255,0.85);font-size:15px;font-weight:500;margin:5px 0;text-shadow:1px 1px 3px rgba(0,0,0,0.3);font-family:'Inter',sans-serif;">๐ŸŒŸ Serving Students from Kashmir to Kanyakumari ๐ŸŒŸ</p>
            <p style="color:rgba(255,255,255,0.75);font-size:14px;font-style:italic;margin:5px 0;text-shadow:1px 1px 3px rgba(0,0,0,0.3);font-family:'Merriweather',serif;">"Education is the most powerful weapon to change the world" - Dr. APJ Abdul Kalam ๐Ÿš€</p>
        </div>
    </div>
    
    <!-- CSS Animations -->
    <style>
        @keyframes gradientShift {
            0% { background-position: 0% 50%; }
            50% { background-position: 100% 50%; }
            100% { background-position: 0% 50%; }
        }
        @keyframes float {
            0%, 100% { transform: translateY(0px) translateX(0px); }
            25% { transform: translateY(-30px) translateX(20px); }
            50% { transform: translateY(-60px) translateX(-10px); }
            75% { transform: translateY(-30px) translateX(-20px); }
        }
        @keyframes pulse {
            0%, 100% { transform: scale(1); }
            50% { transform: scale(1.05); }
        }
        @keyframes rotate {
            0% { transform: rotate(0deg); }
            100% { transform: rotate(360deg); }
        }
        @keyframes textGlow {
            from { text-shadow: 3px 3px 10px rgba(0,0,0,0.4), 0 0 20px rgba(255,255,255,0.3); }
            to { text-shadow: 3px 3px 10px rgba(0,0,0,0.4), 0 0 40px rgba(255,255,255,0.6), 0 0 60px rgba(255,215,0,0.4); }
        }
    </style>

๐Ÿ“ข Share StudyTools India with your friends!

Help your friends discover these free study tools! ๐ŸŽ“

<script> // Percentage Calculator function calcPercentage(){const v=parseFloat(document.getElementById('perc-value').value);const t=parseFloat(document.getElementById('perc-total').value);if(!v||!t){showResult('perc-result','โš ๏ธ Please enter both values',false);return}const p=((v/t)*100).toFixed(2);showResult('perc-result',`โœ… ${p}%
${v} is ${p}% of ${t}`,true)} // CGPA to Percentage function calcCGPA(){const c=parseFloat(document.getElementById('cgpa-value').value);const s=parseFloat(document.getElementById('cgpa-scale').value);if(!c){showResult('cgpa-result','โš ๏ธ Please enter CGPA',false);return}const p=s===10?(c*9.5).toFixed(2):(c*25).toFixed(2);let g='';if(p>=90)g='A+ (Outstanding)';else if(p>=80)g='A (Excellent)';else if(p>=70)g='B+ (Very Good)';else if(p>=60)g='B (Good)';else if(p>=50)g='C (Average)';else g='D (Pass)';showResult('cgpa-result',`โœ… ${p}%
Grade: ${g}`,true)} // Age Calculator function calcAge(){const d=document.getElementById('dob').value;if(!d){showResult('age-result','โš ๏ธ Please enter date of birth',false);return}const b=new Date(d);const t=new Date();let y=t.getFullYear()-b.getFullYear();let m=t.getMonth()-b.getMonth();let days=t.getDate()-b.getDate();if(days<0){m--;days+=30}if(m<0){y--;m+=12}showResult('age-result',`๐ŸŽ‰ ${y} years, ${m} months, ${days} days`,true)} // JEE/NDA Countdown function calcCountdown(){const e=document.getElementById('exam-date').value;if(!e){showResult('countdown-result','โš ๏ธ Please enter exam date',false);return}const ex=new Date(e);const t=new Date();const diff=Math.ceil((ex-t)/(1000*60*60*24));if(diff<0)showResult('countdown-result','โš ๏ธ Exam date has passed',false);else if(diff===0)showResult('countdown-result','๐Ÿ”ฅ Exam is TODAY! Good luck!',true);else showResult('countdown-result',`โณ ${diff} days remaining
๐Ÿ’ช Keep pushing!`,true)} // BMI Calculator function calcBMI(){const h=parseFloat(document.getElementById('height').value);const w=parseFloat(document.getElementById('weight').value);if(!h||!w){showResult('bmi-result','โš ๏ธ Please enter both values',false);return}const bmi=((w/((h/100)**2)).toFixed(2));let cat='';if(bmi<18.5)cat='Underweight';else if(bmi<25)cat='Normal weight';else if(bmi<30)cat='Overweight';else cat='Obese';showResult('bmi-result',`BMI: ${bmi}
Category: ${cat}`,true)} // Grade Calculator function calcGrade(){const m=parseFloat(document.getElementById('marks').value);const t=parseFloat(document.getElementById('total-marks').value);if(!m||!t){showResult('grade-result','โš ๏ธ Please enter both marks',false);return}const p=((m/t)*100).toFixed(2);let g='';if(p>=90)g='A+ Grade';else if(p>=80)g='A Grade';else if(p>=70)g='B+ Grade';else if(p>=60)g='B Grade';else if(p>=50)g='C Grade';else if(p>=40)g='D Grade';else g='Fail';showResult('grade-result',`๐ŸŽฏ ${p}%
${g}`,true)} // GPA Calculator function calcGPA(){const grades=document.getElementById('gpa-grades').value.toUpperCase().split(',').map(g=>g.trim());if(grades.length===0){showResult('gpa-result','โš ๏ธ Please enter grades',false);return}const gradePoints={'A+':10,'A':9,'A-':8.5,'B+':8,'B':7,'B-':6.5,'C+':6,'C':5,'D':4,'F':0};let total=0;let count=0;grades.forEach(g=>{if(gradePoints[g]!==undefined){total+=gradePoints[g];count++}});if(count===0){showResult('gpa-result','โš ๏ธ Invalid grades',false);return}const gpa=(total/count).toFixed(2);showResult('gpa-result',`๐ŸŽฏ GPA: ${gpa}/10
Based on ${count} grades`,true)} // Percentage to CGPA function calcPercToCGPA(){const p=parseFloat(document.getElementById('perc-to-cgpa-value').value);const s=parseFloat(document.getElementById('perc-to-cgpa-scale').value);if(!p){showResult('perc-to-cgpa-result','โš ๏ธ Please enter percentage',false);return}const cgpa=s===10?(p/9.5).toFixed(2):(p/25).toFixed(2);showResult('perc-to-cgpa-result',`โœ… CGPA: ${cgpa}/${s}`,true)} // Attendance Calculator function calcAttendance(){const a=parseFloat(document.getElementById('attended').value);const t=parseFloat(document.getElementById('total-classes').value);if(!a||!t){showResult('attendance-result','โš ๏ธ Please enter both values',false);return}const p=((a/t)*100).toFixed(2);let msg='';if(p>=75)msg='โœ… Great attendance!';else msg='โš ๏ธ Need to improve';showResult('attendance-result',`${p}%
${msg}`,p>=75)} // Average Calculator function calcAverage(){const nums=document.getElementById('avg-numbers').value.split(',').map(n=>parseFloat(n.trim())).filter(n=>!isNaN(n));if(nums.length===0){showResult('average-result','โš ๏ธ Please enter numbers',false);return}const avg=(nums.reduce((a,b)=>a+b,0)/nums.length).toFixed(2);showResult('average-result',`๐Ÿงฎ Average: ${avg}
Count: ${nums.length}`,true)} // Simple Interest function calcSimpleInterest(){const p=parseFloat(document.getElementById('si-principal').value);const r=parseFloat(document.getElementById('si-rate').value);const t=parseFloat(document.getElementById('si-time').value);if(!p||!r||!t){showResult('si-result','โš ๏ธ Please enter all values',false);return}const si=(p*r*t/100).toFixed(2);const total=(parseFloat(p)+parseFloat(si)).toFixed(2);showResult('si-result',`๐Ÿ’ต Interest: โ‚น${si}
Total: โ‚น${total}`,true)} // Compound Interest function calcCompoundInterest(){const p=parseFloat(document.getElementById('ci-principal').value);const r=parseFloat(document.getElementById('ci-rate').value);const t=parseFloat(document.getElementById('ci-time').value);const n=parseFloat(document.getElementById('ci-freq').value);if(!p||!r||!t){showResult('ci-result','โš ๏ธ Please enter all values',false);return}const a=p*Math.pow((1+r/(100*n)),(n*t));const ci=(a-p).toFixed(2);showResult('ci-result',`๐Ÿ’ฐ Interest: โ‚น${ci}
Total: โ‚น${a.toFixed(2)}`,true)} // Square Root function calcSquareRoot(){const n=parseFloat(document.getElementById('sqrt-num').value);if(!n||n<0){showResult('sqrt-result','โš ๏ธ Please enter a positive number',false);return}const result=Math.sqrt(n).toFixed(4);showResult('sqrt-result',`โˆš${n} = ${result}`,true)} // Power Calculator function calcPower(){const base=parseFloat(document.getElementById('power-base').value);const exp=parseFloat(document.getElementById('power-exp').value);if(isNaN(base)||isNaN(exp)){showResult('power-result','โš ๏ธ Please enter both values',false);return}const result=Math.pow(base,exp).toFixed(4);showResult('power-result',`${base}^${exp} = ${result}`,true)} // LCM Calculator function calcLCM(){const nums=document.getElementById('lcm-numbers').value.split(',').map(n=>parseInt(n.trim())).filter(n=>!isNaN(n)&&n>0);if(nums.length<2){showResult('lcm-result','โš ๏ธ Enter at least 2 numbers',false);return}const gcd=(a,b)=>b===0?a:gcd(b,a%b);const lcm=(a,b)=>(a*b)/gcd(a,b);const result=nums.reduce((a,b)=>lcm(a,b));showResult('lcm-result',`๐Ÿ”ข LCM = ${result}`,true)} // HCF Calculator function calcHCF(){const nums=document.getElementById('hcf-numbers').value.split(',').map(n=>parseInt(n.trim())).filter(n=>!isNaN(n)&&n>0);if(nums.length<2){showResult('hcf-result','โš ๏ธ Enter at least 2 numbers',false);return}const gcd=(a,b)=>b===0?a:gcd(b,a%b);const result=nums.reduce((a,b)=>gcd(a,b));showResult('hcf-result',`๐Ÿ”ก HCF/GCD = ${result}`,true)} // Prime Number Checker function checkPrime(){const n=parseInt(document.getElementById('prime-num').value);if(!n||n<2){showResult('prime-result','โš ๏ธ Enter a number โ‰ฅ 2',false);return}let isPrime=true;for(let i=2;i<=Math.sqrt(n);i++){if(n%i===0){isPrime=false;break}}showResult('prime-result',isPrime?`โœ… ${n} is PRIME`:`โŒ ${n} is NOT prime`,isPrime)} // Factorial function calcFactorial(){const n=parseInt(document.getElementById('fact-num').value);if(!n||n<0||n>170){showResult('factorial-result','โš ๏ธ Enter 0-170',false);return}let fact=1;for(let i=2;i<=n;i++)fact*=i;showResult('factorial-result',`${n}! = ${fact.toExponential(2)}`,true)} // Quadratic Equation function solveQuadratic(){const a=parseFloat(document.getElementById('quad-a').value);const b=parseFloat(document.getElementById('quad-b').value);const c=parseFloat(document.getElementById('quad-c').value);if(isNaN(a)||isNaN(b)||isNaN(c)||a===0){showResult('quadratic-result','โš ๏ธ Invalid values (aโ‰ 0)',false);return}const disc=b*b-4*a*c;if(disc<0){showResult('quadratic-result','No real roots',false)}else{const x1=((-b+Math.sqrt(disc))/(2*a)).toFixed(2);const x2=((-b-Math.sqrt(disc))/(2*a)).toFixed(2);showResult('quadratic-result',`xโ‚ = ${x1}
xโ‚‚ = ${x2}`,true)}} // Pythagorean Theorem function calcPythagorean(){const a=parseFloat(document.getElementById('pyth-a').value);const b=parseFloat(document.getElementById('pyth-b').value);if(!a||!b){showResult('pythagorean-result','โš ๏ธ Enter both sides',false);return}const c=Math.sqrt(a*a+b*b).toFixed(2);showResult('pythagorean-result',`๐Ÿ“ Hypotenuse (c) = ${c}`,true)} // Area Calculator function calcArea(){const shape=document.getElementById('area-shape').value;const val1=parseFloat(document.getElementById('area-val1').value);if(!val1){showResult('area-result','โš ๏ธ Enter value',false);return}let area=0;if(shape==='circle')area=Math.PI*val1*val1;else if(shape==='square')area=val1*val1;else if(shape==='rectangle'){const val2=parseFloat(prompt('Enter width:'));area=val1*val2}else if(shape==='triangle'){const val2=parseFloat(prompt('Enter height:'));area=0.5*val1*val2}showResult('area-result',`๐ŸŸฆ Area = ${area.toFixed(2)} sq units`,true)} // Volume Calculator function calcVolume(){const shape=document.getElementById('volume-shape').value;const val1=parseFloat(document.getElementById('volume-val1').value);if(!val1){showResult('volume-result','โš ๏ธ Enter value',false);return}let vol=0;if(shape==='sphere')vol=(4/3)*Math.PI*Math.pow(val1,3);else if(shape==='cube')vol=Math.pow(val1,3);else if(shape==='cylinder'){const h=parseFloat(prompt('Enter height:'));vol=Math.PI*val1*val1*h}else if(shape==='cone'){const h=parseFloat(prompt('Enter height:'));vol=(1/3)*Math.PI*val1*val1*h}showResult('volume-result',`๐Ÿ“ฆ Volume = ${vol.toFixed(2)} cubic units`,true)} // Temperature Converter function convertTemp(){const val=parseFloat(document.getElementById('temp-value').value);const from=document.getElementById('temp-from').value;const to=document.getElementById('temp-to').value;if(isNaN(val)){showResult('temp-result','โš ๏ธ Enter temperature',false);return}let result=0;if(from===to)result=val;else if(from==='celsius'&&to==='fahrenheit')result=(val*9/5)+32;else if(from==='celsius'&&to==='kelvin')result=val+273.15;else if(from==='fahrenheit'&&to==='celsius')result=(val-32)*5/9;else if(from==='fahrenheit'&&to==='kelvin')result=((val-32)*5/9)+273.15;else if(from==='kelvin'&&to==='celsius')result=val-273.15;else if(from==='kelvin'&&to==='fahrenheit')result=((val-273.15)*9/5)+32;showResult('temp-result',`๐ŸŒก๏ธ ${result.toFixed(2)}ยฐ ${to.charAt(0).toUpperCase()}`,true)} // Length Converter function convertLength(){const val=parseFloat(document.getElementById('length-value').value);const from=document.getElementById('length-from').value;const to=document.getElementById('length-to').value;if(isNaN(val)){showResult('length-result','โš ๏ธ Enter length',false);return}const units={meter:1,kilometer:0.001,centimeter:100,feet:3.28084,inch:39.3701,mile:0.000621371};const inMeters=val/units[from];const result=inMeters*units[to];showResult('length-result',`๐Ÿ“ ${result.toFixed(4)} ${to}`,true)} // Weight Converter function convertWeight(){const val=parseFloat(document.getElementById('weight-value').value);const from=document.getElementById('weight-from').value;const to=document.getElementById('weight-to').value;if(isNaN(val)){showResult('weight-result','โš ๏ธ Enter weight',false);return}const units={kilogram:1,gram:1000,pound:2.20462,ounce:35.274};const inKg=val/units[from];const result=inKg*units[to];showResult('weight-result',`โš–๏ธ ${result.toFixed(4)} ${to}`,true)} // Speed Calculator function calcSpeed(){const dist=parseFloat(document.getElementById('speed-dist').value);const time=parseFloat(document.getElementById('speed-time').value);if(!dist||!time){showResult('speed-result','โš ๏ธ Enter both values',false);return}const speed=(dist/time).toFixed(2);showResult('speed-result',`๐Ÿš€ Speed = ${speed} km/h`,true)} // Binary Converter function convertBinary(){const input=document.getElementById('binary-input').value.trim();const from=document.getElementById('binary-from').value;if(!input){showResult('binary-result','โš ๏ธ Enter a number',false);return}let decimal=0;try{if(from==='decimal')decimal=parseInt(input,10);else if(from==='binary')decimal=parseInt(input,2);else if(from==='hex')decimal=parseInt(input,16);const binary=decimal.toString(2);const hex=decimal.toString(16).toUpperCase();showResult('binary-result',`Dec: ${decimal}
Bin: ${binary}
Hex: ${hex}`,true)}catch(e){showResult('binary-result','โš ๏ธ Invalid input',false)}} // Roman Numeral Converter function convertRoman(){const input=document.getElementById('roman-input').value.trim().toUpperCase();if(!input){showResult('roman-result','โš ๏ธ Enter value',false);return}if(/^[0-9]+$/.test(input)){const num=parseInt(input);if(num<1||num>3999){showResult('roman-result','โš ๏ธ Enter 1-3999',false);return}const values=[1000,900,500,400,100,90,50,40,10,9,5,4,1];const symbols=['M','CM','D','CD','C','XC','L','XL','X','IX','V','IV','I'];let roman='';for(let i=0;i=values[i]){roman+=symbols[i];num-=values[i]}}showResult('roman-result',`๐Ÿ›๏ธ ${roman}`,true)}else{const romanValues={I:1,V:5,X:10,L:50,C:100,D:500,M:1000};let num=0;for(let i=0;iFinal Price: โ‚น${final}`,true)} // Tip Calculator function calcTip(){const bill=parseFloat(document.getElementById('tip-bill').value);const tipPerc=parseFloat(document.getElementById('tip-perc').value);if(!bill||!tipPerc){showResult('tip-result','โš ๏ธ Enter both values',false);return}const tip=(bill*tipPerc/100).toFixed(2);const total=(parseFloat(bill)+parseFloat(tip)).toFixed(2);showResult('tip-result',`๐Ÿด Tip: โ‚น${tip}
Total: โ‚น${total}`,true)} // Time Duration Calculator function calcTimeDuration(){const start=document.getElementById('time-start').value;const end=document.getElementById('time-end').value;if(!start||!end){showResult('time-duration-result','โš ๏ธ Enter both times',false);return}const [h1,m1]=start.split(':').map(Number);const [h2,m2]=end.split(':').map(Number);let hours=h2-h1;let mins=m2-m1;if(mins<0){hours--;mins+=60}if(hours<0)hours+=24;showResult('time-duration-result',`โฑ๏ธ ${hours}h ${mins}m`,true)} // Statistics Calculator function calcStatistics(){const nums=document.getElementById('stats-numbers').value.split(',').map(n=>parseFloat(n.trim())).filter(n=>!isNaN(n));if(nums.length===0){showResult('stats-result','โš ๏ธ Enter numbers',false);return}nums.sort((a,b)=>a-b);const mean=(nums.reduce((a,b)=>a+b,0)/nums.length).toFixed(2);const median=nums.length%2===0?((nums[nums.length/2-1]+nums[nums.length/2])/2).toFixed(2):nums[Math.floor(nums.length/2)].toFixed(2);const range=(nums[nums.length-1]-nums[0]).toFixed(2);showResult('stats-result',`Mean: ${mean}
Median: ${median}
Range: ${range}`,true)} // Fraction Calculator function calcFraction(){const frac1=document.getElementById('frac1').value.split('/').map(n=>parseInt(n.trim()));const frac2=document.getElementById('frac2').value.split('/').map(n=>parseInt(n.trim()));const op=document.getElementById('frac-op').value;if(frac1.length!==2||frac2.length!==2){showResult('fraction-result','โš ๏ธ Invalid format',false);return}let [n1,d1]=frac1;let [n2,d2]=frac2;let resNum=0,resDen=0;if(op==='add'){resNum=n1*d2+n2*d1;resDen=d1*d2}else if(op==='subtract'){resNum=n1*d2-n2*d1;resDen=d1*d2}else if(op==='multiply'){resNum=n1*n2;resDen=d1*d2}else if(op==='divide'){resNum=n1*d2;resDen=d1*n2}const gcd=(a,b)=>b===0?a:gcd(b,Math.abs(a%b));const g=gcd(Math.abs(resNum),Math.abs(resDen));resNum/=g;resDen/=g;showResult('fraction-result',`โž— ${resNum}/${resDen}`,true)} // Helper function to show results function showResult(id,html,success){const el=document.getElementById(id);el.innerHTML=html;el.classList.remove('show');setTimeout(()=>el.classList.add('show'),10);setTimeout(()=>el.classList.remove('show'),5000)} // Search functionality function searchTools(){const q=document.getElementById('searchBox').value.toLowerCase();const cards=document.querySelectorAll('.tool-card');cards.forEach(card=>{const tool=card.getAttribute('data-tool');const title=card.querySelector('h3').textContent.toLowerCase();const desc=card.querySelector('p').textContent.toLowerCase();if(tool.includes(q)||title.includes(q)||desc.includes(q)){card.style.display='block'}else{card.style.display='none'}})} // Dark mode toggle function toggleDarkMode(){document.body.classList.toggle('dark-mode');const btn=document.querySelector('.dark-mode-toggle');btn.textContent=document.body.classList.contains('dark-mode')?'โ˜€๏ธ':'๐ŸŒ™';localStorage.setItem('darkMode',document.body.classList.contains('dark-mode'))} // Load dark mode preference window.onload=function(){if(localStorage.getItem('darkMode')==='true'){document.body.classList.add('dark-mode');document.querySelector('.dark-mode-toggle').textContent='โ˜€๏ธ'}} // Add Gradient Background Animation Keyframes const style = document.createElement('style'); style.innerHTML = ` @keyframes gradientShift { 0% {background-position: 0% 50%} 50% {background-position: 100% 50%} 100% {background-position: 0% 50%} } @keyframes float { 0%, 100% {transform: translateY(0px)} 50% {transform: translateY(-20px)} } @keyframes glow { 0%, 100% {box-shadow: 0 0 20px rgba(118, 75, 162, 0.5)} 50% {box-shadow: 0 0 40px rgba(118, 75, 162, 0.8), 0 0 60px rgba(118, 75, 162, 0.6)} } @keyframes pulse { 0%, 100% {transform: scale(1)} 50% {transform: scale(1.05)} } .tool-card { /* animation: float 3s ease-in-out infinite; - REMOVED FLOAT ANIMATION */ } .tool-card:hover { animation: shimmer 3s ease-in-out infinite; /* REMOVED float, ADDED shimmer */ transform: translateY(-15px) scale(1.03) !important; } .logo { font-family: 'Orbitron', sans-serif !important; background: linear-gradient(45deg, #667eea, #764ba2, #f093fb); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; animation: float 2s ease-in-out infinite; } h1 { font-family: 'Poppins', sans-serif !important; font-weight: 700; } .result { font-family: 'Roboto Mono', monospace !important; } `; document.head.appendChild(style); // Initialize Particles.js for Dynamic Background if(typeof particlesJS !== 'undefined') { particlesJS('particles-js', { particles: { number: {value: 80, density: {enable: true, value_area: 800}}, color: {value: '#ffffff'}, shape: {type: 'circle'}, opacity: {value: 0.5, random: true}, size: {value: 3, random: true}, line_linked: {enable: true, distance: 150, color: '#ffffff', opacity: 0.4, width: 1}, move: {enable: true, speed: 2, direction: 'none', random: false, straight: false, out_mode: 'out', bounce: false} }, interactivity: { detect_on: 'canvas', events: {onhover: {enable: true, mode: 'repulse'}, onclick: {enable: true, mode: 'push'}}, modes: {repulse: {distance: 100, duration: 0.4}, push: {particles_nb: 4}} }, retina_detect: true }); } </script>