sync: auto-sync from Mikes-MacBook-Air.local at 2026-06-17 06:18:23

Author: Mike Swanson
Machine: Mikes-MacBook-Air.local
Timestamp: 2026-06-17 06:18:23
This commit is contained in:
2026-06-17 06:18:24 -07:00
parent 83efd4d909
commit 7d84857cc5
9 changed files with 836 additions and 5 deletions

View File

@@ -26,7 +26,7 @@
<a class="nav__link" href="index.html">Home</a>
<a class="nav__link" href="services.html">Services</a>
<a class="nav__link" href="pricing.html">Pricing</a>
<a class="nav__link" href="calculator.html">Estimate</a>
<a class="nav__link nav__link--cta" href="calculator.html">Estimate</a>
<a class="nav__link" href="about.html" aria-current="page">About</a>
<a class="nav__link" href="contact.html">Contact</a>
</div>
@@ -107,6 +107,32 @@
</section>
</main>
<!-- RADIO TICKER MARQUEE -->
<div class="radio-ticker">
<div class="radio-ticker__track">
<div class="radio-ticker__item"><strong>The Computer Guru Show</strong> Saturdays 9AM on KVOI 1030AM</div>
<div class="radio-ticker__item">Call in: <strong>520-790-2020</strong></div>
<div class="radio-ticker__item">Tucson's trusted tech talk since 2001</div>
<div class="radio-ticker__item"><strong>The Computer Guru Show</strong> Saturdays 9AM on KVOI 1030AM</div>
<div class="radio-ticker__item">Call in: <strong>520-790-2020</strong></div>
<div class="radio-ticker__item">Tucson's trusted tech talk since 2001</div>
</div>
</div>
<!-- EXIT INTENT BANNER -->
<div class="exit-offer" id="exitOffer">
<div class="exit-offer__content">
<div class="exit-offer__message">
<strong>Wait — Free IT Assessment</strong>
<p>Most Tucson businesses overpay for IT. Get a free audit before you go.</p>
</div>
<div class="exit-offer__actions">
<a class="btn btn--primary" href="contact.html">Get Free Assessment</a>
<button class="exit-offer__close" id="closeExit" aria-label="Close banner">&times;</button>
</div>
</div>
</div>
<footer class="site-footer">
<div class="wrap">
<p>&copy; <span id="year">2026</span> Arizona Computer Guru &middot; Protecting Tucson businesses since 2001</p>

View File

@@ -132,6 +132,32 @@
</section>
</main>
<!-- RADIO TICKER MARQUEE -->
<div class="radio-ticker">
<div class="radio-ticker__track">
<div class="radio-ticker__item"><strong>The Computer Guru Show</strong> Saturdays 9AM on KVOI 1030AM</div>
<div class="radio-ticker__item">Call in: <strong>520-790-2020</strong></div>
<div class="radio-ticker__item">Tucson's trusted tech talk since 2001</div>
<div class="radio-ticker__item"><strong>The Computer Guru Show</strong> Saturdays 9AM on KVOI 1030AM</div>
<div class="radio-ticker__item">Call in: <strong>520-790-2020</strong></div>
<div class="radio-ticker__item">Tucson's trusted tech talk since 2001</div>
</div>
</div>
<!-- EXIT INTENT BANNER -->
<div class="exit-offer" id="exitOffer">
<div class="exit-offer__content">
<div class="exit-offer__message">
<strong>Wait — Free IT Assessment</strong>
<p>Most Tucson businesses overpay for IT. Get a free audit before you go.</p>
</div>
<div class="exit-offer__actions">
<a class="btn btn--primary" href="contact.html">Get Free Assessment</a>
<button class="exit-offer__close" id="closeExit" aria-label="Close banner">&times;</button>
</div>
</div>
</div>
<footer class="site-footer">
<div class="wrap">
<p>&copy; <span id="year">2026</span> Arizona Computer Guru &middot; Protecting Tucson businesses since 2001</p>

View File

