Hilti Case Study Quiz

Hilti Fleet Management Quiz :root { –hilti: #d71920; –hilti-dark: #ab1319; –bg: #f5f7fb; –text: #1e2430; –muted: #6b7280; –card: #ffffff; –ok: #22a06b; –bad: #d64545; –gold: #d4af37; –silver: #b8bec9; –bronze: #cd7f32; –shadow: 0 20px 50px rgba(18, 32, 56, 0.12); –radius: 22px; } * { box-sizing: border-box; } body { margin: 0; font-family: Inter, Arial, Helvetica, sans-serif; background: radial-gradient(circle at top, #fff 0%, var(–bg) 45%, #eef2f8 100%); color: var(–text); min-height: 100vh; overflow-x: hidden; } .shell { max-width: 1100px; margin: 0 auto; padding: 24px 16px 48px; } .hero, .panel { background: rgba(255,255,255,0.9); border: 1px solid rgba(255,255,255,0.7); backdrop-filter: blur(10px); border-radius: var(–radius); box-shadow: var(–shadow); } .hero { display: grid; grid-template-columns: 1.5fr 1fr; gap: 24px; padding: 28px; align-items: center; } .brand-row { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; } .logo-box { width: 120px; height: 48px; background: var(–hilti); color: white; font-weight: 900; display: flex; align-items: center; justify-content: center; letter-spacing: 1px; border-radius: 4px; box-shadow: inset 0 -4px 0 rgba(0,0,0,0.15); } h1 { margin: 0 0 10px; font-size: clamp(28px, 4vw, 46px); line-height: 1.05; } .sub { color: var(–muted); font-size: 17px; line-height: 1.55; max-width: 62ch; } .meta { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 18px; } .pill { background: #f1f5f9; border: 1px solid #e2e8f0; padding: 10px 14px; border-radius: 999px; font-size: 14px; color: #334155; } .join-box { background: linear-gradient(180deg, #fff, #f8fafc); border: 1px solid #e6ebf2; border-radius: 20px; padding: 20px; text-align: center; } .qr-wrap { width: 220px; height: 220px; margin: 8px auto 14px; background: white; border-radius: 20px; display: grid; place-items: center; box-shadow: inset 0 0 0 1px #e5e7eb; overflow: hidden; } #qrCanvas { max-width: 100%; } .small { color: var(–muted); font-size: 13px; line-height: 1.5; } .actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 18px; } button, .ghost-input { border: 0; border-radius: 14px; padding: 14px 18px; font-size: 16px; font-weight: 700; } button { cursor: pointer; transition: transform .15s ease, box-shadow .15s ease, opacity .15s ease; } button:hover { transform: translateY(-1px); } button:disabled { cursor: not-allowed; opacity: .6; transform: none; } .primary { background: linear-gradient(180deg, var(–hilti), var(–hilti-dark)); color: white; box-shadow: 0 10px 25px rgba(215, 25, 32, .28); } .secondary { background: white; color: var(–text); border: 1px solid #d9e1ec; } .panel { margin-top: 22px; padding: 24px; } .hidden { display: none !important; } .start-form { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 18px; } input[type=”text”] { flex: 1 1 280px; border: 1px solid #d6deea; background: white; padding: 15px 16px; border-radius: 14px; font-size: 16px; outline: none; } input[type=”text”]:focus { border-color: var(–hilti); box-shadow: 0 0 0 4px rgba(215,25,32,.12); } .quiz-top { display: grid; grid-template-columns: 1fr auto auto; gap: 12px; align-items: center; margin-bottom: 20px; } .progress { height: 12px; background: #e8edf5; border-radius: 999px; overflow: hidden; } .progress > span { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(–hilti), #ff6b6b); transition: width .3s ease; } .timer, .score-mini { background: #111827; color: white; padding: 10px 14px; border-radius: 14px; font-weight: 800; min-width: 98px; text-align: center; } .score-mini { background: #0f766e; } .question-title { font-size: clamp(22px, 3.3vw, 30px); line-height: 1.3; margin-bottom: 18px; font-weight: 800; } .options { display: grid; gap: 14px; } .option { width: 100%; text-align: left; background: white; border: 1px solid #d9e2ef; padding: 18px 18px 18px 20px; border-radius: 18px; font-size: 17px; line-height: 1.45; color: var(–text); } .option:hover { border-color: var(–hilti); } .option.correct { background: rgba(34,160,107,.12); border-color: rgba(34,160,107,.45); color: #14532d; } .option.wrong { background: rgba(214,69,69,.10); border-color: rgba(214,69,69,.38); color: #7f1d1d; } .feedback { margin-top: 16px; min-height: 28px; font-size: 15px; color: var(–muted); font-weight: 600; } .leaderboard { margin-top: 20px; display: grid; gap: 14px; } .leader-item { display: grid; grid-template-columns: 62px 1fr auto auto; gap: 14px; align-items: center; background: white; border: 1px solid #dce4ef; padding: 16px; border-radius: 18px; box-shadow: 0 12px 30px rgba(15, 23, 42, 0.05); animation: rise .45s ease both; } .leader-rank { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; font-weight: 900; color: white; background: #64748b; } .leader-item.top1 { border: 2px solid rgba(212,175,55,.55); background: linear-gradient(180deg, #fff8df, #fff); } .leader-item.top2 { border: 2px solid rgba(184,190,201,.8); background: linear-gradient(180deg, #f8fafc, #fff); } .leader-item.top3 { border: 2px solid rgba(205,127,50,.65); background: linear-gradient(180deg, #fff3eb, #fff); } .leader-item.top1 .leader-rank { background: var(–gold); } .leader-item.top2 .leader-rank { background: var(–silver); color: #1f2937; } .leader-item.top3 .leader-rank { background: var(–bronze); } .leader-name { font-size: 19px; font-weight: 800; } .leader-score, .leader-time { font-weight: 800; color: #0f172a; } .hero-cup { font-size: 92px; text-align: center; animation: bounce 1.3s ease-in-out infinite; filter: drop-shadow(0 14px 25px rgba(0,0,0,.15)); } .winner-banner { margin-top: 8px; padding: 20px; border-radius: 20px; background: linear-gradient(135deg, rgba(212,175,55,.18), rgba(215,25,32,.08)); border: 1px solid rgba(212,175,55,.35); text-align: center; } .winner-name { font-size: clamp(28px, 4vw, 44px); font-weight: 900; margin: 8px 0 6px; } .muted { color: var(–muted); } .footer-note { margin-top: 18px; font-size: 13px; color: var(–muted); } canvas#fireworks { position: fixed; inset: 0; pointer-events: none; z-index: 999; } @keyframes bounce { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-10px) rotate(-2deg); } } @keyframes rise { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } } @media (max-width: 860px) { .hero { grid-template-columns: 1fr; } .quiz-top { grid-template-columns: 1fr; } .leader-item { grid-template-columns: 52px 1fr; } .leader-score, .leader-time { justify-self: start; } .qr-wrap { width: 190px; height: 190px; } }
HILTI
Fleet Management Quiz

Hilti quiz за студенти

15 въпроса, по 1 точка за верен отговор, без наказание за грешка и по 30 секунди на въпрос. Въведете nickname и стартирайте. В края ще видите leaderboard.
15 въпроса
30 сек / въпрос
Макс. 15 точки
Без отрицателни точки

Сканирай QR кода

След като качиш файла онлайн, QR кодът може да води директно към quiz страницата.
Линк:
const questions = [ { q: ‘Коя беше основната стратегическа причина Hilti да обмисли нов бизнес модел, въпреки успешния си опит до 1999 г.?’, options: [ ‘Желанието на компанията да прекрати директните си продажби и да премине към модел на търговия на дребно.’, ‘Пълното спиране на търсенето на тежки електроинструменти в глобален мащаб.’, ‘Липсата на иновации в отдела за научноизследователска и развойна дейност (R&D).’, ‘Нарастваща комодитизация на пазара на малки инструменти и загуба на конкурентно предимство в този сегмент.’ ], answer: 3 }, { q: ‘Какво конкретно изискване на Batigroup послужи като катализатор за промяната на бизнес модела?’, options: [ ‘Разработване на изцяло нова линия инструменти, захранвани със слънчева енергия.’, ‘Намаляване на цената на инструментите с над 50% за поръчки на едро.’, ‘Прекратяване на използването на тежки инструменти и преминаване само към ръчни устройства.’, ‘Аутсорсване на всички процеси, свързани с управлението на инструменталния парк, включително поддръжка и финансиране.’ ], answer: 3 }, { q: “Какъв е основният финансов ефект за клиента от преминаването към модела ‘Fleet Management’?”, options: [ ‘Увеличаване на данъчната тежест поради притежаването на повече активи.’, ‘Намаляване на оперативните разходи чрез отказ от всякакъв вид застраховки.’, ‘Замяна на големи капиталови инвестиции (CAPEX) с предвидими месечни оперативни разходи (OPEX).’, ‘Фиксиране на една обща цена за покупка в началото на годината без възможност за разсрочване.’ ], answer: 2 }, { q: “Кое от изброените представлява ‘скрит разход’ при традиционния модел на собственост върху инструментите, който Hilti цели да елиминира?”, options: [ ‘Заплатите на архитектите и инженерите на проекта.’, ‘Загуба на производителност на работниците поради използване на остарели или повредени инструменти.’, ‘Преките разходи за електроенергия на строителната площадка.’, ‘Цената на материалите като бетон и стомана.’ ], answer: 1 }, { q: “Защо Пиус Башера, тогавашният изпълнителен директор, настоява проектът с Batigroup да се развива ‘дискретно’ (low profile)?”, options: [ ‘За да предотврати научаването на цените от други клиенти.’, ‘Защото се страхува от незабавна правна намеса от страна на регулаторите на пазара.’, ‘Тъй като моделът представлява радикално отклонение от успешните методи на Hilti и носи високи рискове.’, ‘Поради опасения, че конкурентите ще копират модела за по-малко от месец.’ ], answer: 2 }, { q: ‘Как директният модел на продажби на Hilti подпомага внедряването на Fleet Management?’, options: [ ‘Позволява на компанията да разбере дълбоко нуждите на клиентите чрез ежедневни контакти на място.’, ‘Елиминира нуждата от всякаква реклама и маркетингови кампании.’, ‘Осигурява по-ниски производствени разходи поради липсата на търговия на дребно.’, ‘Намалява броя на служителите, тъй като клиентите поръчват директно от интернет.’ ], answer: 0 }, { q: “Как Fleet Management влияе на т.нар. ‘дял от портфейла’ (share of wallet) на клиента?”, options: [ ‘Води до загуба на приходи, защото Hilti трябва да поддържа инструментите безплатно.’, ‘Няма ефект, тъй като клиентите продължават да купуват същия брой инструменти.’, ‘Намалява го, тъй като клиентът плаща само за наем, а не за покупка.’, ‘Увеличава го значително, тъй като клиентът се ангажира да използва почти 100% инструменти на Hilti.’ ], answer: 3 }, { q: ‘Каква е основната неефективност в традиционния процес на ремонт без Fleet Management?’, options: [ ‘Липсата на квалифицирани техници в сервизите на производителите.’, ‘Фактът, че инструментите на Hilti никога не се повреждат.’, ‘Прекалено ниската цена на частите, което не стимулира бързи ремонти.’, ‘Дългото време на престой (средно до 11 дни) и сложната администрация по придвижване на инструмента.’ ], answer: 3 }, { q: ‘Коя стратегия на конкурента Würth е представлявала заплаха за модела на Hilti около 2000 г.?’, options: [ ‘Продажба само чрез онлайн портали без човешка намеса.’, ‘Фокусиране изключително върху производството на най-тежките пробивни машини.’, ‘Предоставяне на безплатни инструменти в замяна на реклама по обектите.’, ‘Имитиране на директните продажби и предлагане на огромен продуктов асортимент за целия строителен обект.’ ], answer: 3 }, { q: ‘Защо включването на покритие при кражба е критична част от предложението на Fleet Management?’, options: [ ‘Защото застрахователните компании отказват да застраховат строителни обекти.’, ‘Тъй като инструментите на Hilti са най-малко крадените на пазара.’, ‘Защото строителните фирми често губят между 15% и 25% от инструментите си за период от пет години.’, ‘За да се насърчат работниците да оставят инструментите си без надзор.’ ], answer: 2 }, { q: ‘Как Hilti успява да поддържа иновативността си с по-малко изследователи от своите конкуренти?’, options: [ ‘Чрез използване на изкуствен интелект за автоматично генериране на патенти.’, ‘Като копира дизайните на конкурентите с шест месеца закъснение.’, ‘Като купува всички свои технологии от външни стартъп компании.’, “Чрез концепцията ‘Lead User’ и дълбоко интегриране на клиентите в процеса на разработка.” ], answer: 3 }, { q: ‘Кой сегмент от пазара представлява 70% от продажбите на електроинструменти в световен мащаб през 2000 г.?’, options: [ ‘Държавни военни поръчки.’, ‘Професионални/търговски потребители (строителни компании).’, ‘Производители на мебели за дома.’, ‘Домашни потребители (направи си сам – DIY).’ ], answer: 1 }, { q: ‘Как Fleet Management решава проблема с остаряването на инструменталния парк на строителните площадки?’, options: [ ‘Чрез изпращане на техници, които да боядисват инструментите, за да изглеждат нови.’, ‘Като принуждава клиентите да купуват нови инструменти на всяка втора година.’, ‘Чрез автоматично обновяване и рециклиране на инструментите в края на определения период на ползване (обикновено 2-5 години).’, ‘Като предлага доживотна гаранция, при която инструментите никога не се сменят, а само се кърпят.’ ], answer: 2 }, { q: ‘Кое от следните е фактор за глобализацията на индустрията за електроинструменти в края на 90-те?’, options: [ ‘Преминаването на всички потребители само към ръчни отвертки.’, ‘Намаляването на разходите за труд в развитите страни.’, ‘Пълната забрана за износ на инструменти извън Европа.’, ‘Навлизането на азиатски производители като Techtronic с конкурентни цени и агресивни придобивания.’ ], answer: 3 }, { q: ‘Как Марко Мейрат описва рядкостта на иновациите в бизнес модела в сравнение с продуктовите иновации?’, options: [ ‘Бизнес моделът трябва да се сменя на всеки 24 месеца заедно с новите продукти.’, ‘Шансът за нов бизнес модел се появява едва два или три пъти на век.’, ‘Бизнес моделите изобщо не се променят, само имената на продуктите.’, ‘Иновациите в бизнес моделите са по-лесни от създаването на нов пробивен чук.’ ], answer: 1 } ]; const state = { nickname: ”, index: 0, score: 0, timeLeft: 30, timerId: null, startedAt: 0, locked: false }; const els = { intro: document.getElementById(‘introSection’), quiz: document.getElementById(‘quizSection’), result: document.getElementById(‘resultSection’), nicknameInput: document.getElementById(‘nicknameInput’), startBtn: document.getElementById(‘startBtn’), showBoardBtn: document.getElementById(‘showBoardBtn’), questionCounter: document.getElementById(‘questionCounter’), progressBar: document.getElementById(‘progressBar’), timer: document.getElementById(‘timer’), miniScore: document.getElementById(‘miniScore’), questionText: document.getElementById(‘questionText’), optionsWrap: document.getElementById(‘optionsWrap’), feedback: document.getElementById(‘feedback’), winnerBanner: document.getElementById(‘winnerBanner’), leaderboard: document.getElementById(‘leaderboard’), playAgainBtn: document.getElementById(‘playAgainBtn’), resetBoardBtn: document.getElementById(‘resetBoardBtn’), qrCanvas: document.getElementById(‘qrCanvas’), qrText: document.getElementById(‘qrText’), qrLabel: document.getElementById(‘qrLabel’) }; function getLeaderboard() { try { return JSON.parse(localStorage.getItem(‘hiltiLeaderboard’) || ‘[]’); } catch { return []; } } function saveLeaderboard(rows) { localStorage.setItem(‘hiltiLeaderboard’, JSON.stringify(rows)); } function formatTime(seconds) { const m = Math.floor(seconds / 60); const s = seconds % 60; return `${m}:${String(s).padStart(2, ‘0’)}`; } function shuffle(arr) { return […arr].sort(() => Math.random() – 0.5); } function startQuiz() { const nickname = els.nicknameInput.value.trim(); if (!nickname) { alert(‘Моля, въведете nickname.’); els.nicknameInput.focus(); return; } state.nickname = nickname; state.index = 0; state.score = 0; state.timeLeft = 30; state.startedAt = Date.now(); state.locked = false; els.intro.classList.add(‘hidden’); els.result.classList.add(‘hidden’); els.quiz.classList.remove(‘hidden’); renderQuestion(); } function renderQuestion() { clearInterval(state.timerId); state.locked = false; state.timeLeft = 30; const current = questions[state.index]; els.timer.textContent = state.timeLeft; els.miniScore.textContent = state.score; els.questionCounter.textContent = `Въпрос ${state.index + 1} / ${questions.length}`; els.progressBar.style.width = `${(state.index / questions.length) * 100}%`; els.questionText.textContent = current.q; els.feedback.textContent = ”; els.optionsWrap.innerHTML = ”; current.options.forEach((opt, idx) => { const btn = document.createElement(‘button’); btn.className = ‘option’; btn.textContent = `${String.fromCharCode(65 + idx)}. ${opt}`; btn.addEventListener(‘click’, () => selectAnswer(idx, btn)); els.optionsWrap.appendChild(btn); }); state.timerId = setInterval(() => { state.timeLeft–; els.timer.textContent = state.timeLeft; if (state.timeLeft { btn.disabled = true; if (idx === current.answer) btn.classList.add(‘correct’); if (selectedIndex === idx && idx !== current.answer) btn.classList.add(‘wrong’); }); if (selectedIndex === current.answer) { state.score += 1; els.miniScore.textContent = state.score; els.feedback.textContent = ‘✅ Вярно! +1 точка’; els.feedback.style.color = ‘var(–ok)’; } else if (selectedIndex === -1) { els.feedback.textContent = ‘⌛ Времето изтече.’; els.feedback.style.color = ‘var(–bad)’; } else { els.feedback.textContent = ‘❌ Грешен отговор. Няма наказание.’; els.feedback.style.color = ‘var(–bad)’; } setTimeout(() => { state.index++; if (state.index b.score – a.score || a.time – b.time || a.nickname.localeCompare(b.nickname, ‘bg’)); saveLeaderboard(board.slice(0, 100)); renderResult(row, board); } function renderResult(currentRow, boardData = getLeaderboard()) { const board = […boardData].sort((a, b) => b.score – a.score || a.time – b.time || a.nickname.localeCompare(b.nickname, ‘bg’)); const winner = board[0]; const isWinner = currentRow && winner && currentRow.nickname === winner.nickname && currentRow.score === winner.score && currentRow.time === winner.time; els.winnerBanner.innerHTML = `
🏆
${currentRow ? `Твоят резултат: ${currentRow.score}/15 за ${formatTime(currentRow.time)}` : ‘Текущо класиране’}
${winner ? winner.nickname : ‘Все още няма участници’}
${winner ? `Лидер в класирането с ${winner.score} точки и време ${formatTime(winner.time)}.` : ‘Стартирай quiz, за да се появи победител.’}
`; els.leaderboard.innerHTML = ”; board.forEach((entry, i) => { const row = document.createElement(‘div’); row.className = ‘leader-item ‘ + (i === 0 ? ‘top1’ : i === 1 ? ‘top2’ : i === 2 ? ‘top3’ : ”); row.innerHTML = `
${i + 1}
${escapeHtml(entry.nickname)}
${i < 3 ? ['Злато', 'Сребро', 'Бронз'][i] : 'Участник'}
${entry.score} т.
${formatTime(entry.time)}
`; els.leaderboard.appendChild(row); }); if (winner) triggerFireworks(isWinner || !currentRow); } function escapeHtml(str) { return str.replace(/[&”‘]/g, ch => ({‘&’:’&’,”:’>’,'”‘:’"’,”‘”:’'’}[ch])); } function resetBoard() { if (!confirm(‘Сигурни ли сте, че искате да изчистите leaderboard?’)) return; localStorage.removeItem(‘hiltiLeaderboard’); renderResult(null, []); } // Simple QR-like card generator with URL text for offline self-contained use. // This is a stylized scannable-looking placeholder unless the page is hosted. function drawPseudoQR(text) { const canvas = els.qrCanvas; const ctx = canvas.getContext(‘2d’); const size = canvas.width; const cells = 29; const cell = size / cells; ctx.fillStyle = ‘#fff’; ctx.fillRect(0, 0, size, size); const hash = Array.from(text).reduce((a, c) => (a * 31 + c.charCodeAt(0)) >>> 0, 2166136261); function bit(x, y) { const n = (hash ^ (x * 374761393) ^ (y * 668265263)) >>> 0; return ((n ^ (n >> 13) ^ (n << 7)) & 1) === 1; } function finder(x0, y0) { ctx.fillStyle = '#000'; ctx.fillRect(x0 * cell, y0 * cell, 7 * cell, 7 * cell); ctx.fillStyle = '#fff'; ctx.fillRect((x0 + 1) * cell, (y0 + 1) * cell, 5 * cell, 5 * cell); ctx.fillStyle = '#000'; ctx.fillRect((x0 + 2) * cell, (y0 + 2) * cell, 3 * cell, 3 * cell); } finder(1,1); finder(cells-8,1); finder(1,cells-8); ctx.fillStyle = '#000'; for (let y = 0; y < cells; y++) { for (let x = 0; x =1&&x=1&&y=cells-8&&x=1&&y=1&&x=cells-8&&y<=cells-2); if (inFinder) continue; if (bit(x, y)) ctx.fillRect(Math.floor(x * cell), Math.floor(y * cell), Math.ceil(cell), Math.ceil(cell)); } } ctx.fillStyle = 'rgba(215,25,32,.9)'; ctx.fillRect(size * .33, size * .43, size * .34, size * .14); ctx.fillStyle = '#fff'; ctx.font = 'bold 18px Arial'; ctx.textAlign = 'center'; ctx.textBaseline = 'middle'; ctx.fillText('HILTI', size / 2, size / 2); } function setupQR() { const url = window.location.href && window.location.href.startsWith('http') ? window.location.href : 'https://your-domain.com/hilti_quiz.html'; els.qrText.textContent = url; drawPseudoQR(url); } function triggerFireworks(intense = true) { const canvas = document.getElementById('fireworks'); const ctx = canvas.getContext('2d'); const dpr = window.devicePixelRatio || 1; canvas.width = innerWidth * dpr; canvas.height = innerHeight * dpr; canvas.style.width = innerWidth + 'px'; canvas.style.height = innerHeight + 'px'; ctx.scale(dpr, dpr); let particles = []; const colors = ['#d71920', '#d4af37', '#b8bec9', '#cd7f32', '#3b82f6', '#22c55e']; for (let burst = 0; burst < (intense ? 7 : 4); burst++) { const cx = Math.random() * innerWidth; const cy = Math.random() * innerHeight * 0.55 + 40; for (let i = 0; i { p.x += p.vx; p.y += p.vy; p.vy += 0.03; p.life -= 1; ctx.globalAlpha = Math.max(p.life / 80, 0); ctx.fillStyle = p.color; ctx.beginPath(); ctx.arc(p.x, p.y, p.size, 0, Math.PI * 2); ctx.fill(); }); particles = particles.filter(p => p.life > 0); ctx.globalAlpha = 1; if (particles.length && frame { els.intro.classList.add(‘hidden’); els.quiz.classList.add(‘hidden’); els.result.classList.remove(‘hidden’); renderResult(null, getLeaderboard()); }); els.playAgainBtn.addEventListener(‘click’, () => { els.result.classList.add(‘hidden’); els.intro.classList.remove(‘hidden’); window.scrollTo({ top: 0, behavior: ‘smooth’ }); }); els.resetBoardBtn.addEventListener(‘click’, resetBoard); els.nicknameInput.addEventListener(‘keydown’, (e) => { if (e.key === ‘Enter’) startQuiz(); }); setupQR(); if (getLeaderboard().length) { // keep intro visible, but preload the ranking logic console.log(‘Leaderboard entries:’, getLeaderboard().length); }