update folder
This commit is contained in:
484
web/why_miletruth.php
Normal file
484
web/why_miletruth.php
Normal file
@@ -0,0 +1,484 @@
|
||||
<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>
|
||||
Reference in New Issue
Block a user