@@ -29,7 +29,7 @@
<a class="nav__link" href="index.html">Home</a>
<a class="nav__link" href="services.html">Services</a>
<a class="nav__link" href="pricing.html">Pricing</a>
<a class="nav__link" href="calculator.html">Estimate</a>
<a class="nav__link nav__link--cta" href="calculator.html">Estimate</a>
<a class="nav__link" href="about.html">About</a>
<a class="nav__link" href="contact.html" aria-current="page">Contact</a>
</div>
@@ -101,6 +101,32 @@
</section>
</main>
<!-- RADIO TICKER MARQUEE -->
<div class="radio-ticker">
<div class="radio-ticker__track">
<div class="radio-ticker__item"><strong>The Computer Guru Show</strong> Saturdays 9AM on KVOI 1030AM</div>
<div class="radio-ticker__item">Call in: <strong>520-790-2020</strong></div>
<div class="radio-ticker__item">Tucson's trusted tech talk since 2001</div>
<div class="radio-ticker__item"><strong>The Computer Guru Show</strong> Saturdays 9AM on KVOI 1030AM</div>
<div class="radio-ticker__item">Call in: <strong>520-790-2020</strong></div>
<div class="radio-ticker__item">Tucson's trusted tech talk since 2001</div>
</div>
</div>
<!-- EXIT INTENT BANNER -->
<div class="exit-offer" id="exitOffer">
<div class="exit-offer__content">
<div class="exit-offer__message">
<strong>Wait — Free IT Assessment</strong>
<p>Most Tucson businesses overpay for IT. Get a free audit before you go.</p>
</div>
<div class="exit-offer__actions">
<a class="btn btn--primary" href="contact.html">Get Free Assessment</a>
<button class="exit-offer__close" id="closeExit" aria-label="Close banner">&times;</button>
</div>
</div>
</div>
<footer class="site-footer">
<div class="wrap">
<p>&copy; <span id="year">2026</span> Arizona Computer Guru &middot; Protecting Tucson businesses since 2001</p>

View File

