:root { --primary: #1d4ed8; --primary-600: #2563eb; --primary-50: #eff6ff; --primary-100: #dbeafe; --secondary: #0f172a; --secondary-800: #1e293b; --muted: #64748b; --muted-2: #94a3b8; --border: #e2e8f0; --surface: #ffffff; --soft: #f8fafc; --soft-2: #f1f5f9; --accent: #f59e0b; --success: #16a34a; --danger: #e11d48; --radius-sm: 14px; --radius-md: 22px; --radius-lg: 32px; --shadow-sm: 0 12px 30px rgba(15, 23, 42, 0.08); --shadow-md: 0 22px 60px rgba(15, 23, 42, 0.12); --shadow-blue: 0 20px 55px rgba(37, 99, 235, 0.18); --container: min(1120px, calc(100% - 40px)); --transition: 220ms ease; } * { box-sizing: border-box; } html { scroll-behavior: smooth; } body { margin: 0; min-height: 100vh; font-family: 'Plus Jakarta Sans', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; color: var(--secondary); background: var(--soft); line-height: 1.7; -webkit-font-smoothing: antialiased; } body.nav-open { overflow: hidden; } img { max-width: 100%; display: block; } a { color: inherit; } button, input, select, textarea { font: inherit; } .skip-link { position: absolute; left: -999px; top: 12px; z-index: 99999; background: var(--secondary); color: #fff; padding: 10px 14px; border-radius: 12px; } .skip-link:focus { left: 12px; } .site-header { position: sticky; top: 0; width: 100%; height: 78px; z-index: 1000; display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 0 max(24px, calc((100vw - 1180px) / 2)); background: rgba(255, 255, 255, 0.92); border-bottom: 1px solid rgba(226, 232, 240, 0.78); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); transition: box-shadow var(--transition), background var(--transition); } .site-header.is-scrolled { box-shadow: 0 12px 30px rgba(15, 23, 42, 0.08); background: rgba(255, 255, 255, 0.98); } .site-brand, .footer-brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; flex: 0 0 auto; } .site-brand__icon { width: 44px; height: 44px; border-radius: 15px; display: grid; place-items: center; color: #fff; background: linear-gradient(135deg, var(--primary), #60a5fa); box-shadow: var(--shadow-blue); } .site-brand__text { font-weight: 900; font-size: 1.18rem; letter-spacing: -0.045em; color: var(--secondary); } .site-brand__text strong, .footer-brand span { color: var(--primary-600); } .desktop-nav { flex: 1; display: flex; justify-content: center; } .desktop-nav ul { list-style: none; display: flex; gap: 22px; align-items: center; padding: 0; margin: 0; } .desktop-nav a { text-decoration: none; color: var(--secondary-800); font-size: 0.88rem; font-weight: 850; display: inline-flex; align-items: center; gap: 7px; padding: 28px 0; transition: color var(--transition); } .desktop-nav a:hover, .desktop-nav a:focus-visible { color: var(--primary-600); } .desktop-nav__item { position: relative; } .dropdown-menu { position: absolute; top: calc(100% - 5px); left: -16px; width: 285px; padding: 12px; margin: 0; background: var(--surface); border: 1px solid var(--border); border-radius: 20px; box-shadow: var(--shadow-md); opacity: 0; pointer-events: none; transform: translateY(12px); transition: opacity var(--transition), transform var(--transition); } .has-dropdown:hover .dropdown-menu, .has-dropdown:focus-within .dropdown-menu { opacity: 1; pointer-events: auto; transform: translateY(0); } .dropdown-menu li a { width: 100%; padding: 12px 13px; border-radius: 14px; font-weight: 750; color: var(--secondary-800); } .dropdown-menu li a:hover { background: var(--primary-50); } .header-cta { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 0 18px; border-radius: 999px; background: var(--secondary); color: #fff; text-decoration: none; font-weight: 900; font-size: 0.82rem; box-shadow: 0 14px 30px rgba(15, 23, 42, 0.18); transition: transform var(--transition), background var(--transition); } .header-cta:hover { transform: translateY(-2px); background: var(--primary); } .mobile-menu-btn { display: none; width: 46px; height: 46px; border: 1px solid var(--border); border-radius: 15px; background: var(--surface); cursor: pointer; position: relative; } .mobile-menu-btn span { position: absolute; left: 12px; right: 12px; height: 2px; border-radius: 99px; background: var(--secondary); transition: transform var(--transition), opacity var(--transition), top var(--transition); } .mobile-menu-btn span:nth-child(1) { top: 15px; } .mobile-menu-btn span:nth-child(2) { top: 22px; } .mobile-menu-btn span:nth-child(3) { top: 29px; } .mobile-menu-btn.is-active span:nth-child(1) { top: 22px; transform: rotate(45deg); } .mobile-menu-btn.is-active span:nth-child(2) { opacity: 0; } .mobile-menu-btn.is-active span:nth-child(3) { top: 22px; transform: rotate(-45deg); } .mobile-nav { position: fixed; inset: 78px 16px auto 16px; z-index: 999; max-height: calc(100vh - 96px); overflow: auto; background: rgba(255, 255, 255, 0.98); border: 1px solid var(--border); border-radius: 24px; box-shadow: var(--shadow-md); transform: translateY(-18px) scale(0.98); opacity: 0; pointer-events: none; transition: opacity var(--transition), transform var(--transition); } .mobile-nav.is-open { opacity: 1; transform: translateY(0) scale(1); pointer-events: auto; } .mobile-nav__inner { display: grid; padding: 14px; } .mobile-nav a, .mobile-nav__toggle { border: 0; border-bottom: 1px solid var(--border); background: transparent; text-align: left; text-decoration: none; color: var(--secondary); padding: 15px 12px; font-weight: 850; display: flex; align-items: center; justify-content: space-between; cursor: pointer; } .mobile-nav__toggle i { transition: transform var(--transition); } .mobile-nav__toggle.is-open i { transform: rotate(180deg); } .mobile-nav__submenu { display: none; margin: 4px 0 10px; padding-left: 12px; border-left: 3px solid var(--primary-600); background: var(--primary-50); border-radius: 0 16px 16px 0; } .mobile-nav__submenu.is-open { display: grid; } .mobile-nav__submenu a { color: var(--muted); font-weight: 750; font-size: 0.95rem; } .mobile-nav-backdrop { position: fixed; inset: 0; z-index: 998; background: rgba(15, 23, 42, 0.28); } .trust-hero { position: relative; overflow: hidden; padding: 92px 0 74px; background: radial-gradient(circle at 18% 10%, rgba(37, 99, 235, 0.20), transparent 34%), radial-gradient(circle at 84% 28%, rgba(245, 158, 11, 0.16), transparent 30%), linear-gradient(135deg, #07111f 0%, #0f172a 55%, #172554 100%); color: #fff; } .trust-hero::after { content: ''; position: absolute; inset: auto -10% -45% -10%; height: 250px; background: rgba(255,255,255,0.08); filter: blur(35px); transform: rotate(-3deg); } .trust-hero__inner, .trust-main, .trust-wide { width: var(--container); margin-inline: auto; } .trust-hero__inner { position: relative; z-index: 1; display: grid; gap: 24px; max-width: 980px; } .trust-badge { display: inline-flex; align-items: center; gap: 10px; width: fit-content; padding: 9px 14px; border-radius: 999px; background: rgba(255, 255, 255, 0.10); border: 1px solid rgba(255, 255, 255, 0.16); color: #bfdbfe; font-size: 0.78rem; font-weight: 900; text-transform: uppercase; letter-spacing: 0.08em; } .trust-hero h1 { margin: 0; max-width: 900px; font-size: clamp(2.3rem, 6vw, 4.85rem); line-height: 0.98; letter-spacing: -0.07em; font-weight: 950; } .trust-hero p { margin: 0; max-width: 780px; color: #cbd5e1; font-size: clamp(1rem, 2vw, 1.22rem); } .hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 6px; } .btn-primary, .btn-secondary { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 0 18px; border-radius: 999px; text-decoration: none; font-weight: 900; } .btn-primary { background: #fff; color: var(--primary); box-shadow: var(--shadow-blue); } .btn-secondary { background: rgba(255,255,255,0.10); color: #fff; border: 1px solid rgba(255,255,255,0.18); } .trust-main { padding: 64px 0 80px; } .content-card { background: #fff; border: 1px solid var(--border); border-radius: 32px; box-shadow: var(--shadow-sm); padding: clamp(24px, 5vw, 54px); } .content-card + .content-card { margin-top: 24px; } .kicker { color: var(--primary-600); font-weight: 950; text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.76rem; margin: 0 0 10px; } .content-card h2, .split-card h2, .section-heading h2 { margin: 0 0 16px; color: var(--secondary); font-size: clamp(1.55rem, 3vw, 2.45rem); line-height: 1.13; letter-spacing: -0.045em; font-weight: 950; } .content-card h3, .legal-section h3, .feature-card h3, .info-card h3 { margin: 0 0 10px; color: var(--secondary); font-size: 1.18rem; letter-spacing: -0.02em; } .content-card p, .content-card li, .legal-section p, .legal-section li, .feature-card p, .info-card p { color: #475569; font-size: 1.01rem; } .content-card p { margin: 0 0 18px; } .content-card p:last-child { margin-bottom: 0; } .lead { font-size: 1.12rem !important; color: #334155 !important; } .grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; } .grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; } .feature-card, .info-card, .legal-section { background: #fff; border: 1px solid var(--border); border-radius: 24px; padding: 24px; box-shadow: 0 10px 25px rgba(15, 23, 42, 0.04); } .feature-card i, .info-card i, .legal-section h3 i { width: 42px; height: 42px; border-radius: 14px; display: inline-grid; place-items: center; margin-bottom: 14px; color: var(--primary-600); background: var(--primary-50); } .split-layout { display: grid; grid-template-columns: 0.95fr 1.25fr; gap: 28px; align-items: start; } .side-panel { position: sticky; top: 100px; background: linear-gradient(180deg, #ffffff, #f8fbff); border: 1px solid var(--border); border-radius: 30px; padding: 26px; box-shadow: var(--shadow-sm); } .side-panel ul { margin: 18px 0 0; padding: 0; list-style: none; display: grid; gap: 12px; } .side-panel li { display: flex; gap: 10px; color: #475569; } .side-panel li i { color: var(--success); margin-top: 4px; } .legal-stack { display: grid; gap: 18px; } .legal-section h3 { display: flex; align-items: center; gap: 12px; } .legal-section h3 i { margin-bottom: 0; flex: 0 0 auto; } .notice-box, .disclosure-box { border-radius: 24px; padding: 24px; border: 1px solid #fde68a; background: #fffbeb; color: #78350f; } .notice-box p, .disclosure-box p { color: #78350f; margin: 0; } .blue-box { border-radius: 28px; padding: clamp(24px, 5vw, 38px); color: #fff; background: linear-gradient(135deg, var(--primary), #0f172a); box-shadow: var(--shadow-blue); } .blue-box h2, .blue-box h3 { color: #fff; } .blue-box p { color: #dbeafe; } .contact-shell { display: grid; grid-template-columns: 0.85fr 1.4fr; gap: 28px; align-items: start; } .contact-list { display: grid; gap: 16px; } .contact-form { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; } .form-group { display: grid; gap: 8px; } .form-group.full { grid-column: 1 / -1; } .form-group label { color: var(--secondary); font-weight: 850; font-size: 0.9rem; } .form-group input, .form-group select, .form-group textarea { width: 100%; border: 1px solid var(--border); border-radius: 16px; padding: 14px 15px; color: var(--secondary); background: #fcfdff; outline: none; transition: border var(--transition), box-shadow var(--transition), background var(--transition); } .form-group textarea { resize: vertical; min-height: 150px; } .form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-color: var(--primary-600); box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.10); background: #fff; } .honeypot { display: none !important; } .form-note { font-size: 0.88rem; color: var(--muted); margin: 0; } .submit-btn { border: 0; border-radius: 16px; min-height: 54px; padding: 0 20px; cursor: pointer; background: linear-gradient(135deg, var(--primary-600), #1e40af); color: #fff; font-weight: 950; box-shadow: var(--shadow-blue); transition: transform var(--transition), filter var(--transition); } .submit-btn:hover { transform: translateY(-2px); filter: brightness(1.03); } .status-message { border-radius: 18px; padding: 16px 18px; margin-bottom: 18px; font-weight: 800; } .status-message.success { background: #ecfdf5; color: #047857; border: 1px solid #bbf7d0; } .status-message.error { background: #fff1f2; color: #be123c; border: 1px solid #fecdd3; } .site-footer { background: #0b1120; color: #94a3b8; padding: 74px 0 0; } .footer-top, .footer-bottom { width: var(--container); margin-inline: auto; } .footer-top { display: grid; grid-template-columns: 1.55fr 0.85fr 0.85fr 0.95fr; gap: 38px; padding-bottom: 48px; } .footer-brand { font-size: 1.34rem; font-weight: 900; letter-spacing: -0.04em; margin-bottom: 16px; } .footer-brand-panel p { margin: 0; max-width: 430px; } .footer-contact-strip { display: flex; flex-direction: column; gap: 10px; margin-top: 20px; } .footer-contact-strip span { display: inline-flex; align-items: center; gap: 10px; } .footer-contact-strip i, .footer-col h3::after { color: #60a5fa; } .footer-col h3 { position: relative; margin: 0 0 22px; color: #fff; font-size: 1rem; } .footer-col h3::after { content: ''; position: absolute; left: 0; bottom: -8px; width: 30px; height: 2px; background: #60a5fa; } .footer-col ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; } .footer-col a, .footer-brand { color: inherit; text-decoration: none; transition: color var(--transition), transform var(--transition); } .footer-col a:hover { color: #fff; transform: translateX(4px); } .footer-bottom { display: flex; justify-content: space-between; gap: 20px; padding: 24px 0; border-top: 1px solid rgba(148, 163, 184, 0.18); font-size: 0.88rem; } .footer-bottom p { margin: 0; } @media (max-width: 1100px) { .desktop-nav { display: none; } .header-cta { display: none; } .mobile-menu-btn { display: block; } .grid-3 { grid-template-columns: 1fr 1fr; } .split-layout, .contact-shell { grid-template-columns: 1fr; } .side-panel { position: static; } } @media (max-width: 860px) { :root { --container: min(100% - 28px, 1120px); } .trust-hero { padding: 68px 0 54px; } .trust-main { padding: 42px 0 62px; } .grid-2, .grid-3, .footer-top { grid-template-columns: 1fr; } .footer-bottom { flex-direction: column; } .contact-form { grid-template-columns: 1fr; } .form-group.full { grid-column: auto; } } @media (max-width: 560px) { .site-header { height: 72px; padding-inline: 16px; } .site-brand__text { font-size: 1.05rem; } .site-brand__icon { width: 40px; height: 40px; } .mobile-nav { inset: 72px 12px auto 12px; } .hero-actions { display: grid; } .btn-primary, .btn-secondary { width: 100%; } .content-card, .feature-card, .legal-section, .side-panel { border-radius: 22px; } }
About FUL BookBank

Helping FUL students study with structure, clarity, and confidence.

FUL BookBank is an independent academic support platform built to organize learning materials, study guidance, exam preparation resources, and student success tools for Federal University Lokoja students.

Our purpose

A student-first digital study companion

FUL BookBank was created to reduce the stress students face when searching for scattered lecture notes, past questions, course guidance, and preparation tools. Instead of moving from one group chat to another looking for materials, students can use one organized platform to find resources that support focused learning.

The platform is designed around a simple idea: students perform better when academic resources are easy to find, properly arranged, and supported with practical study guidance. That is why FUL BookBank combines material access with explanations, academic articles, CBT practice, CGPA planning, scholarship updates, and career preparation resources.

We do not present learning as a shortcut or a replacement for lectures. We provide structure, direction, and responsible support so students can revise better, understand expectations, and prepare for assessments with more discipline.

Organized by student needs

Materials and guides are arranged around faculties, departments, study goals, exam preparation, and useful academic tools so students spend less time searching and more time learning.

Content-rich learning pages

We publish original study explanations, practical academic strategies, and student success stories to make the platform useful beyond downloadable files.

Responsible academic use

FUL BookBank supports preparation, revision, and independent learning. We do not promote exam malpractice, leaked questions, impersonation, or any activity that violates university rules.

What students can do here

More than a file library

Editorial standard

How we approach content quality

We aim to keep our pages useful, original, and readable. When we publish study articles, the goal is to explain concepts and strategies in complete paragraphs rather than relying only on short cards, headings, or empty templates.

When users report outdated links or missing materials, we review those reports and improve the affected pages where possible. This helps the site remain helpful and trustworthy for students.

Independence notice

Platform clarification

FUL BookBank is an independent academic support platform created to serve students. Unless clearly stated on a specific page, it should not be treated as the official website of Federal University Lokoja or any university department.

Official academic decisions, examination rules, grades, timetables, and university policies should always be confirmed through authorized university channels.

Founder and stewardship

Built with an education and technology mindset

FUL BookBank is led by Kehinde Ifarajimi, a Computer Science Education graduate of Federal University Lokoja with a strong interest in digital learning systems, academic productivity, and student performance support.

The long-term vision is to develop FUL BookBank into a dependable study ecosystem where students can access materials, practise questions, plan their results, and discover academic opportunities from one place.

Our promise to students

We will continue improving the platform around clarity, usefulness, responsible learning, and better access to resources that support academic excellence.