Inga: ambient wave loop, subtle scroll motion, check-list outcomes, nav caps

- Hero: drop the dusty-blue orb; add the thin-line wave loop Mike liked, paper-
  blended on the left so the headline stays clean (50% opacity, save-data/reduced
  -motion gated, fades in on play).
- Motion: subtle reveal-on-scroll for below-fold sections (gated on has-motion,
  reduced-motion off, hero never animates — LCP/CLS safe), same idea as OC.
- "What changes when we work together": replace the arrow bullets (read like a
  flow chart) with a clean single-column check-list with divider lines.
- Nav: capitalize "The Moment" and "Where to Start".

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-22 22:29:25 -07:00
parent bdba21c6bf
commit a26d1cee79
3 changed files with 63 additions and 17 deletions
Binary file not shown.
+41 -9
View File
@@ -16,6 +16,7 @@
<meta property="og:title" content="Inga Michaelsen — leadership &amp; team coaching"> <meta property="og:title" content="Inga Michaelsen — leadership &amp; team coaching">
<meta property="og:description" content="How you work together is everything. Systems-aware, trauma-informed coaching and facilitation for teams doing meaningful work in a complex world."> <meta property="og:description" content="How you work together is everything. Systems-aware, trauma-informed coaching and facilitation for teams doing meaningful work in a complex world.">
<!-- NOTE: contact/scheduling intentionally excluded in this build. Booking + form get wired in at handoff to Inga. --> <!-- NOTE: contact/scheduling intentionally excluded in this build. Booking + form get wired in at handoff to Inga. -->
<script>document.documentElement.className += ' has-motion';</script>
</head> </head>
<body> <body>
@@ -25,9 +26,9 @@
<img src="assets/brand/inga-logo.svg" alt="Inga Michaelsen"> <img src="assets/brand/inga-logo.svg" alt="Inga Michaelsen">
</a> </a>
<nav class="nav-links" aria-label="Main"> <nav class="nav-links" aria-label="Main">
<a href="#familiar">The moment</a> <a href="#familiar">The Moment</a>
<a href="#approach">Approach</a> <a href="#approach">Approach</a>
<a href="#services">Where to start</a> <a href="#services">Where to Start</a>
<a href="#about">About</a> <a href="#about">About</a>
<a class="btn" href="#contact">Let's talk</a> <a class="btn" href="#contact">Let's talk</a>
</nav> </nav>
@@ -41,9 +42,9 @@
</div> </div>
</header> </header>
<div class="nav-mobile" id="navMobile"> <div class="nav-mobile" id="navMobile">
<a href="#familiar">The moment</a> <a href="#familiar">The Moment</a>
<a href="#approach">Approach</a> <a href="#approach">Approach</a>
<a href="#services">Where to start</a> <a href="#services">Where to Start</a>
<a href="#about">About</a> <a href="#about">About</a>
<a class="btn" href="#contact">Let's talk</a> <a class="btn" href="#contact">Let's talk</a>
</div> </div>
@@ -51,12 +52,14 @@
<main id="top"> <main id="top">
<section class="hero"> <section class="hero">
<div class="hero-orb" aria-hidden="true"></div> <div class="hero-media" aria-hidden="true">
<video class="hero-video" muted loop playsinline preload="none" data-src-mp4="assets/media/hero-loop.mp4"></video>
</div>
<div class="wrap"> <div class="wrap">
<p class="eyebrow">Leadership &amp; team coaching · facilitation</p> <p class="eyebrow">Leadership &amp; team coaching · facilitation</p>
<h1>In a complex world, how you work together is <em>everything.</em></h1> <h1>In a complex world, how you work together is <em>everything.</em></h1>
<p class="lead">Leadership and team development for organizations doing meaningful work in an unpredictable world — building the capacity to perform and relate well, even when the path isn't clear.</p> <p class="lead">Leadership and team development for organizations doing meaningful work in an unpredictable world — building the capacity to perform and relate well, even when the path isn't clear.</p>
<div class="actions"><a class="btn" href="#contact">Let's talk</a><a class="btn ghost" href="#services">Where to start</a></div> <div class="actions"><a class="btn" href="#contact">Let's talk</a><a class="btn ghost" href="#services">Where to Start</a></div>
<div class="hero-creds"> <div class="hero-creds">
<span>Professional Certified Coach (PCC)</span> <span>Professional Certified Coach (PCC)</span>
<span>Team Coach (ACTC)</span> <span>Team Coach (ACTC)</span>
@@ -110,7 +113,7 @@
<section class="band-tint" id="services"> <section class="band-tint" id="services">
<div class="wrap"> <div class="wrap">
<p class="eyebrow">Where to start</p> <p class="eyebrow">Where to Start</p>
<h2>Focused, time-bound, practical.</h2> <h2>Focused, time-bound, practical.</h2>
<p class="section-intro">Every team and context is different. These starting points are designed for different moments. Not sure which fits? Start with a conversation, and we'll figure it out together.</p> <p class="section-intro">Every team and context is different. These starting points are designed for different moments. Not sure which fits? Start with a conversation, and we'll figure it out together.</p>
<div class="cards"> <div class="cards">
@@ -259,9 +262,9 @@
<div class="wrap"> <div class="wrap">
<div class="foot-logo"><img src="assets/brand/inga-logo-wh.svg" alt="Inga Michaelsen"></div> <div class="foot-logo"><img src="assets/brand/inga-logo-wh.svg" alt="Inga Michaelsen"></div>
<nav aria-label="Footer"> <nav aria-label="Footer">
<a href="#familiar">The moment</a> <a href="#familiar">The Moment</a>
<a href="#approach">Approach</a> <a href="#approach">Approach</a>
<a href="#services">Where to start</a> <a href="#services">Where to Start</a>
<a href="#about">About</a> <a href="#about">About</a>
</nav> </nav>
<p class="fine">Leadership &amp; team coaching · facilitation · Victoria, BC, Canada · Professional Certified Coach (PCC), Team Coach (ACTC), International Coaching Federation.</p> <p class="fine">Leadership &amp; team coaching · facilitation · Victoria, BC, Canada · Professional Certified Coach (PCC), Team Coach (ACTC), International Coaching Federation.</p>
@@ -285,5 +288,34 @@
})(); })();
</script> </script>
<script>
(function () {
var root = document.documentElement;
var rm = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
// hero ambient video — load only when motion is welcome and the connection allows
var hv = document.querySelector('.hero-video');
var conn = navigator.connection || {};
if (hv && !rm && conn.saveData !== true) {
var mp4 = hv.getAttribute('data-src-mp4');
if (mp4) {
var s = document.createElement('source'); s.src = mp4; s.type = 'video/mp4';
hv.appendChild(s); hv.load();
hv.addEventListener('playing', function () { hv.classList.add('is-playing'); }, { once: true });
var p = hv.play(); if (p && p.catch) p.catch(function () {});
}
}
// subtle reveal on scroll
var nodes = [].slice.call(document.querySelectorAll('main section:not(.hero) > .wrap'));
if (root.classList.contains('has-motion') && !rm && 'IntersectionObserver' in window) {
var io = new IntersectionObserver(function (es) {
es.forEach(function (e) { if (e.isIntersecting) { e.target.classList.add('in'); io.unobserve(e.target); } });
}, { rootMargin: '0px 0px -10% 0px', threshold: 0.12 });
nodes.forEach(function (n) { io.observe(n); });
} else {
nodes.forEach(function (n) { n.classList.add('in'); });
}
})();
</script>
</body> </body>
</html> </html>
+22 -8
View File
@@ -112,9 +112,13 @@ section { padding-block: clamp(3.4rem, 7vw, 6rem); scroll-margin-top: 86px; }
font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); } font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.hero-creds span { position: relative; } .hero-creds span { position: relative; }
.hero-creds span + span::before { content: "·"; position: absolute; left: -.75rem; color: var(--accent); } .hero-creds span + span::before { content: "·"; position: absolute; left: -.75rem; color: var(--accent); }
.hero-orb { position: absolute; right: -12vw; top: -10vw; width: 46vw; max-width: 620px; aspect-ratio: 1; /* ambient hero loop (thin-line wave flow) — paper-blended on the left so text stays clean */
background: radial-gradient(circle at 35% 35%, var(--accent-soft), rgba(157,189,199,.22) 60%, transparent 72%); .hero-media { position: absolute; inset: 0; z-index: 1; pointer-events: none; overflow: hidden; background: var(--paper); }
border-radius: 50%; z-index: 1; pointer-events: none; } .hero-media::after { content: ""; position: absolute; inset: 0;
background: linear-gradient(100deg, var(--paper) 24%, rgba(246,245,242,.55) 46%, rgba(246,245,242,0) 72%); }
.hero-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block;
opacity: 0; transition: opacity 1.1s ease; }
.hero-video.is-playing { opacity: .5; }
/* ---- symptom list ---- */ /* ---- symptom list ---- */
.checklist { list-style: none; padding: 0; margin: 1.8rem 0 0; display: grid; gap: .85rem; } .checklist { list-style: none; padding: 0; margin: 1.8rem 0 0; display: grid; gap: .85rem; }
@@ -129,11 +133,12 @@ section { padding-block: clamp(3.4rem, 7vw, 6rem); scroll-margin-top: 86px; }
.bio-card { background: var(--accent-soft); border-radius: 18px; padding: clamp(1.4rem,3vw,2rem); } .bio-card { background: var(--accent-soft); border-radius: 18px; padding: clamp(1.4rem,3vw,2rem); }
.bio-card h3 { margin-top: 0; } .bio-card h3 { margin-top: 0; }
/* ---- outcomes ---- */ /* ---- outcomes (clean check-list, not a flow chart) ---- */
.outcomes { list-style: none; padding: 0; margin: 1.8rem 0 0; display: grid; gap: .9rem; } .outcomes { list-style: none; padding: 0; margin: 1.4rem 0 0; }
@media (min-width: 720px) { .outcomes { grid-template-columns: 1fr 1fr; gap: .9rem 2rem; } } .outcomes li { position: relative; padding: .72rem 0 .72rem 2rem; line-height: 1.5; color: var(--charcoal); }
.outcomes li { position: relative; padding-left: 1.9rem; } .outcomes li + li { border-top: 1px solid rgba(53,107,123,.16); }
.outcomes li::before { content: ""; position: absolute; left: 0; color: var(--accent-ink); font-weight: 700; } .outcomes li::before { content: ""; position: absolute; left: .05rem; top: .72rem;
color: var(--accent-ink); font-weight: 800; font-size: .96em; line-height: 1.5; }
/* ---- service cards ---- */ /* ---- service cards ---- */
.cards { display: grid; gap: 1.1rem; margin-top: 2.2rem; } .cards { display: grid; gap: 1.1rem; margin-top: 2.2rem; }
@@ -190,4 +195,13 @@ section { padding-block: clamp(3.4rem, 7vw, 6rem); scroll-margin-top: 86px; }
.site-footer nav a:hover { color: var(--accent); } .site-footer nav a:hover { color: var(--accent); }
.site-footer .fine { font-size: .82rem; color: rgba(246,245,242,.55); max-width: 60ch; } .site-footer .fine { font-size: .82rem; color: rgba(246,245,242,.55); max-width: 60ch; }
/* ---- motion: subtle reveal on scroll (gated; hero never animates; CLS-safe) ---- */
.has-motion main section:not(.hero) > .wrap {
opacity: 0; transform: translateY(16px); transition: opacity .7s ease, transform .7s ease;
}
.has-motion main section:not(.hero) > .wrap.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
.has-motion main section:not(.hero) > .wrap { opacity: 1; transform: none; transition: none; }
}
:focus-visible { outline: 3px solid var(--accent-ink); outline-offset: 2px; border-radius: 3px; } :focus-visible { outline: 3px solid var(--accent-ink); outline-offset: 2px; border-radius: 3px; }