@@ -274,6 +274,8 @@ h3 { font-size: 1.5rem; font-weight: 600; }
.nav a { font-family: var(--f-body); font-size: 0.92rem; color: var(--ink-2);
text-decoration: none; }
.nav a:hover { color: var(--ink); }
.nav__link--cta { color: var(--accent-ink) !important; font-weight: 600; }
.nav__link--cta:hover { color: var(--accent) !important; }
.nav__phone { font-family: var(--f-mono); color: var(--ink) !important; font-weight: 500; }
.theme-toggle, .nav__toggle {
background: transparent; border: 1px solid var(--rule); border-radius: 2px;
@@ -656,3 +658,280 @@ select:focus, .stepper input:focus, input:focus { outline: 2px solid var(--accen
background: linear-gradient(135deg, var(--surface-2) 0 50%, var(--accent) 50% 100%); }
.skin-toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
@media (max-width: 560px) { .nav__phone { display: none; } }
/* ---- Custom Cursor - REMOVED (restored to normal system cursor) ------- */
/* ---- Instant State Changes (No Transitions) ---------------------------- */
.btn,
a,
.tier,
.service-card,
.svc,
.more-link,
.theme-toggle,
.skin-toggle,
.nav__toggle,
.faq__q,
button,
input,
textarea,
select {
transition: none !important;
}
.btn:hover,
.tier:hover {
background: var(--ink);
color: var(--paper);
border-color: var(--ink);
}
/* Service cards (.svc) have complex internal styling - no hover inversion */
.more-link:hover .arrow {
transform: translateX(6px);
}
/* ---- Clip-Path Wipe Reveals -------------------------------------------- */
.reveal {
clip-path: inset(0 100% 0 0);
animation: reveal-wipe 0.8s cubic-bezier(0.77, 0, 0.175, 1) forwards;
}
.reveal.in {
clip-path: inset(0 0 0 0);
}
@keyframes reveal-wipe {
from { clip-path: inset(0 100% 0 0); }
to { clip-path: inset(0 0 0 0); }
}
@media (prefers-reduced-motion: reduce) {
.reveal {
clip-path: inset(0 0 0 0);
animation: none;
}
}
/* ---- Field Intelligence Dispatch Board --------------------------------- */
.dispatch-board {
background: var(--surface);
border-block: 1px solid var(--rule);
}
.dispatch-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: calc(var(--base) * 1.5);
margin-top: var(--base);
}
.dispatch-card {
background: var(--paper);
border: 1px solid var(--rule);
padding: calc(var(--base) * 1.25);
position: relative;
}
.dispatch-card__label {
font-family: var(--f-mono);
font-size: 0.7rem;
text-transform: uppercase;
letter-spacing: 0.15em;
color: var(--accent-ink);
margin-bottom: 0.75rem;
}
.dispatch-card__title {
font-family: var(--f-display);
font-size: 1.35rem;
font-weight: 600;
line-height: 1.15;
margin-bottom: 0.75rem;
text-transform: none;
}
.dispatch-card__excerpt {
color: var(--ink-2);
font-size: 0.92rem;
line-height: 1.5;
margin-bottom: 1rem;
}
.dispatch-card__meta {
display: flex;
justify-content: space-between;
align-items: center;
gap: 1rem;
padding-top: 1rem;
border-top: 1px solid var(--rule);
font-size: 0.8rem;
}
.dispatch-card__date {
font-family: var(--f-mono);
color: var(--ink-3);
}
.dispatch-card__tag {
background: var(--accent);
color: var(--on-accent);
padding: 0.25rem 0.6rem;
font-family: var(--f-mono);
font-size: 0.7rem;
text-transform: uppercase;
letter-spacing: 0.05em;
}
@media (max-width: 768px) {
.dispatch-grid {
grid-template-columns: 1fr;
}
}
/* ---- Radio Ticker Marquee ---------------------------------------------- */
.radio-ticker {
position: fixed;
bottom: 0;
left: 0;
right: 0;
background: var(--ink);
color: var(--paper);
border-top: 1px solid var(--accent);
height: 40px;
overflow: hidden;
z-index: 9999;
}
.radio-ticker__track {
display: flex;
align-items: center;
height: 100%;
animation: ticker-scroll 30s linear infinite;
}
@keyframes ticker-scroll {
0% { transform: translateX(0); }
100% { transform: translateX(-50%); }
}
.radio-ticker__item {
font-family: var(--f-mono);
font-size: 0.8rem;
text-transform: uppercase;
letter-spacing: 0.1em;
white-space: nowrap;
padding: 0 3rem;
color: var(--paper);
}
.radio-ticker__item strong {
color: var(--accent);
font-weight: 600;
}
.radio-ticker__item::before {
content: "●";
color: var(--accent);
margin-right: 1rem;
}
/* ---- Exit Intent Banner (Subtle Slide-Down, Below Header) ------------- */
.exit-offer {
position: fixed;
top: 73px; /* Below header (72px min-height + 1px border) */
left: 0;
right: 0;
background: var(--accent);
color: var(--on-accent);
z-index: 45; /* Below header (z-index: 50) but above content */
transform: translateY(-100%);
transition: transform 0.4s ease;
border-bottom: 1px solid var(--ink);
}
.exit-offer.show {
transform: translateY(0);
}
.exit-offer__content {
max-width: var(--maxw);
margin: 0 auto;
padding: 1rem 1.5rem;
display: flex;
align-items: center;
justify-content: space-between;
gap: 1.5rem;
}
.exit-offer__message {
flex: 1;
}
.exit-offer__message strong {
font-family: var(--f-display);
font-size: 1.1rem;
text-transform: uppercase;
display: block;
margin-bottom: 0.25rem;
}
.exit-offer__message p {
font-size: 0.9rem;
margin: 0;
opacity: 0.95;
}
.exit-offer__actions {
display: flex;
gap: 0.75rem;
align-items: center;
flex-shrink: 0;
}
.exit-offer__close {
background: transparent;
border: 1px solid var(--on-accent);
color: var(--on-accent);
font-size: 1.2rem;
width: 32px;
height: 32px;
padding: 0;
display: grid;
place-items: center;
}
.exit-offer__close:hover {
background: var(--on-accent);
color: var(--accent);
}
.exit-offer .btn {
font-size: 0.9rem;
padding: 0.6rem 1.2rem;
}
.exit-offer .btn--primary {
background: var(--ink);
color: var(--paper);
border-color: var(--ink);
}
.exit-offer .btn--primary:hover {
background: var(--paper);
color: var(--ink);
}
@media (max-width: 768px) {
.exit-offer__content {
flex-direction: column;
text-align: center;
padding: 1rem;
}
.exit-offer__actions {
width: 100%;
justify-content: center;
}
}

View File

@@ -39,7 +39,7 @@
<a class="nav__link" href="index.html" aria-current="page">Home</a>
<a class="nav__link" href="services.html">Services</a>
<a class="nav__link" href="pricing.html">Pricing</a>
<a class="nav__link" href="calculator.html">Estimate</a>
<a class="nav__link nav__link--cta" href="calculator.html">Estimate</a>
<a class="nav__link" href="about.html">About</a>
<a class="nav__link" href="contact.html">Contact</a>
</div>
@@ -132,6 +132,45 @@
</div>
</section>
<!-- FIELD INTELLIGENCE DISPATCH BOARD -->
<section class="dispatch-board ledger" aria-labelledby="dispatch-h">
<div class="wrap">
<p class="section-tag">Field intelligence <span>/ community blog</span></p>
<h2 id="dispatch-h">Dispatch Board</h2>
<p class="lead">Real fixes, real lessons, real clients. What we learned this week so you do not have to.</p>
<div class="dispatch-grid">
<article class="dispatch-card reveal">
<div class="dispatch-card__label">Field Report #142</div>
<h3 class="dispatch-card__title">Why Your Backup Is Not Actually a Backup</h3>
<p class="dispatch-card__excerpt">Three Tucson businesses discovered their backups were corrupted only after ransomware hit. Here is what they missed.</p>
<div class="dispatch-card__meta">
<span class="dispatch-card__date">June 14, 2026</span>
<span class="dispatch-card__tag">Backup & Recovery</span>
</div>
</article>
<article class="dispatch-card reveal">
<div class="dispatch-card__label">Field Report #141</div>
<h3 class="dispatch-card__title">The $47,000 Phishing Email</h3>
<p class="dispatch-card__excerpt">How a single wire transfer approval almost bankrupted a local law firm, and the one setting that would have stopped it.</p>
<div class="dispatch-card__meta">
<span class="dispatch-card__date">June 11, 2026</span>
<span class="dispatch-card__tag">Email Security</span>
</div>
</article>
<article class="dispatch-card reveal">
<div class="dispatch-card__label">Field Report #140</div>
<h3 class="dispatch-card__title">Microsoft Copilot Is Leaking Your Data</h3>
<p class="dispatch-card__excerpt">Default Copilot settings expose internal emails and documents to the entire company. Here is how to lock it down.</p>
<div class="dispatch-card__meta">
<span class="dispatch-card__date">June 7, 2026</span>
<span class="dispatch-card__tag">Microsoft 365</span>
</div>
</article>
</div>
<a class="more-link" href="https://community.azcomputerguru.com" target="_blank" rel="noopener">Read all field reports <span class="arrow" aria-hidden="true">&rarr;</span></a>
</div>
</section>
<!-- CTA -->
<section class="cta-band" aria-labelledby="cta-h">
<div class="wrap">
@@ -147,6 +186,32 @@
</section>
</main>
<!-- RADIO TICKER MARQUEE -->
<div class="radio-ticker">
<div class="radio-ticker__track">
<div class="radio-ticker__item"><strong>The Computer Guru Show</strong> Saturdays 9AM on KVOI 1030AM</div>
<div class="radio-ticker__item">Call in: <strong>520-790-2020</strong></div>
<div class="radio-ticker__item">Tucson's trusted tech talk since 2001</div>
<div class="radio-ticker__item"><strong>The Computer Guru Show</strong> Saturdays 9AM on KVOI 1030AM</div>
<div class="radio-ticker__item">Call in: <strong>520-790-2020</strong></div>
<div class="radio-ticker__item">Tucson's trusted tech talk since 2001</div>
</div>
</div>
<!-- EXIT INTENT BANNER -->
<div class="exit-offer" id="exitOffer">
<div class="exit-offer__content">
<div class="exit-offer__message">
<strong>Wait — Free IT Assessment</strong>
<p>Most Tucson businesses overpay for IT. Get a free audit before you go.</p>
</div>
<div class="exit-offer__actions">
<a class="btn btn--primary" href="contact.html">Get Free Assessment</a>
<button class="exit-offer__close" id="closeExit" aria-label="Close banner">&times;</button>
</div>
</div>
</div>
<footer class="site-footer">
<div class="wrap">
<p>&copy; <span id="year">2026</span> Arizona Computer Guru &middot; Protecting Tucson businesses since 2001</p>

View File

@@ -280,4 +280,83 @@
} else {
reveals.forEach(function (el) { el.classList.add("in"); });
}
/* ---- Custom Cursor - REMOVED (restored to normal system cursor) ------- */
/* ---- Magnetic Buttons ------------------------------------------------- */
$$(".btn, .tier, button").forEach(function (btn) {
btn.addEventListener("mousemove", function (e) {
var rect = btn.getBoundingClientRect();
var x = (e.clientX - rect.left - rect.width / 2) * 0.15;
var y = (e.clientY - rect.top - rect.height / 2) * 0.15;
btn.style.transform = "translate(" + x + "px, " + y + "px)";
});
btn.addEventListener("mouseleave", function () {
btn.style.transform = "";
});
});
/* ---- Calculator to Contact Handoff ------------------------------------ */
window.lockEstimate = function () {
var endpoints = $("#endpoints");
var tier = $("#tier");
var support = $("#support");
var monthlyTotal = $(".calc__out .tnum");
if (endpoints && tier && monthlyTotal) {
var estimate = {
endpoints: endpoints.value,
tier: tier.options[tier.selectedIndex].text,
support: support ? support.options[support.selectedIndex].text : "Standard",
monthly: monthlyTotal.textContent.trim(),
timestamp: Date.now()
};
try {
sessionStorage.setItem("acg_estimate", JSON.stringify(estimate));
} catch (e) {}
window.location.href = "contact.html?from=calculator";
}
};
// Pre-fill contact form with estimate if coming from calculator
if (window.location.search.indexOf("from=calculator") > -1) {
try {
var storedEstimate = sessionStorage.getItem("acg_estimate");
if (storedEstimate) {
var est = JSON.parse(storedEstimate);
var msgField = $("#cf-message");
if (msgField) {
msgField.value = "I'd like a quote for:\n" +
est.endpoints + " endpoints\n" +
est.tier + " tier\n" +
est.support + " support\n" +
"Estimated monthly: " + est.monthly;
}
}
} catch (e) {}
}
/* ---- Exit Intent Banner (Subtle, 3-second delay) ---------------------- */
var exitShown = false;
document.addEventListener("mouseout", function (e) {
if (!exitShown && e.clientY <= 0 && e.relatedTarget == null) {
exitShown = true;
// Show exit banner after 3 second delay (less aggressive)
setTimeout(function () {
var offer = $("#exitOffer");
if (offer) offer.classList.add("show");
}, 3000);
}
});
var closeExit = $("#closeExit");
if (closeExit) {
closeExit.addEventListener("click", function () {
var offer = $("#exitOffer");
if (offer) offer.classList.remove("show");
});
}
})();

