484 lines
15 KiB
PHP
484 lines
15 KiB
PHP
<link href="https://fonts.googleapis.com/css2?family=Barlow:wght@400;500;600&family=Barlow+Condensed:wght@600;700;800;900&display=swap" rel="stylesheet">
|
||
|
||
<style>
|
||
/* ══════════════════════════════════════
|
||
SCOPED TO .mt-section — NO GLOBALS
|
||
══════════════════════════════════════ */
|
||
.mt-section *, .mt-section *::before, .mt-section *::after { box-sizing: border-box; }
|
||
|
||
.mt-section {
|
||
--mt-red: #c01227;
|
||
--mt-red-dk: #8f0d1d;
|
||
--mt-red-light: #fdf0f2;
|
||
--mt-red-mid: rgba(192,18,39,0.1);
|
||
--mt-dark: #111827;
|
||
--mt-mid: #374151;
|
||
--mt-muted: #9ca3af;
|
||
--mt-border: rgba(0,0,0,0.07);
|
||
--mt-white: #ffffff;
|
||
--mt-bg: #f3f4f7;
|
||
|
||
width: 100%;
|
||
font-family: 'Barlow', sans-serif;
|
||
color: var(--mt-dark);
|
||
background: var(--mt-bg);
|
||
}
|
||
|
||
/* ══ STATS BANNER ══ */
|
||
.mt-banner {
|
||
background: linear-gradient(135deg, var(--mt-red) 0%, var(--mt-red-dk) 100%);
|
||
padding: 0px 40px;
|
||
display: grid;
|
||
grid-template-columns: repeat(4, 1fr);
|
||
position: relative;
|
||
overflow: hidden;
|
||
}
|
||
|
||
/* animated diagonal shine */
|
||
.mt-banner::before {
|
||
content: '';
|
||
position: absolute;
|
||
top: -80px; left: -120px;
|
||
width: 300px; height: 300px;
|
||
background: radial-gradient(circle, rgba(255,255,255,0.12) 0%, transparent 70%);
|
||
pointer-events: none;
|
||
}
|
||
.mt-banner::after {
|
||
content: '';
|
||
position: absolute;
|
||
bottom: -60px; right: -60px;
|
||
width: 220px; height: 220px;
|
||
background: radial-gradient(circle, rgba(255,255,255,0.07) 0%, transparent 70%);
|
||
pointer-events: none;
|
||
}
|
||
|
||
.mt-stat {
|
||
padding: 36px 20px;
|
||
text-align: center;
|
||
position: relative;
|
||
opacity: 0;
|
||
transform: translateY(24px);
|
||
transition: opacity .55s ease, transform .55s cubic-bezier(.16,1,.3,1);
|
||
}
|
||
.mt-stat:not(:last-child)::after {
|
||
content: '';
|
||
position: absolute;
|
||
right: 0; top: 25%; bottom: 25%;
|
||
width: 1px;
|
||
background: rgba(255,255,255,0.2);
|
||
}
|
||
|
||
.mt-section.mt-live .mt-stat:nth-child(1) { opacity:1; transform:translateY(0); transition-delay:.1s; }
|
||
.mt-section.mt-live .mt-stat:nth-child(2) { opacity:1; transform:translateY(0); transition-delay:.22s; }
|
||
.mt-section.mt-live .mt-stat:nth-child(3) { opacity:1; transform:translateY(0); transition-delay:.34s; }
|
||
.mt-section.mt-live .mt-stat:nth-child(4) { opacity:1; transform:translateY(0); transition-delay:.46s; }
|
||
|
||
.mt-stat-num {
|
||
font-family: 'Barlow Condensed', sans-serif;
|
||
font-size: clamp(36px, 4.5vw, 54px);
|
||
font-weight: 700;
|
||
color: #fff;
|
||
line-height: 1;
|
||
letter-spacing: -1px;
|
||
display: block;
|
||
margin-bottom: 8px;
|
||
}
|
||
.mt-stat-label {
|
||
font-size: 12px;
|
||
font-weight: 500;
|
||
color: rgba(255,255,255,0.72);
|
||
letter-spacing: .5px;
|
||
text-transform: uppercase;
|
||
}
|
||
|
||
/* ══ BODY SECTION ══ */
|
||
.mt-body {
|
||
max-width: 1100px;
|
||
margin: 0 auto;
|
||
padding: 88px 40px 20px;
|
||
position: relative;
|
||
}
|
||
|
||
/* grid background */
|
||
.mt-body::before {
|
||
content: '';
|
||
position: absolute;
|
||
inset: 0;
|
||
background-image:
|
||
linear-gradient(to right, rgba(0,0,0,0.032) 1px, transparent 1px),
|
||
linear-gradient(to bottom, rgba(0,0,0,0.032) 1px, transparent 1px);
|
||
background-size: 68px 68px;
|
||
pointer-events: none;
|
||
mask-image: radial-gradient(ellipse 88% 80% at 50% 40%, black 30%, transparent 100%);
|
||
-webkit-mask-image: radial-gradient(ellipse 88% 80% at 50% 40%, black 30%, transparent 100%);
|
||
}
|
||
|
||
/* ── HEADER ── */
|
||
.mt-header {
|
||
text-align: center;
|
||
margin-bottom: 64px;
|
||
position: relative;
|
||
z-index: 1;
|
||
}
|
||
|
||
.mt-eyebrow {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
gap: 10px;
|
||
font-family: 'Barlow Condensed', sans-serif;
|
||
font-size: 11px;
|
||
font-weight: 700;
|
||
letter-spacing: 3.5px;
|
||
text-transform: uppercase;
|
||
color: var(--mt-red);
|
||
margin-bottom: 18px;
|
||
opacity: 0;
|
||
transform: translateY(16px);
|
||
transition: opacity .55s ease .05s, transform .55s ease .05s;
|
||
}
|
||
.mt-eyebrow::before, .mt-eyebrow::after {
|
||
content: ''; display: block;
|
||
width: 28px; height: 1px;
|
||
background: var(--mt-red);
|
||
}
|
||
|
||
.mt-title {
|
||
font-family: 'Barlow Condensed', sans-serif;
|
||
font-size: clamp(34px, 5vw, 60px);
|
||
font-weight: 900;
|
||
line-height: 1.05;
|
||
letter-spacing: -1.2px;
|
||
color: var(--mt-dark);
|
||
margin: 0 0 18px;
|
||
opacity: 0;
|
||
transform: translateY(26px);
|
||
transition: opacity .65s ease .17s, transform .65s ease .17s;
|
||
}
|
||
.mt-title em { font-style: normal; color: var(--mt-red); }
|
||
.mt-title sup {
|
||
font-size: .45em;
|
||
font-weight: 700;
|
||
vertical-align: super;
|
||
color: var(--mt-red);
|
||
}
|
||
|
||
.mt-desc {
|
||
font-size: 15.5px;
|
||
color: var(--mt-muted);
|
||
line-height: 1.75;
|
||
max-width: 540px;
|
||
margin: 0 auto;
|
||
opacity: 0;
|
||
transform: translateY(16px);
|
||
transition: opacity .65s ease .3s, transform .65s ease .3s;
|
||
}
|
||
|
||
/* in-view header */
|
||
.mt-section.mt-live .mt-eyebrow { opacity: 1; transform: translateY(0); }
|
||
.mt-section.mt-live .mt-title { opacity: 1; transform: translateY(0); }
|
||
.mt-section.mt-live .mt-desc { opacity: 1; transform: translateY(0); display: inline-block; }
|
||
|
||
/* ── FEATURE GRID ── */
|
||
.mt-grid {
|
||
display: grid;
|
||
grid-template-columns: repeat(3, 1fr);
|
||
gap: 20px;
|
||
position: relative;
|
||
z-index: 1;
|
||
}
|
||
|
||
.mt-card {
|
||
background: var(--mt-white);
|
||
border-radius: 20px;
|
||
padding: 34px 28px 30px;
|
||
position: relative;
|
||
overflow: hidden;
|
||
box-shadow: 0 2px 20px rgba(0,0,0,0.065);
|
||
cursor: default;
|
||
opacity: 0;
|
||
transform: translateY(40px) scale(.98);
|
||
transition:
|
||
opacity .6s cubic-bezier(.16,1,.3,1),
|
||
transform .6s cubic-bezier(.16,1,.3,1),
|
||
box-shadow .3s ease;
|
||
}
|
||
|
||
/* staggered card reveals */
|
||
.mt-section.mt-live .mt-card:nth-child(1) { opacity:1; transform:translateY(0) scale(1); transition-delay:.42s; }
|
||
.mt-section.mt-live .mt-card:nth-child(2) { opacity:1; transform:translateY(0) scale(1); transition-delay:.54s; }
|
||
.mt-section.mt-live .mt-card:nth-child(3) { opacity:1; transform:translateY(0) scale(1); transition-delay:.66s; }
|
||
.mt-section.mt-live .mt-card:nth-child(4) { opacity:1; transform:translateY(0) scale(1); transition-delay:.78s; }
|
||
.mt-section.mt-live .mt-card:nth-child(5) { opacity:1; transform:translateY(0) scale(1); transition-delay:.90s; }
|
||
.mt-section.mt-live .mt-card:nth-child(6) { opacity:1; transform:translateY(0) scale(1); transition-delay:1.02s; }
|
||
|
||
/* top accent bar on hover */
|
||
.mt-card::before {
|
||
content: '';
|
||
position: absolute;
|
||
top: 0; left: 0; right: 0;
|
||
height: 3px;
|
||
background: linear-gradient(90deg, var(--mt-red), transparent);
|
||
transform: scaleX(0);
|
||
transform-origin: left;
|
||
transition: transform .45s cubic-bezier(.16,1,.3,1);
|
||
}
|
||
.mt-card:hover::before { transform: scaleX(1); }
|
||
|
||
/* background glow */
|
||
.mt-card::after {
|
||
content: '';
|
||
position: absolute;
|
||
top: -40px; left: -40px;
|
||
width: 160px; height: 160px;
|
||
background: radial-gradient(circle, rgba(192,18,39,0.06) 0%, transparent 70%);
|
||
opacity: 0;
|
||
transition: opacity .4s ease;
|
||
pointer-events: none;
|
||
}
|
||
.mt-card:hover::after { opacity: 1; }
|
||
|
||
.mt-card:hover {
|
||
box-shadow: 0 16px 52px rgba(192,18,39,0.12);
|
||
transform: translateY(-5px) scale(1.01) !important;
|
||
}
|
||
|
||
/* icon */
|
||
.mt-card-icon {
|
||
width: 52px; height: 52px;
|
||
border-radius: 14px;
|
||
background: var(--mt-red-light);
|
||
display: flex; align-items: center; justify-content: center;
|
||
margin-bottom: 20px;
|
||
transition: transform .35s cubic-bezier(.16,1,.3,1), background .3s;
|
||
}
|
||
.mt-card:hover .mt-card-icon {
|
||
transform: rotate(-8deg) scale(1.1);
|
||
background: var(--mt-red);
|
||
}
|
||
.mt-card-icon svg {
|
||
width: 22px; height: 22px;
|
||
stroke: var(--mt-red); fill: none;
|
||
stroke-width: 1.9;
|
||
stroke-linecap: round; stroke-linejoin: round;
|
||
transition: stroke .3s;
|
||
}
|
||
.mt-card:hover .mt-card-icon svg { stroke: #fff; }
|
||
|
||
/* card text */
|
||
.mt-card-name {
|
||
font-family: 'Barlow Condensed', sans-serif;
|
||
font-size: 19px;
|
||
font-weight: 800;
|
||
letter-spacing: -.3px;
|
||
color: var(--mt-dark);
|
||
margin: 0 0 10px;
|
||
}
|
||
.mt-card-desc {
|
||
font-size: 13.5px;
|
||
line-height: 1.65;
|
||
color: var(--mt-muted);
|
||
margin: 0;
|
||
}
|
||
|
||
/* card bottom tag */
|
||
.mt-card-tag {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
gap: 5px;
|
||
margin-top: 18px;
|
||
font-family: 'Barlow Condensed', sans-serif;
|
||
font-size: 10px;
|
||
font-weight: 700;
|
||
letter-spacing: 1.8px;
|
||
text-transform: uppercase;
|
||
color: var(--mt-red);
|
||
opacity: 0;
|
||
transform: translateX(-6px);
|
||
transition: opacity .3s, transform .3s;
|
||
}
|
||
.mt-card-tag::after {
|
||
content: '';
|
||
display: block;
|
||
width: 16px; height: 1px;
|
||
background: var(--mt-red);
|
||
transition: width .35s cubic-bezier(.16,1,.3,1);
|
||
}
|
||
.mt-card:hover .mt-card-tag { opacity: 1; transform: translateX(0); }
|
||
.mt-card:hover .mt-card-tag::after { width: 26px; }
|
||
|
||
/* ── RESPONSIVE ── */
|
||
@media (max-width: 860px) {
|
||
.mt-banner { grid-template-columns: repeat(2, 1fr); padding: 0 20px; }
|
||
.mt-stat:nth-child(2)::after { display: none; }
|
||
.mt-grid { grid-template-columns: repeat(2, 1fr); }
|
||
.mt-body { padding: 60px 20px 70px; }
|
||
}
|
||
@media (max-width: 540px) {
|
||
.mt-grid { grid-template-columns: 1fr; }
|
||
.mt-banner { grid-template-columns: repeat(2, 1fr); }
|
||
}
|
||
</style>
|
||
|
||
<!-- ══ SECTION HTML ══ -->
|
||
<div class="mt-section" id="mt-miletruth">
|
||
|
||
<!-- Stats Banner -->
|
||
<div class="mt-banner">
|
||
<div class="mt-stat">
|
||
<span class="mt-stat-num" data-target="4" data-suffix="-6hrs">0</span>
|
||
<span class="mt-stat-label">Advance Warning</span>
|
||
</div>
|
||
<div class="mt-stat">
|
||
<span class="mt-stat-num" data-target="98" data-suffix="%">0</span>
|
||
<span class="mt-stat-label">ETA Accuracy</span>
|
||
</div>
|
||
<div class="mt-stat">
|
||
<span class="mt-stat-num" data-target="50" data-suffix="+">0</span>
|
||
<span class="mt-stat-label">Data Variables</span>
|
||
</div>
|
||
<div class="mt-stat">
|
||
<span class="mt-stat-num" data-target="30" data-suffix="%">0</span>
|
||
<span class="mt-stat-label">Exception Reduction</span>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Body -->
|
||
<div class="mt-body">
|
||
|
||
<!-- Header -->
|
||
<div class="mt-header">
|
||
<div class="mt-eyebrow">AI Intelligence</div>
|
||
<h2 class="mt-title">Why <em>MileTruth</em><sup>™</sup> is Different</h2>
|
||
<p class="mt-desc">Unlike generic AI tools, MileTruth™ is trained exclusively on logistics data — millions of deliveries, routes, exceptions, and outcomes. It thinks like a logistics expert because it was built to be one.</p>
|
||
</div>
|
||
|
||
<!-- Feature Cards -->
|
||
<div class="mt-grid">
|
||
|
||
<!-- 1 -->
|
||
<div class="mt-card">
|
||
<div class="mt-card-icon">
|
||
<svg viewBox="0 0 24 24">
|
||
<path d="M10.29 3.86L1.82 18a2 2 0 001.71 3h16.94a2 2 0 001.71-3L13.71 3.86a2 2 0 00-3.42 0z"/>
|
||
<line x1="12" y1="9" x2="12" y2="13"/>
|
||
<line x1="12" y1="17" x2="12.01" y2="17"/>
|
||
</svg>
|
||
</div>
|
||
<h5 class="mt-card-name">Predictive Delay Detection</h5>
|
||
<p class="mt-card-desc">AI analyses 50+ variables to predict delays 4–6 hours before they occur, giving you time to act.</p>
|
||
<div class="mt-card-tag">Learn More</div>
|
||
</div>
|
||
|
||
<!-- 2 -->
|
||
<div class="mt-card">
|
||
<div class="mt-card-icon">
|
||
<svg viewBox="0 0 24 24">
|
||
<circle cx="12" cy="12" r="3"/>
|
||
<path d="M19.07 4.93a10 10 0 010 14.14M4.93 4.93a10 10 0 000 14.14"/>
|
||
<path d="M15.54 8.46a5 5 0 010 7.07M8.46 8.46a5 5 0 000 7.07"/>
|
||
</svg>
|
||
</div>
|
||
<h5 class="mt-card-name">Smart Route Optimisation</h5>
|
||
<p class="mt-card-desc">Real-time traffic, weather, and capacity data feed into dynamic routing that adapts on the fly.</p>
|
||
<div class="mt-card-tag">Learn More</div>
|
||
</div>
|
||
|
||
<!-- 3 -->
|
||
<div class="mt-card">
|
||
<div class="mt-card-icon">
|
||
<svg viewBox="0 0 24 24">
|
||
<circle cx="12" cy="12" r="10"/>
|
||
<polyline points="12 6 12 12 16 14"/>
|
||
</svg>
|
||
</div>
|
||
<h5 class="mt-card-name">Accurate ETA Predictions</h5>
|
||
<p class="mt-card-desc">Machine learning models trained on millions of deliveries provide 98% accurate arrival times.</p>
|
||
<div class="mt-card-tag">Learn More</div>
|
||
</div>
|
||
|
||
<!-- 4 -->
|
||
<div class="mt-card">
|
||
<div class="mt-card-icon">
|
||
<svg viewBox="0 0 24 24">
|
||
<polyline points="22 12 18 12 15 21 9 3 6 12 2 12"/>
|
||
</svg>
|
||
</div>
|
||
<h5 class="mt-card-name">Exception Management</h5>
|
||
<p class="mt-card-desc">Automatic escalation protocols trigger when deliveries deviate from expected patterns.</p>
|
||
<div class="mt-card-tag">Learn More</div>
|
||
</div>
|
||
|
||
<!-- 5 -->
|
||
<div class="mt-card">
|
||
<div class="mt-card-icon">
|
||
<svg viewBox="0 0 24 24">
|
||
<line x1="18" y1="20" x2="18" y2="10"/>
|
||
<line x1="12" y1="20" x2="12" y2="4"/>
|
||
<line x1="6" y1="20" x2="6" y2="14"/>
|
||
</svg>
|
||
</div>
|
||
<h5 class="mt-card-name">Performance Analytics</h5>
|
||
<p class="mt-card-desc">Deep insights into carrier performance, route efficiency, and cost optimisation opportunities.</p>
|
||
<div class="mt-card-tag">Learn More</div>
|
||
</div>
|
||
|
||
<!-- 6 -->
|
||
<div class="mt-card">
|
||
<div class="mt-card-icon">
|
||
<svg viewBox="0 0 24 24">
|
||
<polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"/>
|
||
</svg>
|
||
</div>
|
||
<h5 class="mt-card-name">Automated Recommendations</h5>
|
||
<p class="mt-card-desc">AI suggests carrier selection, consolidation opportunities, and capacity planning adjustments.</p>
|
||
<div class="mt-card-tag">Learn More</div>
|
||
</div>
|
||
|
||
</div><!-- /mt-grid -->
|
||
|
||
</div><!-- /mt-body -->
|
||
</div><!-- /mt-section -->
|
||
|
||
<script>
|
||
(function () {
|
||
var section = document.getElementById('mt-miletruth');
|
||
if (!section) return;
|
||
|
||
var fired = false;
|
||
|
||
function activate() {
|
||
if (fired) return;
|
||
fired = true;
|
||
section.classList.add('mt-live');
|
||
animateCounters();
|
||
}
|
||
|
||
/* ── counter animation ── */
|
||
function animateCounters() {
|
||
section.querySelectorAll('.mt-stat-num[data-target]').forEach(function (el) {
|
||
var target = parseInt(el.dataset.target, 10);
|
||
var suffix = el.dataset.suffix || '';
|
||
var start = performance.now();
|
||
var dur = 1600;
|
||
|
||
function tick(now) {
|
||
var p = Math.min((now - start) / dur, 1);
|
||
var ease = 1 - Math.pow(2, -10 * p);
|
||
var val = Math.round(ease * target);
|
||
el.textContent = val + suffix;
|
||
if (p < 1) requestAnimationFrame(tick);
|
||
}
|
||
requestAnimationFrame(tick);
|
||
});
|
||
}
|
||
|
||
if ('IntersectionObserver' in window) {
|
||
var io = new IntersectionObserver(function (entries) {
|
||
entries.forEach(function (e) { if (e.isIntersecting) { activate(); io.unobserve(e.target); } });
|
||
}, { threshold: 0.1 });
|
||
io.observe(section);
|
||
}
|
||
|
||
setTimeout(activate, 380);
|
||
})();
|
||
</script> |