:root,[data-theme="light"]{
--color-bg:#f7f6f2;--color-surface:#f9f8f5;--color-surface-2:#fbfbf9;
--color-surface-offset:#f0ede8;--color-surface-dynamic:#e6e4df;
--color-divider:#dcd9d5;--color-border:#d4d1ca;
--color-text:#28251d;--color-text-muted:#6b6860;--color-text-faint:#b0afa8;
--color-text-inverse:#f9f8f4;
--color-primary:#01696f;--color-primary-hover:#0c4e54;--color-primary-active:#0f3638;
--color-primary-highlight:#cedcd8;
--color-accent:#c85c2a;
--color-success:#437a22;--color-success-highlight:#d4dfcc;
--color-gold:#b88a00;
--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--radius-full:9999px;
--shadow-sm:0 1px 2px oklch(0.2 0.01 80/0.06);
--shadow-md:0 4px 16px oklch(0.2 0.01 80/0.09);
--shadow-lg:0 12px 40px oklch(0.2 0.01 80/0.13);
--shadow-xl:0 24px 64px oklch(0.2 0.01 80/0.18);
--transition:180ms cubic-bezier(0.16,1,0.3,1);
--font-display:'Instrument Serif',Georgia,serif;
--font-body:'DM Sans','Helvetica Neue',sans-serif;
--text-xs:clamp(0.75rem,0.7rem + 0.25vw,0.875rem);
--text-sm:clamp(0.875rem,0.8rem + 0.35vw,1rem);
--text-base:clamp(1rem,0.95rem + 0.25vw,1.125rem);
--text-lg:clamp(1.125rem,1rem + 0.75vw,1.5rem);
--text-xl:clamp(1.5rem,1.2rem + 1.25vw,2.25rem);
--text-2xl:clamp(2rem,1.2rem + 2.5vw,3.5rem);
--text-3xl:clamp(2.5rem,1rem + 4vw,5rem);
--content-narrow:640px;--content-default:960px;--content-wide:1200px;
}
[data-theme="dark"]{
--color-bg:#141312;--color-surface:#1a1917;--color-surface-2:#201f1d;
--color-surface-offset:#1d1c1a;--color-surface-dynamic:#2a2927;
--color-divider:#262523;--color-border:#393836;
--color-text:#cccac7;--color-text-muted:#797876;--color-text-faint:#545350;
--color-text-inverse:#2b2a28;
--color-primary:#4f98a3;--color-primary-hover:#3d8490;--color-primary-active:#2a6f7a;
--color-primary-highlight:#1f3234;
--color-accent:#e07a4a;
--color-success:#6daa45;--color-success-highlight:#2a3a1f;
--color-gold:#e0a820;
--shadow-sm:0 1px 2px oklch(0 0 0/0.25);
--shadow-md:0 4px 16px oklch(0 0 0/0.35);
--shadow-lg:0 12px 40px oklch(0 0 0/0.45);
--shadow-xl:0 24px 64px oklch(0 0 0/0.55);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-font-smoothing:antialiased;scroll-behavior:smooth;scroll-padding-top:80px}
body{min-height:100dvh;font-family:var(--font-body);font-size:var(--text-base);color:var(--color-text);background:var(--color-bg);overflow-x:hidden}
img,svg{display:block;max-width:100%}
p,li{text-wrap:pretty}
h1,h2,h3,h4{text-wrap:balance;line-height:1.15}
a,button,[role="button"]{transition:color var(--transition),background var(--transition),border-color var(--transition),box-shadow var(--transition),opacity var(--transition),transform var(--transition)}
button{cursor:pointer;background:none;border:none;font:inherit;color:inherit}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
/* PROGRESS BAR */
.progress-bar{position:fixed;top:0;left:0;height:3px;background:var(--color-primary);width:0%;z-index:200;transition:width .1s linear}
/* SCROLL REVEALS */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(0.16,1,0.3,1),transform .7s cubic-bezier(0.16,1,0.3,1)}
.reveal.visible{opacity:1;transform:none}
.reveal-delay-1{transition-delay:.1s}
.reveal-delay-2{transition-delay:.2s}
.reveal-delay-3{transition-delay:.3s}
/* LAYOUT */
.container{max-width:var(--content-default);margin-inline:auto;padding-inline:clamp(1rem,4vw,2.5rem)}
.container-wide{max-width:var(--content-wide);margin-inline:auto;padding-inline:clamp(1rem,4vw,2.5rem)}
section{padding-block:clamp(4rem,8vw,8rem)}
/* SECTION TYPOGRAPHY */
.section-eyebrow{font-size:var(--text-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-primary);margin-bottom:.75rem}
.section-title{font-family:var(--font-display);font-size:var(--text-2xl);color:var(--color-text);margin-bottom:1rem;max-width:22ch}
.section-desc{font-size:var(--text-base);color:var(--color-text-muted);line-height:1.7;max-width:58ch;margin-bottom:2rem}
/* NAV */
nav{position:fixed;top:0;left:0;right:0;z-index:100;background:oklch(from var(--color-bg) l c h/.92);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid oklch(from var(--color-text) l c h/.08);transition:box-shadow .3s}
nav.scrolled{box-shadow:var(--shadow-md)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:68px;max-width:var(--content-wide);margin-inline:auto;padding-inline:clamp(1rem,4vw,2.5rem)}
.nav-logo{display:flex;align-items:center;gap:.5rem;text-decoration:none;color:var(--color-text)}
.nav-brand{font-family:var(--font-display);font-size:1.15rem;letter-spacing:-.01em}
.nav-actions{display:flex;align-items:center;gap:.5rem}
.theme-toggle{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-full);color:var(--color-text-muted)}
.theme-toggle:hover{background:var(--color-surface-offset);color:var(--color-text)}
.nav-back{display:inline-flex;align-items:center;gap:.4rem;font-size:var(--text-sm);color:var(--color-text-muted);padding:.4rem .85rem;border-radius:var(--radius-full);text-decoration:none;border:1px solid var(--color-border)}
.nav-back:hover{color:var(--color-text);background:var(--color-surface-offset)}
.nav-cta{background:var(--color-primary);color:var(--color-text-inverse)!important;padding:.45rem 1.1rem;border-radius:var(--radius-full);font-weight:600;font-size:var(--text-sm);text-decoration:none}
.nav-cta:hover{background:var(--color-primary-hover);transform:translateY(-1px)}
/* BUTTONS */
.btn-primary{display:inline-flex;align-items:center;gap:.5rem;background:var(--color-primary);color:var(--color-text-inverse);padding:.8rem 1.75rem;border-radius:var(--radius-full);font-weight:700;font-size:var(--text-sm);text-decoration:none;letter-spacing:.01em}
.btn-primary:hover{background:var(--color-primary-hover);color:var(--color-text-inverse);transform:translateY(-2px);box-shadow:var(--shadow-md)}
.btn-ghost{display:inline-flex;align-items:center;gap:.5rem;color:var(--color-text-muted);padding:.8rem 1.5rem;border-radius:var(--radius-full);font-weight:500;font-size:var(--text-sm);text-decoration:none;border:1px solid var(--color-border)}
.btn-ghost:hover{color:var(--color-text);border-color:var(--color-primary);background:var(--color-primary-highlight)}
.btn-inverse{display:inline-flex;align-items:center;gap:.5rem;background:var(--color-text-inverse);color:var(--color-primary);padding:.85rem 2rem;border-radius:var(--radius-full);font-weight:700;font-size:var(--text-sm);text-decoration:none}
.btn-inverse:hover{background:var(--color-surface-dynamic);transform:translateY(-2px);box-shadow:0 8px 24px oklch(0 0 0/.25)}
/* HERO */
#hero{padding-top:calc(68px + clamp(3rem,6vw,6rem));padding-bottom:clamp(3rem,6vw,6rem);background:var(--color-bg);position:relative;overflow:hidden}
.hero-bg-ring{position:absolute;top:-20%;right:-5%;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,oklch(from var(--color-primary) l c h/.07) 0%,transparent 70%);pointer-events:none}
.hero-badge{display:inline-flex;align-items:center;gap:.4rem;background:var(--color-primary-highlight);color:var(--color-primary);font-size:var(--text-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:.3rem .85rem;border-radius:var(--radius-full);margin-bottom:1.5rem}
.hero-headline{font-family:var(--font-display);font-size:var(--text-3xl);line-height:1.08;letter-spacing:-.02em;color:var(--color-text);margin-bottom:1.5rem;max-width:16ch}
.hero-headline em{font-style:italic;color:var(--color-primary)}
.hero-subline{font-size:var(--text-lg);color:var(--color-text-muted);max-width:50ch;line-height:1.65;margin-bottom:2.5rem}
.hero-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:3.5rem}
.hero-grid{display:grid;grid-template-columns:1.1fr 0.9fr;gap:3.5rem;align-items:center}
@media(max-width:768px){.hero-grid{grid-template-columns:1fr}.hero-visual{display:none}}
/* DIALOGUE CARD */
.dialogue-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-2xl);padding:2rem;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:1.25rem}
.dialogue-card-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.25rem}
.dialogue-card-icon{width:36px;height:36px;border-radius:var(--radius-full);background:var(--color-primary-highlight);color:var(--color-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.dialogue-card-label{font-size:var(--text-xs);font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.07em}
.dialogue-bubble{border-radius:var(--radius-xl);padding:1rem 1.2rem;font-size:var(--text-sm);line-height:1.65;position:relative}
.bubble-customer{background:var(--color-surface-offset);color:var(--color-text);border-left:3px solid var(--color-border)}
.bubble-pm{background:var(--color-primary-highlight);color:var(--color-primary-active);border-left:3px solid var(--color-primary)}
.bubble-internal{background:oklch(from var(--color-accent) l c h/.08);color:var(--color-accent);border-left:3px solid var(--color-accent);font-style:italic;font-size:var(--text-xs)}
.bubble-label{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-bottom:.4rem;opacity:.65}
.bubble-internal .bubble-label{color:var(--color-accent)}
/* PROBLEM SECTION */
#problem{background:var(--color-surface)}
.problem-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start;margin-top:3rem}
@media(max-width:680px){.problem-grid{grid-template-columns:1fr}}
.problem-text p{font-size:var(--text-base);color:var(--color-text-muted);line-height:1.75;margin-bottom:1.1rem}
.problem-text p strong{color:var(--color-text)}
.cost-list{display:flex;flex-direction:column;gap:.75rem;margin-top:2rem}
.cost-item{display:flex;align-items:center;gap:.85rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1rem 1.25rem}
.cost-icon{width:36px;height:36px;border-radius:var(--radius-md);background:oklch(from var(--color-accent) l c h/.1);color:var(--color-accent);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.cost-label{font-weight:600;font-size:var(--text-sm);color:var(--color-text)}
.cost-sub{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:.1rem}
.pullquote{background:var(--color-primary-highlight);border-left:4px solid var(--color-primary);border-radius:var(--radius-lg);padding:1.5rem 1.75rem;margin-top:2rem}
.pullquote p{font-family:var(--font-display);font-size:var(--text-lg);font-style:italic;color:var(--color-primary-active);line-height:1.55}
/* COACHING SECTION */
#coaching{background:var(--color-bg)}
.coaching-intro{display:flex;align-items:end;justify-content:space-between;gap:2rem;flex-wrap:wrap;margin-bottom:3rem}
.skills-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--color-border);border:1px solid var(--color-border);border-radius:var(--radius-xl);overflow:hidden}
@media(max-width:560px){.skills-grid{grid-template-columns:1fr}}
.skill-item{background:var(--color-surface);padding:1.75rem 1.5rem;transition:background var(--transition)}
.skill-item:hover{background:var(--color-surface-offset)}
.skill-item:hover .skill-icon{background:var(--color-primary);color:var(--color-text-inverse)}
.skill-icon{width:44px;height:44px;border-radius:var(--radius-lg);background:var(--color-primary-highlight);color:var(--color-primary);display:flex;align-items:center;justify-content:center;margin-bottom:1rem;transition:background .25s,color .25s}
.skill-icon svg{width:22px;height:22px}
.skill-title{font-weight:700;font-size:var(--text-base);color:var(--color-text);margin-bottom:.4rem}
.skill-desc{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.6}
/* OUTCOMES SECTION */
#outcomes{background:var(--color-surface)}
.outcomes-split{display:grid;grid-template-columns:1fr 1fr;gap:3.5rem;align-items:center}
@media(max-width:720px){.outcomes-split{grid-template-columns:1fr}}
.outcome-list{display:flex;flex-direction:column;gap:1rem;margin-top:2rem}
.outcome-item{display:flex;align-items:start;gap:1rem;padding:1.25rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:box-shadow var(--transition),transform var(--transition)}
.outcome-item:hover{box-shadow:var(--shadow-md);transform:translateX(4px)}
.outcome-check{width:28px;height:28px;border-radius:var(--radius-full);background:var(--color-success-highlight);color:var(--color-success);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:.1rem}
.outcome-check svg{width:14px;height:14px}
.outcome-text{font-size:var(--text-sm);color:var(--color-text);line-height:1.6}
.outcome-text strong{display:block;margin-bottom:.2rem;font-weight:700}
.insight-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-2xl);padding:2rem;box-shadow:var(--shadow-md)}
.insight-quote{font-family:var(--font-display);font-size:var(--text-xl);font-style:italic;color:var(--color-text);line-height:1.5;margin-bottom:1.5rem}
.insight-meta{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;border-top:1px solid var(--color-border);padding-top:1rem}
.people-tag{display:inline-flex;align-items:center;gap:.4rem;background:var(--color-primary-highlight);color:var(--color-primary);font-size:var(--text-xs);font-weight:700;padding:.3rem .85rem;border-radius:var(--radius-full);letter-spacing:.05em;margin-top:1.25rem}
/* CTA */
#book{background:var(--color-primary);color:var(--color-text-inverse);text-align:center;position:relative;overflow:hidden}
#book::before{content:'';position:absolute;top:-50%;left:50%;transform:translateX(-50%);width:800px;height:800px;border-radius:50%;background:radial-gradient(circle,oklch(from var(--color-text-inverse) l c h/.07) 0%,transparent 60%);pointer-events:none}
#book .section-eyebrow{color:oklch(from var(--color-text-inverse) l c h/.6)}
#book .section-title{color:var(--color-text-inverse);max-width:100%}
#book .section-desc{color:oklch(from var(--color-text-inverse) l c h/.75);margin-inline:auto}
.book-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2.5rem}
/* FOOTER */
footer{background:var(--color-text);color:var(--color-text-inverse);padding:2.5rem 0}
.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.footer-brand{font-family:var(--font-display);font-size:1.1rem;color:var(--color-text-inverse)}
.footer-links{display:flex;gap:1.5rem}
.footer-links a{font-size:var(--text-xs);color:oklch(from var(--color-text-inverse) l c h/.5);text-decoration:none}
.footer-links a:hover{color:var(--color-text-inverse)}
.footer-copy{font-size:var(--text-xs);color:oklch(from var(--color-text-inverse) l c h/.4)}
/* FLOATING CTA */
.floating-cta{position:fixed;bottom:1.75rem;right:1.75rem;z-index:90;display:flex;align-items:center;gap:.5rem;background:var(--color-primary);color:var(--color-text-inverse);padding:.7rem 1.4rem;border-radius:var(--radius-full);font-weight:700;font-size:var(--text-sm);box-shadow:var(--shadow-lg);cursor:pointer;transform:translateY(100px);opacity:0;transition:transform .5s cubic-bezier(0.16,1,0.3,1),opacity .5s,background .2s}
.floating-cta.visible{transform:none;opacity:1}
.floating-cta:hover{background:var(--color-primary-hover);transform:translateY(-2px)}
.floating-cta svg{width:15px;height:15px}
@media(max-width:480px){.floating-cta{bottom:1rem;right:1rem}}
Construction Industry · Project Management
When a Smile Becomes a Silent Concession
The moment a project manager says "we'll manage" — and already knows the real cost. This skill gap is costing your organization more than you think.
Customer
"The timeline has tightened a bit, but I'm sure your team can manage. Without additional costs, of course."
Project Manager
"Well… we'll do our best. Let's see how we can make it work."
Internally
We're already behind. This means longer hours, shifting other projects, adding resources — and none of this was agreed as extra cost. But I don't want to be difficult.
The Hidden Cost
This moment is painfully familiar.
Responsibility weighs heavily. Deadlines tighten. And at the same time, there is a strong desire to keep the customer satisfied.
At some point, flexibility turns into a silent concession — and that concession starts to cost in ways that rarely show up in meeting notes.
Strong customer relationships are not built on project managers stretching endlessly on their own. They are built on open, fair negotiation — where expectations, scope, timelines, and value are discussed transparently.
When this skill is missing, organizations pay the price quietly: projects become unprofitable, people burn out, and trust erodes over time.
Time
Overtime absorbed silently, projects delayed
Money
Unpaid work erodes project profitability
Wellbeing
Stress mounts, people burn out quietly
Margin
Revenue leaks through untracked scope creep
Support & Tools
Project Managers Don't Need More Willpower
They are often unsupported — not unwilling. That is why we coach project managers with practical skills for real conversations.
Recognizing the Shift
Know exactly when "helping" silently turns into unpaid work — and how to catch it before it costs you.
Resetting Expectations
Understand how and when to address scope and timeline changes — constructively, not defensively.
Difficult Conversations
Turn tense moments into constructive negotiations — where both sides feel heard and respected.
Protecting Margins
Maintain profitability without damaging the customer relationship — confidence replaces appeasement.
The Outcome
Better Projects. Healthier People. Stronger Margins.
When project managers are equipped with the right skills, the results are felt across the entire organization.
Clearer Communication Customers receive more predictable delivery and fewer surprise escalations.
Improved Profitability Project margins improve as scope discipline becomes the norm, not the exception.
Reduced Hidden Overtime Stress decreases as PMs gain confidence to address changes early and fairly.
Stronger Customer Trust Transparent negotiation builds relationships that are durable — not just polite.
"People are not the targets of change. They are the drivers of it."
SKILLhill · Construction Industry Coaching
Human-Centered Approach
Ready to Start?
Want Your Project Managers to Master This Skill?
Together we'll identify 2–3 concrete ways your project managers can protect profitability — without compromising trust or customer satisfaction.
Book Session
// Progress bar
const progressBar = document.getElementById('progressBar');
window.addEventListener('scroll', () => {
const pct = window.scrollY / (document.body.scrollHeight - window.innerHeight) * 100;
progressBar.style.width = pct + '%';
});
// Nav scroll state
const nav = document.getElementById('mainNav');
window.addEventListener('scroll', () => {
nav.classList.toggle('scrolled', window.scrollY > 20);
}, {passive:true});
// Scroll reveals
const observer = new IntersectionObserver((entries) => {
entries.forEach(e => { if(e.isIntersecting) { e.target.classList.add('visible'); observer.unobserve(e.target); } });
}, {threshold: 0.12});
document.querySelectorAll('.reveal').forEach(el => observer.observe(el));
// Floating CTA
const floatingCta = document.getElementById('floatingCta');
window.addEventListener('scroll', () => {
floatingCta.classList.toggle('visible', window.scrollY > 400);
}, {passive:true});
// Theme toggle
const themeToggle = document.getElementById('themeToggle');
const iconSun = document.getElementById('iconSun');
const iconMoon = document.getElementById('iconMoon');
let isDark = false;
themeToggle.addEventListener('click', () => {
isDark = !isDark;
document.documentElement.setAttribute('data-theme', isDark ? 'dark' : 'light');
iconSun.style.display = isDark ? 'block' : 'none';
iconMoon.style.display = isDark ? 'none' : 'block';
});