Files
doormile-site/includes/why_miletruth.php

484 lines
15 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<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 46 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>