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 41a30178e7
commit 8e2d097761
9 changed files with 836 additions and 5 deletions

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;
}
}