@font-face{font-family:Outfit;font-style:normal;font-weight:400 700;font-display:swap;src:url('assets/fonts/outfit-latin.woff2') format('woff2')}
:root{--bg:#FAF8F5;--paper:#FFFEFA;--sunken:#F2EFE8;--ink:#1C1810;--muted:#706858;--dark:#0A0806;--panel:#201C18;--copper:#9C4C18;--gold:#E8A848;--line:#E8E0D4;--gradient:linear-gradient(90deg,#C44828 0%,#D87830 38%,#E8A848 65%,#F8D878 100%);--ease-out:cubic-bezier(.23,1,.32,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--ink);font-family:Outfit,system-ui,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}img{display:block;max-width:100%}h1,h2,h3,p{margin:0}ul,ol{list-style:none;padding:0;margin:0}h2{font-size:clamp(30px,2.65vw,38px);line-height:1.24;font-weight:600;letter-spacing:-.02em}h3{font-size:22px;line-height:1.3;font-weight:500}p{font-size:18px}.container{width:min(1200px,calc(100% - 48px));margin-inline:auto}:focus-visible{outline:2px solid var(--gold);outline-offset:5px;border-radius:4px}.section{padding-block:64px}.columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}.columns p{font-size:17px;line-height:1.5;color:var(--muted);margin-top:16px}.skip-link{position:fixed;z-index:100;top:8px;left:24px;transform:translateY(-160%);background:var(--paper);padding:12px;color:var(--ink)}.skip-link:focus{transform:none}
.nav{position:sticky;top:0;z-index:20;background:var(--dark);color:var(--bg);height:104px;border-bottom:1px solid transparent;transition:border-color 180ms ease,box-shadow 180ms ease}.nav.is-scrolled{border-color:#302820;box-shadow:0 4px 12px #0a08061a}.nav__inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:32px}.nav__logo img{width:244px;height:auto}.nav__links{display:flex;align-items:center;gap:26px;font-size:16px}.nav__links a{padding-block:12px;transition:color 160ms ease}.nav__email{margin-left:120px;color:var(--gold);font-weight:600}.nav__toggle{display:none;background:none;border:0;color:var(--bg);padding:12px;min-height:44px}
.hero{background:var(--dark);color:var(--bg);text-align:center;padding-top:32px;padding-bottom:104px}.hero__eyebrow{color:var(--gold);font-size:16px;font-weight:500;margin-bottom:32px}h1{font-size:clamp(40px,4.45vw,64px);line-height:1.3;font-weight:600;letter-spacing:-.025em;max-width:1000px;margin-inline:auto}.hero__sub{font-size:21px;line-height:1.5;color:#C8BEAE;max-width:960px;margin:24px auto 62px}.btn{display:inline-flex;align-items:center;justify-content:center;min-width:330px;min-height:52px;padding:14px 24px;border:1px solid transparent;border-radius:8px;background:#882C18;color:#FFFEFA;font-size:16px;font-weight:600;line-height:1.35;transition:transform 120ms var(--ease-out),background-color 160ms ease;transform-origin:center}.btn:active{transform:scale(.98);background:#702210}
.capabilities h2{margin-bottom:38px}.capabilities article:before{content:'';display:block;width:32px;height:3px;background:var(--copper);margin-bottom:20px}.example{background:#141210;color:var(--bg)}.eyebrow{font-size:14px;font-weight:500;color:var(--gold);margin-bottom:24px}.example h2{margin-bottom:40px}.workflow li{background:var(--panel);border-radius:8px;padding:24px;min-height:164px}.workflow h3{font-size:20px}.workflow p,.example__note{color:#C8BEAE}.example__note{font-size:16px;margin-top:32px}.example__note+.example__note{margin-top:24px}.lead{color:var(--muted);margin:24px 0 48px;max-width:1080px}.about{background:var(--sunken);padding-block:40px}.about__inner{display:grid;grid-template-columns:196px 1fr;align-items:start;gap:52px}.about img{width:196px;height:196px;object-fit:cover;border-radius:8px}.about h2{font-size:30px}.about__role{color:var(--copper);font-size:16px;margin:8px 0 24px}.about p:last-child{max-width:850px;color:var(--muted)}.contact{background:var(--dark);color:var(--bg);padding-block:48px}.contact p{color:#C8BEAE;margin:24px 0 36px}.contact__email{display:block;width:fit-content;color:var(--gold);font-size:17px;margin-top:20px}.footer{display:flex;gap:24px;align-items:center;min-height:88px;padding-block:24px;color:var(--muted)}.footer p,.footer a{font-size:14px}
@media(hover:hover) and (pointer:fine){.btn:hover{background:#9A361E}.nav__links a:hover,.contact__email:hover{color:#F8D878}}
@media(max-width:960px){.nav__email{margin-left:32px}.nav__links{gap:20px}.columns{gap:24px}.hero__sub{max-width:720px}.about__inner{gap:32px}.nav__logo img{width:226px}}
@media(max-width:760px){html{scroll-padding-top:80px}.nav{height:88px}.nav__toggle{display:block}.nav__links{display:none;position:absolute;top:100%;left:0;right:0;padding:8px 24px 24px;background:var(--dark);border-bottom:1px solid #40362C;flex-direction:column;align-items:stretch;gap:0}.nav.is-open .nav__links{display:flex}.nav__links a{padding-block:14px}.nav__email{margin:0}.hero{padding-top:26px}.hero__eyebrow{font-size:15px;margin-bottom:30px}.desktop-break{display:none}h1{font-size:clamp(36px,10.7vw,48px);line-height:1.3;max-width:540px}.hero__sub{font-size:18px;line-height:1.5;margin-top:24px;margin-bottom:38px;max-width:520px}.btn{min-width:0;width:100%;max-width:390px}.section{padding-block:48px}.columns{grid-template-columns:1fr;gap:32px}.columns h3{font-size:22px}.columns p{margin-top:12px}.capabilities h2{margin-bottom:36px}.capabilities article:before{margin-bottom:16px}.example h2{margin-bottom:32px}.workflow{gap:24px}.workflow li{min-height:156px;padding:20px}.workflow h3{font-size:20px}.example__note{font-size:15px}.lead{margin:24px 0 40px}.process .columns{gap:32px}.about__inner{grid-template-columns:104px 1fr;gap:24px}.about img{width:104px;height:104px}.about__inner>div{display:contents}.about h2{font-size:24px;align-self:start}.about__role{grid-column:2;margin-top:-55px;margin-bottom:0;align-self:end;font-size:15px}.about p:last-child{grid-column:1/-1}.contact h2{font-size:32px}.footer{display:block;padding-bottom:88px;padding-right:0}.footer a{display:inline-block;margin-top:8px}}
@media(max-width:360px){.nav__logo img{width:205px}.nav__inner{gap:8px}.hero__eyebrow{font-size:14px}.about__inner{grid-template-columns:88px 1fr;gap:20px}.about img{width:88px;height:88px}.about h2{font-size:21px}.about__role{margin-top:-38px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.btn:active{transform:none}}
@media(max-width:760px){.about h2{grid-area:1/2}.about__role{grid-area:1/2;align-self:end;margin:0}.about p:last-child{grid-row:2}}
@media(max-width:360px){.about__inner{grid-template-rows:minmax(112px,auto) auto}}

/* Restrained feedback on actual controls. */
.btn{transition:transform 160ms var(--ease-out),background-color 160ms ease}
.btn:active{transition-duration:100ms;transform:scale(.98)}
.nav__links a{position:relative}
.nav__links a:after{content:'';position:absolute;bottom:8px;left:0;right:0;height:1px;background:currentColor;opacity:0;transform:scaleX(.94);transform-origin:center;transition:transform 160ms var(--ease-out),opacity 160ms ease}
@media(hover:hover) and (pointer:fine){.nav__links a:hover:after{opacity:.65;transform:scaleX(1)}}
body.using-keyboard .btn{transition:none}body.using-keyboard .btn:active{transform:none}
@media(prefers-reduced-motion:reduce){.btn:active{transform:none}.nav__links a:after{transition:none}}

/* Consulting narrative: scope, previous work, founder, and delivery. */
h1{max-width:1100px;text-wrap:balance}
:focus-visible{outline-color:var(--copper)}
.nav :focus-visible,.hero :focus-visible,.example :focus-visible,.contact :focus-visible{outline-color:var(--gold)}
.nav__email{margin-left:clamp(16px,5vw,72px)}
.services-layout,.project-layout{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.35fr);gap:80px}
.section-intro h2{margin-bottom:20px;max-width:13ch}
.section-intro p{max-width:32ch;color:var(--muted)}
.service-list article{padding-block:24px;border-top:1px solid var(--line)}
.service-list article:first-child{padding-top:0;border-top:0}
.service-list article:last-child{padding-bottom:0}
.service-list article:before{display:none}
.service-list p{font-size:17px;line-height:1.6;color:var(--muted);margin-top:12px;max-width:65ch}
.example h2{margin-bottom:24px;max-width:17ch}
.project-context,.project-story p{color:#C8BEAE;line-height:1.6}
.project-story p+p{margin-top:24px}
.project-story .project-use{border-top:1px solid #51483C;padding-top:24px;color:var(--bg);font-size:20px;font-weight:500}
.about{padding-block:64px}
.about__inner{grid-template-columns:196px minmax(0,1fr);gap:20px 52px}
.about img{grid-column:1;grid-row:1/3}
.about__heading{grid-column:2;grid-row:1}
.about .about__role{margin:8px 0 0;color:var(--copper)}
.about__copy{grid-column:2;grid-row:2;max-width:76ch}
.about__copy p{color:var(--muted);line-height:1.6}
.about__copy p+p{margin-top:16px}
.process h2{max-width:26ch}
.process-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 64px;margin-top:40px}
.process-steps li{display:grid;grid-template-columns:28px minmax(0,1fr);gap:16px;padding-top:24px;border-top:1px solid var(--line)}
.step-number{font-size:15px;font-variant-numeric:tabular-nums;color:var(--copper);padding-top:4px}
.process-steps p{font-size:17px;line-height:1.6;color:var(--muted);margin-top:12px}
.contact{padding-block:64px}
.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}
.contact-body p{margin:0 0 28px;max-width:46ch}
@media(max-width:960px){
 .nav__links{gap:16px}.nav__email{margin-left:16px}
 .services-layout,.project-layout{gap:40px;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
 .process-steps{gap:32px}.contact-layout{gap:40px}
}
@media(max-width:760px){
 /* Fit the longer headline inside the approved glow composition; allow text to grow. */
 h1{max-width:600px;line-height:1.12}
 .hero{min-height:460px}
 .hero__eyebrow{margin-bottom:24px}
 .hero__sub{margin-top:16px;margin-bottom:28px}
 .nav__email{margin-left:0}
 .nav__links{gap:0;max-height:calc(100dvh - 88px);overflow-y:auto;overscroll-behavior:contain}
 .services-layout,.project-layout,.contact-layout{grid-template-columns:1fr;gap:32px}
 .section-intro h2{max-width:18ch;margin-bottom:16px}
 .section-intro p{max-width:40ch}
 .service-list article{padding-block:24px}
 .service-list article:first-child{padding-top:24px;border-top:1px solid var(--line)}
 .example h2{margin-bottom:20px;max-width:19ch}
 .project-context,.project-story p{font-size:17px}
 .project-story .project-use{font-size:19px}
 .about{padding-block:48px}
 .about__inner{grid-template-columns:104px minmax(0,1fr);grid-template-rows:auto auto;gap:24px}
 .about__inner>div{display:block}
 .about img{grid-row:1;width:104px;height:104px}
 .about__heading{align-self:center}
 .about h2{font-size:24px;line-height:1.2;overflow-wrap:normal}
 .about__role{margin:12px 0 0;font-size:15px}
 .about__copy{grid-column:1/-1;grid-row:2}
 .about__copy p{font-size:17px}
 .process-steps{grid-template-columns:1fr;gap:24px;margin-top:32px}
 .process-steps li{gap:12px}
 .process-steps h3{font-size:21px}
 .contact{padding-block:48px}
 .contact h2{max-width:18ch}
}
@media(max-width:360px){
 h1{font-size:34px}
 .about__inner{grid-template-columns:88px minmax(0,1fr);gap:20px}
 .about img{width:88px;height:88px}.about h2{font-size:21px}
}
@media(max-width:460px){.hero{min-height:520px}}
@media(min-width:461px) and (max-width:760px){h1{font-size:clamp(40px,7vw,44px)}}

/* Three independently moving colour fields; only the hero is illuminated. */
.hero{position:relative;isolation:isolate}
.hero>.container{position:relative;z-index:1}
.hero-glow-field{
  position:absolute;inset:0;overflow:hidden;pointer-events:none;contain:paint;isolation:isolate;opacity:.38;
  -webkit-mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.3) 18%,#000 45%);
  mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.3) 18%,#000 45%);
}
.hero-glow{
  --blob-color:196 72 40;--blob-peak:1;--blob-base:-18deg;
  position:absolute;left:31%;top:88%;width:99.2%;height:147.2%;
  background:radial-gradient(ellipse closest-side,rgb(var(--blob-color)) 0%,rgb(var(--blob-color) / .96) 10%,rgb(var(--blob-color) / .75) 25%,rgb(var(--blob-color) / .42) 45%,rgb(var(--blob-color) / .16) 65%,rgb(var(--blob-color) / .035) 82%,transparent 100%);
  opacity:var(--blob-peak);transform:translate(-50%,-50%) rotate(var(--blob-base));
}
.hero-glow--2{--blob-color:216 120 48;--blob-base:24deg;left:78%;top:74%;width:89.6%;height:144%}
.hero-glow--3{--blob-color:232 168 72;--blob-peak:.72;--blob-base:-6deg;left:58%;top:110%;width:70.4%;height:112%}
/* Motion is owned by ambient.js via native WAAPI; CSS is the no-JS still fallback. */
/* This tiled monochrome grain never animates. Its mask keeps it in the light. */
.hero-grain{
  position:absolute;inset:0;pointer-events:none;background:url('assets/hero-grain-20261004.svg') repeat;opacity:.1;mix-blend-mode:soft-light;
  -webkit-mask-image:radial-gradient(ellipse 49.6% 73.6% at 31% 88%,#000,transparent 85%),radial-gradient(ellipse 44.8% 72% at 78% 74%,#000,transparent 85%),radial-gradient(ellipse 35.2% 56% at 58% 110%,#000,transparent 85%);
  mask-image:radial-gradient(ellipse 49.6% 73.6% at 31% 88%,#000,transparent 85%),radial-gradient(ellipse 44.8% 72% at 78% 74%,#000,transparent 85%),radial-gradient(ellipse 35.2% 56% at 58% 110%,#000,transparent 85%);
}
@media(max-width:760px){
 .hero{padding-bottom:88px}
 .hero-glow--1{left:33%;top:92%;width:160%;height:104%}
 .hero-glow--2{left:77%;top:74%;width:152%;height:96%}
 .hero-glow--3{left:58%;top:110%;width:136%;height:83.2%}
}
@media(prefers-reduced-motion:reduce){.hero-glow{transform:translate(-50%,-50%) rotate(var(--blob-base))!important;opacity:var(--blob-peak)!important}}
/* Manual Pause holds the current native animation frame; it does not reset the pose. */