View File

@@ -26,7 +26,7 @@
<a class="nav__link" href="index.html">Home</a>
<a class="nav__link" href="services.html">Services</a>
<a class="nav__link" href="pricing.html" aria-current="page">Pricing</a>
<a class="nav__link" href="calculator.html">Estimate</a>
<a class="nav__link nav__link--cta" href="calculator.html">Estimate</a>
<a class="nav__link" href="about.html">About</a>
<a class="nav__link" href="contact.html">Contact</a>
</div>
@@ -189,6 +189,32 @@
</section>
</main>
<!-- RADIO TICKER MARQUEE -->
<div class="radio-ticker">
<div class="radio-ticker__track">
<div class="radio-ticker__item"><strong>The Computer Guru Show</strong> Saturdays 9AM on KVOI 1030AM</div>
<div class="radio-ticker__item">Call in: <strong>520-790-2020</strong></div>
<div class="radio-ticker__item">Tucson's trusted tech talk since 2001</div>
<div class="radio-ticker__item"><strong>The Computer Guru Show</strong> Saturdays 9AM on KVOI 1030AM</div>
<div class="radio-ticker__item">Call in: <strong>520-790-2020</strong></div>
<div class="radio-ticker__item">Tucson's trusted tech talk since 2001</div>
</div>
</div>
<!-- EXIT INTENT BANNER -->
<div class="exit-offer" id="exitOffer">
<div class="exit-offer__content">
<div class="exit-offer__message">
<strong>Wait — Free IT Assessment</strong>
<p>Most Tucson businesses overpay for IT. Get a free audit before you go.</p>
</div>
<div class="exit-offer__actions">
<a class="btn btn--primary" href="contact.html">Get Free Assessment</a>
<button class="exit-offer__close" id="closeExit" aria-label="Close banner">&times;</button>
</div>
</div>
</div>
<footer class="site-footer">
<div class="wrap">
<p>&copy; <span id="year">2026</span> Arizona Computer Guru &middot; Protecting Tucson businesses since 2001</p>

View File

@@ -26,7 +26,7 @@
<a class="nav__link" href="index.html">Home</a>
<a class="nav__link" href="services.html" aria-current="page">Services</a>
<a class="nav__link" href="pricing.html">Pricing</a>
<a class="nav__link" href="calculator.html">Estimate</a>
<a class="nav__link nav__link--cta" href="calculator.html">Estimate</a>
<a class="nav__link" href="about.html">About</a>
<a class="nav__link" href="contact.html">Contact</a>
</div>
@@ -97,6 +97,32 @@
</section>
</main>
<!-- RADIO TICKER MARQUEE -->
<div class="radio-ticker">
<div class="radio-ticker__track">
<div class="radio-ticker__item"><strong>The Computer Guru Show</strong> Saturdays 9AM on KVOI 1030AM</div>
<div class="radio-ticker__item">Call in: <strong>520-790-2020</strong></div>
<div class="radio-ticker__item">Tucson's trusted tech talk since 2001</div>
<div class="radio-ticker__item"><strong>The Computer Guru Show</strong> Saturdays 9AM on KVOI 1030AM</div>
<div class="radio-ticker__item">Call in: <strong>520-790-2020</strong></div>
<div class="radio-ticker__item">Tucson's trusted tech talk since 2001</div>
</div>
</div>
<!-- EXIT INTENT BANNER -->
<div class="exit-offer" id="exitOffer">
<div class="exit-offer__content">
<div class="exit-offer__message">
<strong>Wait — Free IT Assessment</strong>
<p>Most Tucson businesses overpay for IT. Get a free audit before you go.</p>
</div>
<div class="exit-offer__actions">
<a class="btn btn--primary" href="contact.html">Get Free Assessment</a>
<button class="exit-offer__close" id="closeExit" aria-label="Close banner">&times;</button>
</div>
</div>
</div>
<footer class="site-footer">
<div class="wrap">
<p>&copy; <span id="year">2026</span> Arizona Computer Guru &middot; Protecting Tucson businesses since 2001</p>